Machinevertaling, niet beoordeeld door een moedertaalspreker. Engels is de referentie.

Validatie en bewijsBewerken op GitHubBron: docs/STANDARDS.md

Standaarden en interoperabiliteit

Kshana spreekt de standaard uitwisselingsformaten van de gemeenschappen van GNSS (global navigation satellite system), vluchtdynamica en tijdsynchronisatie, zodat het naast RTKLIB (een opensourcebibliotheek voor real-time kinematic positioning), gLAB, Ginan, GMAT (General Mission Analysis Tool), Orekit en de analysecentrumtools van de IGS (International GNSS Service) kan staan in plaats van op een eigen eiland. Deze pagina koppelt de uitwisselingsformaten die de engine inleest of uitvoert aan de module die elk ervan implementeert en aan de gezaghebbende specificatie.

Ze is beperkt tot formaten: dingen met een leesrichting en een schrijfrichting. De signaal- en algoritmestandaarden die de engine implementeert in plaats van inleest (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (voorheen Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), de ARAIM-referentie (advanced receiver autonomous integrity monitoring) van WG-C (WG: Working Group), CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)) worden rij voor rij onderbouwd in VERIFICATION-MATRIX.md.

Formaten die de engine spreekt#

Standaard Richting Module Specificatie / instantie Notities
CCSDS OEM (Orbit Ephemeris Message) lezen en schrijven src/oem.rs CCSDS 502.0-B Orbit Data Messages, KVN-vorm (keyword-value notation) Getabelleerde toestandsvector-efemeride die GMAT, Orekit en STK (Systems Tool Kit) inlezen. parse_oem leest haar terug; getoetst door het letterlijke Blue Book-voorbeeld van CCSDS 502.0-B-3 Figure G-11 te reproduceren (tests/ccsds_reference.rs). Het optionele covariantieblok van 6×6 voor positie en snelheid (COVARIANCE_START … COVARIANCE_STOP, de KVN-serialisatie van de 21 elementen van de onderdriehoek met een optionele COV_REF_FRAME) wordt zowel geschreven (covariance_block_kvn) als gelezen (parse_covariance_block), en is rondreis-symmetrisch (tests van src/oem.rs).
CCSDS OMM (Orbit Mean-Elements Message) schrijven src/omm.rs CCSDS 502.0-B-2, KVN-vorm Publicatie op de standaardisatieroute van gemiddelde elementen van SGP4/TLE (SGP4: Simplified General Perturbations 4; TLE: two-line element set) (gemiddelde beweging, e, i, Ω, ω, M, BSTAR (de weerstandsterm van de baanpropagator)). Bereikbaar via de CLI (CLI: command-line interface) bij een orbit-scenario met --export-omm <out.omm> of export_omm = true (één OMM per met een TLE gedefinieerde satelliet, met zijn echte NORAD-id (North American Aerospace Defense Command), COSPAR-aanduiding (Committee on Space Research) en epoche; tests/sp3_export_roundtrip.rs). Een XML-vorm (Extensible Markup Language) en een lezer volgen later.
CCSDS TDM (Tracking Data Message) lezen en schrijven src/ccsds_tdm.rs CCSDS 503.0-B Tracking Data Message, KVN-vorm Volgrecords van afstand, Doppler en hoek die een pass van DSN/ESTRACK (ESTRACK: European Space Tracking network) aanlevert bij een OD-systeem (baanbepaling). Getoetst door het letterlijke Blue Book-voorbeeld van CCSDS 503.0-B-2 Figure E-9 te reproduceren (tests/ccsds_reference.rs).
CCSDS Space Packet (133,0) lezen en schrijven src/space_packet.rs CCSDS 133.0-B-2 Space Packet Protocol De framing van de primaire header van 6 octetten voor TM/TC (TM: telemetrie; TC: telecommando) die grondsystemen uitwisselen. De encoder reproduceert de gepubliceerde testvectoren op byteniveau van de onafhankelijke bibliotheek spacepackets-py (tests van src/space_packet.rs).
SP3-c (SP3: Standard Product 3, het formaat voor precieze banen) / SP3-d (precieze efemeride) lezen en schrijven src/sp3.rs IGS Standard Product 3 (c/d) Tijdreeks van positie en klokstand in het aardvaste stelsel (ECEF). Rondreis getoetst tot < 0,5 m op een echte momentopname van gps-ops (tests/sp3_export_roundtrip.rs).
RINEX (Receiver Independent Exchange Format) 3 (uitgezonden navigatie) lezen src/rinex.rs RINEX 3.x NAV (IS-GPS-200, Galileo ICD (interface control document), BeiDou ICD, GLONASS (het Russische Global Navigation Satellite System) ICD) Inlezen van multi-GNSS-NAV (GPS LNAV (legacy navigation message), Galileo F/NAV, QZSS (het Japanse Quasi-Zenith Satellite System), BeiDou MEO/IGSO (MEO: medium Earth orbit; IGSO: inclined geosynchronous orbit), GLONASS-toestandsvector); bruikbaar als volwaardige Propagator-bron.
TLE / 3LE (twee-/drieregelige elementen) lezen src/tle.rs NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 Gepropageerd door de getoetste SGP4/SDP4-kern (SDP4: Simplified Deep-space Perturbations 4) (4,12 mm ten opzichte van de 666 officiële AIAA-vectoren).
RINEX 3.0x (waarnemingen) lezen src/rinex_obs.rs RINEX 3.0x OBS (4,00 wordt naar verwachting ingelezen, maar is nooit uitgeprobeerd op een 4,00-bestand) De andere helft van RINEX: de eigen code-, draaggolf-, Doppler- en SNR-records (SNR: signal-to-noise ratio) van de ontvanger (parse_obs). Dit is de invoer die de single-point-positioning-solver pvt samen met het uitgezonden navigatiebestand verwerkt (tests/pvt_abmf.rs, echt IGS-station ABMF).
IONEX (IONosphere map EXchange format; globale TEC-kaarten (total electron content)) lezen src/ionex.rs IONEX 1.x (IGS-ionosfeerproduct) parse_ionex leest de globale rasters van de totale elektronendichtheid van de IGS, het gemeten alternatief voor de uitgezonden Klobuchar-correctie, met bilineaire ruimtelijke en temporele interpolatie en de schuinheidsafbeelding naar schuine vertraging.
IERS (International Earth Rotation and Reference Systems Service) finals2000A / Bulletin B (aardoriëntatie) lezen src/eop.rs, src/frame_eop.rs IERS Conventions; IERS EOP (Earth orientation parameters) 14 C04 / finals2000A.all UT1 (Universal Time 1, aardrotatietijd)−UTC (Coordinated Universal Time) en poolbeweging uit het officiële product, inclusief de voorspelde rijen, zodat de reductie van het referentiestelsel in real time kan draaien en de groei van haar voorspelfout kan worden begroot (tests/operational_eop_predictor_reference.rs).
KIF (Kshana Interchange Format) lezen en schrijven src/interchange.rs deze repository, zie SCHEMA.md De neutrale, geversioneerde envelop waarin elk artefact kan worden verpakt: format / schema_version / kind / engine_version / payload, met een expliciet major-minor-compatibiliteitsoordeel voor een afnemer. Geen externe standaard; hier gedocumenteerd omdat een vreemd hulpmiddel haar moet herkennen.
LunaNet / IOAG (Interagency Operations Advisory Group) uitwisseling voor de maan schrijven (tijdmetadata ook lezen) src/lunar_interop.rs LunaNet-interoperabiliteitsspecificatie / IOAG-architectuur voor maancommunicatie, bovenop CCSDS 502,0 Het maanreferentiestelsel, de maantijdschaal en de maanefemeride, uitgegeven in CCSDS-vormen in lijn met LunaNet/IOAG (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), met een veldcontrole op de uitgegeven OEM (tests/lunar_interoperability_export_reference.rs).
CZML (Cesium Language) schrijven src/interop/czml.rs CZML-pakketformaat van CesiumJS Een JSON-stroom (JavaScript Object Notation) van pakketten met tijdlabel voor de CesiumJS-globe; bewegende objecten geschreven in GCRS (INERTIAL). --export czml bij elk soort dat objecten op de aarde plaatst.
KML (Keyhole Markup Language) schrijven src/interop/kml.rs OGC (Open Geospatial Consortium) KML 2,2 Aardvaste lengte, breedte en hoogte voor Google Earth en GIS-hulpmiddelen (geographic information system). --export kml.
GeoJSON schrijven en lezen (route) src/interop/geojson.rs IETF (Internet Engineering Task Force) RFC 7946 Aardvaste geometrie voor webkaarten en GIS-hulpmiddelen (--export geojson); een LineString wordt teruggelezen als de rechte-spoorinvoer van de soorten die er een vliegen (--import-route <route.geojson>).
STK-efemeride (.e, EphemerisTimePosVel) schrijven src/interop/stk.rs Ansys STK-efemeridebestandsformaat Inertiale (ICRF) positie en snelheid voor STK en hulpmiddelen die zijn efemerideformaat lezen. --export stk.
SigMF (Signal Metadata Format) lezen en schrijven src/sigmf.rs SigMF-specificatie Complexe basisbandopnamen plus JSON-metadata: het soort spectrum schrijft zijn gesynthetiseerde in-phase/quadrature-samples (IQ) (--export sigmf) en leest een opname via zijn blok [recording].
Tekst van het LEO-navigatiebericht (in RINEX-4-stijl en CSV (comma-separated values)) lezen en schrijven src/leo_navmsg/text.rs RINEX 4-navigatielay-out, aangepast De uitgezonden efemeride en klok van het soort leo-navmsg voor een satelliet in een lage baan om de aarde (LEO), geëxporteerd en opnieuw ingelezen; een gedocumenteerde aanpassing, geen geregistreerd RINEX-berichttype (MODELLED in de verificatiematrix).

