【问题标题】:Rectangular Coordinates for Earth Satellites in PyEphemPyEphem 中地球卫星的直角坐标
【发布时间】:2012-08-23 14:18:15
【问题描述】:

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

【问题讨论】:

    标签: satellite pyephem


    【解决方案1】:

    好问题!

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

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

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

    http://pypi.python.org/pypi/sgp4

    很快我将围绕这个卫星预测引擎构建一个名为 Skyfield 的完整天文学库,但目前您应该能够直接从 Python 包索引(上面的链接)下载它并将其命名为 raw 以获得您的传统坐标:

    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)
    

    请尝试一下,让我知道它是否可以在您的机器上运行!

    【讨论】:

    • 布兰登,你在很短的时间内完成了非凡的工作。太棒了!
    • 我下载了 tar 文件,不知道如何安装它。绝望中,我检查了docs.python.org/install/index.html,并找到了一个简单的描述,说明了如何设置程序。令我惊讶的是,操作完成时没有出现错误消息,并且 sgp4 例程产生的结果与您给出的结果非常接近。我想知道是什么导致了您给出的结果的微小偏差。无论如何,做得好,谢谢你的帮助。吉姆·里特
    • 这是否最终被添加到 pyephem 中?通过阅读文档,我没有看到从 pyephem 中的身体提取直角坐标的方法。
    • @Pterosaur — 不,它最终不适合作为 PyEphem 背后的计算引擎的 C 语言天文学库。相反,我编写了一个新的 Python 语言基于矢量的天文学库,名为 Skyfield,并在那里使用了这个模块。谢谢提问! (我已经编辑了我的答案,现在提到了正确的库。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2016-09-18
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多