Standarder og interoperabilitet
Kshana snakker de standard utvekslingsformatene til miljøene for GNSS (globalt navigasjonssatellittsystem), flydynamikk og tidssynkronisering, slik at det kan stå sammen med RTKLIB (et åpen kildekode-bibliotek for sanntids kinematisk posisjonering), gLAB, Ginan, GMAT (General Mission Analysis Tool), Orekit og verktøyene til analysesentrene i IGS (International GNSS Service) i stedet for på en privat øy. Denne siden kobler utvekslingsformatene motoren leser eller skriver til modulen som implementerer hvert av dem og til den autoritative spesifikasjonen.
Den er avgrenset til formater — ting med en lese- og skriveretning. Signal- og algoritmestandardene motoren implementerer i stedet for å lese (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (tidligere Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), ARAIM-referansen (advanced receiver autonomous integrity monitoring) WG-C (WG: Working Group), CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)) dokumenteres rad for rad i VERIFICATION-MATRIX.md i stedet.
Formater motoren snakker#
| Standard | Retning | Modul | Spesifikasjon / myndighet | Merknader |
|---|---|---|---|---|
| CCSDS OEM (Orbit Ephemeris Message) | leser og skriver | src/oem.rs |
CCSDS 502.0-B Orbit Data Messages, KVN-form (nøkkel-verdi-notasjon) | Tabulert tilstandsvektorefemeride som leses inn av GMAT, Orekit og STK (Systems Tool Kit). parse_oem leser den tilbake; validert ved å gjenskape det ordrette eksempelet i CCSDS 502.0-B-3 Figure G-11 Blue Book (tests/ccsds_reference.rs). Den valgfrie 6×6 kovariansblokken for posisjon/hastighet (COVARIANCE_START … COVARIANCE_STOP, den KVN-serialiseringen med 21 elementer i nedre trekant med en valgfri COV_REF_FRAME) både skrives (covariance_block_kvn) og leses (parse_covariance_block), rundtursymmetrisk (tester i src/oem.rs). |
| CCSDS OMM (Orbit Mean-Elements Message) | skriv | src/omm.rs |
CCSDS 502.0-B-2, KVN-form | Standardsporpublikasjon av middelelementene til SGP4/TLE (SGP4: Simplified General Perturbations 4; TLE: tolinjers elementsett) (middelbevegelse, e, i, Ω, ω, M, BSTAR (dragleddet i banepropagatoren)). Tilgjengelig fra CLI (kommandolinjegrensesnitt) på et orbit-scenario via --export-omm <out.omm> eller export_omm = true (én OMM per TLE-definert satellitt, med sin virkelige NORAD-id (North American Aerospace Defense Command), COSPAR-betegnelse (Committee on Space Research) og epoke; tests/sp3_export_roundtrip.rs). XML-form (Extensible Markup Language) og en leser er oppfølgere. |
| CCSDS TDM (Tracking Data Message) | leser og skriver | src/ccsds_tdm.rs |
CCSDS 503.0-B Tracking Data Message, KVN-form | Sporingsposter for avstand / Doppler / vinkel som en DSN/ESTRACK-passering (ESTRACK: European Space Tracking network) leverer til et OD-system (banebestemmelse). Validert ved å gjenskape det ordrette eksempelet i CCSDS 503.0-B-2 Figure E-9 Blue Book (tests/ccsds_reference.rs). |
| CCSDS Space Packet (133,0) | leser og skriver | src/space_packet.rs |
CCSDS 133.0-B-2 Space Packet Protocol | Rammeinndelingen med 6 oktetters primærhode for TM/TC (TM: telemetri; TC: telekommando) som bakkesystemer utveksler. Koderen gjenskaper de publiserte testvektorene på bytenivå fra det uavhengige biblioteket spacepackets-py (tester i src/space_packet.rs). |
| SP3-c (SP3: Standard Product 3, formatet for presise baner) / SP3-d (presis efemeride) | leser og skriver | src/sp3.rs |
IGS Standard Product 3 (c/d) | Tidsserie for jordfaste (ECEF) posisjoner og klokketid. Validert ved rundtur til < 0,5 m på et ekte gps-ops-øyeblikksbilde (tests/sp3_export_roundtrip.rs). |
| RINEX (Receiver Independent Exchange Format) 3 (kringkastet navigasjon) | les | src/rinex.rs |
RINEX 3.x NAV (IS-GPS-200, Galileo ICD (interface control document), BeiDou ICD, GLONASS ICD (Russlands globale navigasjonssatellittsystem)) | Multi-GNSS NAV-innlesing (GPS LNAV (legacy navigation message), Galileo F/NAV, QZSS (Japans Quasi-Zenith Satellite System), BeiDou MEO/IGSO (MEO: middels jordbane; IGSO: skråstilt geosynkron bane), GLONASS-tilstandsvektor); kan brukes som en førsteklasses Propagator-kilde. |
| TLE / 3LE (to-/trelinjers elementer) | les | src/tle.rs |
NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 | Propagert av den validerte SGP4/SDP4-kjernen (SDP4: Simplified Deep-space Perturbations 4) (4,12 mm mot de 666 offisielle AIAA-vektorene). |
| RINEX 3.0x (observasjon) | les | src/rinex_obs.rs |
RINEX 3.0x OBS (4,00 forventes å kunne leses, aldri prøvd på en 4,00-fil) | Den andre halvdelen av RINEX: mottakerens egne kode-/bærebølge-/Doppler-/SNR-poster (SNR: signal-til-støy-forhold) (parse_obs). Dette er inndataene som enkeltpunktsløseren pvt bruker sammen med den kringkastede navigasjonsfilen (tests/pvt_abmf.rs, ekte IGS-stasjon ABMF). |
| IONEX (IONosphere map EXchange format; globale TEC-kart (total elektroninnhold)) | les | src/ionex.rs |
IONEX 1.x (IGS-ionosfæreprodukt) | parse_ionex leser IGS' globale rutenett for totalt elektroninnhold — det målte alternativet til den kringkastede Klobuchar-korreksjonen — med bilineær interpolasjon i rom og tid og skråstillingsavbildningen til skrå forsinkelse. |
IERS (International Earth Rotation and Reference Systems Service) finals2000A / Bulletin B (jordorientering) |
les | src/eop.rs, src/frame_eop.rs |
IERS Conventions; IERS EOP (jordorienteringsparametere) 14 C04 / finals2000A.all |
UT1 (Universal Time 1, jordrotasjonstid)−UTC (koordinert universaltid) og polbevegelse fra det offisielle produktet, inkludert de predikerte radene, slik at referansesystemreduksjonen kan kjøres i sanntid og veksten i prediksjonsfeilen budsjetteres (tests/operational_eop_predictor_reference.rs). |
| KIF (Kshana Interchange Format) | leser og skriver | src/interchange.rs |
dette repositoriet — se SCHEMA.md |
Den nøytrale, versjonerte konvolutten alle artefakter kan pakkes inn i: format / schema_version / kind / engine_version / payload, med en eksplisitt major-minor-kompatibilitetsavgjørelse for en forbruker. Ikke en ekstern standard; dokumentert her fordi et fremmed verktøy må kunne kjenne den igjen. |
| LunaNet / IOAG (Interagency Operations Advisory Group) månedatautveksling | skriver (tidsmetadata leses også) | src/lunar_interop.rs |
LunaNet-interoperabilitetsspesifikasjonen / IOAGs arkitektur for månekommunikasjon, over CCSDS 502,0 | Månereferansesystemet, månetidsskalaen og månefemeriden skrevet ut i LunaNet/IOAG-tilpassede CCSDS-former (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), med en feltkontroll av den utskrevne OEM-en (tests/lunar_interoperability_export_reference.rs). |
| CZML (Cesium Language) | skriv | src/interop/czml.rs |
CesiumJS CZML-pakkeformat | En JSON-strøm (JavaScript Object Notation) av tidsmerkede pakker for CesiumJS-globusen; bevegelige objekter skrevet i GCRS (INERTIAL). --export czml på enhver type som plasserer objekter på jorden. |
| KML (Keyhole Markup Language) | skriv | src/interop/kml.rs |
OGC (Open Geospatial Consortium) KML 2,2 | Jordfast lengdegrad, breddegrad og høyde for Google Earth og GIS-verktøy (geografisk informasjonssystem). --export kml. |
| GeoJSON | skriver og leser (rute) | src/interop/geojson.rs |
IETF (Internet Engineering Task Force) RFC 7946 | Jordfast geometri for nettkart og GIS-verktøy (--export geojson); en LineString leses tilbake som den rette sporinndataen til typene som flyr en slik (--import-route <route.geojson>). |
STK-efemeride (.e, EphemerisTimePosVel) |
skriv | src/interop/stk.rs |
Ansys STK-efemeridefilformat | Inertiell (ICRF) posisjon og hastighet for STK og verktøy som leser dets efemeridformat. --export stk. |
| SigMF (Signal Metadata Format) | leser og skriver | src/sigmf.rs |
SigMF-spesifikasjonen | Komplekse basebåndopptak pluss JSON-metadata: typen spectrum skriver sine syntetiserte IQ-sampler (in-phase/quadrature) (--export sigmf) og leser et opptak gjennom [recording]-blokken sin. |
| Tekst for LEO-navigasjonsmelding (RINEX-4-aktig og CSV (kommaseparerte verdier)) | leser og skriver | src/leo_navmsg/text.rs |
RINEX 4-navigasjonsoppsett, tilpasset | Typen leo-navmsg sin kringkastede efemeride og klokke for en satellitt i lav jordbane (LEO), eksportert og importert på nytt; en dokumentert tilpasning, ikke en registrert RINEX-meldingstype (MODELLED i verifikasjonsmatrisen). |
Referansesystemer og tid#
Referansesystemet motoren skriver ut er eksplisitt, ikke implisitt. Den CIO-baserte (CIO: Celestial Intermediate Origin) IAU-reduksjonen (International Astronomical Union) 2006/2000A (src/cio.rs) og ekvinoks/GMST-reduksjonen (GMST: Greenwich mean sidereal time) TEME (true equator, mean equinox) (src/frames.rs, src/nutation.rs) er validert bit for bit mot referansevektorene fra SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) (se VALIDATION.md).
| Ramme | Realisering | Merknader |
|---|---|---|
| TEME | SGP4 nativt | Sann ekvator, middels ekvinoks — utdatasystemet til SGP4/SDP4. |
| GCRS (Geocentric Celestial Reference System) / J2000 | IAU 2006-presesjon + IAU 2000A/2000B-nutasjon | teme_to_gcrs (ekvinokskjede). |
| CIRS (Celestial Intermediate Reference System) | IAU 2006/2000A CIO (X, Y, s) | gcrs_to_cirs_matrix (eraC2ixys). |
| ITRS (International Terrestrial Reference System) / ECEF | ERA (jordrotasjonsvinkel) + IERS-polbevegelse (CIO) eller GMST + polbevegelse (ekvinoks) | gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (ekvinoks). |
| WGS-84 (WGS: World Geodetic System) geodetisk | eksakt + iterativ invers | ecef_to_geodetic / geodetic_to_ecef. |
| Tidsskala | Bruk |
|---|---|
| TT (terrestrisk tid) | Evaluering av presesjons-/nutasjons-/CIO-argument (jd_tt). |
| UT1 | Jordrotasjonsvinkel / GMST (jd_ut1). |
| To-delt JD (juliansk dato) | src/jd2.rs Jd2 for epokeoppløsning under µs. |
Kobling mellom utdatafelt og standard (CCSDS 502,0)#
Hva de to banemeldingsskriverne legger i hvert CCSDS ODM-felt (Orbit Data Messages, 502,0), lest fra en kjøring av scenarios/orbit-sgp4-gps.toml med --export-oem og --export-omm:
| Kshana-utdata | CCSDS ODM-felt | Verdi / enhet |
|---|---|---|
| Metadata for OEM-segment | CENTER_NAME / REF_FRAME / TIME_SYSTEM |
EARTH / TEME / GPS — referansesystemet propagatorene integrerer i og tidsskalaen til epokenettet, ikke omdøpt |
| OEM-tilstandsepoke | første kolonne i hver datalinje | ISO-8601 (ISO: International Organization for Standardization) kalendertid, GPS-tidsskala |
| OEM-posisjon, -hastighet | X Y Z X_DOT Y_DOT Z_DOT-datakolonner |
km, km/s |
| OMM-metadata | REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY |
TEME / UTC / SGP4 |
| OMM-epoke | EPOCH |
ISO-8601 dag-i-året-form (TLE-epoken) |
| OMM-middelelementer | MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR |
omløp/døgn, –, grader, 1/jordradier |
Resultat-JSON-en (JavaScript Object Notation) fra typen ephemeris bærer den samme tilstanden 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), pluss lat_deg, lon_deg, alt_km.
Ærlig omfang#
- OEM, TDM, Space Packet, KIF, SigMF og teksten for LEO-navigasjonsmeldingen både leses og skrives; OMM, CZML, KML og STK-efemeride er skrivere (en OMM-leser og XML-serialiseringen er oppfølgere); GeoJSON skrives og leses tilbake som en rute; RINEX NAV, RINEX OBS, IONEX, IERS EOP-produktene og TLE er lesere; månedataeksporten for LunaNet/IOAG er en skriver der tidsmetadataene gjør rundtur.
INTEROP.mdlister hvilken eksport som gjelder for hvert medfølgende scenario. - Feltkoblingen for CCSDS/IGS ovenfor er dokumentasjon, ikke en påstand om at noen standard er oppfylt; formell vurdering mot disse standardene (og registrering i de åpne katalogene til ESA (European Space Agency) ESSR (European Space Software Repository) / NASA (National Aeronautics and Space Administration)) følges opp separat og venter på gjennomgang.
- Den uavhengige numeriske kontrollen av referansesystemreduksjonen mot SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — et rent Rust-verktøysett for planetgeometri) leveres i den frittstående crate-en
xval/anise-frames/, som er utelatt fra workspace:gcrs_to_itrs_matrixmot ANISEs GCRF-rotasjon (Geocentric Celestial Reference Frame) → ITRF93 (International Terrestrial Reference Frame 1993) over åtte epoker 2020–2023 stemmer til ≤ 0,86 m på bakken og ≤ 3,6 m i GNSS-bane (seVALIDATION.md). Den trenger SPICE-kjerner, så den er ikke en standard port i kontinuerlig integrasjon (CI).