Python坐标转换ECI到ECEF

标签 python coordinate-transformation astronomy pyephem satellite

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

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

我找不到实现的 python 函数。 但是,在上一个问题中, Python satellite tracking with spg4, pyephem- positions not matching 用户说“我至少找到了问题的一部分。spg84.propagate() 返回 ECI 中的位置,而不是 ECEF。快速运行 eci2ecef,它与预测响应完美对齐。”

那个 eci2ecef 指的是 python 实现吗?这可以在线获得吗?如果我自己实现的话,网上有文档准确说明需要完成的步骤吗?在本题How do I convert ECI coordinates to longitude latitude and altitude to display on a Map? 他们在评论中说“它们因地球的自转速率而异,因此转换只是二维 cos sin;-sin cos 类型转换。”。变换的角度是多少?是格林威治边际时间吗?我们用sgp4的时候,是不是也是我们指定的GST,还是其他时候?

非常感谢您的帮助!

最佳答案

首先,我研究了 CelesTrak 上的在线论文 AIAA 2006-6753,它构成了使 sgp4 库首先在 Python 中可用的基础:

https://celestrak.org/publications/AIAA/2006-6753/

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

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

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

关于Python坐标转换ECI到ECEF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24691654/

相关文章:

python - 如何创建包含所有相关文本的单个列?

python - 如何使用 Boto3 Python 在 S3 中创建 zipfile?

python - Django:使用Redis做Cache超时的含义

python - python中的多项式变换

python - 使用 matplotlib 的银河和赤道投影网格

python - 两个类似的实现退出运行时间差异巨大

c++ - 使用 GLSL 直接在着色器中从位置计算平移矩阵

android - 在 Android 应用程序中重新映射坐标系

python - 如何从astropy erfa中取出WGS84轴

python - 使用healpy使用HEALPix像素化制作2D直方图