1

有没有办法为 SED 的“spec”参数或 Bandpass 的“吞吐量”参数传递分段(不连续)函数?我尝试使用 numpy 传递一个 delta 函数和一个三角形函数,但 galsim 不会接受任何一个作为有效的 python 函数。

我想尝试在单个波长处绘制对象,并认为我应该修改 SED 或带通以仅在单个波长处具有值。如果有更好的方法可以做到这一点,请告诉我!

4

1 回答 1

2

有更好的方法来做到这一点。

如果您已经拥有带有一些 SED 的 ChromaticObject,则可以使用 ChromaticObject.evaluateAtWavelength() 方法在单个波长处获得与该 ChromaticObject 对应的 GSObject。拥有该 GSObject 后,您可以将其绘制成图像。例如:

sed = galsim.SED('wave**0.2')
sed2 = galsim.SED('wave**1.0')
obj = galsim.Gaussian(sigma=0.1)*sed + galsim.Gaussian(sigma=0.5)*sed2
foo = obj.evaluateAtWavelength(800.0) # argument is wavelength in nm

您可以这样做并发现 obj 是彩色的,而 foo 不是。您可以轻松地为任意数量的波长执行此操作,而无需重新定义 SED。

于 2016-04-22T20:58:01.923 回答