Стандарти та сумісність
Kshana володіє стандартними форматами обміну спільнот GNSS (глобальна навігаційна супутникова система), динаміки польоту та часу, щоб працювати поруч із RTKLIB (відкрита бібліотека кінематичного позиціонування в реальному часі), gLAB, Ginan, GMAT (General Mission Analysis Tool), Orekit та інструментарієм аналітичних центрів IGS (Міжнародна служба GNSS), а не на приватному острові. Ця сторінка зіставляє формати обміну, які рушій розбирає або видає, з модулем, що реалізує кожен із них, і з авторитетною специфікацією.
Вона обмежена форматами — речами з напрямком читання/запису. Стандарти сигналів і алгоритмів, які рушій реалізує, а не розбирає (IS-GPS-200 (IS: Interface Specification; GPS: глобальна система позиціонування), IEEE (Інститут інженерів з електротехніки та електроніки) 1139, RTCA (раніше Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: Міжнародне геомагнітне опорне поле), опорний документ ARAIM (удосконалений автономний контроль цілісності приймача) WG-C (WG: робоча група), CCSDS (Консультативний комітет з космічних систем даних) 401/DSN (DSN: мережа далекого космосу)), підтверджено рядок за рядком у VERIFICATION-MATRIX.md.
Формати, якими володіє рушій#
| Стандарт | Напрямок | Модуль | Специфікація / авторитет | Примітки |
|---|---|---|---|---|
| CCSDS OEM (Orbit Ephemeris Message) | читання і запис | src/oem.rs |
CCSDS 502.0-B Orbit Data Messages, форма KVN (запис «ключ-значення») | Табличні ефемериди вектора стану, які приймають GMAT, Orekit, STK (Systems Tool Kit). parse_oem зчитує їх назад; перевірено відновленням дослівного прикладу з Blue Book CCSDS 502.0-B-3, рисунок G-11 (tests/ccsds_reference.rs). Необов'язковий блок коваріації положення/швидкості 6×6 (COVARIANCE_START … COVARIANCE_STOP, 21-елементна серіалізація KVN нижнього трикутника з необов'язковим COV_REF_FRAME) і записується (covariance_block_kvn), і зчитується (parse_covariance_block), із симетричним круговим обходом (тести src/oem.rs). |
| CCSDS OMM (Orbit Mean-Elements Message) | запис | src/omm.rs |
CCSDS 502.0-B-2, форма KVN | Публікація середніх елементів SGP4/TLE (SGP4: Simplified General Perturbations 4; TLE: двострокові набори елементів) за стандартом (середній рух, e, i, Ω, ω, M, BSTAR (доданок опору в орбітальному пропагаторі)). Доступно з CLI (CLI: інтерфейс командного рядка) для сценарію orbit через --export-omm <out.omm> або export_omm = true (один OMM на кожен супутник, визначений TLE, з його справжнім ідентифікатором NORAD (Північноамериканське командування повітряно-космічної оборони), позначенням COSPAR (Комітет з космічних досліджень) та епохою; tests/sp3_export_roundtrip.rs). Форма XML (Extensible Markup Language) і зчитувач — завдання на майбутнє. |
| CCSDS TDM (Tracking Data Message) | читання і запис | src/ccsds_tdm.rs |
CCSDS 503.0-B Tracking Data Message, форма KVN | Записи відстеження дальності / Доплера / кутів, які прохід DSN/ESTRACK (ESTRACK: Європейська мережа космічного відстеження) передає системі OD (визначення орбіти). Перевірено відновленням дослівного прикладу з Blue Book CCSDS 503.0-B-2, рисунок E-9 (tests/ccsds_reference.rs). |
| CCSDS Space Packet (133,0) | читання і запис | src/space_packet.rs |
CCSDS 133.0-B-2 Space Packet Protocol | 6-октетне обрамлення первинного заголовка TM/TC (TM: телеметрія; TC: телекоманда), яким обмінюються наземні системи. Кодувальник відтворює опубліковані побайтові тестові вектори незалежної бібліотеки spacepackets-py (тести src/space_packet.rs). |
| SP3-c (SP3: Standard Product 3, формат точної орбіти) / SP3-d (точні ефемериди) | читання і запис | src/sp3.rs |
IGS Standard Product 3 (c/d) | Часовий ряд положення в земній системі координат (ECEF) і часу годинника. Круговий обхід перевірено до значення менше 0,5 m на реальному знімку gps-ops (tests/sp3_export_roundtrip.rs). |
| RINEX (Receiver Independent Exchange Format) 3 (навігаційні дані бортового передавання) | читання | src/rinex.rs |
RINEX 3.x NAV (IS-GPS-200, Galileo ICD (специфікація керування інтерфейсом), BeiDou ICD, GLONASS (глобальна навігаційна супутникова система Росії) ICD) | Мультисистемне надходження NAV (GPS LNAV (застаріле навігаційне повідомлення), Galileo F/NAV, QZSS (японська квазізенітна супутникова система), BeiDou MEO/IGSO (MEO: середня навколоземна орбіта; IGSO: нахилена геосинхронна орбіта), вектор стану GLONASS); можна використовувати як повноцінне джерело Propagator. |
| TLE / 3LE (дво-/трирядкові елементи) | читання | src/tle.rs |
NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 | Пропагується перевіреним за еталоном ядром SGP4/SDP4 (SDP4: Simplified Deep-space Perturbations 4) (4,12 mm проти 666 офіційних векторів AIAA). |
| RINEX 3.0x (спостереження) | читання | src/rinex_obs.rs |
RINEX 3.0x OBS (4,00 має розбиратися, але на файлі 4,00 ніколи не перевірявся) | Друга половина RINEX: власні записи коду/несівної/Доплера/SNR (SNR: відношення сигнал/шум) приймача (parse_obs). Це вхідні дані, які розв'язувач одноточкового позиціонування pvt споживає разом із навігаційним файлом бортового передавання (tests/pvt_abmf.rs, реальна станція IGS ABMF). |
| IONEX (IONosphere map EXchange format; глобальні карти TEC (повний електронний вміст)) | читання | src/ionex.rs |
IONEX 1.x (іоносферний продукт IGS) | parse_ionex зчитує глобальні сітки повного електронного вмісту IGS — виміряну альтернативу бортовій поправці Klobuchar — з білінійною просторовою та часовою інтерполяцією та відображенням нахилу до похилої затримки. |
IERS (Міжнародна служба обертання Землі та систем відліку) finals2000A / Bulletin B (орієнтація Землі) |
читання | src/eop.rs, src/frame_eop.rs |
IERS Conventions; IERS EOP (параметри орієнтації Землі) 14 C04 / finals2000A.all |
UT1 (всесвітній час 1, час обертання Землі)−UTC (всесвітній координований час) і полярний рух з офіційного продукту, включно з прогнозованими рядками, щоб зведення систем відліку можна було виконувати в реальному часі, а зростання похибки прогнозу закладати в бюджет (tests/operational_eop_predictor_reference.rs). |
| KIF (Kshana Interchange Format) | читання і запис | src/interchange.rs |
цей репозиторій — див. SCHEMA.md |
Нейтральна версіонована обгортка, у яку можна загорнути кожен артефакт: format / schema_version / kind / engine_version / payload, з явним вердиктом сумісності за мажорною й мінорною версією для споживача. Це не зовнішній стандарт; задокументовано тут, бо стороннє інструмент має його розпізнавати. |
| Місячний обмін LunaNet / IOAG (Interagency Operations Advisory Group) | запис (метадані часу також читаються) | src/lunar_interop.rs |
специфікація взаємодії LunaNet / архітектура місячного зв'язку IOAG, поверх CCSDS 502,0 | Місячна система відліку, місячна шкала часу та місячні ефемериди у формах CCSDS, узгоджених із LunaNet/IOAG (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), із перевіркою полів виданого OEM (tests/lunar_interoperability_export_reference.rs). |
| CZML (Cesium Language) | запис | src/interop/czml.rs |
формат пакетів CesiumJS CZML | Потік JSON (JavaScript Object Notation) пакетів із часовими мітками для глобуса CesiumJS; рухомі об'єкти записано в GCRS (INERTIAL). --export czml для будь-якого типу, що розміщує об'єкти на Землі. |
| KML (Keyhole Markup Language) | запис | src/interop/kml.rs |
OGC (Open Geospatial Consortium) KML 2,2 | Довгота, широта й висота в земній системі координат для Google Earth і ГІС (географічні інформаційні системи). --export kml. |
| GeoJSON | запис і читання (маршрут) | src/interop/geojson.rs |
IETF (Internet Engineering Task Force) RFC 7946 | Геометрія в земній системі координат для вебкарт і інструментів ГІС (--export geojson); LineString зчитується назад як вхідні дані прямолінійної траєкторії для типів, які її відтворюють (--import-route <route.geojson>). |
Ефемериди STK (.e, EphemerisTimePosVel) |
запис | src/interop/stk.rs |
формат файла ефемерид Ansys STK | Інерціальні (ICRF) положення й швидкість для STK та інструментів, які читають його формат ефемерид. --export stk. |
| SigMF (Signal Metadata Format) | читання і запис | src/sigmf.rs |
специфікація SigMF | Комплексні записи в базовій смузі плюс метадані JSON: тип spectrum записує свої синтезовані відліки синфазної та квадратурної складових (IQ) (--export sigmf) і читає запис через свій блок [recording]. |
| Текст навігаційного повідомлення LEO (у стилі RINEX-4 і CSV (значення, розділені комами)) | читання і запис | src/leo_navmsg/text.rs |
навігаційна структура RINEX 4, адаптована | Бортові ефемериди та годинник типу leo-navmsg для супутника низької навколоземної орбіти (LEO), експортовані та імпортовані назад; задокументована адаптація, а не зареєстрований тип повідомлення RINEX (MODELLED у матриці верифікації). |
Системи відліку та час#
Систему відліку, яку видає рушій, зазначено явно, а не неявно. Зведення за CIO (CIO: Celestial Intermediate Origin) IAU (Міжнародний астрономічний союз) 2006/2000A (src/cio.rs) і зведення TEME (true equator, mean equinox) за рівноденням/GMST (GMST: гринвіцький середній зоряний час) (src/frames.rs, src/nutation.rs) перевірено побітово за еталонними векторами SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) (див. VALIDATION.md).
| Кадр | Реалізація | Примітки |
|---|---|---|
| TEME | рідна для SGP4 | True equator, mean equinox — вихідна система відліку SGP4/SDP4. |
| GCRS (Geocentric Celestial Reference System) / J2000 | прецесія IAU 2006 + нутація IAU 2000A/2000B | teme_to_gcrs (ланцюг за рівноденням). |
| CIRS (Celestial Intermediate Reference System) | IAU 2006/2000A CIO (X, Y, s) | gcrs_to_cirs_matrix (eraC2ixys). |
| ITRS (International Terrestrial Reference System) / ECEF | ERA (кут обертання Землі) + полярний рух IERS (CIO) або GMST + полярний рух (рівнодення) | gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (рівнодення). |
| геодезична WGS-84 (WGS: World Geodetic System) | точна пряма + ітераційна обернена | ecef_to_geodetic / geodetic_to_ecef. |
| Шкала часу | Використання |
|---|---|
| TT (земний час) | Обчислення аргументів прецесії/нутації/CIO (jd_tt). |
| UT1 | Кут обертання Землі / GMST (jd_ut1). |
| Двочастинна JD (юліанська дата) | src/jd2.rs Jd2 для роздільності епохи нижче мікросекунди. |
Відповідність вихідних полів стандарту (CCSDS 502,0)#
Що саме два записувачі повідомлень про орбіту вносять у кожне поле CCSDS ODM (Orbit Data Messages, 502,0), за прогоном scenarios/orbit-sgp4-gps.toml з --export-oem і --export-omm:
| Вихід Kshana | Поле CCSDS ODM | Значення / одиниця |
|---|---|---|
| Метадані сегмента OEM | CENTER_NAME / REF_FRAME / TIME_SYSTEM |
EARTH / TEME / GPS — система відліку, в якій інтегрують пропагатори, і шкала часу сітки епох, без перейменування |
| Епоха стану OEM | перший стовпець кожного рядка даних | календарний час за ISO-8601 (ISO: Міжнародна організація зі стандартизації), шкала часу GPS |
| Положення та швидкість OEM | стовпці даних X Y Z X_DOT Y_DOT Z_DOT |
km, km/s |
| Метадані OMM | REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY |
TEME / UTC / SGP4 |
| Епоха OMM | EPOCH |
форма ISO-8601 із днем року (епоха TLE) |
| Середні елементи OMM | MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR |
оберт/добу, –, град., 1/радіус Землі |
JSON-результат (JavaScript Object Notation) типу ephemeris містить той самий стан в одиницях SI (Міжнародна система одиниць) на кожен відлік: jd_utc, teme_r_m / teme_v_m_s, gcrs_r_m / gcrs_v_m_s, ecef_r_m (m, m/s), плюс lat_deg, lon_deg, alt_km.
Чесні межі застосування#
- OEM, TDM, Space Packet, KIF, SigMF і текст навігаційного повідомлення LEO читаються і записуються; OMM, CZML, KML та ефемериди STK лише записуються (читання OMM і серіалізація XML — подальші роботи); GeoJSON записується і зчитується назад як маршрут; RINEX NAV, RINEX OBS, IONEX, продукти IERS EOP і TLE лише читаються; експорт LunaNet/IOAG для Місяця лише записується, а його метадані часу проходять круговий обмін без втрат.
INTEROP.mdперелічує, який експорт застосовний до кожного вбудованого сценарію. - Зіставлення полів CCSDS/IGS вище є документацією, а не твердженням, що будь-який стандарт виконано; формальна оцінка за цими стандартами (і реєстрація у відкритому каталозі ESA (European Space Agency, Європейське космічне агентство) ESSR (European Space Software Repository) / NASA (National Aeronautics and Space Administration)) відстежується окремо й очікує розгляду.
- Незалежна числова перехресна перевірка редукції систем відліку за допомогою SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — інструментарій планетарної геометрії на чистому Rust) міститься в окремому крейті
xval/anise-frames/, виключеному з робочого простору:gcrs_to_itrs_matrixпорівнюється з обертанням ANISE від GCRF (Geocentric Celestial Reference Frame) до ITRF93 (International Terrestrial Reference Frame 1993) на вісьмох епохах 2020–2023 і збігається до ≤ 0,86 м на земній поверхні та до ≤ 3,6 м на орбіті GNSS (див.VALIDATION.md). Вона потребує ядер SPICE, тому не є типовою перевіркою безперервної інтеграції (CI).