Машинний переклад, не перевірений носієм мови. Еталоном є англійська версія.

Валідація та доказиРедагувати на GitHubДжерело: docs/STANDARDS.md

Стандарти та сумісність

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).