Normy a interoperabilita
Kshana mluví standardními výměnnými formáty komunit GNSS (globálního družicového navigačního systému), letové dynamiky a časování, takže může stát vedle RTKLIB (open-source knihovny pro kinematické určování polohy v reálném čase), gLAB, Ginan, GMAT (General Mission Analysis Tool), Orekit a nástrojů analytických center IGS (International GNSS Service), a nikoli na soukromém ostrově. Tato stránka mapuje výměnné formáty, které engine parsuje nebo vydává, na modul, který každý z nich implementuje, a na autoritativní specifikaci.
Je vymezena na formáty — věci se směrem čtení/zápisu. Signálové a algoritmické normy, které engine implementuje, nikoli parsuje (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (dříve Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), reference ARAIM (pokročilé autonomní monitorování integrity přijímačem) WG-C (WG: pracovní skupina), CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)), jsou doloženy řádek po řádku místo toho v VERIFICATION-MATRIX.md.
Formáty, kterými engine mluví#
| Norma | Směr | Modul | Specifikace / autorita | Poznámky |
|---|---|---|---|---|
| CCSDS OEM (Orbit Ephemeris Message) | čtení i zápis | src/oem.rs |
CCSDS 502.0-B Orbit Data Messages, forma KVN (zápis klíč–hodnota) | Tabelární efemeridy stavových vektorů, které přijímají GMAT, Orekit, STK (Systems Tool Kit). parse_oem je čte zpět; ověřeno obnovením doslovného příkladu z Blue Book CCSDS 502.0-B-3, obrázek G-11 (tests/ccsds_reference.rs). Nepovinný kovarianční blok polohy/rychlosti 6×6 (COVARIANCE_START … COVARIANCE_STOP, serializace KVN dolního trojúhelníku o 21 prvcích s nepovinným COV_REF_FRAME) se zapisuje (covariance_block_kvn) i čte (parse_covariance_block), zpáteční převod je symetrický (testy src/oem.rs). |
| CCSDS OMM (Orbit Mean-Elements Message) | zápis | src/omm.rs |
CCSDS 502.0-B-2, forma KVN | Publikace středních elementů SGP4/TLE na standardní dráze (SGP4: Simplified General Perturbations 4; TLE: dvouřádková sada elementů) (střední pohyb, e, i, Ω, ω, M, BSTAR (člen odporu orbitálního propagátoru)). Dosažitelné z CLI (CLI: rozhraní příkazové řádky) u scénáře orbit přes --export-omm <out.omm> nebo export_omm = true (jeden OMM na každou družici definovanou TLE, s jejím skutečným identifikátorem NORAD (North American Aerospace Defense Command), označením COSPAR (Committee on Space Research) a epochou; tests/sp3_export_roundtrip.rs). Forma XML (Extensible Markup Language) a čtečka jsou na řadě později. |
| CCSDS TDM (Tracking Data Message) | čtení i zápis | src/ccsds_tdm.rs |
CCSDS 503.0-B Tracking Data Message, forma KVN | Záznamy sledování vzdálenosti / Dopplera / úhlu, které přelet nad DSN/ESTRACK (ESTRACK: evropská síť pro sledování kosmických těles) dodává systému OD (určování oběžné dráhy). Ověřeno obnovením doslovného příkladu z Blue Book CCSDS 503.0-B-2, obrázek E-9 (tests/ccsds_reference.rs). |
| CCSDS Space Packet (133,0) | čtení i zápis | src/space_packet.rs |
CCSDS 133.0-B-2 Space Packet Protocol | Rámování primární hlavičky TM/TC (TM: telemetrie; TC: telekomando) o 6 oktetech, které si vyměňují pozemní systémy. Kodér reprodukuje publikované bajtové testovací vektory nezávislé knihovny spacepackets-py (testy src/space_packet.rs). |
| SP3-c (SP3: Standard Product 3, formát přesných drah) / SP3-d (přesné efemeridy) | čtení i zápis | src/sp3.rs |
IGS Standard Product 3 (c/d) | Časová řada polohy v zemském pevném systému (ECEF) + času hodin. Zpáteční převod ověřen na < 0,5 m na skutečném snímku gps-ops (tests/sp3_export_roundtrip.rs). |
| RINEX (Receiver Independent Exchange Format) 3 (broadcast navigace) | čtení | src/rinex.rs |
RINEX 3.x NAV (IS-GPS-200, Galileo ICD (interface control document), BeiDou ICD, GLONASS (ruský globální družicový navigační systém) ICD) | Načítání multi-GNSS NAV (GPS LNAV (starší navigační zpráva), Galileo F/NAV, QZSS (japonský kvazizenitální družicový systém), BeiDou MEO/IGSO (MEO: střední oběžná dráha Země; IGSO: nakloněná geosynchronní dráha), stavový vektor GLONASS); použitelné jako plnohodnotný zdroj pro Propagator. |
| TLE / 3LE (dvouřádkové / třířádkové elementy) | čtení | src/tle.rs |
NORAD / Celestrak, AIAA (Americký institut pro letectví a kosmonautiku) 2006-6753 | Propagováno ověřeným jádrem SGP4/SDP4 (SDP4: zjednodušené poruchy v hlubokém vesmíru 4) (4,12 mm oproti 666 oficiálním vektorům AIAA). |
| RINEX 3.0x (observační) | čtení | src/rinex_obs.rs |
RINEX 3.0x OBS (4,00 se očekává jako zpracovatelný, na souboru 4,00 nikdy nevyzkoušeno) | Druhá polovina RINEX: vlastní záznamy kódu, nosné, Dopplera a SNR (SNR: poměr signálu k šumu) přijímače (parse_obs). Je to vstup, který řešič určení polohy z jednoho bodu pvt zpracovává spolu s vysílaným navigačním souborem (tests/pvt_abmf.rs, skutečná stanice IGS ABMF). |
| IONEX (formát pro výměnu map ionosféry; globální mapy TEC (celkový obsah elektronů)) | čtení | src/ionex.rs |
IONEX 1.x (produkt IGS o ionosféře) | parse_ionex čte globální mřížky celkového obsahu elektronů IGS — měřenou alternativu k vysílané Klobucharově korekci — s bilineární prostorovou a časovou interpolací a převodem šikmosti na zpoždění v šikmém směru. |
IERS (Mezinárodní služba rotace Země a referenčních systémů) finals2000A / Bulletin B (orientace Země) |
čtení | src/eop.rs, src/frame_eop.rs |
Konvence IERS; IERS EOP (parametry orientace Země) 14 C04 / finals2000A.all |
UT1 (světový čas 1, čas rotace Země)−UTC (koordinovaný světový čas) a pohyb pólu z oficiálního produktu včetně předpovězených řádků, takže redukci soustavy lze provést v reálném čase a růst chyby předpovědi lze rozpočtovat (tests/operational_eop_predictor_reference.rs). |
| KIF (Kshana Interchange Format) | čtení i zápis | src/interchange.rs |
tento repozitář — viz SCHEMA.md |
Neutrální, verzovaná obálka, do které lze zabalit libovolný artefakt: format / schema_version / kind / engine_version / payload, s výslovným verdiktem o kompatibilitě hlavní a vedlejší verze pro spotřebitele. Nejde o externí standard; je zde popsána, protože ji cizí nástroj musí rozpoznat. |
| lunární výměna LunaNet / IOAG (Poradní skupina pro meziagenturní operace) | zápis (časová metadata se rovněž čtou) | src/lunar_interop.rs |
specifikace interoperability LunaNet / architektura lunární komunikace IOAG nad CCSDS 502,0 | Lunární soustava, lunární časová stupnice a lunární efemeridy vydávané ve formách CCSDS slaďovaných s LunaNet/IOAG (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), s kontrolou polí na vydaném OEM (tests/lunar_interoperability_export_reference.rs). |
| CZML (Cesium Language) | zápis | src/interop/czml.rs |
formát paketů CZML pro CesiumJS | Proud JSON (JavaScript Object Notation) časově označených paketů pro globus CesiumJS; pohybující se objekty zapsané v GCRS (INERTIAL). --export czml u každého druhu, který umisťuje objekty na Zemi. |
| KML (Keyhole Markup Language) | zápis | src/interop/kml.rs |
OGC (Open Geospatial Consortium) KML 2,2 | Zeměpisná délka, šířka a výška vázané na Zemi pro Google Earth a nástroje GIS (geografický informační systém). --export kml. |
| GeoJSON | zápis i čtení (trasa) | src/interop/geojson.rs |
IETF (Internet Engineering Task Force) RFC 7946 | Geometrie vázaná na Zemi pro webové mapy a nástroje GIS (--export geojson); LineString se čte zpět jako vstup přímé trati pro druhy, které ji létají (--import-route <route.geojson>). |
Efemeridy STK (.e, EphemerisTimePosVel) |
zápis | src/interop/stk.rs |
formát souboru efemerid Ansys STK | Inerciální (ICRF) poloha a rychlost pro STK a nástroje, které čtou jeho formát efemerid. --export stk. |
| SigMF (Signal Metadata Format) | čtení i zápis | src/sigmf.rs |
specifikace SigMF | Komplexní záznamy v základním pásmu plus metadata JSON: druh spectrum zapisuje své syntetizované vzorky IQ (in-phase/quadrature) (--export sigmf) a záznam čte přes blok [recording]. |
| Text navigační zprávy LEO (ve stylu RINEX-4 a CSV (hodnoty oddělené čárkami)) | čtení i zápis | src/leo_navmsg/text.rs |
rozvržení navigační zprávy RINEX 4, upravené | Vysílané efemeridy a hodiny druhu leo-navmsg pro družici na nízké oběžné dráze Země (LEO), exportované a znovu importované; zdokumentovaná úprava, nikoli registrovaný typ zprávy RINEX (MODELLED ve verifikační matici). |
Referenční soustavy a čas#
Soustava, kterou engine vydává, je explicitní, nikoli implicitní. Redukce IAU (Mezinárodní astronomická unie) 2006/2000A založená na CIO (CIO: Celestial Intermediate Origin, nebeský střední počátek) (src/cio.rs) a redukce TEME (rovník okamžitý, rovnodennost střední) založená na rovnodennosti/GMST (GMST: greenwichský střední hvězdný čas) (src/frames.rs, src/nutation.rs) jsou ověřeny bit po bitu proti referenčním vektorům SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) (viz VALIDATION.md).
| Rámec | Realizace | Poznámky |
|---|---|---|
| TEME | nativní pro SGP4 | Rovník okamžitý, rovnodennost střední — výstupní soustava SGP4/SDP4. |
| GCRS (geocentrická nebeská referenční soustava) / J2000 | precese IAU 2006 + nutace IAU 2000A/2000B | teme_to_gcrs (řetězec přes rovnodennost). |
| CIRS (nebeská střední referenční soustava) | IAU 2006/2000A CIO (X, Y, s) | gcrs_to_cirs_matrix (eraC2ixys). |
| ITRS (Mezinárodní pozemní referenční systém) / ECEF | ERA (úhel rotace Země) + pohyb pólu IERS (CIO) nebo GMST + pohyb pólu (rovnodennost) | gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (rovnodennost). |
| geodetické WGS-84 (WGS: World Geodetic System) | přesná + iterativní inverze | ecef_to_geodetic / geodetic_to_ecef. |
| Časová stupnice | Použití |
|---|---|
| TT (pozemský čas) | Vyhodnocení argumentu precese/nutace/CIO (jd_tt). |
| UT1 | Úhel rotace Země / GMST (jd_ut1). |
| Dvoudílné JD (juliánské datum) | src/jd2.rs Jd2 pro rozlišení epochy pod µs. |
Mapování výstupních polí na standard (CCSDS 502,0)#
Co oba zapisovače orbitálních zpráv ukládají do jednotlivých polí CCSDS ODM (Orbit Data Messages, 502,0), čteno z běhu scenarios/orbit-sgp4-gps.toml s --export-oem a --export-omm:
| Výstup Kshana | Pole CCSDS ODM | Hodnota / jednotka |
|---|---|---|
| Metadata segmentu OEM | CENTER_NAME / REF_FRAME / TIME_SYSTEM |
EARTH / TEME / GPS — soustava, ve které propagátory integrují, a časová stupnice mřížky epoch, bez přejmenování |
| Epocha stavu OEM | první sloupec každého datového řádku | kalendářní čas ISO-8601 (ISO: Mezinárodní organizace pro normalizaci), časová stupnice GPS |
| Poloha a rychlost OEM | datové sloupce X Y Z X_DOT Y_DOT Z_DOT |
km, km/s |
| Metadata OMM | REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY |
TEME / UTC / SGP4 |
| Epocha OMM | EPOCH |
tvar ISO-8601 s dnem v roce (epocha TLE) |
| Střední elementy OMM | MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR |
obrátky/den, –, deg, 1/poloměr Země |
Výsledek JSON (JavaScript Object Notation) druhu ephemeris nese týž stav v jednotkách SI (mezinárodní soustava jednotek) pro každý vzorek: jd_utc, teme_r_m / teme_v_m_s, gcrs_r_m / gcrs_v_m_s, ecef_r_m (m, m/s), plus lat_deg, lon_deg, alt_km.
Poctivý rozsah#
- OEM, TDM, Space Packet, KIF, SigMF a text navigační zprávy LEO se čtou i zapisují; OMM, CZML, KML a efemeridy STK jsou zapisovače (čtečka OMM a serializace XML jsou navazující kroky); GeoJSON se zapisuje a čte zpět jako trasa; RINEX NAV, RINEX OBS, IONEX, produkty IERS EOP a TLE jsou čtečky; lunární export LunaNet/IOAG je zapisovač, jehož časová metadata se při zpětném čtení shodují.
INTEROP.mduvádí, který export platí pro každý přibalený scénář. - Mapování polí CCSDS/IGS výše je dokumentace, nikoli tvrzení, že je některý standard splněn; formální posouzení vůči těmto standardům (a registrace v otevřeném katalogu ESA (Evropská kosmická agentura) ESSR (European Space Software Repository) / NASA (Národní úřad pro letectví a kosmonautiku)) se vede zvlášť a čeká na posouzení.
- Nezávislá numerická křížová kontrola redukce soustavy pomocí SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — čistě rustový nástroj pro planetární geometrii) je dodávána v samostatném crate
xval/anise-frames/vyloučeném z workspace:gcrs_to_itrs_matrixproti rotaci GCRF (geocentrická nebeská referenční soustava) → ITRF93 (Mezinárodní pozemní referenční soustava 1993) z ANISE přes osm epoch 2020–2023 souhlasí do ≤ 0,86 m na zemi a do ≤ 3,6 m na oběžné dráze GNSS (vizVALIDATION.md). Vyžaduje jádra SPICE, takže není výchozí branou kontinuální integrace (CI).