Экспорт и импорт для совместимости
Прогон записывает документ результата, график и отчёт. --export также записывает геометрию сценария или его синтезированный сигнал в форматах, которые другие инструменты уже читают: программа просмотра земного шара, настольная карта, географическая информационная система (ГИС), пакет анализа миссий или инструмент программно-определяемого радио (SDR). Здесь ничто не обращается к часам или сети, и ни один экспорт не несёт отметки времени создания, поэтому один и тот же сценарий при каждом прогоне даёт побайтно идентичные файлы.
kshana scenarios/jamming-demo.toml --export czml # one format
kshana scenarios/jamming-demo.toml --export kml --export geojson
kshana scenarios/jamming-demo.toml --export all # every format that applies
kshana scenarios/jamming-demo.toml --export list # which apply, and why not, without running
kshana scenarios/terrain-nav.toml --import-route route.geojson --export geojson
Файлы записываются рядом со сценарием и называются так же, как документ результата: jamming-demo.czml, jamming-demo.kml, jamming-demo.geojson, по одному jamming-demo.<object>.e на каждый движущийся объект (или jamming-demo.e, когда он один), и пара l-band-waterfall-jamming.sigmf-meta / .sigmf-data. С --study-name они получают имя исследования, как и прочие выходные файлы.
Формат, названный явно, но не применимый к сценарию, — это ошибка, выводящая причину; при all причина выводится, а формат пропускается. Точки входа библиотеки — kshana::interop::export(src, format), kshana::interop::plan(src) и kshana::interop::geojson::apply_route(src, geojson); они принимают текст сценария и возвращают байты, не трогая файлов, поэтому работают и в сборке WebAssembly. Сервер Model Context Protocol (MCP) предоставляет те же три функции как инструменты export_interop, list_export_formats и import_route (см. mcp/kshana-mcp/README.md).
Код: src/interop/ (scene.rs строит единое геометрическое описание сценария, czml.rs, kml.rs, geojson.rs и stk.rs записывают его), src/sigmf.rs и src/spectrum.rs для сигнала. Тесты: tests/interop_formats.rs.
Форматы#
| Формат | Что это | Соблюдаемая спецификация |
|---|---|---|
| CZML | Cesium Language: массив JSON (JavaScript Object Notation) пакетов с отметками времени, читаемый CesiumJS | https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Structure |
| KML | Keyhole Markup Language 2,2, стандарт Open Geospatial Consortium (OGC), читаемый Google Earth и большинством инструментов ГИС; треки с отметками времени используют расширение Google gx:Track |
https://www.ogc.org/standards/kml/ (пространство имён схемы http://www.opengis.net/kml/2.2; пространство имён расширения http://www.google.com/kml/ext/2.2) |
| GeoJSON | географический JSON, Request for Comments (RFC) 7946 Internet Engineering Task Force (IETF) | https://www.rfc-editor.org/rfc/rfc7946.html |
STK .e |
файл эфемерид Ansys Systems Tool Kit (STK), форма «время — положение — скорость» EphemerisTimePosVel |
https://help.agi.com/stk/Content/stk/importfiles-02.htm |
| SigMF | Signal Metadata Format: файл метаданных JSON и необработанный файл комплексных отсчётов I/Q (синфазной и квадратурной составляющих) | https://sigmf.org/ |
Что содержит каждый файл#
Каждый геопространственный формат записывается из одной и той же сцены, поэтому они не могут расходиться в том, где что находится. В сцене до четырёх видов объектов:
- Движущиеся объекты — спутники и пользовательская платформа, когда она движется, — дискретизированные на собственной временной сетке сценария теми пропагаторами, которые использует прогон данного вида.
- Неподвижные пункты — приёмник, наземная станция, источник помех (jammer) или начало локальной навигационной системы координат.
- Треки без времени — путевые точки, по которым идёт вид альтернативного позиционирования, навигации и времени (PNT) по рельефу, гравитации или комбинированный. У этих видов нет оси времени, поэтому у треков её нет.
- Зоны воздействия источника помех — для вида
jammingдве окружности вокруг источника помех: дальность по земле, внутри которой спутник в зените (самый сильный) падает ниже порога слежения, так что теряются все спутники, и дальность, внутри которой так происходит со спутником на маске возвышения (самым слабым), так что слежение начинает отказывать. Обе получены из собственных уравнений линии связи данного вида (Kaplan и Hegarty, Understanding GPS/GNSS (Global Positioning System / Global Navigation Satellite Systems), 3-е изд., §9,4) при источнике помех на горизонте приёмника и потерях в свободном пространстве, а набор тестов проверяет, что эффективное отношение несущей к плотности шума на каждом радиусе равно порогу с точностью 1e-6 дБ. Окружность строится на сфере среднего радиуса Земли.
CZML#
Первый пакет — пакет документа ("id": "document", "version": "1.0") с часами, охватывающими временную сетку. Каждый движущийся объект — это пакет, у которого position содержит эпоху epoch в формате ISO 8601 (формат даты и времени Международной организации по стандартизации) UTC (всемирное координированное время), referenceFrame "INERTIAL" и отсчёты cartesian [t, x, y, z, ...]: секунды после эпохи, метры в Геоцентрической небесной системе отсчёта (GCRS). CesiumJS принимает INERTIAL за Международную небесную систему отсчёта (ICRF), оси которой совпадают с осями GCRS. Неподвижные пункты и центры зон — это постоянные положения cartesian в земной системе с referenceFrame "FIXED". Зона — это ellipse с обеими полуосями, равными её радиусу; трек без времени — polyline, прижатая к земле. Поле description каждого пакета снова описывает систему отсчёта словами.
KML#
Один <Document> с <Folder> на каждый класс объектов. Движущийся объект — это <Placemark>, содержащий <gx:Track>: по одному <when> на отсчёт (ISO 8601 UTC), затем по одному <gx:coord> на отсчёт (долгота, широта, высота). Пункты — это <Point>, зоны — <Polygon> с замкнутым кольцом против часовой стрелки, треки без времени — <LineString>. Координаты — долгота и широта Всемирной геодезической системы 1984 (WGS 84) в десятичных градусах и высота в метрах над эллипсоидом WGS 84, записанные с altitudeMode absolute. KML читает absolute как высоту над средним уровнем моря; разница, ундуляция геоида, находится в пределах около ±110 м и не применяется. В описании документа это сказано.
GeoJSON#
Один FeatureCollection. Позиции — [longitude, latitude] или [longitude, latitude, height] — сначала долгота, как требует RFC 7946 — в градусах WGS 84, высота в метрах над эллипсоидом. Движущийся объект — это LineString со свойством times_utc, содержащим одно время ISO 8601 на каждую позицию; трек, пересекающий меридиан 180°, записывается как MultiLineString, разрезанный на нём, как требует RFC 7946 §3.1.9 (точка пересечения интерполируется, а times_utc затем перечисляет только исходные отсчёты). Пункты — это Point, зоны — Polygon с замкнутым внешним кольцом против часовой стрелки (§3.1.6), треки без времени — LineString. У каждого объекта есть свойство units, называющее единицу каждого числового члена.
STK .e#
Один файл на каждый движущийся объект, поскольку эфемериды STK описывают одно транспортное средство. Заголовок задаёт NumberOfEphemerisPoints (равно числу строк данных), ScenarioEpoch (UTC, d Mon yyyy hh:mm:ss.ssssss), InterpolationMethod Lagrange с InterpolationSamplesM1 5, CentralBody Earth, CoordinateSystem ICRF и DistanceUnit Meters; строки под EphemerisTimePosVel — это секунды после эпохи, положение в метрах и скорость в метрах в секунду, в GCRS. Сцена только с неподвижными пунктами или треками без времени не записывает файл .e: неподвижная точка — это объект STK Facility, а не эфемериды. Идентификатор, не являющийся простой частью имени файла (оболочка орбитальной группировки и спутник, Pulsar inclined/S1-0163), записывается с заменой каждого другого символа на -, с нумерацией, если два идентификатора после этого совпадают.
Вид leo-pass и вид leo-pnt-chain (через его этап [pass]) экспортируют каждый спутник на низкой околоземной орбите (LEO) и пользователя, используя собственные пропагаторы и временную сетку вида. Вид работает в ECI0 — земной инерциальной системе, совмещённой с земной фиксированной системой на эпоху; каждый отсчёт переводится в земную фиксированную систему на собственный момент времени с помощью вращения Земли, принятого в данном виде, а оттуда в GCRS через систему истинного экватора и среднего равноденствия (TEME), в которой выдаёт результат пропагатор Simplified General Perturbations 4 (SGP4), на тот же момент, при этом UT1 (всемирное время, угол вращения Земли) принято равным UTC, а движение полюса не учитывается, как и в других экспортах. Остальные виды LEO указывают, почему формат неприменим (таблица ниже).
Кампании#
campaign экспортирует каждый входящий в него сценарий, имеющий геометрию, в виде отдельного набора файлов, причём метка участника вставляется перед суффиксом формата: каждый прогон фазы (<phase> или <phase>-<k>, если в фазе несколько прогонов), базовый сценарий перебора (sweep), сценарий Монте-Карло (monte-carlo) и каждый составной участник (его метка с вписанными общими значениями, которые он привязывает). campaign-shared-jammer-sea-road.toml --export kml записывает campaign-shared-jammer-sea-road.ship-strait.kml и campaign-shared-jammer-sea-road.car-coast-road.kml. Участник, идентичный более раннему, записывается один раз, а значения, которые кампания применяет во время прогона (передачи, значения перебора, начальные значения seed), в экспортированном участнике отсутствуют. Формат применим к кампании, если применим к любому участнику; в противном случае причина указана в примечании 4 таблицы ниже. См. CAMPAIGNS.md.
SigMF#
Снимок [iq] вида spectrum — смоделированный L-диапазон, представленный комплексными отсчётами в один момент, — в виде пары .sigmf-meta / .sigmf-data, в типе данных, который называет [iq] (cf32_le или ci16_le). Это та же запись, которую прогон записывает и считывает обратно для собственной проверки согласованности: экспортированные метаданные равны блоку iq.sigmf.meta документа результата, а у файла данных длина iq.sigmf.data_bytes. Записывает её src/sigmf.rs — модуль, который вид spectrum уже использовал; ничего не дублируется.
Системы отсчёта и время#
- Движок выполняет пропагацию в TEME (истинный экватор, среднее равноденствие даты), своей родной системе. Движущиеся объекты поворачиваются в GCRS редукцией
nutation::teme_to_gcrs(прецессия IAU 2006 и нутация IAU 2000B, где IAU — Международный астрономический союз), которая воспроизводит опубликованный у Валладо пример перехода TEME в GCRF (Geocentric Celestial Reference Frame) с точностью 0,11 м, — для CZML и STK, а в земную фиксированную систему — черезframes::teme_to_ecefдля KML и GeoJSON. Поворот в земную систему задаётся гринвичским средним звёздным углом при UT1, принятом равным UTC, без учёта движения полюса — та же редукция, что и в экспорте SP3 (Standard Product 3). На радиусе орбиты GPS неучтённая разность UT1−UTC до 0,9 с смещает долготу спутника до примерно 1,7 км; наземные пункты не затрагиваются, поскольку заданы широтой и долготой. - Исключение составляет вид
ephemeris: его выход движка уже содержит положения в GCRS и в земной системе (с UT1−UTC и движением полюса сценария либо с реальным рядом Международной службы вращения Земли и систем отсчёта (IERS)), и они записываются без изменений. - Всё время — UTC. Високосные секунды не моделируются: смещение через високосную секунду считается так, как если бы в каждых сутках было 86 400 с, как считают временные сетки движка.
- Эпоха
t = 0— та, которую использует прогон данного вида, и каждый файл её называет:epochвидаorbit; при её отсутствии — самая ранняя эпоха, которую несут собственные данные спутников (эпоха двухстрочного набора элементов (TLE), опорное время широковещательных эфемерид, начало файла SP3), и 2000-01-01T00:00:00Z лишь тогда, когда ни один спутник её не несёт (кеплеровы элементы). Экспорты SP3 и OEM (Orbit Ephemeris Message) сохраняют 2000-01-01T00:00:00Z для сценария безepoch, поэтому для такого сценария их даты отличаются от дат этих файлов. Безepochсценария каждый спутник, несущий собственную эпоху, поворачивается в GCRS и земную системы на собственный момент (его эпоха плюсt), поскольку именно этой дате принадлежит его положение в TEME; там, где эпохи спутников различаются, общие метки времени следуют предпосылке движка, что каждый спутник стартует вt = 0, а файл указывает, на сколько часов они различаются. Эпоха элементов SGP4 орбитальных группировок Уокера видовjammingиgnss-sim(2018-06-12T00:00:00Z), которую их прогоны также используют для вращения Земли;epochвидаpasses;epochили эпоха TLE видаephemeris. У видаintegrityнет календарной эпохи; его экспорт датируетt = 0так же, как для сценария орбиты без неё. - Спутники сохраняют позиционные идентификаторы
G01,G02, ..., которые им дают экспорты SP3 и OEM, потому что пропагаторы не несут строк имён TLE.
Импорт#
- Маршрут GeoJSON.
--import-route <file>(библиотека:interop::geojson::apply_route) читает первыйLineStringдокумента GeoJSON — отдельную геометрию,FeatureилиFeatureCollection— и записывает его во входные данные треков видовterrain-nav,terrain-slam,gravity-mapиcombined-altpnt(start_lat_deg,start_lon_deg,step_lat_deg,step_lon_deg,waypoints) перед прогоном. Эти виды летят поstart + i·step, поэтому маршрут принимается, когда он именно таков: два его конца (числоwaypointsсценария сохраняется) либо три или более позиций, равномерно расположенных на прямой по широте и долготе, с точностью до 1e-7 градуса (около 1 см). Любой другой маршрут отклоняется, а ошибка называет позицию, наиболее удалённую от прямой. Маршрут для вида без входных данных траектории отклоняется с указанием этой причины. Долгота и широта проверяются на диапазон, что выявляет файл, где широта идёт первой. - Запись SigMF. Блок
[recording]видаspectrumчитает пару.sigmf-meta/.sigmf-dataчерезsrc/sigmf.rsи строит график своей оценки Уэлча рядом с моделью (см. SPECTRUM.md). Чтение файлов — возможность нативной сборки; сборка WebAssembly получает байты черезkshana::sigmf::read.
Как проверяются экспорты#
tests/interop_formats.rs разбирает каждый экспорт валидатором, написанным по спецификации формата, а не кодом самого записывающего модуля:
- CZML: массив JSON, первый пакет которого — пакет документа с
version; уникальные идентификаторы пакетов; каждая позиция задаётreferenceFrameFIXEDилиINERTIAL; дискретизированные позиции — это[t, x, y, z, ...]с эпохой ISO 8601 и возрастающими временами. - KML: корректно сформированный документ XML (Extensible Markup Language) в пространстве имён OGC KML 2,2 с одним корневым объектом; порядок элементов схемы внутри Placemark; не более одной геометрии на Placemark; замкнутые линейные кольца из четырёх или более позиций; кортежи
lon,lat[,alt]в допустимом диапазоне; допустимые значенияaltitudeMode;styleUrl, которые разрешаются;gx:Trackс таким же числом<when>, как и<gx:coord>, и объявленное пространство имён расширения. - GeoJSON: сначала долгота и в допустимом диапазоне, широта в допустимом диапазоне, два или три числа на позицию, ломаные из двух или более позиций, замкнутые внешние кольца против часовой стрелки, ни одного сегмента через меридиан 180°, ни одного члена
crs, свойствоunitsу каждого объекта. - STK: строка версии
stk.v., блокBEGIN Ephemeris/END Ephemerisс обязательными ключевыми словами,DistanceUnit Meters,NumberOfEphemerisPoints, равное числу строк данных, семь чисел в строке, возрастающие времена. - SigMF:
core:datatypeиcore:versionвglobal, массивыcapturesиannotations,core:sample_startв каждом захвате и файл данных из целых отсчётов.
Помимо структуры, спутник, экспортированный в CZML и STK, сравнивается с собственным состоянием движка после той же редукции систем отсчёта и совпадает с ним до 1 мм по положению (файлы несут 0,1 мм): с собственным выходом в GCRS вида ephemeris и с независимой пропагацией из TEME в GCRS группировки orbit-sgp4-gps, где каждый спутник датирован собственной эпохой TLE, считанной из текста сценария. Две проверки выходят за пределы движка: положения CZML первого спутника orbit-sgp4-gps совпадают с точностью 0,1 м (измерено 2,3 см) с тем же TLE, пропагированным пакетом Python sgp4 и приведённым к GCRS средствами ERFA (Essential Routines for Fundamental Astronomy, открытая реализация библиотеки SOFA Международного астрономического союза), а положения спутников orbit-rinex в земной системе равны положениям из широковещательных эфемерид по спецификации интерфейса Global Positioning System с точностью 1 мм. Положения экспорта jamming в земной системе сравниваются с положениями, по которым оценивается прогон с подавлением, с точностью 5 мм. Маршрут GeoJSON проходит круговой путь через сценарий трека, пара SigMF считывается обратно в те же байты, и каждый экспорт побайтно детерминирован.
Это проверки по опубликованным спецификациям и по самому движку. Файлы не загружались в CesiumJS, Google Earth, Ansys STK или инструмент SDR в составе набора тестов, поэтому приём конкретной версией этих инструментов здесь не проверяется.
Обмен данными об орбитах, ориентации и ядрах (библиотека, 0,36)#
Помимо форматов --export, в 0,36 добавлены библиотечные читатели и записыватели стандартных файлов, которыми обмениваются инструменты анализа миссий. Они принимают и возвращают текст или байты и не трогают файлов. Каждый из них — строка VALIDATED в матрице верификации по независимой реализации, названной там:
- Сообщения CCSDS с данными об орбите (
kshana::odm, сkshana::ndm_xmlдля формы XML): OPM, OMM и OCM в нотации «ключ — значение» (KVN) и NDM/XML по CCSDS 502.0-B-3 (OPM и OMM версий 3,0 и 2,0, OCM 3,0). Проверено в обе стороны на Orekit: Orekit читает файлы Kshana, а Kshana читает файлы Orekit. Остающиеся расхождения закреплены тестами. - Сообщения CCSDS с данными об ориентации (
kshana::adm, сkshana::ndm_xml): AEM и APM по CCSDS 504.0-B-2, в KVN и NDM/XML. Проверено на Orekit тем же способом, а повороты записей — по Orekit. - SPICE SPK (
kshana::spk_writer): записыватели и читатели сегментов NAIF SPK типов 9 и 13 (с экспортом CCSDS OEM в ядро SPK) и типов 3 и 21 (полиномы Чебышёва и расширенные строки разностей), проверенные по собственным читателям набора NAIF SPICE вплоть до побайтного совпадения. Kshana записывает сегменты по переданным ей записям: она не подбирает коэффициенты Чебышёва и не создаёт строки разностей.
Импортёр и записыватель CCSDS OEM, а также блок ковариации OEM появились раньше и описаны в разделе об импорте выше и в матрице.
Ограничения#
- Геометрию экспортируют только виды из таблицы ниже. Виды, геометрия которых центрирована на Луне, Марсе или другом теле, не экспортируются: CZML, KML и GeoJSON описывают положения относительно Земли, а в этом выпуске файлы STK записываются только с
CentralBody Earth, хотя сам формат STK допускает и другие центральные тела. constellation-design,earth-gnss-lunarиoem-interopимеют геометрию, привязанную к Земле, которую этот выпуск не экспортирует; причина для каждого вида указана в таблице.- Вид
gnss-insпрокладывает траекторию в плоской локальной касательной плоскости, поэтому экспортируется только начало этой плоскости, а не траектория. - Положения спутников в земной системе не учитывают UT1−UTC и движение полюса (см. «Системы отсчёта и время»); высоты KML эллипсоидальные, а не над средним уровнем моря.
- Зоны воздействия предполагают распространение в свободном пространстве, источник помех на горизонте приёмника и сферическую Землю для окружности.
Каждый файл сценария#
Что делает kshana <scenario> --export <format> для каждого файла в scenarios/ (манифест набора не является сценарием и опущен). «yes» означает, что формат записан и проходит свой валидатор; в противном случае номер указывает на причину. Создано с помощью cargo run --bin gen_validation_artifacts; tests/interop_formats.rs завершается неудачей, если таблица устарела.
| Сценарий | Вид | CZML | KML | GeoJSON | STK .e |
SigMF |
|---|---|---|---|---|---|---|
acm-link.toml |
acm-link |
нет [1] | нет [1] | нет [1] | нет [1] | нет [2] |
aocs-slew-mekf.toml |
aocs |
нет [3] | нет [3] | нет [3] | нет [3] | нет [2] |
aocs-slew.toml |
aocs |
нет [3] | нет [3] | нет [3] | нет [3] | нет [2] |
aperture-duty-cycle.toml |
aperture-duty-cycle |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
araim-gps-galileo.toml |
integrity |
да | да | да | да | нет [2] |
araim-reference-check.toml |
araim-reference-check |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
ascent-losses.toml |
ascent-losses |
нет [5] | нет [5] | нет [5] | нет [5] | нет [2] |
attitude-budget.toml |
attitude-budget |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
automotive-urban-canyon.toml |
gnss-ins |
да | да | да | нет [6] | нет [2] |
campaign-jam-spoof-holdover-integrity.toml |
campaign |
да | да | да | да | нет [7] |
campaign-monte-carlo-clock-holdover.toml |
campaign |
нет [7] | нет [7] | нет [7] | нет [7] | нет [7] |
campaign-optimize-link-budget.toml |
campaign |
нет [7] | нет [7] | нет [7] | нет [7] | нет [7] |
campaign-shared-jammer-sea-road.toml |
campaign |
да | да | да | да | нет [7] |
campaign-spectrum-holdover-integrity.toml |
campaign |
да | да | да | да | нет [7] |
campaign-sweep-jammer-power.toml |
campaign |
да | да | да | да | нет [7] |
celeste-iod-classical-pilot-signals.toml |
leo-signal |
нет [8] | нет [8] | нет [8] | нет [8] | нет [2] |
celeste-iod-end-to-end.toml |
leo-pnt-chain |
да | да | да | да | нет [2] |
celeste-iod-fused-pvt.toml |
leo-pvt |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
cislunar-arc-recovery.toml |
cislunar-arc-recovery |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
cislunar-observability.toml |
cislunar-observability |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
clock-ensemble.toml |
clock |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
clock-fitted-log.toml |
clock |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
clock-holdover-labsr.toml |
clock |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
clock-holdover.toml |
clock |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
clock-measured-log.toml |
clock |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
combined-altpnt.toml |
combined-altpnt |
да | да | да | нет [6] | нет [2] |
conflict-resilience.toml |
conflict-resilience |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
constellation-multi-gnss-coverage.toml |
constellation-design |
нет [11] | нет [11] | нет [11] | нет [11] | нет [2] |
contact-schedule.toml |
contact-schedule |
нет [1] | нет [1] | нет [1] | нет [1] | нет [2] |
earth-gnss-lunar.toml |
earth-gnss-lunar |
нет [12] | нет [12] | нет [12] | нет [12] | нет [2] |
entry-heating-stardust.toml |
entry-heating |
нет [13] | нет [13] | нет [13] | нет [13] | нет [2] |
eo-coverage.toml |
eo-coverage |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
eo-radiometry.toml |
eo-radiometry |
нет [5] | нет [5] | нет [5] | нет [5] | нет [2] |
ephemeris.toml |
ephemeris |
да | да | да | да | нет [2] |
europa-surface-pnt.toml |
body-pnt |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
fusion-pnt-coupled.toml |
fusion |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
fusion-pnt.toml |
fusion |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
gnss-ins-aviation.toml |
gnss-ins |
да | да | да | нет [6] | нет [2] |
gnss-ins-maritime.toml |
gnss-ins |
да | да | да | нет [6] | нет [2] |
gnss-ins-rail.toml |
gnss-ins |
да | да | да | нет [6] | нет [2] |
gnss-ins.toml |
gnss-ins |
да | да | да | нет [6] | нет [2] |
gnss-sim-container-terminal-skyline.toml |
gnss-sim |
да | да | да | да | нет [2] |
gnss-sim-raim.toml |
gnss-sim |
да | да | да | да | нет [2] |
gnss-ssv-formation-heo.toml |
gnss-ssv |
нет [14] | нет [14] | нет [14] | нет [14] | нет [2] |
gnss-ssv-heo.toml |
gnss-ssv |
нет [14] | нет [14] | нет [14] | нет [14] | нет [2] |
gnss-ssv-lunar-weak.toml |
gnss-ssv |
нет [14] | нет [14] | нет [14] | нет [14] | нет [2] |
gnss-ssv-nav-lunar.toml |
gnss-ssv |
нет [14] | нет [14] | нет [14] | нет [14] | нет [2] |
gnss-ssv-shell.toml |
gnss-ssv |
нет [14] | нет [14] | нет [14] | нет [14] | нет [2] |
gps-denied-gravity-nav-egm2008.toml |
gravity-map |
да | да | да | нет [6] | нет [2] |
gps-denied-gravity-nav.toml |
gravity-map |
да | да | да | нет [6] | нет [2] |
gravity-map-error-mc.toml |
gravity-map |
да | да | да | нет [6] | нет [2] |
gravity-map-nav.toml |
gravity-map |
да | да | да | нет [6] | нет [2] |
holdover-test-example.toml |
holdover-test |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
holdover-test-ptp4l.toml |
holdover-test |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
hybrid-optical-rf.toml |
hybrid-optical-rf |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
hybrid-pnt.toml |
hybrid |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
hybrid-ukf.toml |
hybrid-ukf |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
impairment-eval.toml |
impairment-eval |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
imu-deadreckoning.toml |
inertial |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
ins-trn-coast.toml |
ins-trn-coast |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
integrity-harbour-approach.toml |
integrity |
да | да | да | да | нет [2] |
integrity-raim.toml |
integrity |
да | да | да | да | нет [2] |
jamming-demo.toml |
jamming |
да | да | да | да | нет [2] |
jamming-harbour-approach-skyline.toml |
jamming |
да | да | да | да | нет [2] |
l-band-waterfall-jamming.toml |
spectrum |
нет [4] | нет [4] | нет [4] | нет [4] | да |
launch-window.toml |
launch-window |
нет [15] | нет [15] | нет [15] | нет [15] | нет [2] |
leo-band-trade.toml |
leo-signal |
нет [8] | нет [8] | нет [8] | нет [8] | нет [2] |
leo-doppler-positioning.toml |
leo-pvt |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
leo-focus-data-services.toml |
campaign |
нет [7] | нет [7] | нет [7] | нет [7] | нет [7] |
leo-focus-fused-pnt-sisre.toml |
campaign |
нет [7] | нет [7] | нет [7] | нет [7] | нет [7] |
leo-focus-indoor-uhf.toml |
campaign |
да | да | да | да | нет [7] |
leo-focus-iot-eirp.toml |
campaign |
да | да | да | да | нет [7] |
leo-focus-ntn-bandwidth.toml |
campaign |
нет [7] | нет [7] | нет [7] | нет [7] | нет [7] |
leo-focus-ppp-altitude.toml |
campaign |
нет [7] | нет [7] | нет [7] | нет [7] | нет [7] |
leo-focus-science-iono-sounding.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-indoor-uhf.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-iot-energy.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-navmsg-celeste-iod.toml |
leo-navmsg |
нет [16] | нет [16] | нет [16] | нет [16] | нет [2] |
leo-navmsg-encode-decode.toml |
leo-navmsg |
нет [16] | нет [16] | нет [16] | нет [16] | нет [2] |
leo-navmsg-fit-interval-trade.toml |
leo-navmsg |
нет [16] | нет [16] | нет [16] | нет [16] | нет [2] |
leo-navmsg-midpass-update.toml |
leo-navmsg |
нет [16] | нет [16] | нет [16] | нет [16] | нет [2] |
leo-navmsg-model-comparison.toml |
leo-navmsg |
нет [16] | нет [16] | нет [16] | нет [16] | нет [2] |
leo-pass-celeste-iod-multiband.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-pass-iridium.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-pass-vs-gnss-cn0.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-pass-xona-pulsar.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-pnt-end-to-end.toml |
leo-pnt-chain |
да | да | да | да | нет [2] |
leo-pnt-mega-shell.toml |
constellation-design |
нет [11] | нет [11] | нет [11] | нет [11] | нет [2] |
leo-ppp-convergence.toml |
leo-ppp |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
leo-pvt-fjord-skyline.toml |
leo-pvt |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
leo-resilience-gnss-jammed-leo-carries.toml |
campaign |
да | да | да | да | нет [7] |
leo-resilience-js-margin.toml |
spectrum |
нет [4] | нет [4] | нет [4] | нет [4] | нет [17] |
leo-resilience-multiband-diversity.toml |
campaign |
нет [7] | нет [7] | нет [7] | нет [7] | нет [7] |
leo-resilience-spoof-doppler.toml |
leo-pass |
да | да | да | да | нет [2] |
leo-resilience-spoof-monitors.toml |
campaign |
да | да | да | да | нет [7] |
leo-timing-utc.toml |
leo-pvt |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
leo-vertical-5g-network-timing.toml |
campaign |
да | да | да | да | нет [7] |
leo-vertical-asset-tracking-iot.toml |
campaign |
да | да | да | да | нет [7] |
leo-vertical-autonomous-vehicle-skyline.toml |
campaign |
да | да | да | да | нет [7] |
leo-vertical-autonomous-vehicle.toml |
campaign |
да | да | да | да | нет [7] |
leo-vertical-critical-infrastructure-timing.toml |
campaign |
да | да | да | да | нет [7] |
leo-vertical-polar-arctic.toml |
campaign |
да | да | да | да | нет [7] |
leo-vertical-rail-maritime.toml |
campaign |
да | да | да | да | нет [7] |
link-budget.toml |
link-budget |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
lunanet-araim.toml |
lunar-integrity |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-ascent.toml |
lunar-ascent |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-attack-surface.toml |
lunar-attack-surface |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-beacon.toml |
lunar-beacon |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-descent-lola.toml |
lunar-descent |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-descent.toml |
lunar-descent |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-differential-pnt.toml |
lunar-differential-pnt |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-frame-campaign.toml |
lunar-frame-campaign |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-frame-realisation.toml |
lunar-frame-realisation |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-infrastructure-carrier-phase.toml |
lunar-infrastructure |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-infrastructure-frame-coestimation.toml |
lunar-infrastructure |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-infrastructure-geodesy-sensitivity.toml |
lunar-infrastructure |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-infrastructure-od-consistency-model-error.toml |
lunar-infrastructure |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-infrastructure-od-consistency.toml |
lunar-infrastructure |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-infrastructure-space-tie.toml |
lunar-infrastructure |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-interop-export.toml |
lunar-interop-export |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-jamming.toml |
lunar-jamming |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-joint-od-clock.toml |
lunar-joint-od-clock |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-llr-datum.toml |
lunar-llr-datum |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-orbit-rendezvous-elfo.toml |
lunar-orbit-rendezvous |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-orbit-rendezvous.toml |
lunar-orbit-rendezvous |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-relay-constellation.toml |
constellation-design |
нет [11] | нет [11] | нет [11] | нет [11] | нет [2] |
lunar-station-coverage-public-sources.toml |
lunar-station-coverage |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-station-coverage-terrain.toml |
lunar-station-coverage |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-station-coverage.toml |
lunar-station-coverage |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-station-geodesy-baseline.toml |
lunar-llr-datum |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-station-geodesy-with-station.toml |
lunar-llr-datum |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-station-time-lab.toml |
lunar-time-budget |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-surface-terrain.toml |
lunar-surface |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-surface.toml |
lunar-surface |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-time-budget.toml |
lunar-time-budget |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-time-offset.toml |
lunar-time-offset |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-vlbi-fim.toml |
lunar-vlbi-fim |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
lunar-vlbi.toml |
lunar-vlbi |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
maritime-port-approach-coast.toml |
ins-trn-coast |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
maritime-spoof-position-push.toml |
spoof-detect |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
maritime-strait-jamming.toml |
jamming |
да | да | да | да | нет [2] |
mars-orbit-pnt.toml |
body-pnt |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
mars-pnt-lmo.toml |
mars-pnt |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
mars-pnt-surface.toml |
mars-pnt |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
mars-pnt-transfer.toml |
mars-pnt |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
meo-leo-fused-pvt.toml |
leo-pvt |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
mission-thread-artemis-class.toml |
mission-thread |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
mission-thread-short.toml |
mission-thread |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
moonlight-service-volume.toml |
moonlight-service-volume |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
multi-band-jamming-waterfall.toml |
spectrum |
нет [4] | нет [4] | нет [4] | нет [4] | нет [17] |
ntn-5g-positioning.toml |
ntn-positioning |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
oem-interop.toml |
oem-interop |
нет [18] | нет [18] | нет [18] | нет [18] | нет [2] |
optical-atmosphere-network.toml |
optical-atmosphere |
нет [19] | нет [19] | нет [19] | нет [19] | нет [2] |
optical-atmosphere-techniques.toml |
optical-atmosphere |
нет [19] | нет [19] | нет [19] | нет [19] | нет [2] |
orbit-gnss-challenged.toml |
orbit |
да | да | да | да | нет [2] |
orbit-molniya.toml |
orbit |
да | да | да | да | нет [2] |
orbit-multignss.toml |
orbit |
да | да | да | да | нет [2] |
orbit-real-tle.toml |
orbit |
да | да | да | да | нет [2] |
orbit-rinex.toml |
orbit |
да | да | да | да | нет [2] |
orbit-sgp4-gps.toml |
orbit |
да | да | да | да | нет [2] |
orbit-urban-canyon-skyline.toml |
orbit |
да | да | да | да | нет [2] |
passes.toml |
passes |
да | да | да | да | нет [2] |
polar-arctic-leo-coverage.toml |
leo-pvt |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
pvt-abmf.toml |
pvt |
да | да | да | нет [6] | нет [2] |
quantum-anomaly-detect.toml |
quantum-anomaly-detect |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
quantum-cai-coast.toml |
inertial |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
quantum-gnss-free-nav.toml |
quantum-gnss-free-nav |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
quantum-time-transfer.toml |
quantum-time-transfer |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
quantum-trade.toml |
quantum-trade |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
rail-tunnel-coast.toml |
ins-trn-coast |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
realtime-frame-eop.toml |
realtime-frame-eop |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
reentry.toml |
reentry |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
slot-timing-ocxo-leo.toml |
slot-timing |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
small-uas-jammed-nav.toml |
gnss-ins |
да | да | да | нет [6] | нет [2] |
solar-system-tour.toml |
solar-system |
нет [10] | нет [10] | нет [10] | нет [10] | нет [2] |
space-packet.toml |
space-packet |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
space-weather.toml |
space-weather |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
spoof-attack.toml |
spoof |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
spoof-detect.toml |
spoof-detect |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
spoof-meaconing.toml |
spoof |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
starlink-sop-doppler-positioning.toml |
leo-pvt |
нет [9] | нет [9] | нет [9] | нет [9] | нет [2] |
sweep-clock-stability.toml |
sweep |
нет [20] | нет [20] | нет [20] | нет [20] | нет [2] |
sweep-nd-inertial.toml |
sweep-nd |
нет [20] | нет [20] | нет [20] | нет [20] | нет [2] |
telecom-prtc-holdover-24h.toml |
telecom-timing |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
telecom-synce-eec.toml |
telecom-timing |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
telecom-tie-ingest.toml |
telecom-timing |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
terrain-nav.toml |
terrain-nav |
да | да | да | нет [6] | нет [2] |
terrain-slam.toml |
terrain-slam |
да | да | да | нет [6] | нет [2] |
time-transfer-budget.toml |
time-transfer-budget |
нет [21] | нет [21] | нет [21] | нет [21] | нет [2] |
timetransfer.toml |
timetransfer |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
tracking-loop.toml |
tracking-loop |
нет [4] | нет [4] | нет [4] | нет [4] | нет [2] |
xona-pulsar-end-to-end.toml |
leo-pnt-chain |
да | да | да | да | нет [2] |
xona-pulsar-signals.toml |
leo-signal |
нет [8] | нет [8] | нет [8] | нет [8] | нет [2] |
Почему формат неприменим:
- виды
contact-scheduleиacm-linkпланируют контакты нисходящей линии и кодирование; чтобы увидеть геометрию, экспортируйте сценарийpassesдля того же спутника и той же станции - SigMF содержит комплексные отсчёты в основной полосе, которые синтезирует только вид
spectrum - вид
aocsмоделирует ориентацию относительно центра масс без орбиты и положения на земле, поэтому на Земле размещать нечего - во входных данных сценария нет горизонтального положения (ни широты и долготы, ни геоцентрических координат, ни орбитальных элементов, кроме, самое большее, высоты), поэтому на Земле размещать нечего
- виды
eo-radiometryиascent-lossesвычисляют бюджеты без положения на Земле - эфемериды STK описывают положение и скорость аппарата в зависимости от времени; в этой сцене есть только неподвижные точки или треки без времени (неподвижная точка — это объект STK Facility, а не эфемериды)
- ни у одного входящего в кампанию сценария нет ничего, что описывает этот формат; экспортируйте участника отдельно, чтобы увидеть его причину
- вид
leo-signalанализирует проекты сигналов (спектры, слежение, захват, совместимость) без положения спутника или пользователя; экспортируйте сценарийleo-passилиleo-pnt-chain, в котором летит этот проект - не экспортируется в этом выпуске: виды комплексного позиционирования размещают свои спутники в земной фиксированной системе относительно эпохи, которую никогда не называют, поэтому экспорт с отметками времени пришлось бы придумывать календарную дату (вместо этого экспортируйте сценарий
leo-passилиleo-pnt-chain) - геометрия вида центрирована на Луне, Марсе или другом теле Солнечной системы; CZML, KML и GeoJSON описывают положения на Земле или вокруг неё, а в этом выпуске эфемериды STK записываются только с CentralBody Earth
- не экспортируется в этом выпуске:
constellation-designразмещает свои спутники в системе, фиксированной относительно тела, относительно эпохи, которую никогда не называет, поэтому экспорт с отметками времени пришлось бы придумывать календарную дату - не экспортируется в этом выпуске: орбитальная группировка земной глобальной навигационной спутниковой системы (GNSS) в
earth-gnss-lunarвидна из приёмника на лунном расстоянии, траекторию которого вид не предоставляет в виде временного ряда - не экспортируется в этом выпуске: вид
entry-heatingсообщает пиковые нагрузки и нагрев и не хранит трассу на поверхности с отметками времени - вид
gnss-ssvперебирает доступность и мощность линии для пользователя на оболочке или кеплеровой траектории; у него нет единственного положения, которое можно разместить на карте - сценарий
launch-windowзадаёт широту места старта, но не долготу, поэтому место нельзя разместить - не экспортируется в этом выпуске: истинная орбита
leo-navmsg— это подгоночная опорная орбита, у которой угол вращения Земли на эпоху является входным параметром (theta0_deg, по умолчанию 0), а не выводится из календарной даты, поэтому её положения в земной системе не привязаны к дате - в этом сценарии спектра нет блока [iq], поэтому отсчёты для записи не синтезируются
- не экспортируется в этом выпуске:
oem-interopчитает и записывает Orbit Ephemeris Message CCSDS (Consultative Committee for Space Data Systems), который сам является файлом обмена эфемеридами - вид
optical-atmosphereвычисляет статистику линий для наземных пунктов без геометрии с отметками времени, которую можно разместить - сценарий перебирает другой сценарий по сетке; экспортируйте перебираемый сценарий отдельно
- вид
time-transfer-budgetвычисляет бюджет линии и стабильности без геометрии с отметками времени, которую можно разместить