使用WCS进行FITS修复

时间:2019-05-27 14:05:16

标签: python numpy matplotlib astropy healpy

假设我有一个包含WCS标头的FITS文件,所以我可以这样做:

#import healpy as hp
#import astropy.io.fits as pyfits
#from astropy.wcs import WCS

listofhdus = pyfits.open(FITS)
wcs = WCS(listofhdus[0].header)

listofhdus [0] .data将包含一个二维numpy数组(NY乘以NX),对应于银河系坐标中满天的一小部分。

如果我想将天空图叠加到下面的具有Mollweide投影的散点图中,将二维numpy转换为healpix格式(称为WCS)的最佳方法是什么?

NPIX = hp.nside2npix(512)
m = 0*np.arange(NPIX)
hp.mollview(m, title="test")
hp.projscatter(longitude, latitude, lonlat=True, 
               coord='G',marker='+',color='black')
hp.graticule()

经度和纬度是两个2D数组(由numpy.meshgrid生成),具有一些我感兴趣的天体物理源的银河坐标?。

我想我可以尝试将healpix像素转换为坐标,以某种方式将其与我的天际图中可用的像素相匹配,然后从那里插入值,但是必须有一些更简单,更优雅,更精确的对吧?

1 个答案:

答案 0 :(得分:1)

您应该签出reproject,它可以满足您往返HEALPix的所有重投影需求。

尤其要检查reproject_to_healpix

如果您需要更好地控制插值例程(使用基于卷积的栅格器,以确保通量守恒和性能),建议您同时查看cygrid,其中也包含some examples for HEALPix