Healpy:旋转函数给出不同的结果

Healpy: Rotator function gives different results

我正在使用以下脚本来计算银河坐标(以度为单位)到天体坐标的银河中心 (GC) 位置:

import healpy as hp
r = hp.Rotator(coord = ['G', 'C'], deg=True)
ri = hp.Rotator(coord = ['C', 'G'], deg=True)
gz, ga = 0., 0.         # position of GC
gz_e, ga_e = r(gz, ga)
print gz_e, ga_e
zg, ag = ri(gz_e, ga_e)
print zg, ag

这些是我得到的结果:

1.09730865695 -2.91715324734  # celestial
0.0 -1.57079632679            # back to galactical

首先,天体坐标和银河坐标中的数字都是错误的。有可能我使用的函数有误(我希望如此),或者函数本身有问题。有人知道出了什么问题吗?

其次:我好像把弧度数取回来了,对吗?

deg 仅指 rot 中的角度,而不是 Rotator 本身。 Rotator 需要 theta(纬度)和 phi(经度)以弧度表示,请参阅:

import healpy as hp
import numpy as np
r = hp.Rotator(coord = ['G', 'C'])
ri = hp.Rotator(coord = ['C', 'G'])
gz, ga = np.pi/2, 0.         # position of GC
gz_e, ga_e = r(gz, ga)

print("Galactic center in Celestial Coordinates")
print(gz_e, ga_e)
zg, ag = ri(gz_e, ga_e)
print("Back to galactic coordinates")
print(zg, ag)

输出:

Galactic center in Celestial Coordinates
2.07582709512 -1.63354890767
Back to galactic coordinates
1.57079632679 -1.11022302489e-16