5

我搜索了大量的 PyEphem 网页,下载了代码,研究了对象,但我还没有找到在某个名义上的惯性坐标系中获取地球卫星的地心直角坐标的方法。我错过了什么明显的东西吗?我正在寻找“传统”x、y、z 和 x-dot、y-dot、z-dot。非常感谢您的任何建议。

4

1 回答 1

5

好问题!

内部的卫星定位例程在内部libastro使用x y z坐标,但libastro在 Python 有机会看到它们之前将它们丢弃。我本可以尝试修补libastro然后 PyEphem 使数据可用,但是在研究您的问题时,我发现最近完成了出色的工作来更新 SGP4 卫星跟踪算法并为其提供测试套件:

http://www.celestrak.com/publications/AIAA/2006-6753/

在这个发现的推动下,我做了一些更好的事情:我花了整个周末创建一个sgp4基于这个参考实现的新的纯 Python 包!

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)

请尝试一下,让我知道它是否适用于您的机器!

于 2012-08-26T19:28:27.250 回答