首页 > 解决方案 > PyEphem:RA 和分离问题

问题描述

我正在尝试使用 PyEphem 天文学库,并尝试重新创建/理解那里的一些基本计算。

有一个称为分离的函数,给定两个行星和一个日期/时间,它计算这两个行星之间相对于它们在平面中的“x”投影的分离(角度)。

所以对于 2018/1/1 行星水星和火星,我们有:

import ephem
import math 

mercury = ephem.Mercury('2018/1/1')
mars = ephem.Mars('2018/1/1')

s1 = ephem.separation(mercury, mars)
print(math.degrees(s1))

哪个返回

33.792384499568264

但是如果我想在没有分离函数的情况下计算这个,那么计算就像 1 的“赤经”减去另一个的“赤经”一样简单:

math.degrees(mercury.ra) - math.degrees(mars.ra)

哪个返回

35.114532008671574

为什么角度不一样?根据 PyEphem 的说法,由于我不包括观察者的纬度和经度,因此所有计算都应该以地为中心。

是否有人熟悉 PyEphem 背后的计算,或者另一个具有内置星历表的库,可以产生一致的分离结果?

标签: pythonpyephem

解决方案


好问题!您将需要查阅有关球面三角学的教科书。正如你不能仅仅从它们的经度预测两个地点之间的英里数——因为它们可能都在赤道上并且相距很远,或者靠近北极并且彼此相距几英尺——所以你无法预测仅从赤经(=“天经”)分离两个物体,但必须添加(a)两个物体的偏角,以及(b)使用计算球体上两个位置之间的弧线的特殊公式沿着一个大圆圈路线。


推荐阅读