2
e = ephem.readtle(...)
e.compute('2012/02/04 07:55:00')

据我所知,e.elevation这只是相对于海平面的距离度量。目前我正在使用a.elevation/1000 + 6371来估计与地球中心的距离。

我很确定星历计算需要在请求的时间点的确切地球中心距离。这个距离是否暴露在某个地方,如果没有,为什么不,可以改变吗?

4

1 回答 1

1

我曾认为答案将涉及必须将地球的椭球模型从 C 代码的深处暴露给 Python 以获得所需的信息。但是,刚刚浏览了地球卫星代码,事实证明,它将卫星与地球中心的距离转换为它的高度的方式很简单(从earthsat.c):

#if SSPELLIPSE
#else
    *Height = r - EarthRadius;
#endif

显然,程序员计划有朝一日实现一个椭球体,并#if准备了一个声明来保护新代码,但从未编写任何代码。

EarthRadius因此,您可以通过添加定义为的值将高度(“海拔”)转换回距地球中心的距离:

#define EarthRadius 6378.16             /* Kilometers           */

由于海拔是,我相信,以米为单位,你会想要乘以EarthRadius1000.0除以海拔1000.0以获得正确的结果。

于 2013-10-22T08:18:14.597 回答