假设我有一个包含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投影散点图中,将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()


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

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

最佳答案

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

特别是,请检出reproject_to_healpix

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

08-07 03:08