Свой каталог TLE: CelesTrak, R4UAB и самые свежие орбиты в одном файле

Чтобы посчитать, когда спутник пройдёт над вами, программе нужны элементы его орбиты — TLE. Теперь RobX SDR берёт их из собственного каталога орбит: в нём CelesTrak, любительский список R4UAB и наши элементы, а по каждому спутнику — самые свежие. Рассказываем, зачем это понадобилось и как подключить каталог к любой другой программе.

Баллистика 30 сентября 2026 5 минут

Откуда RobX SDR брал орбиты

Элементы орбит программа брала из двух мест. CelesTrak — общий каталог, по которому считают пролёты почти все программы слежения: он отдаёт наборы по темам — метеоспутники, любительские, кубсаты, станции. R4UAB — любительский сервис: один файл со всеми рабочими аппаратами, в том числе с теми, что только что запущены. Всё скачанное складывалось в один кэш, и по нему программа считала пролёты.

Что такое TLE и как читать обе строки по символам — в статье «TLE — двухстрочный набор элементов орбиты».

Что в этом было не так

  • Один спутник — в нескольких файлах. NOAA-19 есть и в наборе метеоспутников, и в наборе NOAA, МКС — и в станциях, и в любительских, а многие любительские аппараты — ещё и в списке R4UAB. Скачаны копии в разное время и из разных мест, свежесть у них разная, а программа брала ту, что прочитала первой, — по алфавиту файлов, а не по дате. Так пролёт мог считаться по элементам старше тех, что лежали рядом.
  • Нового спутника в общем каталоге ещё нет — или он там без имени. Пока объект не опознан, CelesTrak пишет его как «OBJECT A», «OBJECT B» и так далее. Найти такой аппарат по названию в списке нельзя.
  • Источник не ответил — орбит нет. Программа оставалась со старым кэшем, и чем дольше, тем сильнее врал расчёт: элементы низких орбит за неделю расходятся с настоящим положением на минуты.

Проверка: 369 аппаратов

Прежде чем заводить своё, мы проверили, насколько общий каталог закрывает наши нужды. Взяли 369 аппаратов, по которым сами считаем пролёты, и спросили CelesTrak о каждом по номеру NORAD (30 сентября 2026 года). Нашлись все, кроме трёх, и ещё один нашёлся не под своим именем:

АппаратNORADЧто отвечает CelesTrak
LAPAN-A2 40931 номера нет
ARKTIKA-M1 47719 номера нет
GREENCUBE (IO-117) 53106 номера нет; в нашем списке элементы датированы июнем 2025 года
SITRO-AIS-54 59777 есть, но под именем «OBJECT E»

Три аппарата из 369 — немного, но именно за такими и приходят радиолюбители: SITRO-AIS-54 из пуска 2024-092 CelesTrak знает, а вот по названию его там не найти. С GreenCube другая история: элементы есть только в нашем списке, и им больше года. По таким расчёт пролёта — ориентир, а не расписание, и каталог это прямо показывает.

Как устроен каталог

Каталог отдаёт API RobX, а посмотреть, что в нём и откуда, можно на странице каталога. Устроен он просто:

  • Источники. Пять наборов CelesTrak (weather, noaa, amateur, cubesat, stations), весь список R4UAB и наши собственные элементы — для аппаратов, у которых они пока есть только у оператора.
  • По каждому спутнику — самые свежие элементы. Из всех копий берётся та, у которой эпоха позже. Имя — от неё же, если только это не заглушка вроде «OBJECT E»: тогда берётся настоящее имя из другого источника.
  • Источник лёг — отдаём прошлую копию. Ошибку, пустой ответ или страницу вместо TLE каталог не кладёт поверх последнего удачного ответа. На странице каталога видно, какой источник когда обновлялся и что ответил.
  • Не чаще раза в три часа. CelesTrak просит не скачивать данные чаще, чем они обновляются. Сколько бы программ ни спрашивало каталог, в CelesTrak он ходит сам и редко.
  • Строки проверяются. Запись с неверной контрольной суммой или с разными номерами в первой и второй строке в каталог не попадает — это порча при передаче.
  • Большие номера. На номер спутника в TLE отведено пять знаков. Для номеров больше 99 999 придуман формат Alpha-5: первая цифра заменяется буквой (A0083 — это 100083). Каталог понимает оба вида записи.

Как подключить

В RobX SDR ничего делать не нужно: программа сама качает орбиты из каталога. CelesTrak и R4UAB остались в «Настройки → Спутники» запасными — к ним программа идёт, только если каталог не ответил, и только за теми наборами, что не пришли. А у себя программа тоже берёт самые свежие элементы из всех скачанных файлов, а не из первого попавшегося.

Другие программы подключаются сменой адреса: он устроен так же, как у CelesTrak. Набор выбирается параметром GROUP, один спутник — CATNR:

https://api.iot.robolatoriya.com/tle/gp?GROUP=amateur&FORMAT=tle https://api.iot.robolatoriya.com/tle/gp?GROUP=all&FORMAT=tle https://api.iot.robolatoriya.com/tle/gp?CATNR=25544&FORMAT=tle

Ответ — три строки на спутник, как у CelesTrak; FORMAT=3le ставит перед именем «0 », FORMAT=json добавляет к каждой записи эпоху и источник. Если номера в каталоге нет, ответ тот же, что у CelesTrak: 404 и «No GP data found» — программы слежения это различают.

Чего каталог не делает

Каталог не считает орбиты сам и не делает старые элементы свежими: он собирает то, что публикуют источники, и выбирает лучшее из того, что есть. Если у спутника за две недели не нашлось свежих элементов ни в одном источнике, он попадает в список «Старые элементы» на странице каталога. И это не полная копия CelesTrak: в каталоге пять наборов, нужных для приёма, а не все объекты на орбите.

Источники. Элементы орбит в каталоге — от CelesTrak и R4UAB, спасибо им. Сверка 369 аппаратов — запросами к CelesTrak по номеру 30 сентября 2026 года.