我希望我可以使用Galsim测试PSF插值的各种方法。我想生成带有星系的图像,在各个点对PSF进行采样,然后将PSF插值到星系位置。这些示例演示了如何在特定位置生成PSF-是否可以在图像上生成PSF并在不同点进行采样? Great03 galsim网页承诺“具有空间相关性的现实噪声”,这听起来很有希望!
最佳答案
请查看GalSim示例目录中的demo10。该示例包括随位置变化的PSF。
基本思想是,PSF模型的参数将是(x,y)的函数,然后您将在星系位置构建PSF模型。例如(来自demo10.py):
pos = b.trueCenter() - im_center
pos = galsim.PositionD(pos.x * pixel_scale , pos.y * pixel_scale)
# The image comes out as about 211 arcsec across, so we define our variable
# parameters in terms of (r/100 arcsec), so roughly the scale size of the image.
r = math.sqrt(pos.x**2 + pos.y**2) / 100
psf_fwhm = 0.9 + 0.5 * r**2 # arcsec
psf_e = 0.4 * r**1.5
psf_beta = (math.atan2(pos.y,pos.x) + math.pi/2) * galsim.radians
# Define the PSF profile
psf = galsim.Gaussian(fwhm=psf_fwhm)
psf.applyShear(e=psf_e, beta=psf_beta)
您也可以使用配置文件方法执行相同的操作。这是demo10.yaml的相关部分:
psf :
type : Gaussian
fwhm :
type : Eval
str : '0.9 + 0.5 * (sky_pos.x**2 + sky_pos.y**2) / 100**2'
ellip:
type : EBeta
e :
type : Eval
fr : { type : Eval , str : '(sky_pos.x**2 + sky_pos.y**2)**0.5' }
str : '0.4 * (r/100)**1.5'
beta:
type : Eval
str : '(math.atan2(sky_pos.y,sky_pos.x) + math.pi/2.) * galsim.radians'
用于Great3挑战的变量PSF基本上做到了这一点,但使用了更为复杂的PSF模型。
关于python - 用galsim内插PSF参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19694621/