2013-10-17 17 views
2
e = ephem.readtle(...) 
e.compute('2012/02/04 07:55:00') 

据我所见,只有e.elevation作为相对于海平面的距离的量度。目前我使用a.elevation/1000 + 6371来估算距离地心的距离。如何从地球中心获得距离?

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

回答

1

我曾经想过,答案将涉及不得不从C代码的内部向Python展示地球的椭球体模型,以获取您所需的信息。但是,已经通过地球卫星的代码只是走了,事实证明,它的卫星的距离从地球中心到其高转换的方法就是(从earthsat.c):

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

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

所以,你可以通过添加其定义为价值EarthRadius转换的高度(“提升”)回从地球中心的距离:

#define EarthRadius 6378.16    /* Kilometers   */ 

由于海拔,我相信,在米,您需要将EarthRadius乘以1000.0或将海拔除以1000.0以获得正确的结果。

+0

好的,这是一个开始。如何直接暴露'r'?我真的不想依赖这种可能在未来发生变化的实施细节。 – letmaik