Откуда 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: в каталоге пять наборов, нужных для приёма, а не все объекты на орбите.