如何在 astropy 中更改适合图像的 angular 分辨率?
How to change fits images' angular resolution in astropy?
我有两张不同波长的拟合图像。它们有不同的 angular 分辨率。
我想将较高分辨率的图像卷积到较低的图像。
我试过 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)几乎没有变化。然后我意识到我对两种不同类型的东西进行了卷积。一个是flux(or electrons/s),一个是kernel.
现在我不知道如何将较高分辨率的图像与较低的图像相匹配。感谢您回答我的问题!
我认为第一个问题是你内核的标准偏差应该以像素为单位,而不是角秒。
那么您可能对允许计算两个 PSF 之间的匹配内核的两个包感兴趣:
我有两张不同波长的拟合图像。它们有不同的 angular 分辨率。
我想将较高分辨率的图像卷积到较低的图像。
我试过 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)几乎没有变化。然后我意识到我对两种不同类型的东西进行了卷积。一个是flux(or electrons/s),一个是kernel.
现在我不知道如何将较高分辨率的图像与较低的图像相匹配。感谢您回答我的问题!
我认为第一个问题是你内核的标准偏差应该以像素为单位,而不是角秒。
那么您可能对允许计算两个 PSF 之间的匹配内核的两个包感兴趣: