Преобразование координат Python ECI в ECEF

Я использую пакет python sgp4 (разработанный Brandon Rhodes); Я ввожу информацию TLE для МКС (Заря). Я получаю положение спутника в определенную дату в системе координат ECI. Однако я хочу преобразовать его в систему координат ECEF.

Существует не менее двух экземпляров реализованных функций matlab (ecitoecef, eci2ecef) и функции C (eci2ecef), реализованных для проекта RTKLIB. (Я не могу публиковать ссылки, потому что у меня есть ограничение на две ссылки на вопрос, так как это это мой первый вопрос, и у меня есть репутация 1)

Мне не удалось найти реализованную функцию python. Однако в этом предыдущем вопросе, Отслеживание спутников Python с помощью spg4, pyephem-позиции не соответствуют пользователь говорит: "Я обнаружил по крайней мере часть проблемы. spg84.propagate() возвращает местоположение в ECI, а не ECEF. Быстрое выполнение через eci2ecef, и оно отлично сочетается с ответом на прогнозирование".

Является ли eci2ecef ссылкой на реализацию python? Это доступно в Интернете? Есть ли онлайн-документ, в котором точно объясняется, как это сделать, если бы я был реализован сам? В этом вопросе Как преобразовать координаты ECI в широту и высоту долготы для отображения на карте? в комментарии они говорят: "Они отличаются скоростью вращения Земли, поэтому преобразование - это просто 2-D cos sin, -sin cos type transform". Каков угол преобразования? Это зеленое время сидери? Когда мы используем sgp4, это также GST, который мы укажем, или другое время?

Большое вам спасибо за вашу помощь!

Ответ 1

Сначала я изучил документ AIAA 2006-6753, который находится в режиме онлайн в CelesTrak и который заложил основу для создания библиотеки sgp4, доступной в Python, в первую очередь:

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

Основываясь на своих рекомендациях - и в частности на информации в своем Приложении, я пытаюсь интегрировать спутники Земли в свою новую астрономическую библиотеку Skyfield. Новый выпуск с этой работой должен быть скоро, но пока вы можете изучить преобразования, которые я использую (на основе вышеприведенной работы) по адресу:

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

Я не уверен, что у меня есть правильные преобразования, но будет проверять результаты против количества официальных источников позиций, которые я могу найти, чтобы определить, была ли я систематическая ошибка.

Ответ 2

Преобразование ECI в ECEF также реализовано в satellite-js, которое получено из PyEphem.

Возможно, вам придется проверить его правильность.