我發現了另一個潛在的解決方案,經過幾個月搜索和搜索。我還沒有測試過,所以請小心!
掃羅的解決方案2,上面是關鍵(偉大的建議!)
基本上,你是在reproject_to_healpix
功能相結合的healpy.mollview
功能(gnomview
,cartview
和orthview
工作,以及) 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的筆記本格式+ FITS樣本數據)------
https://github.com/aaroncnb/healpix_coordtrans_example/tree/master
的代碼應該運行得非常快,但是那是因爲地圖嚴重退化。我爲我的NSIDE 1024和2048地圖做了同樣的工作,花了大約一個小時就花費了 。
------之前和之後的圖像------
的可能的複製[如何轉換和保存healpy映射到不同的座標系?(https://stackoverflow.com/questions/44443498/how-to-convert-and- save-healpy-map-to-different-coordinate-system) –