Referentiestelsels en tijd#

Het stelsel dat de engine uitgeeft is expliciet, niet impliciet. De op CIO gebaseerde reductie (CIO: Celestial Intermediate Origin) volgens IAU (International Astronomical Union) 2006/2000A (src/cio.rs) en de equinox/GMST-reductie (GMST: Greenwich mean sidereal time) naar TEME (true equator, mean equinox) (src/frames.rs, src/nutation.rs) zijn bit voor bit getoetst aan de referentievectoren van SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) (zie VALIDATION.md).

Frame Realisatie Notities
TEME SGP4 native Ware evenaar, gemiddelde equinox: het uitvoerstelsel van SGP4/SDP4.
GCRS (Geocentric Celestial Reference System) / J2000 IAU 2006-precessie + IAU 2000A/2000B-nutatie teme_to_gcrs (equinoxketen).
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-poolbeweging (CIO) of GMST + poolbeweging (equinox) gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (equinox).
WGS-84 (WGS: World Geodetic System) geodetisch exact + iteratief invers ecef_to_geodetic / geodetic_to_ecef.
Tijdschaal Gebruik
TT (Terrestrial Time) Evaluatie van het argument voor precessie, nutatie en CIO (jd_tt).
UT1 Aardrotatiehoek / GMST (jd_ut1).
Tweedelige JD (Julian date) src/jd2.rs Jd2 voor een epochenresolutie beneden de µs.

