Healpy: функция Rotator дает разные результаты

Я использую следующий скрипт для вычисления положения галактического центра (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

Во-первых, числа ошибочны как в небесных, так и в галактических координатах. Есть шанс, что я использую функцию неправильно (на что я надеюсь), или что-то не так с самой функцией. Кто-нибудь знает, что происходит не так?

Во-вторых: кажется, что я получаю числа в радианах обратно, не так ли?


person user4050567    schedule 16.01.2015    source источник
comment
Вы можете попробовать использовать все в радианах и конвертировать в конце? healpy использует широту, поэтому центр находится под углом 90 градусов.   -  person Andrea Zonca    schedule 16.01.2015
comment
Немного сбивает с толку то, что значение deg по умолчанию равно True. Я установил для него значение False и установил gz, ga = np.pi/2., 0. И снова первая координата кажется рассчитанной правильно (gz_e и zg), но вторая по-прежнему неверна (ga_e & ag): gz_e = 2,07582709512, ga_e = -1,63354890767, zg = 1,57079632679, ag = 1,11022302489e-16 (хотя очень близко к правильному значению).   -  person user4050567    schedule 16.01.2015


Ответы (1)


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
person Andrea Zonca    schedule 17.01.2015