首页 > 解决方案 > 适合 WCS 以治愈

问题描述

假设我有一个包含 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 将包含一个 2D numpy 数组(纽约乘以 NX),它对应于银河坐标系中完整天空的一小部分。

如果我想将该天空图叠加到以下带有 Mollweide 投影的散点图中,那么将该 2d 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()

其中经度和纬度是两个二维数组(使用 numpy.meshgrid 生成),其中包含我感兴趣的一些天体物理源的银河坐标?

我想我可以尝试将我的 healpix 像素转换为坐标,以某种方式将它们与我的天空图中可用的像素匹配并从那里插入值,但必须有一些更简单、更优雅和精确的东西,对吧?

标签: pythonnumpymatplotlibastropyhealpy

解决方案


您应该查看reproject,它可以满足您对 HEALPIx 的所有重新投影需求。

特别是,请查看reproject_to_healpix

如果您需要更好地控制插值程序(使用基于卷积的网格器,确保通量守恒、性能),我建议您查看cygrid,其中也有一些 HEALPix 示例


推荐阅读