是否有方法传递SED的“规格”参数或Bandpass的“吞吐量”参数的分段(不连续)函数?我尝试使用numpy传递一个增量函数和一个三角函数,但是galsim不接受它们作为一个有效的python函数。
我想尝试绘制一个单一波长的对象,并认为我应该修改SED或带通,使其只有一个波长的值。如果有更好的方法做这件事,请告诉我!
发布于 2016-04-22 20:58:01
有个更好的方法。
如果您已经有了带有某些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。
https://stackoverflow.com/questions/36802261
复制相似问题