PyEphem中的地球卫星矩形坐标

5

我已经搜索了大量的PyEphem网页,下载了代码,并调查了对象,但是我没有找到一种获取地心坐标系下地球卫星在某些惯性坐标系中的矩形坐标的方法。我错过了什么明显的东西吗?我正在寻找“传统”的x、y、z和x点、y点、z点。非常感谢任何建议。

1个回答

5

好问题!

libastro内的卫星位置例程确实在内部使用xyz坐标,但是在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)

请尝试并告诉我它是否在您的计算机上运行正常!

Brandon,你在短时间内做出了非凡的工作。太棒了! - user1619972
1
我下载了tar文件,然后苦思冥想如何安装它。绝望之下,我查看了http://docs.python.org/install/index.html,并找到了一个简单明了的描述,告诉我如何设置这个程序。令我惊讶的是,操作完成时没有出现任何错误信息,而且sgp4例程能够产生非常接近您给出的结果。我想知道是什么原因导致了与您给出的结果之间的微小差异。无论如何,干得好,感谢您的帮助之手。Jim Ritter - user1619972
这个功能最终有被添加到pyephem中吗?从阅读文档来看,我没有找到在pyephem中从天体中提取矩形坐标的方法。 - Julia Ebert
@Pterosaur — 不,它并不适合一直作为PyEphem计算引擎背后的C语言天文库。相反,我编写了一个新的基于Python向量的天文库,名为Skyfield,并在其中使用了这个模块。谢谢你的提问!(我已经编辑了我的答案,现在提到了正确的库。) - Brandon Rhodes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接