e = ephem.readtle(...)
e.compute('2012/02/04 07:55:00')
据我所知,e.elevation
这只是相对于海平面的距离度量。目前我正在使用a.elevation/1000 + 6371
来估计与地球中心的距离。
我很确定星历计算需要在请求的时间点的确切地球中心距离。这个距离是否暴露在某个地方,如果没有,为什么不,可以改变吗?
我曾认为答案将涉及必须将地球的椭球模型从 C 代码的深处暴露给 Python 以获得所需的信息。但是,刚刚浏览了地球卫星代码,事实证明,它将卫星与地球中心的距离转换为它的高度的方式很简单(从earthsat.c
):
#if SSPELLIPSE
#else
*Height = r - EarthRadius;
#endif
显然,程序员计划有朝一日实现一个椭球体,并#if
准备了一个声明来保护新代码,但从未编写任何代码。
EarthRadius
因此,您可以通过添加定义为的值将高度(“海拔”)转换回距地球中心的距离:
#define EarthRadius 6378.16 /* Kilometers */
由于海拔是,我相信,以米为单位,你会想要乘以EarthRadius
或1000.0
除以海拔1000.0
以获得正确的结果。