问题描述
我有两个波长不同的拟合图像。它们具有不同的角分辨率。
我想将高分辨率的图像卷积到较低的图像。
我已经尝试过astropy.convolution.convolve和astropy.convolution.Gaussian2DKernel。
1600nm分辨率为0.184“,606nm分辨率为0.124”。所以我认为内核的分辨率应为0.136“。然后我尝试了以下代码:
import os
from astropy.io import fits
from astropy.convolution import Gaussian2DKernel
from astropy.convolution import convolve
kernel = Gaussian2DKernel(x_stddev=0.136)
hdu = fits.open('/Users/lpr/Data/fits/pridata/goodsn_f606/606.fits')[0]
img = hdu.data
astropy_conv = convolve(img,kernel)
hdu.data = astropy_conv
hdu.writeto('/Users/lpr/Data/fits/expdata/CONVOLIMAGE/convolved_606.fits')
print('done')
当然,这是错误的。较高分辨率(606)的分辨率几乎没有变化。然后我意识到我卷积了两种不同类型的东西。一个是通量(或电子/秒),另一个是核。
现在,我不知道如何将高分辨率图像与低分辨率图像匹配。谢谢您回答我的问题!
解决方法
我认为第一个问题是内核的标准偏差应该以像素为单位,而不是弧秒。
那么您可能对两个软件包感兴趣,这两个软件包可以计算两个PSF之间的匹配内核:
- 第一个在 photutils 中:https://photutils.readthedocs.io/en/stable/psf_matching.html
- 第二个是专用软件包:https://pypher.readthedocs.io/en/latest/