Я знаю, что это не так сложно для тех, кто знаком с уравнениями для этого, но у меня проблемы с математикой. Чтобы полностью понять элементы орбиты TLE, я прочитал это , что я нашел очень полезным, но я изо всех сил пытаюсь превратить это в координаты широты и долготы. Я вхожу в это, не зная необходимых алгоритмов, и я надеюсь, что кто-то может указать мне. Этот пост содержит некоторую соответствующую информацию, но, если я правильно понимаю, он только объясняет, как получить долготу в определенное время, в то время как мне нужны полные координаты.
Существует ряд пакетов программного обеспечения, многие из которых бесплатны, которые работают с этими двумя линейными элементами. Воспользуйтесь одним из них.
Эти два линейных элемента не являются элементами Кеплера. Вместо этого они представляют собой средние орбитальные элементы Брауэра-Лиддана. Кеплеровские элементы предполагают сферическое центральное тело и отсутствие сил, кроме гравитации. Средние орбитальные элементы Брауэра-Лиддана учитывают первые шесть сферических гармоник и пытаются учесть атмосферное сопротивление. Математика кеплеровских элементов немного запутана. Математика этих двух линейных элементов более чем запутана. Это "математика". (Подумайте о метели, когда все, что вы видите, — это белизна. Снежные бури — это состояние полной белизны. Статья, описывающая два линейных элемента, — это математический расчет. Все, что вы видите, — это математика.)
Математика описана в FR Hoots, "Переформулировка теории геопотенциала Брауэра для повышения вычислительной эффективности", Небесная механика 24 (1981) .
вы можете использовать PyEphem так же, как это
sudo apt-get install python
sudo apt-get install python-dev
sudo apt-get install python-pip
pip install pyephem
создать test.py:
import ephem
import datetime
## [...]
name = "ISS (ZARYA)";
line1 = "1 25544U 98067A 12304.22916904 .00016548 00000-0 28330-3 0 5509";
line2 = "2 25544 51.6482 170.5822 0016684 224.8813 236.0409 15.51231918798998";
tle_rec = ephem.readtle(name, line1, line2);
tle_rec.compute();
print tle_rec.sublong, tle_rec.sublat;
В зависимости от того, какой алгоритм/набор уравнений вы используете для преобразования, вам может потребоваться преобразовать параметры TLE в координаты ECEF, а затем преобразовать их в широту, долготу и высоту. Вот страница, которая объясняет преобразование ECEF в LLA: http://www.gmat.unsw.edu.au/snap/gps/clynch_pdfs/coordcvt.pdf
Распространенная математическая трудность заключается в том, что истинная аномалия и средняя аномалия связаны уравнением Кеплера, которое является трансцендентным уравнением, как упоминалось в вашей первой ссылке. Для этой части преобразования обычно используется итеративный метод, такой как метод Ньютона.
Я не могу найти веб-страницу с набором алгоритмов преобразования TLE в ECEF, но на этой странице представлен алгоритм преобразования эфемерид GPS (параметров орбиты) в координаты ECEF: http://web.ics.purdue.edu /~ecalais/teaching/geodesy/EAS_591T_2003_lab_4.htm Если я правильно помню, преобразование TLE очень похоже, так что это может привести вас на правильный путь. Если у вас нет учебника с алгоритмом, он может быть онлайн в газете или что-то в этом роде.
У меня был похожий вопрос, и использование pyephem, предложенное zdRan, отлично сработало, за исключением одного: это инструкции для Debian/Ubuntu/и т. д. дистрибутивы, и я был на базовой установке CentOS.
На случай, если кто-то еще столкнется с этим, вот инструкции по установке, которые можно использовать вместо первого блока в сообщении zdRan:
sudo yum install python
sudo yum install python-devel
sudo yum upgrade python-setuptools
sudo yum install epel-release
sudo yum install python-pip
sudo yum install gcc
sudo pip install pyephem
Это epel-release
необходимо, поскольку pip не является частью основных пакетов CentOS, но является частью расширенных пакетов. gcc
необходимо установить только в том случае, если у вас его еще нет (вы можете использовать whereis gcc
его для проверки, но yum не будет устанавливаться, если он уже есть, поэтому в этом нет крайней необходимости).
Оттуда действуйте, как указано выше, отлично работает.
(Это было в CentOS 7, но аналогичная процедура должна работать для большинства дистрибутивов CentOS/Red Hat/Fedora)
Охотник на оленей
Гаррисаак
Охотник на оленей
Корзикинг
ТильдалВолна