Python坐标转换ECI到ECEF

时间:2014-07-11 06:49:20

标签: python coordinate-transformation astronomy pyephem satellite

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

至少有两个实现了matlab函数的实例(ecitoecef,eci2ecef)和一个为RTKLIB项目实现的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 cos类型转换。 &#34 ;.变换的角度是什么?这是Greenwhich侧面时间吗?当我们使用sgp4时,它是我们指定的GST还是其他时间?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:6)

首先,我研究了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

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

答案 1 :(得分:1)

ECI到ECEF的转换也在satellite-js中实现,它来自PyEphem。

您可能需要检查它的正确性。

答案 2 :(得分:1)

从国际天体参考系(或 J2000 的平均赤道和春分点)到国际地球参考系(或参考极点和格林威治子午线)的转换计算,反之亦然。 提示:从相应的 IERS 公告中获取感兴趣时间的地球时 (TT) 和世界时 1 (UT1) 以及极坐标。采用 IAU 1976 岁差理论和 IAU 1980 章动理论来计算天文星历极的瞬时方向(忽略对章动角的任何修正)。在计算地球自转变换时,考虑 UT1 和 GMST 之间的常规关系以及分点方程的一阶项。 MATLAB 代码可从以下链接获得: https://www.researchgate.net/publication/342465883_ECI2ECEF_ECEF2ECI_MATLAB_code