ABOVE US · ДОСТУП К ДАННЫМ
Каталог для ваших проектов
Орбиты и справочные сведения в готовых файлах. Скачайте один снимок, сохраните его локально и обновляйте только при изменении данных.
Пять вариантов каталога
Файлы подготовлены заранее. Для каждого варианта есть JSON, CSV и их gzip-версии. Обогащённый каталог может содержать больше объектов, чем Space-Track. Для воспроизводимых загрузок используйте неизменяемые ссылки из манифеста.
Актуальные размеры и версия появятся после загрузки манифеста.
- Версия снимка
- —
- Создан (UTC)
- —
- Объектов
- —
| Вариант | JSON | JSON + gzip | CSV | CSV + gzip |
|---|---|---|---|---|
spacetrack | JSON | JSON.GZ | CSV | CSV.GZ |
catalog | JSON | JSON.GZ | CSV | CSV.GZ |
catalog-ru | JSON | JSON.GZ | CSV | CSV.GZ |
catalog-en | JSON | JSON.GZ | CSV | CSV.GZ |
catalog-zh | JSON | JSON.GZ | CSV | CSV.GZ |
Скачивание доступно без аккаунта и API-ключа. gzip — отдельный архивный файл: распакуйте его перед чтением. CSV содержит плоские поля и краткое описание; подробные факты и подписи к изображениям доступны в JSON. Размеры указаны для скачиваемых файлов; SHA-256 доступен в манифесте.
Запросы и экономия трафика
Начните с небольшого манифеста. Сохраните ETag и отправляйте его в If-None-Match: HTTP 304 означает, что локальный манифест ещё актуален. Файл каталога скачивайте только при смене версии.
curl -i 'https://aboveus.space/api/v1/catalog/manifest.json'
curl -i -H 'If-None-Match: "saved-etag"' 'https://aboveus.space/api/v1/catalog/manifest.json'
# 304: keep the local manifest. No response body.
# 429: wait for the Retry-After response header.Быстрое скачивание JSON
Опция --compressed разрешает сжатую передачу и автоматически сохраняет распакованный JSON.
curl --fail --compressed --output catalog.json.part 'https://aboveus.space/api/v1/catalog/latest/spacetrack.json'Скачивание gzip-архива
Файл .json.gz сохраняется сжатым; для него --compressed не нужен. Распакуйте архив перед чтением.
curl --fail --output catalog.json.gz.part 'https://aboveus.space/api/v1/catalog/latest/spacetrack.json.gz'В Windows выполняйте эти однострочные команды через curl.exe вместо curl. Результат записывается в .part; переименуйте файл только после успешного завершения. Для регулярного обновления и проверки SHA-256 используйте пример ниже.
Надёжное скачивание: сначала временный файл
Пример для POSIX shell, curl и jq. Он не заменяет рабочий файл ответом 304, HTML-ошибкой или оборванной загрузкой. При ошибке временные файлы удаляются.
#!/bin/sh
set -eu
base='https://aboveus.space'
tmp=$(mktemp -d './.aboveus-download.XXXXXX')
trap 'rm -rf -- "$tmp"' EXIT HUP INT TERM
# curl >= 7.68; a missing ETag file is allowed on the first run.
[ -s catalog.json.gz ] && [ -s catalog-manifest.json ] || rm -f catalog.etag
status=$(curl --silent --show-error --connect-timeout 15 --max-time 120 \
--etag-compare catalog.etag --etag-save "$tmp/etag" \
--dump-header "$tmp/headers" --output "$tmp/manifest.json" \
--write-out '%{http_code}' 'https://aboveus.space/api/v1/catalog/manifest.json')
case "$status" in
304) echo 'Unchanged; keeping local files.'; exit 0 ;;
200) ;;
429|503) cat "$tmp/headers" >&2; exit 1 ;; # Honor Retry-After.
*) echo "Manifest HTTP $status" >&2; exit 1 ;;
esac
# Choose catalog-zh.json.gz, catalog-en.json.gz, or catalog-ru.json.gz for localized knowledge.
file='spacetrack.json.gz'
url=$(jq -er --arg file "$file" '.files[] | select(.name == $file) | .url' "$tmp/manifest.json")
printf '%s' "$url" | grep -Eq '^/api/v1/catalog/snapshots/[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/(spacetrack|catalog|catalog-ru|catalog-en|catalog-zh)\.json\.gz$'
expected=$(jq -er --arg file "$file" '.files[] | select(.name == $file) | .sha256' "$tmp/manifest.json")
printf '%s' "$expected" | grep -Eq '^[0-9a-f]{64}$'
curl --fail --silent --show-error --connect-timeout 15 --max-time 3600 \
--dump-header "$tmp/download-headers" --output "$tmp/catalog.json.gz" "$base$url" \
|| { cat "$tmp/download-headers" >&2; exit 1; }
printf '%s %s\n' "$expected" "$tmp/catalog.json.gz" | sha256sum --check -
gzip -t "$tmp/catalog.json.gz"
mv -f "$tmp/catalog.json.gz" catalog.json.gz
mv -f "$tmp/manifest.json" catalog-manifest.json
mv -f "$tmp/etag" catalog.etag
# Change the chosen variant? Remove catalog.etag to force a fresh download.Лимиты
На IP: манифест — 30 запросов/мин; файлы — 2 запросов/мин, до 8 дополнительных запросов коротким всплеском; до 2 одновременных соединений на IP и 8 на весь сервис. Скорость файла ограничена 128 КиБ/с. Рекомендуем проверять манифест не чаще раза в 60 мин.
Не запускайте параллельные циклы скачивания. На 429 соблюдайте Retry-After; на 503 сохраните предыдущий снимок и повторите позже. Не зацикливайте немедленные повторы.
Ответы сервера
200 — данные · 304 — без изменений · 404 — неизвестный или удалённый выпуск · 429 — лимит запросов · 503 — экспорт ещё недоступен.
GET скачивает файл; HEAD возвращает заголовки. CORS разрешает чтение публичного API из браузерных приложений.
Схема и смысл полей
Версия схемы отделена от версии снимка. Читайте поля по именам и допускайте появление новых полей. Идентификатор NORAD хранится строкой, без ограничения пятью цифрами.
| Поле | Тип | Описание |
|---|---|---|
schemaVersion / version | string / UUID | Схема JSON-оболочки и версия снимка. Записи находятся в objects[]. |
generatedAt / sources | UTC / object | Время создания экспорта и времена получения исходных каталогов. В манифесте metadataRevision и knowledgeRevision фиксируют справочные сведения. |
noradId / cospar | string / string|null | NORAD и международное обозначение. null означает отсутствие сведений, не ноль. |
name | string | Имя из источника; в объединённом наборе используется отображаемое имя CelesTrak при наличии. |
objectType / rawObjectType | enum / string|null | payload, rocket-body, debris или unknown; rawObjectType сохраняет исходную классификацию Space-Track. |
activity | enum | listed-active — в списке CelesTrak; assumed-active — эвристика Above Us; unknown — нет подтверждённого статуса. В spacetrack всегда unknown. |
orbitClass / countryCode / launchDate | enum / string|null / string|null | LEO, MEO, GEO, HEO; код владельца по каталогу; дата запуска YYYY-MM-DD, когда известна. |
epoch / omm.EPOCH | UTC string | Эпоха исходных средних элементов, не время текущего положения спутника. |
omm.MEAN_MOTION / ECCENTRICITY | number | Среднее движение: обороты/сутки. Эксцентриситет: безразмерный. |
omm.INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY | number | Углы в градусах. |
omm.BSTAR / MEAN_MOTION_DOT / MEAN_MOTION_DDOT | number | BSTAR: обратные радиусы Земли. Производные: обороты/сутки² и обороты/сутки³ в соглашении исходного GP (коэффициенты TLE ½ и ⅙); не удваивайте автоматически. |
provenance | object | Источники orbitSource, nameSource, cosparSource, countrySource и activitySource. При выборе орбиты побеждает более новая эпоха, при равенстве — Space-Track. |
knowledge | object (catalog-ru / catalog-en / catalog-zh) | Язык, status, level, localizedName, aliases, summary, facts и sourceIds. Все доступные факты включены; отсутствие рассказа не заменяется выдуманным. |
knowledge.language / localizedName / summary | string / string|null / string|null | Языковые версии: ru, en и zh (упрощённый китайский). Для внешних китайских справок используется английский резервный текст. Если localizedName отсутствует, используйте исходное name. Непереведённые идентификаторы и значения enum сохраняются. Старые снимки не изменяются; catalog-zh появляется после следующего успешного обновления. |
references / knowledge.sourceIds | object / string[] | В обогащённой JSON-оболочке references — словарь общих источников по id: references[id] содержит id, title, url, checkedAt, license, attribution и termsUrl. knowledge.sourceIds и facts[].sourceIds ссылаются на его ключи. checkedAt — самая поздняя проверка среди записей источника, а не новая проверка всех фактов. knowledge.metadataCheckedAt сохраняет дату импортированных метаданных. null в license не означает открытую лицензию. sources в оболочке описывает орбитальные снимки Space-Track/CelesTrak, а не этот список справочных источников. |
knowledge.facts[].scope / sourceIds | enum / string[] | object, event или family: к чему относится утверждение. sourceIds связывает его с источниками. |
knowledge.provenance | object, optional | Родитель, событие, причина и дата. Сохраняйте precision, dateKind, uncertain и uncertaintyKind; phase-start не означает доказанный момент разрушения. |
knowledge.image | object, optional | Ссылка на файл Commons, caption, subject, автор, лицензия, licenseUrl, pageUrl и checkedAt. Проверенная ссылка, не встроенные байты и не обещание новой проверки. |
Неизвестный статус активности не означает «неактивен». Сведения семейства или события могут описывать группу объектов, а не индивидуальную историю аппарата: сохраняйте scope и источники.
CSV
UTF-8, запятые и экранирование по RFC 4180. Числа используют точку; пустая ячейка означает отсутствующее значение. Открывайте идентификаторы и обозначения как текст, чтобы табличный редактор не менял их. CSV — компактное плоское представление. OMM-поля записаны отдельными колонками без префикса omm; источники orbitSource/nameSource/cosparSource/countrySource/activitySource также плоские. Обогащённые варианты добавляют language, localizedName, summary, knowledgeStatus, knowledgeLevel, reviewedAt, familyId, eventId, sourceIds, sourceUrls, imagePageUrl, imageAuthor, imageLicense, imageLicenseUrl и wikidataId. sourceIds и sourceUrls — списки через | в одинаковом порядке. Полные факты, их scope, точность дат, подробный provenance и подписи изображений остаются в JSON. Файлы изображений не включены. Для защиты от формул текстовые ячейки, начинающиеся с =, +, -, @ или управляющих пробельных символов, получают ведущий апостроф; числа сохраняются числами.
Это нормализованный каталог Above Us, а не самостоятельный стандарт CCSDS OMM. Орбитальные элементы относятся к SGP4, TEME и UTC; не подставляйте их в другую модель без учёта этих соглашений.
Обновления, охват и ограничения
Новый экспорт публикуется после успешного обновления каталога. При сбое остаётся последний исправный снимок. Время создания файла не равно эпохе орбиты: проверяйте время получения источника и epoch у каждого объекта.
Набор охватывает используемые Above Us текущие GP, а не все объекты, когда-либо запущенные в космос. Для Space-Track действует фильтр эпохи за 30 дней; CelesTrak добавляет объекты из своего текущего списка. spacetrack — снимок этого GP-потока, не полный необработанный SATCAT. Отсутствие записи не доказывает сход с орбиты. Число объектов и предупреждения о свежести берите из манифеста.
Хранятся 2 последних успешных выпуска; это не долговременный архив. Сохраняйте нужные файлы у себя вместе с манифестом и атрибуцией. После 404 запросите актуальный манифест.
Данные предназначены для исследования и визуализации. Публичные GP не заменяют данные для управления полётом или оценки столкновений. Above Us не гарантирует точность, полноту и непрерывную доступность.
Источники, атрибуция и права
У смешанного каталога нет единой лицензии, которая заменяет условия всех источников. При дальнейшей передаче сохраняйте источники из манифеста, атрибуцию с этой страницы и происхождение отдельных полей.
- Space-Track.org / USSPACECOM: базовые GP/OMM и SATCAT допускают перераспространение по опубликованному общему разрешению USSPACECOM при надлежащем указании источника. Это разрешение не распространяется автоматически на все продукты Space-Track.
- CelesTrak: источник уточнений названий и активности там, где это указано в метаданных. Политика получения данных не является универсальной лицензией на дальнейшее распространение всех продуктов. Above Us не предоставляет дополнительных прав на материалы CelesTrak.
- GCAT — Jonathan C. McDowell: CC BY 4.0. Данные сопоставлены с NORAD, нормализованы и изложены на русском, английском и упрощённом китайском. Сохраните имя автора, ссылку на каталог и лицензию, а также обозначение этих изменений.
- Wikidata (CC0): структурированные названия, aliases и краткие descriptions — CC0; это не лицензия на текст Wikipedia и не лицензия на изображения.
- NASA: источник фактов для самостоятельно составленных справок. У сторонних материалов и обозначений NASA отдельные условия; упоминание источника не означает его поддержку проекта.
- Debris Clouds Catalog J. McDowell указан отдельно от GCAT: ссылка на факт не объявляет весь этот раздел CC BY 4.0. Авторские тексты Above Us и сторонние материалы сохраняют собственные условия.
- Wikimedia Commons: каждое изображение имеет свою лицензию. Передаются ссылки и сведения об авторе/лицензии, а не права собственности. CC BY-SA относится к изображению и его адаптациям, а не автоматически ко всему каталогу. Ссылка на картинку не освобождает от её условий.
Сохраняйте sourceIds, источники и оговорки неопределённости вместе с описаниями. Для нового использования проверяйте ссылки на действующие условия первоисточников.