【问题标题】:How to change fits images' angular resolution in astropy?如何在 astropy 中更改适合图像的角度分辨率?
【发布时间】:2020-09-21 09:06:52
【问题描述】:

我有两个不同波长的拟合图像。它们具有不同的角度分辨率。
我想将较高分辨率的图像卷积到较低的图像。
我试过 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)几乎没有变化。然后我意识到我卷积了两种不同类型的东西。一个是通量(或电子/秒),另一个是核。

现在我不知道如何将较高分辨率的图像与较低的图像匹配。感谢您回答我的问题!

【问题讨论】:

    标签: python python-3.x resolution astronomy fits


    【解决方案1】:

    我认为第一个问题是内核的标准偏差应该以像素为单位,而不是以弧秒为单位。

    那么您可能对允许计算两个 PSF 之间的匹配内核的两个包感兴趣:

    【讨论】:

    • 我尝试设置标准差 = 2.288(像素比例=0.059''/像素)。但结果图像变得比 160 图像更平滑。
    • Gaussian2DKernel中的标准差不能直接在astropy.convolution.convolve中使用。我比较了 photutils 和 Gaussian2DKernel 生成的两个内核,它们非常不同。首先,photutils 生成一个与源图像大小相同的内核,但是,我们可以在 Gaussian2DKernel 中设置内核大小。(当源大小相等时,这会有些困难。)最后,这两个内核中的数量非常不同。但是当源图像大小为奇数时我成功了。非常感谢你。这个问题困扰了我两个星期,现在我有了一些想法。
    • photutils和pypher生成的内核是差不多的(最终效果不错)。所以,我认为我最初的方法是错误的。
    • 是的,您不能直接与高斯卷积,因为生成的 PSF 将是您的源代码和内核代码的总和。因此,photutils 和 pypher 的基本工作是计算内核,该内核将从您的源 PSF 反卷积并由目标 PSF 重新卷积,使用傅里叶变换的比率。
    猜你喜欢
    • 2016-04-29
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2011-05-24
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多