在尝试进行坐标转换时,我遇到了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))
答案 0 :(得分:2)
equatorial.ra
和equatorial.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()
的参数。因此,他们返回一个字符串元组然后,而不是浮动。