Python 以弗所:RA和分离问题

Python 以弗所:RA和分离问题,python,pyephem,Python,Pyephem,我正在实验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, m

我正在实验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
35.114532008671574
但是如果我想在没有分离函数的情况下计算这个,那么计算就很简单,就像1减去另一个的“赤经”:

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

33.792384499568264
35.114532008671574
为什么角度不同?因为我没有包括观察者的纬度和经度,所有的计算都应该是地心的,根据派弗海姆的说法


有谁熟悉PyEphem背后的计算,或者其他内置星历的库,可以产生一致的分离结果吗?

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