2
e = ephem.readtle(...)
e.compute('2012/02/04 07:55:00')
据我所见,只有e.elevation
作为相对于海平面的距离的量度。目前我使用a.elevation/1000 + 6371
来估算距离地心的距离。如何从地球中心获得距离?
我很确定星历计算需要在所需的时间点确切的地球中心距离。这个距离是否暴露出来,如果没有,为什么不能,可以改变?
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
以获得正确的结果。
好的,这是一个开始。如何直接暴露'r'?我真的不想依赖这种可能在未来发生变化的实施细节。 – letmaik