Koppeling van uitvoervelden aan de standaard (CCSDS 502,0)#

Wat de twee schrijvers van baanberichten in elk veld van CCSDS ODM (Orbit Data Messages, 502,0) zetten, gelezen uit een run van scenarios/orbit-sgp4-gps.toml met --export-oem en --export-omm:

Uitvoer van Kshana CCSDS ODM-veld Waarde / eenheid
Segmentmetadata van OEM CENTER_NAME / REF_FRAME / TIME_SYSTEM EARTH / TEME / GPS: het stelsel waarin de propagators integreren en de tijdschaal van het epochenraster, niet herbenoemd
Toestandsepoche van OEM eerste kolom van elke gegevensregel kalendertijd volgens ISO-8601 (ISO: International Organization for Standardization), GPS-tijdschaal
Positie en snelheid van OEM Gegevenskolommen X Y Z X_DOT Y_DOT Z_DOT km, km/s
Metadata van OMM REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY TEME / UTC / SGP4
Epoche van OMM EPOCH ISO-8601-vorm met dag van het jaar (de TLE-epoche)
Gemiddelde elementen van OMM MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR omw/dag, –, deg, 1/aardstralen

De resultaat-JSON (JavaScript Object Notation) van het soort ephemeris bevat dezelfde toestand in SI-eenheden (International System of Units) per sample: 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.

Eerlijke reikwijdte#

  • OEM, TDM, Space Packet, KIF, SigMF en de tekst van het LEO-navigatiebericht kunnen worden gelezen en geschreven; OMM, CZML, KML en STK-efemeride zijn schrijvers (een OMM-lezer en de XML-serialisatie volgen later); GeoJSON wordt geschreven en als route teruggelezen; RINEX NAV, RINEX OBS, IONEX, de IERS EOP-producten en TLE zijn lezers; de maanexport van LunaNet/IOAG is een schrijver waarvan de tijdmetadata een rondreis maken. INTEROP.md vermeldt welke export voor elk meegeleverd scenario geldt.
  • De veldkoppeling van CCSDS/IGS hierboven is documentatie, geen verklaring dat aan enige standaard is voldaan; formele beoordeling aan die standaarden (en registratie in de open catalogus van ESA (European Space Agency) ESSR (European Space Software Repository) / NASA (National Aeronautics and Space Administration)) wordt apart bijgehouden en is in afwachting van beoordeling.
  • De onafhankelijke numerieke kruiscontrole van SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris, een zuivere Rust-toolkit voor planetaire geometrie) op de reductie van het referentiestelsel wordt geleverd in de zelfstandige crate xval/anise-frames/, die buiten de workspace valt: gcrs_to_itrs_matrix tegenover de rotatie van ANISE van GCRF (Geocentric Celestial Reference Frame) naar ITRF93 (International Terrestrial Reference Frame 1993) over acht epochen 2020–2023 komt overeen tot ≤ 0,86 m op de grond en ≤ 3,6 m op GNSS-baanhoogte (zie VALIDATION.md). Ze heeft SPICE-kernels nodig, dus is ze geen standaardpoort van continuous integration (CI).