Standarder och interoperabilitet
Kshana talar de standardiserade utbytesformaten hos GNSS-gemenskapen (global navigation satellite system), flygdynamik- och tidsgemenskaperna så att den kan fungera tillsammans med RTKLIB (ett bibliotek med öppen källkod för kinematisk positionering i realtid), gLAB, Ginan, GMAT (General Mission Analysis Tool), Orekit och verktygen hos IGS:s (International GNSS Service) analyscentra i stället för på en privat ö. Den här sidan kopplar de utbytesformat som motorn tolkar eller skriver ut till den modul som implementerar vart och ett och till den auktoritativa specifikationen.
Den är avgränsad till format — saker med en läs-/skrivriktning. De signal- och algoritmstandarder som motorn implementerar snarare än tolkar (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (tidigare Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), referensen från ARAIM (advanced receiver autonomous integrity monitoring) WG-C (WG: Working Group), CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)) belagda rad för rad i VERIFICATION-MATRIX.md i stället.
Format som motorn talar#
| Standard | Riktning | Modul | Specifikation / auktoritet | Anteckningar |
|---|---|---|---|---|
| CCSDS OEM (Orbit Ephemeris Message) | läsning och skrivning | src/oem.rs |
CCSDS 502.0-B Orbit Data Messages, i formen KVN (keyword-value notation) | Tabellerad tillståndsvektorefemerid som GMAT, Orekit och STK (Systems Tool Kit) tar in. parse_oem läser tillbaka den; validerad genom att återskapa det ordagranna Blue Book-exemplet CCSDS 502.0-B-3 Figure G-11 (tests/ccsds_reference.rs). Det valfria 6×6 kovariansblocket för position/hastighet (COVARIANCE_START … COVARIANCE_STOP, den 21 element stora KVN-serialiseringen av nedre triangeln med en valfri COV_REF_FRAME) både skrivs (covariance_block_kvn) och läses (parse_covariance_block), symmetriskt vid rundtur (tester i src/oem.rs). |
| CCSDS OMM (Orbit Mean-Elements Message) | skriva | src/omm.rs |
CCSDS 502.0-B-2, i formen KVN | Publikation i standardspåret av SGP4/TLE (SGP4: Simplified General Perturbations 4; TLE: tvåradig elementuppsättning) medelelement (medelrörelse, e, i, Ω, ω, M, BSTAR (dragtermen i banpropagatorn)). Nåbar från CLI (CLI: kommandoradsgränssnitt) på ett scenario orbit via --export-omm <out.omm> eller export_omm = true (en OMM per TLE-definierad satellit, med dess verkliga NORAD-id (North American Aerospace Defense Command), COSPAR-beteckning (Committee on Space Research) och epok; tests/sp3_export_roundtrip.rs). Formen XML (Extensible Markup Language) och en läsare är uppföljningar. |
| CCSDS TDM (Tracking Data Message) | läsning och skrivning | src/ccsds_tdm.rs |
CCSDS 503.0-B Tracking Data Message, i formen KVN | Avstånds-, doppler- och vinkelspårningsposter som en DSN/ESTRACK-överflygning (ESTRACK: European Space Tracking network) levererar till ett OD-system (banbestämning). Validerad genom att återskapa det ordagranna Blue Book-exemplet CCSDS 503.0-B-2 Figure E-9 (tests/ccsds_reference.rs). |
| CCSDS Space Packet (133,0) | läsning och skrivning | src/space_packet.rs |
CCSDS 133.0-B-2 Space Packet Protocol | Ramningen av 6-oktetters TM/TC-primärhuvud (TM: telemetri; TC: telekommando) som markssystem utbyter. Kodaren återger de publicerade testvektorerna på bytenivå från det oberoende biblioteket spacepackets-py (tester i src/space_packet.rs). |
| SP3-c (SP3: Standard Product 3, formatet för precisa banor) / SP3-d (precis efemerid) | läsning och skrivning | src/sp3.rs |
IGS Standard Product 3 (c/d) | Jordfast (ECEF) position + klocktidsserie. Rundtur validerad till < 0,5 m på en verklig ögonblicksbild av gps-ops (tests/sp3_export_roundtrip.rs). |
| RINEX (Receiver Independent Exchange Format) 3 (sänd navigering) | läsa | src/rinex.rs |
RINEX 3.x NAV (IS-GPS-200, Galileo ICD (interface control document), BeiDou ICD, GLONASS (Rysslands globala satellitnavigeringssystem) ICD) | Multi-GNSS-NAV-inläsning (GPS LNAV (legacy navigation message), Galileo F/NAV, QZSS (Japans Quasi-Zenith Satellite System), BeiDou MEO/IGSO (MEO: medelhög jordbana; IGSO: inklinerad geosynkron bana), GLONASS-tillståndsvektor); användbar som en förstklassig källa för Propagator. |
| TLE / 3LE (två-/trerads elementuppsättningar) | läsa | src/tle.rs |
NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 | Propagerade av den validerade SGP4/SDP4-kärnan (SDP4: Simplified Deep-space Perturbations 4) (4,12 mm mot de 666 officiella AIAA-vektorerna). |
| RINEX 3.0x (observation) | läsa | src/rinex_obs.rs |
RINEX 3.0x OBS (4,00 förväntas kunna tolkas, men har aldrig prövats på en fil av version 4,00) | Den andra hälften av RINEX: mottagarens egna kod-/bärvågs-/Doppler-/SNR-poster (SNR: signal-brusförhållande) (parse_obs). Detta är indata som lösaren för enkelpunktspositionering pvt förbrukar tillsammans med den sända navigeringsfilen (tests/pvt_abmf.rs, verklig IGS-station ABMF). |
| IONEX (IONosphere map EXchange format; globala TEC-kartor (total electron content)) | läsa | src/ionex.rs |
IONEX 1.x (IGS-jonosfärsprodukt) | parse_ionex läser IGS globala rutnät för total elektroninnehåll — det uppmätta alternativet till den sända Klobuchar-korrektionen — med bilinjär rumslig och tidsmässig interpolation och snedställningsfaktorn till sned fördröjning. |
IERS (International Earth Rotation and Reference Systems Service) finals2000A / Bulletin B (jordorientering) |
läsa | src/eop.rs, src/frame_eop.rs |
IERS Conventions; IERS EOP (Earth orientation parameters) 14 C04 / finals2000A.all |
UT1 (Universal Time 1, jordrotationstid)−UTC (Coordinated Universal Time) och polrörelse från den officiella produkten, inklusive de förutsagda raderna, så att systemreduktionen kan köras i realtid och dess prediktionsfelstillväxt budgeteras (tests/operational_eop_predictor_reference.rs). |
| KIF (Kshana Interchange Format) | läsning och skrivning | src/interchange.rs |
det här repot — se SCHEMA.md |
Det neutrala, versionerade höljet som varje artefakt kan lindas in i: format / schema_version / kind / engine_version / payload, med ett explicit major-minor-kompatibilitetsutfall för en konsument. Inte en extern standard; dokumenterad här eftersom ett främmande verktyg måste känna igen den. |
| LunaNet / IOAG (Interagency Operations Advisory Group) månutbyte | skrivning (tidsmetadata läses också) | src/lunar_interop.rs |
LunaNet-interoperabilitetsspecifikation / IOAG:s arkitektur för månkommunikation, över CCSDS 502,0 | Månsystemet, månens tidsskala och månefemeriden som skrivs ut i LunaNet/IOAG-anpassade CCSDS-former (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), med en fältkontroll av den utskrivna OEM (tests/lunar_interoperability_export_reference.rs). |
| CZML (Cesium Language) | skriva | src/interop/czml.rs |
CesiumJS CZML-paketformat | En JSON-ström (JavaScript Object Notation) av tidsmärkta paket för CesiumJS-globen; rörliga objekt skrivs i GCRS (INERTIAL). --export czml på varje typ som placerar objekt på Jorden. |
| KML (Keyhole Markup Language) | skriva | src/interop/kml.rs |
OGC (Open Geospatial Consortium) KML 2,2 | Jordfast longitud, latitud och höjd för Google Earth och GIS-verktyg (geografiskt informationssystem). --export kml. |
| GeoJSON | skrivning och läsning (rutt) | src/interop/geojson.rs |
IETF (Internet Engineering Task Force) RFC 7946 | Jordfast geometri för webbkartor och GIS-verktyg (--export geojson); en LineString läses tillbaka som indata för rak bana till de typer som flyger en (--import-route <route.geojson>). |
STK-efemerid (.e, EphemerisTimePosVel) |
skriva | src/interop/stk.rs |
Ansys STK-efemeridformat | Inertial (ICRF) position och hastighet för STK och verktyg som läser dess efemeridformat. --export stk. |
| SigMF (Signal Metadata Format) | läsning och skrivning | src/sigmf.rs |
SigMF-specifikation | Komplexa basbandsinspelningar plus JSON-metadata: typen spectrum skriver sina syntetiserade IQ-sampel (in-phase/quadrature) (--export sigmf) och läser en inspelning genom sitt block [recording]. |
| Text för LEO-navigationsmeddelande (RINEX 4-liknande och CSV (kommaseparerade värden)) | läsning och skrivning | src/leo_navmsg/text.rs |
Navigationslayout från RINEX 4, anpassad | Den sända efemeriden och klockan från typen leo-navmsg för en LEO-satellit (låg jordbana), exporterad och återinläst; en dokumenterad anpassning, inte en registrerad RINEX-meddelandetyp (MODELLED i verifieringsmatrisen). |
Referenssystem och tid#
Det system motorn skriver ut är explicit, inte implicit. Den CIO-baserade (CIO: Celestial Intermediate Origin) reduktionen enligt IAU (International Astronomical Union) 2006/2000A (src/cio.rs) och reduktionen för ekvinox/GMST (GMST: Greenwich mean sidereal time) TEME (true equator, mean equinox) (src/frames.rs, src/nutation.rs) är validerade bit för bit mot referensvektorerna från SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) (se VALIDATION.md).
| Ram | Realisering | Anteckningar |
|---|---|---|
| TEME | SGP4 nativt | True equator, mean equinox — utdatasystemet för SGP4/SDP4. |
| GCRS (Geocentric Celestial Reference System) / J2000 | Precession enligt IAU 2006 + nutation enligt IAU 2000A/2000B | teme_to_gcrs (ekvinoxkedjan). |
| CIRS (Celestial Intermediate Reference System) | IAU 2006/2000A CIO (X, Y, s) | gcrs_to_cirs_matrix (eraC2ixys). |
| ITRS (International Terrestrial Reference System) / ECEF | ERA (Earth rotation angle) + IERS polrörelse (CIO) eller GMST + polrörelse (ekvinox) | gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (ekvinox). |
| WGS-84 (WGS: World Geodetic System) geodetisk | exakt + iterativ invers | ecef_to_geodetic / geodetic_to_ecef. |
| Tidsskala | Användning |
|---|---|
| TT (Terrestrial Time) | Utvärdering av argument för precession/nutation/CIO (jd_tt). |
| UT1 | Jordrotationsvinkel / GMST (jd_ut1). |
| Tvådelat JD (Julianskt datum) | src/jd2.rs Jd2 för epokupplösning under µs. |
Utdatafält → standardmappning (CCSDS 502,0)#
Vad de två banmeddelandeskrivarna lägger i varje CCSDS ODM-fält (Orbit Data Messages, 502,0), avläst från en körning av scenarios/orbit-sgp4-gps.toml med --export-oem och --export-omm:
| Kshana-utdata | CCSDS ODM-fält | Värde / enhet |
|---|---|---|
| OEM-segmentmetadata | CENTER_NAME / REF_FRAME / TIME_SYSTEM |
EARTH / TEME / GPS — det system som propagatorerna integrerar i och tidsskalan för epokrastret, inte omdöpt |
| OEM-tillståndsepok | första kolumnen på varje datarad | ISO-8601 (ISO: International Organization for Standardization) kalendertid, GPS-tidsskala |
| OEM-position, hastighet | datakolumner X Y Z X_DOT Y_DOT Z_DOT |
km, km/s |
| OMM-metadata | REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY |
TEME / UTC / SGP4 |
| OMM-epok | EPOCH |
ISO-8601 i formen dag på året (TLE-epoken) |
| OMM-medelelement | MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR |
rev/dag, –, deg, 1/jordradier |
JSON-resultatet (JavaScript Object Notation) från typen ephemeris bär samma tillstånd i SI-enheter (International System of Units) per sampel: 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.
Ärligt omfång#
- OEM, TDM, Space Packet, KIF, SigMF och LEO-navigationsmeddelandetexten är läs och skriv; OMM, CZML, KML och STK-efemerid är skrivare (en OMM-läsare och XML-serialiseringen är uppföljningar); GeoJSON skrivs och läses tillbaka som en rutt; RINEX NAV, RINEX OBS, IONEX, IERS EOP-produkterna och TLE är läsare; LunaNet/IOAG-månexporten är en skrivare vars tidsmetadata gör rundtur.
INTEROP.mdanger vilken export som gäller för varje medföljande scenario. - Fältmappningen mellan CCSDS och IGS ovan är dokumentation, inte ett påstående att någon standard uppfylls; formell bedömning mot dessa standarder (och registrering i den öppna katalogen hos ESA (European Space Agency) ESSR (European Space Software Repository) / NASA (National Aeronautics and Space Administration)) spåras separat och väntar på granskning.
- Den oberoende numeriska korskontrollen med SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — ett planetgeometriverktyg i ren Rust) av systemreduktionen levereras i den fristående, från arbetsytan uteslutna craten
xval/anise-frames/:gcrs_to_itrs_matrixmot ANISE:s rotation GCRF (Geocentric Celestial Reference Frame) → ITRF93 (International Terrestrial Reference Frame 1993) över åtta epoker 2020–2023 stämmer till ≤ 0,86 m på marken och ≤ 3,6 m vid GNSS-bana (seVALIDATION.md). Den behöver SPICE-kernlar, så den är inte en standardgrind för kontinuerlig integrering (CI).