问题:Python坐标变换ECI到ECEF

我正在使用 sgp4 python 包(由 Brandon Rhodes 开发);我正在输入 ISS(Zarya) 的 TLE 信息。我在 ECI 坐标系中获得了某个日期的卫星位置。但是,我想将其转换为 ECEF 坐标系。

至少有两个实现的 matlab 函数实例(ecitoecef,eci2ecef)和一个为 RTKLIB 项目实现的 C 函数(eci2ecef)。(我不能发布链接,因为每个问题我有两个链接的限制,因为这是我的第一个问题问题,我有声誉 1)

我找不到实现的python函数。但是,在上一个问题中,Python 卫星跟踪与 spg4,pyephempositions not matching用户说“我发现了问题的至少一部分。spg84.propagate() 返回 ECI 中的位置,而不是 ECEF。快速运行eci2ecef,它与预测响应完全一致。”

那 eci2ecef 是指 python 实现吗?这可以在线获得吗?如果我要自己实施,是否有在线文档准确解释了需要完成的步骤?在这个问题如何将 ECI 坐标转换为经度纬度和高度以显示在地图上?在评论中他们说“它们的不同之处在于地球的自转速度,因此变换只是二维 cos sin;-sin cos 类型变换。”。变换的角度是多少?现在是Greenwhich 恒星时间吗?当我们使用 sgp4 时,是否也是我们指定的 GST,还是其他时间?

非常感谢你的帮助!

解答

首先,我研究了 CelesTrak 上的 AIAA 2006-6753 论文,它首先为在 Python 中提供sgp4库奠定了基础:

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

根据它的建议——尤其是其附录中的信息——我正在尝试将地球卫星整合到我新的 Skyfield 天文学图书馆中。这项工作的新版本应该很快就会发布,但与此同时,您可以在以下位置研究我正在使用的转换(基于上述论文):

https://github.com/brandon-rhodes/python-skyfield/blob/master/skyfield/sgp4lib.py

我不确定我的转换是否正确,但会根据我能找到的尽可能多的官方职位来源检查结果,以确定我是否犯了任何系统错误。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