我已经搜索了大量的PyEphem网页,下载了代码,并调查了对象,但是我没有找到一种获取地心坐标系下地球卫星在某些惯性坐标系中的矩形坐标的方法。我错过了什么明显的东西吗?我正在寻找“传统”的x、y、z和x点、y点、z点。非常感谢任何建议。
好问题!
libastro
内的卫星位置例程确实在内部使用x
、y
和z
坐标,但是在Python有机会看到它们之前,libastro
就将它们丢弃了。我本可以尝试修补libastro
然后再修补PyEphem以使数据可用,但是在研究您的问题时,我发现最近有很出色的工作更新了SGP4卫星跟踪算法并为其提供了测试套件:
https://celestrak.org/publications/AIAA/2006-6753/
在这个发现的推动下,我做了一些更好的事情:我花费了整个周末创建了一个基于这个参考实现的新的纯Python sgp4
包!
http://pypi.python.org/pypi/sgp4
很快我将会围绕这个卫星预测引擎构建一个名为Skyfield的完整天文学库,但目前您应该能够直接从Python软件包索引(上面的链接)下载它并调用它,以便获取传统坐标:
from sgp4.earth_gravity import wgs72
from sgp4.io import twoline2rv
line1 = ('1 00005U 58002B 00179.78495062 '
'.00000023 00000-0 28098-4 0 4753')
line2 = ('2 00005 34.2682 348.7242 1859667 '
'331.7664 19.3264 10.82419157413667')
satellite = twoline2rv(line1, line2, wgs72)
position, velocity = satellite.propagate(
2000, 6, 29, 12, 50, 19)