Standardit ja yhteentoimivuus
Kshana puhuu GNSS-, lentodynamiikka- ja ajoitusyhteisöjen standardeja vaihtoformaatteja, jotta se voi toimia RTKLIBin (avoimen lähdekoodin reaaliaikainen kinemaattinen paikannuskirjasto), gLABin, Ginanin, GMATin (General Mission Analysis Tool), Orekitin ja IGS:n (International GNSS Service) analyysikeskusten työkalujen rinnalla eikä yksityisellä saarella. Tämä sivu yhdistää moottorin jäsentämät tai tuottamat vaihtoformaatit kutakin toteuttavaan moduuliin ja auktoriteettiseen määrittelyyn.
Se on rajattu formaatteihin — asioihin, joilla on luku-/kirjoitussuunta. Signaali- ja algoritmistandardit, jotka moottori toteuttaa eikä jäsennä (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (aiemmin Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), ARAIM-viite WG-C (advanced receiver autonomous integrity monitoring; WG: Working Group), CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)) todistetaan rivi riviltä tiedostossa VERIFICATION-MATRIX.md.
Formaatit, joita moottori puhuu#
| Standardi | Suunta | Moduuli | Määrittely / auktoriteetti | Huomautukset |
|---|---|---|---|---|
| CCSDS OEM (Orbit Ephemeris Message) | lukee ja kirjoittaa | src/oem.rs |
CCSDS 502.0-B Orbit Data Messages, KVN-muoto (avainsana–arvo-merkintä) | Taulukoitu tilavektoriefemeridi, jota GMAT, Orekit ja STK (Systems Tool Kit) ottavat vastaan. parse_oem lukee sen takaisin; validoitu palauttamalla sanatarkka CCSDS 502.0-B-3 -kuvan G-11 Blue Book -esimerkki (tests/ccsds_reference.rs). Valinnainen 6×6 paikka/nopeus-kovarianssilohko (COVARIANCE_START … COVARIANCE_STOP, 21 alkion alakolmio-KVN-serialisointi valinnaisella COV_REF_FRAME) sekä kirjoitetaan (covariance_block_kvn) että luetaan (parse_covariance_block), edestakaisin symmetrinen (testit: src/oem.rs). |
| CCSDS OMM (Orbit Mean-Elements Message) | kirjoitus | src/omm.rs |
CCSDS 502.0-B-2, KVN-muoto | SGP4/TLE:n (SGP4: Simplified General Perturbations 4; TLE: kaksirivinen elementtijoukko) keskielementtien (keskiliike, e, i, Ω, ω, M, BSTAR (kiertoradan propagaattorin vastustermi)) standardiraidan julkaisu. Komentoriviltä (CLI) käytettävissä tyypin orbit skenaariossa valitsimella --export-omm <out.omm> tai export_omm = true (yksi OMM TLE:llä määriteltyä satelliittia kohti, sen todellisella NORAD-tunnisteella (North American Aerospace Defense Command), COSPAR-nimikkeellä (Committee on Space Research) ja epookilla; tests/sp3_export_roundtrip.rs). XML-muoto (Extensible Markup Language) ja lukija ovat jatkokehitystä. |
| CCSDS TDM (Tracking Data Message) | lukee ja kirjoittaa | src/ccsds_tdm.rs |
CCSDS 503.0-B Tracking Data Message, KVN-muoto | Etäisyys-, Doppler- ja kulmaseurantatietueet, jotka DSN/ESTRACK (ESTRACK: European Space Tracking network) -ylilento toimittaa OD-järjestelmälle (radanmääritys). Validoitu palauttamalla sanatarkka CCSDS 503.0-B-2 -kuvan E-9 Blue Book -esimerkki (tests/ccsds_reference.rs). |
| CCSDS Space Packet (133,0) | lukee ja kirjoittaa | src/space_packet.rs |
CCSDS 133.0-B-2 Space Packet Protocol | Maajärjestelmien vaihtama 6 oktetin TM/TC (TM: telemetria; TC: kaukokomento) -pääotsikkokehystys. Kooderi toistaa riippumattoman kirjaston spacepackets-py julkaistut tavutason testivektorit (testit: src/space_packet.rs). |
| SP3-c (SP3: Standard Product 3, tarkka ratamuoto) / SP3-d (tarkka efemeridi) | lukee ja kirjoittaa | src/sp3.rs |
IGS Standard Product 3 (c/d) | Maahan sidottu (ECEF) paikka- ja kelloaikasarja. Edestakainen ajo validoitu tarkkuuteen < 0,5 m todellisella tilannekuvalla gps-ops (tests/sp3_export_roundtrip.rs). |
| RINEX (Receiver Independent Exchange Format) 3 (lähetetty navigointi) | luku | src/rinex.rs |
RINEX 3.x NAV (IS-GPS-200, Galileo ICD (rajapintamäärittely), BeiDou ICD, GLONASS (Venäjän maailmanlaajuinen satelliittinavigointijärjestelmä) ICD) | Moni-GNSS-NAV-sisäänluku (GPS LNAV (legacy navigation message), Galileo F/NAV, QZSS (Japanin Quasi-Zenith Satellite System), BeiDou MEO/IGSO (MEO: keskikorkea Maan kiertorata; IGSO: kallistunut geosynkroninen rata), GLONASS-tilavektori); käytettävissä ensiluokkaisena lähteenä tyyppiä Propagator. |
| TLE / 3LE (kaksi-/kolmirivistä elementtiä) | luku | src/tle.rs |
NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 | Propagoidaan validoidulla SGP4/SDP4-ytimellä (SDP4: Simplified Deep-space Perturbations 4) (4,12 mm vasten 666 virallista AIAA-vektoria). |
| RINEX 3.0x (havainto) | luku | src/rinex_obs.rs |
RINEX 3.0x OBS (4,00 odotetaan jäsentyvän, ei koskaan kokeiltu tiedostolla, jonka versio on 4,00) | RINEXin toinen puoli: vastaanottimen oma koodi-/kantoaalto-/Doppler-/SNR-tietue (SNR: signaali–kohinasuhde) (parse_obs). Tämä on syöte, jota yhden pisteen paikannusratkaisija pvt kuluttaa lähetetyn navigointitiedoston rinnalla (tests/pvt_abmf.rs, todellinen IGS-asema ABMF). |
| IONEX (IONosphere map EXchange format; globaalit TEC-kartat (total electron content, ionosfäärin kokonaiselektronisisältö)) | luku | src/ionex.rs |
IONEX 1.x (IGS:n ionosfääristuote) | parse_ionex lukee IGS:n globaalit kokonaiselektronisisältöruudukot — mitatun vaihtoehdon lähetetylle Klobuchar-korjaukselle — bilineaarisella spatiaalisella ja ajallisella interpoloinnilla ja viistoviiveen vinouskartoituksella. |
IERS (International Earth Rotation and Reference Systems Service) finals2000A / Bulletin B (Maan orientaatio) |
luku | src/eop.rs, src/frame_eop.rs |
IERS Conventions; IERS EOP (Earth orientation parameters, Maan orientaatioparametrit) 14 C04 / finals2000A.all |
UT1 (Universal Time 1, Maan pyörimisaika)−UTC (Coordinated Universal Time) ja napaliike virallisesta tuotteesta, mukaan lukien ennustetut rivit, jotta koordinaatistoreduktio voidaan ajaa reaaliajassa ja sen ennustevirheen kasvu budjetoida (tests/operational_eop_predictor_reference.rs). |
| KIF (Kshana Interchange Format) | lukee ja kirjoittaa | src/interchange.rs |
tämä repositorio — katso SCHEMA.md |
Neutraali, versioitu kirjekuori, johon jokaisen artefaktin voi kääriä: format / schema_version / kind / engine_version / payload, ja kuluttajalle eksplisiittinen suuri–pieni-versioyhteensopivuustuomio. Ei ulkoinen standardi; dokumentoitu tässä, koska vieraan työkalun on tunnistettava se. |
| LunaNet / IOAG (Interagency Operations Advisory Group) -kuutiedonvaihto | kirjoittaa (aikametatiedot myös luetaan) | src/lunar_interop.rs |
LunaNetin yhteentoimivuusmäärittely / IOAG:n kuuviestintäarkkitehtuuri, CCSDS 502,0 pohjalla | Kuun koordinaatisto, kuun aika-asteikko ja kuun efemeridi tuotettuna LunaNet/IOAG-linjatuissa CCSDS-muodoissa (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), tuotetun OEM:n kenttätarkistuksella (tests/lunar_interoperability_export_reference.rs). |
| CZML (Cesium Language) | kirjoitus | src/interop/czml.rs |
CesiumJS CZML -pakettiformaatti | JSON (JavaScript Object Notation) -virta aikaleimatuista paketeista CesiumJS-karttapallolle; liikkuvat kohteet kirjoitettu GCRS:ssä (INERTIAL). --export czml millä tahansa tyypillä, joka sijoittaa kohteita Maahan. |
| KML (Keyhole Markup Language) | kirjoitus | src/interop/kml.rs |
OGC (Open Geospatial Consortium) KML 2,2 | Maahan sidottu pituus-, leveys- ja korkeuskoordinaatti Google Earthille ja GIS-työkaluille (paikkatietojärjestelmä). --export kml. |
| GeoJSON | kirjoittaa ja lukee (reitti) | src/interop/geojson.rs |
IETF (Internet Engineering Task Force) RFC 7946 | Maahan sidottu geometria verkkokartoille ja GIS-työkaluille (--export geojson); LineString luetaan takaisin sellaisten tyyppien suoran radan syötteenä, jotka lentävät sellaisen (--import-route <route.geojson>). |
STK-efemeridi (.e, EphemerisTimePosVel) |
kirjoitus | src/interop/stk.rs |
Ansys STK -efemeriditiedostoformaatti | Inertiaalinen (ICRF) paikka ja nopeus STK:lle ja työkaluille, jotka lukevat sen efemeridiformaattia. --export stk. |
| SigMF (Signal Metadata Format) | lukee ja kirjoittaa | src/sigmf.rs |
SigMF-määrittely | Kompleksiset kantataajuustallenteet plus JSON-metatiedot: tyyppi spectrum kirjoittaa syntetisoidut vaihe/kvadratuuri-näytteensä (IQ) (--export sigmf) ja lukee tallenteen lohkonsa [recording] kautta. |
| LEO-navigointisanomateksti (RINEX-4-tyylinen ja CSV (pilkuin erotetut arvot)) | lukee ja kirjoittaa | src/leo_navmsg/text.rs |
RINEX 4 -navigointiasettelu, mukautettu | Tyypin leo-navmsg lähetetty efemeridi ja kello matalan Maan kiertoradan (LEO) satelliitille, viety ja tuotu takaisin; dokumentoitu mukautus, ei rekisteröity RINEX-sanomatyyppi (MODELLED varmennusmatriisissa). |
Koordinaatistot ja aika#
Moottorin tuottama koordinaatisto on eksplisiittinen, ei implisiittinen. CIO-pohjainen (CIO: Celestial Intermediate Origin) IAU:n (International Astronomical Union) 2006/2000A-reduktio (src/cio.rs) ja päiväntasaaja-/GMST (GMST: Greenwichin keskimääräinen tähtiaika) TEME (true equator, mean equinox) -reduktio (src/frames.rs, src/nutation.rs) on validoitu bitti bitiltä SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) -vertailuvektoreita vasten (katso VALIDATION.md).
| Kehys | Toteutus | Huomautukset |
|---|---|---|
| TEME | SGP4 natiivi | True equator, mean equinox — SGP4/SDP4:n tulostekoordinaatisto. |
| GCRS (Geocentric Celestial Reference System) / J2000 | IAU:n 2006 prekessio + IAU 2000A/2000B -nutaatio | teme_to_gcrs (päiväntasausketju). |
| CIRS (Celestial Intermediate Reference System) | IAU 2006/2000A CIO (X, Y, s) | gcrs_to_cirs_matrix (eraC2ixys). |
| ITRS (International Terrestrial Reference System) / ECEF | ERA (Maan pyörimiskulma) + IERS:n napaliike (CIO) tai GMST + napaliike (päiväntasaus) | gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (päiväntasaus). |
| WGS-84 (WGS: World Geodetic System) geodeettinen | tarkka + iteratiivinen käänteisratkaisu | ecef_to_geodetic / geodetic_to_ecef. |
| Aika-asteikko | Käyttö |
|---|---|
| TT (Terrestrial Time) | Prekession/nutaation/CIO:n argumentin evaluointi (jd_tt). |
| UT1 | Maan pyörimiskulma / GMST (jd_ut1). |
| Kaksiosainen JD (juliaaninen päivämäärä) | src/jd2.rs Jd2 mikrosekunnin alittavalle epookkitarkkuudelle. |
Tulostekenttä → standardi -kartoitus (CCSDS 502,0)#
Mitä kaksi ratasanomakirjoitinta laittaa kuhunkin CCSDS ODM (Orbit Data Messages, 502,0) -kenttään, luettuna ajosta scenarios/orbit-sgp4-gps.toml valitsimilla --export-oem ja --export-omm:
| Kshanan tuloste | CCSDS ODM -kenttä | Arvo / yksikkö |
|---|---|---|
| OEM-segmentin metatiedot | CENTER_NAME / REF_FRAME / TIME_SYSTEM |
EARTH / TEME / GPS — koordinaatisto, jossa propagaattorit integroivat, ja epookkiruudukon aika-asteikko, ei uudelleennimetty |
| OEM-tilan epookki | kunkin datarivin ensimmäinen sarake | ISO-8601 (ISO: International Organization for Standardization) -kalenteriaika, GPS-aika-asteikko |
| OEM:n paikka, nopeus | datasarakkeet X Y Z X_DOT Y_DOT Z_DOT |
km, km/s |
| OMM-metatiedot | REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY |
TEME / UTC / SGP4 |
| OMM-epookki | EPOCH |
ISO-8601 vuodenpäivämuoto (TLE-epookki) |
| OMM-keskielementit | MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR |
kierrosta/vrk, –, astetta, 1/Maan sädettä |
Tyypin ephemeris tulos-JSON (JavaScript Object Notation) sisältää saman tilan SI-yksiköissä (International System of Units) näytettä kohti: jd_utc, teme_r_m / teme_v_m_s, gcrs_r_m / gcrs_v_m_s, ecef_r_m (m, m/s), sekä lat_deg, lon_deg, alt_km.
Rehellinen rajaus#
- OEM, TDM, Space Packet, KIF, SigMF ja LEO-navigointisanomateksti ovat luku ja kirjoitus; OMM, CZML, KML ja STK-efemeridi ovat kirjoittimia (OMM-lukija ja XML-serialisointi ovat jatkokehitystä); GeoJSON kirjoitetaan ja luetaan takaisin reittinä; RINEX NAV, RINEX OBS, IONEX, IERS EOP -tuotteet ja TLE ovat lukijoita; LunaNet/IOAG-kuuvienti on kirjoitin, jonka aikametatiedot kulkevat edestakaisin.
INTEROP.mdluettelee, mikä vienti koskee kutakin mukana toimitettua skenaariota. - Yllä oleva CCSDS/IGS-kenttäkartoitus on dokumentaatiota, ei väite siitä, että jokin standardi täyttyy; muodollinen arviointi näitä standardeja vasten (ja rekisteröinti ESA:n (European Space Agency) ESSR:n (European Space Software Repository) / NASA:n (National Aeronautics and Space Administration) avoimeen katalogiin) seurataan erikseen ja on odottamassa tarkastelua.
- Riippumaton SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — puhdas Rust-planeettageometriatyökalu) -numeerinen ristiintarkistus koordinaatistoreduktiolle toimitetaan erillisessä, työtilasta pois jätetyssä crate-paketissa
xval/anise-frames/:gcrs_to_itrs_matrixANISEn GCRF (Geocentric Celestial Reference Frame) → ITRF93 (International Terrestrial Reference Frame 1993) -rotaatiota vasten kahdeksalla epookilla 2020–2023 täsmää tasolle ≤ 0,86 m maassa ja ≤ 3,6 m GNSS-radalla (katsoVALIDATION.md). Se tarvitsee SPICE-ytimiä, joten se ei ole oletusarvoinen jatkuvan integraation (CI) portti.