在断断续续地搜索了几个月后,我找到了另一个潜在的解决方案。我还没有测试太多,所以请小心!
上面的 Saul 的解决方案 2是关键(好建议!)
基本上,您将healpy.mollview
( gnomview
,cartview
和orthview
work as well ) 的reproject_to_healpix
功能与reproject
包中的功能 ( http://reproject.readthedocs.org/en/stable/ ) 结合起来。
生成的地图适合我的角度比例,但我不能说转换与其他方法相比有多准确。
-----基本大纲----------
步骤 1:读入地图并通过cartview
. 正如上面扫罗所指出的,这也是进行轮换的一种方式。如果你只是在做一个标准的旋转/坐标变换,那么你只需要coord
关键字。从天体坐标到银河坐标,设置coord = ['C','G']
map_Gal = hp.cartview(map_Cel, coord=['C','G'], return_projected_map=True, xsize=desired_xsize, norm='hist',nest=False)
第 2 步:编写模板全天 FITS 标头(如下例所示)。我写的我的平均像素比例与我想要的 HEALPix 贴图相同。
第 3 步:使用reproject.transform_to_healpix
reproject
包括将“正常”数组(或 FITS 文件)映射到 HEALPix 投影的函数。将其与返回由 healpy.mollview/cartview/orthview/gnomview 创建的数组的能力相结合,您可以将一个坐标系(天体)的 HEALPix 地图旋转到另一个坐标系(银河)。
map_Gal_HP, footprint_Gal_HP = rp.reproject_to_healpix((map_Gal, target_header), coord_system_out= 'GALACTIC', nside=nside, nested=False)
本质上,它归结为这两个命令。但是,您必须制作一个模板标题,提供与您要制作的中间全天空地图相对应的像素比例和大小。
-----完整的工作示例(iPython notebook 格式 + FITS 样本数据)------
https://github.com/aaroncnb/healpix_coordtrans_example/tree/master
那里的代码应该运行得非常快,但那是因为地图严重退化。我为我的 NSIDE 1024 和 2048 地图做了同样的事情,大约花了一个小时。
------之前和之后的图像------