PyEphem:坐标转换银河到赤道

时间:2015-03-12 10:46:42

标签: python python-3.x pyephem

在尝试进行坐标转换时,我遇到了PyEphem的问题。基本上在这个小例子中,我尝试计算赤道坐标(l,b)=(52°,68.5°)。

这就是我认为它应该起作用的方式:

import ephem

galactic = ephem.Galactic(52.0/360.0,68.5/360.0)
equatorial = ephem.Equatorial(galactic, epoch=ephem.J2000)
print('%.13f %.13f' % (equatorial.ra*360.0, equatorial.dec*360.0))

输出为1640.9226879684597 -101.5405093325453,这当然不是我的预期,因为RA的范围为0°至360°,DEC为-90°至90°。

错误在哪里?

修改

正如正确答案所指出的,我需要将度数转换为弧度。我最后的解决方案:

import ephem
import math

galactic = ephem.Galactic(52.0/180.0*math.pi,68.5/180.0*math.pi)
equatorial = ephem.Equatorial(galactic, epoch=ephem.J2000)
print('%.13f %.13f' % (equatorial.ra/math.pi*180.0, equatorial.dec/math.pi*180.0))

2 个答案:

答案 0 :(得分:2)

equatorial.raequatorial.dec以弧度为单位。

>>> help(equatorial.ra)
Help on Angle object:

class Angle(builtins.float)
 |  An angle in radians that can print itself in an astronomical format.
 |  Use ephem.degrees() and ephem.radians() to create one.
 |  

答案 1 :(得分:0)

虽然我对ephem模块没有经验,但我很确定它希望字符串作为Galactic()Equatorial()的参数。因此,他们返回一个字符串元组然后,而不是浮动。