Данные TLE: как обновить дату?

Имея данные TLE, как мне обновить их, скажем, сегодняшней датой?

У меня есть ТЛЭ МКС, я сделал вывод, что для того, чтобы иметь местонахождение спутника в данный момент, столбцы с 21 по 32 надо переделать с датой на данный момент.

У меня нет проблем со столбцами 21,22,23, а вот с остальными проблема (до 32). Я попытался преобразовать время в эпоху, но это не дает мне «8 слотов»; скорее 10. Я не мог понять, что означает "Эпоха (день года и дробная часть дня". Я пытался преобразовать время во многие формы, но это дает либо "6 слотов", либо "10 слотов" .

Конвертеры, которые я использовал до сих пор: epochconverter.com ,,,,, epochconverter.com/epoch/clock.php
Я не могу понять смысла вашего вопроса. Вы не можете просто изменить год и дату эпохи и ожидать, что остальная часть TLE по-прежнему будет иметь смысл. Вам придется использовать какой-нибудь распространитель SGP (Simplified Perturbations Models). Формат объясняется, например , здесь , он не имеет ничего общего с отметкой времени Unix.
Я скачал инструмент для конвертации из TLE через SGP4, и он выдал координаты; но казалось, что он устарел. Проект, который я хочу реализовать, связан с отслеживанием в реальном времени, поэтому я подумал о программном изменении года и даты эпохи TLE в столбцах с 21 по 32. Насколько я понимаю, если я сделаю их динамическими, они будут отслеживать ISS в в режиме реального времени.
Если вы хотите создать систему отслеживания в реальном времени, вам придется работать с последними обновлениями TLE для данного объекта, а затем использовать SGP для распространения от эпохи к настоящему моменту ( Δ Т ). Если вы используете какой-то «устаревший» набор TLE, он будет распространяться со слишком большим количеством ошибок. TLE обычно обновляются пару раз в день, вы можете получить их для некоторых наиболее распространенных спутников, например , здесь . Текущая эпоха для МКС 15330.23252987, то есть 2015 год по юлианскому календарю, 330-й день, 24 * 0,23252987 часов, минут, секунд,... в нем (GMT). Это не "устаревшее". Это несколько часов назад.
Также обратите внимание, что любое «отслеживание в реальном времени с использованием SGP-распространения последних наборов TLE» является чем-то вроде трюка, если вы также не используете все другие доступные данные в реальном времени, чтобы исправить их, как только они могут измениться. Например, для ISS большую часть времени доступны векторы состояния в реальном времени. Кроме того, вам не нужно изобретать велосипед для мелкозернистого распространения SGP. Используйте HORIZONS для создания эфемерид с интервалом до 1 минуты, включая распространение на будущие даты. Затем используйте внутренний SGP для более коротких шагов.
@TildalWave, спасибо, теперь я понимаю, что мне нужно делать более четко. Я могу применить это с помощью кода, который у меня есть; но я все еще застрял в том, как время выражается в «TLE» (15330.23252987); Я понимаю, что мне нужно рассчитать положение между указанным выше временем TLE и временем в данный момент (т.е. время с начала эпохи TLE). Но я не могу понять, как преобразовать время сейчас (обычная десятичная дата) в ту же форму, что и TLE, чтобы узнать, сколько времени прошло с эпохи TLE.

Ответы (2)

TLE являются результатом подгонки наблюдений с использованием пропагатора SGP4. Таким образом, вы не можете изменить их так, как кажется, вы пытаетесь. Каталог TLE регулярно обновляется, поэтому, если вам нужна обновленная информация, например, для МКС, вы можете получить данные каталога с https://www.space-track.org . Там также есть API, поэтому вы можете программно получать данные.

Кроме того, если у вас есть данные TLE для данной эпохи, вы можете использовать распространение SGP4 для распространения на данную эпоху. Затем это дает вам эквивалентное декартово состояние в запрошенную эпоху. Существует ряд реализаций распространителя SGP4, например, для Python: https://pypi.python.org/pypi/sgp4/ . Имейте в виду, что точность TLE ограничена, поэтому, если вы распространяете данные в течение длительного времени, результаты вряд ли будут значимыми.

Я загружал эту библиотеку C# раньше ( zeptomoby.com/satellites ), так как мои знания в python недостаточны. Инструмент отлично работает с SGP4, но как вы думаете, должен ли я изменить свой алгоритм (использовать один фиксированный TLE с динамической эпохой, а затем применить SGP4) на (постоянно импортировать TLE и применять к ним преобразование SGP4)? Спасибо за ваш ответ !
... особенно в случае перезагрузки ISS все предыдущие прогнозы немедленно становятся недействительными.
Присоединение к вашему ответу комментария @TildalWave♦ дает полное объяснение дела. Сначала получите обновленные данные TLE (по предоставленным вами ссылкам), затем используйте SGP4 для распространения от эпохи TLE до настоящего времени, имея в виду, что TLE необходимо постоянно обновлять, чтобы сохранить его точность во время распространения. Еще раз спасибо за ответ.
Да, это в значительной степени это. Важно иметь в виду, что TLE не очень точны, поэтому для приложения отслеживания в реальном времени это также зависит от того, какой уровень точности вы хотите обеспечить. Для более длинных прогнозов вы также можете использовать полный численный метод с высокоточными силовыми моделями.

Из командной строки в Linux/Unix (возможно в Windows с установленным wget)

wget URL

Так что распространяйте TLE с amsat.org.

wget http://www.amsat.org/amsat/ftp/keps/current/nasa.all

Однако есть несколько раздражающих заголовков, так что...

tail +16 nasa.all  > nasa.tle

Все вместе

wget http://www.amsat.org/amsat/ftp/keps/current/nasa.all
tail +16 nasa.all  > nasa.tle

Теперь вам просто нужно поместить его в файл сценария и запустить его как cron (Windows читает запланированную задачу).