假设我有一个包含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。