Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

Walidacja i dowodyEdytuj na GitHubieŹródło: docs/STANDARDS.md

Standardy i interoperacyjność

Kshana mówi standardowymi formatami wymiany społeczności GNSS (globalny system nawigacji satelitarnej), dynamiki lotu i czasu, aby mogła współistnieć z RTKLIB (otwartoźródłową biblioteką kinematycznego pozycjonowania w czasie rzeczywistym), gLAB, Ginan, GMAT (General Mission Analysis Tool), Orekit i narzędziami centrów analiz IGS (International GNSS Service), zamiast tkwić na prywatnej wyspie. Ta strona przypisuje formaty wymiany, które silnik odczytuje lub emituje, do modułu, który każdy z nich implementuje, i do autorytatywnej specyfikacji.

Dotyczy formatów, czyli rzeczy mających kierunek odczytu lub zapisu. Standardy sygnałów i algorytmów, które silnik implementuje, a nie odczytuje (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (dawniej Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), odniesienie ARAIM (zaawansowane autonomiczne monitorowanie integralności przez odbiornik) WG-C (WG: Working Group), CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)) są udokumentowane dowodami wiersz po wierszu w VERIFICATION-MATRIX.md.

Formaty, którymi mówi silnik#

Standard Kierunek Moduł Specyfikacja / autorytet Uwagi
CCSDS OEM (Orbit Ephemeris Message) odczyt i zapis src/oem.rs CCSDS 502.0-B Orbit Data Messages, postać KVN (notacja klucz-wartość) Tabelaryczne efemerydy wektora stanu wczytywane przez GMAT, Orekit, STK (Systems Tool Kit). parse_oem odczytuje je z powrotem; sprawdzone względem niezależnego wzorca przez odtworzenie dosłownego przykładu z Rysunku G-11 Blue Book CCSDS 502.0-B-3 (tests/ccsds_reference.rs). Opcjonalny blok kowariancji położenia i prędkości 6×6 (COVARIANCE_START … COVARIANCE_STOP, 21-elementowa serializacja KVN dolnego trójkąta z opcjonalnym COV_REF_FRAME) jest zarówno zapisywany (covariance_block_kvn), jak i odczytywany (parse_covariance_block), symetrycznie w obie strony (testy src/oem.rs).
CCSDS OMM (Orbit Mean-Elements Message) zapis src/omm.rs CCSDS 502.0-B-2, postać KVN Publikacja standardowa elementów średnich SGP4/TLE (SGP4: Simplified General Perturbations 4; TLE: zestaw elementów dwuwierszowych) (ruch średni, e, i, Ω, ω, M, BSTAR (człon oporu propagatora orbity)). Dostępne z CLI (CLI: interfejs wiersza poleceń) w scenariuszu orbit przez --export-omm <out.omm> lub export_omm = true (jeden OMM na satelitę zdefiniowanego przez TLE, z jego rzeczywistym identyfikatorem NORAD (North American Aerospace Defense Command), oznaczeniem COSPAR (Committee on Space Research) i epoką; tests/sp3_export_roundtrip.rs). Postać XML (Extensible Markup Language) i czytnik są kolejnymi krokami.
CCSDS TDM (Tracking Data Message) odczyt i zapis src/ccsds_tdm.rs CCSDS 503.0-B Tracking Data Message, postać KVN Rekordy śledzenia odległości / Dopplera / kąta, które przejście DSN/ESTRACK (ESTRACK: European Space Tracking network) dostarcza do systemu OD (wyznaczania orbity). Sprawdzone względem niezależnego wzorca przez odtworzenie dosłownego przykładu z Rysunku E-9 Blue Book CCSDS 503.0-B-2 (tests/ccsds_reference.rs).
CCSDS Space Packet (133,0) odczyt i zapis src/space_packet.rs CCSDS 133.0-B-2 Space Packet Protocol 6-oktetowe ramkowanie nagłówka głównego TM/TC (TM: telemetria; TC: telekomenda), wymieniane przez systemy naziemne. Koder odtwarza opublikowane, bajtowe wektory testowe niezależnej biblioteki spacepackets-py (testy src/space_packet.rs).
SP3-c (SP3: Standard Product 3, format dokładnych orbit) / SP3-d (dokładne efemerydy) odczyt i zapis src/sp3.rs IGS Standard Product 3 (c/d) Szereg czasowy położenia w układzie związanym z Ziemią (ECEF) i czasu zegara. Przejście w obie strony sprawdzone względem niezależnego wzorca do < 0,5 m na rzeczywistej migawce gps-ops (tests/sp3_export_roundtrip.rs).
RINEX (Receiver Independent Exchange Format) 3 (nawigacyjne dane rozgłaszane) odczyt src/rinex.rs RINEX 3.x NAV (IS-GPS-200, Galileo ICD (dokument kontroli interfejsu), BeiDou ICD, GLONASS (rosyjski Globalny System Nawigacji Satelitarnej) ICD) Wczytywanie NAV wielu GNSS (GPS LNAV (dawny komunikat nawigacyjny), Galileo F/NAV, QZSS (japoński Quasi-Zenith Satellite System), BeiDou MEO/IGSO (MEO: średnia orbita okołoziemska; IGSO: nachylona orbita geosynchroniczna), wektor stanu GLONASS); użyteczne jako pełnoprawne źródło Propagator.
TLE / 3LE (elementy dwu-/trzywierszowe) odczyt src/tle.rs NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 Propagowane przez sprawdzony względem niezależnego wzorca rdzeń SGP4/SDP4 (SDP4: Simplified Deep-space Perturbations 4) (4,12 mm wobec 666 oficjalnych wektorów AIAA).
RINEX 3.0x (obserwacje) odczyt src/rinex_obs.rs RINEX 3.0x OBS (oczekuje się, że 4,00 się odczyta, ale nigdy nie sprawdzono tego na pliku 4,00) Druga połowa RINEX: własne rekordy kodu/nośnej/Dopplera/SNR (SNR: stosunek sygnału do szumu) odbiornika (parse_obs). To dane wejściowe, które solwer pvt pozycjonowania jednopunktowego zużywa razem z plikiem nawigacyjnym rozgłaszanym (tests/pvt_abmf.rs, rzeczywista stacja IGS ABMF).
IONEX (IONosphere map EXchange format; globalne mapy TEC (całkowitej zawartości elektronów)) odczyt src/ionex.rs IONEX 1.x (produkt jonosferyczny IGS) parse_ionex odczytuje globalne siatki całkowitej zawartości elektronów IGS — zmierzoną alternatywę dla rozgłaszanej poprawki Klobuchara — z dwuliniową interpolacją przestrzenną i czasową oraz odwzorowaniem nachylenia na opóźnienie ukośne.
IERS (Międzynarodowa Służba Ruchu Obrotowego Ziemi i Systemów Odniesienia) finals2000A / Bulletin B (orientacja Ziemi) odczyt src/eop.rs, src/frame_eop.rs IERS Conventions; IERS EOP (parametry orientacji Ziemi) 14 C04 / finals2000A.all UT1 (Universal Time 1, czas obrotu Ziemi)−UTC (uniwersalny czas koordynowany) i ruch bieguna z oficjalnego produktu, łącznie z wierszami przewidywanymi, tak aby redukcję układów można było uruchamiać w czasie rzeczywistym, a wzrost błędu predykcji budżetować (tests/operational_eop_predictor_reference.rs).
KIF (Kshana Interchange Format) odczyt i zapis src/interchange.rs to repozytorium — zob. SCHEMA.md Neutralna, wersjonowana koperta, w którą można opakować każdy artefakt: format / schema_version / kind / engine_version / payload, z jawnym werdyktem zgodności głównej i pobocznej wersji dla konsumenta. To nie jest standard zewnętrzny; opisany tu, ponieważ obce narzędzie musi go rozpoznać.
LunaNet / IOAG (Interagency Operations Advisory Group) wymiana księżycowa zapis (metadane czasu także odczyt) src/lunar_interop.rs specyfikacja interoperacyjności LunaNet / architektura łączności księżycowej IOAG, ponad CCSDS 502,0 Układ księżycowy, księżycowa skala czasu i księżycowe efemerydy emitowane w formach CCSDS zgodnych z LunaNet/IOAG (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), z kontrolą pól emitowanego OEM (tests/lunar_interoperability_export_reference.rs).
CZML (Cesium Language) zapis src/interop/czml.rs format pakietów CZML CesiumJS Strumień JSON (JavaScript Object Notation) pakietów ze znacznikami czasu dla globusa CesiumJS; obiekty ruchome zapisane w GCRS (INERTIAL). --export czml dla każdego rodzaju, który umieszcza obiekty na Ziemi.
KML (Keyhole Markup Language) zapis src/interop/kml.rs OGC (Open Geospatial Consortium) KML 2,2 Długość, szerokość i wysokość w układzie związanym z Ziemią dla Google Earth i narzędzi GIS (systemów informacji geograficznej). --export kml.
GeoJSON zapis i odczyt (trasa) src/interop/geojson.rs IETF (Internet Engineering Task Force) RFC 7946 Geometria w układzie związanym z Ziemią dla map internetowych i narzędzi GIS (--export geojson); LineString jest odczytywany z powrotem jako wejście toru prostego dla rodzajów, które nim lecą (--import-route <route.geojson>).
Efemerydy STK (.e, EphemerisTimePosVel) zapis src/interop/stk.rs format pliku efemeryd Ansys STK Położenie i prędkość inercjalne (ICRF) dla STK i narzędzi, które czytają jego format efemeryd. --export stk.
SigMF (Signal Metadata Format) odczyt i zapis src/sigmf.rs specyfikacja SigMF Zespolone nagrania pasma podstawowego plus metadane JSON: rodzaj spectrum zapisuje swoje zsyntetyzowane próbki fazy i kwadratury (IQ) (--export sigmf) i odczytuje nagranie przez swój blok [recording].
Tekst komunikatu nawigacyjnego LEO (w stylu RINEX-4 i CSV (wartości rozdzielone przecinkami)) odczyt i zapis src/leo_navmsg/text.rs układ nawigacyjny RINEX 4, zaadaptowany Rozgłaszane efemerydy i zegar rodzaju leo-navmsg dla satelity niskiej orbity okołoziemskiej (LEO), eksportowane i ponownie importowane; udokumentowana adaptacja, a nie zarejestrowany typ komunikatu RINEX (MODELLED w macierzy weryfikacji).

Układy odniesienia i czas#

Układ, który silnik emituje, jest jawny, a nie domyślny. Redukcja IAU (International Astronomical Union) 2006/2000A oparta na CIO (CIO: Celestial Intermediate Origin) (src/cio.rs) oraz redukcja równonocy/GMST (GMST: średni czas gwiazdowy Greenwich) TEME (prawdziwy równik, średnia równonoc) (src/frames.rs, src/nutation.rs) są sprawdzone bit po bicie względem niezależnych wektorów referencyjnych SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) (zob. VALIDATION.md).

Ramka Realizacja Uwagi
TEME natywny dla SGP4 Prawdziwy równik, średnia równonoc — układ wyjściowy SGP4/SDP4.
GCRS (Geocentryczny Niebieski Układ Odniesienia) / J2000 precesja IAU 2006 + nutacja IAU 2000A/2000B teme_to_gcrs (łańcuch równonocy).
CIRS (Celestial Intermediate Reference System) IAU 2006/2000A CIO (X, Y, s) gcrs_to_cirs_matrix (eraC2ixys).
ITRS (Międzynarodowy Ziemski Układ Odniesienia) / ECEF ERA (kąt obrotu Ziemi) + ruch bieguna IERS (CIO) lub GMST + ruch bieguna (równonoc) gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (równonoc).
geodezyjny WGS-84 (WGS: World Geodetic System) dokładny + iteracyjna odwrotność ecef_to_geodetic / geodetic_to_ecef.
Skala czasu Zastosowanie
TT (czas ziemski) Obliczanie argumentów precesji/nutacji/CIO (jd_tt).
UT1 Kąt obrotu Ziemi / GMST (jd_ut1).
Dwuczęściowa JD (data juliańska) src/jd2.rs Jd2 dla rozdzielczości epoki poniżej µs.

Odwzorowanie pól wyjściowych na standard (CCSDS 502,0)#

Co dwa programy zapisujące komunikaty orbitalne umieszczają w każdym polu CCSDS ODM (Orbit Data Messages, 502,0), odczytane z przebiegu scenarios/orbit-sgp4-gps.toml z --export-oem i --export-omm:

Wynik Kshana Pole CCSDS ODM Wartość / jednostka
Metadane segmentu OEM CENTER_NAME / REF_FRAME / TIME_SYSTEM EARTH / TEME / GPS — układ, w którym całkują propagatory, i skala czasu siatki epok, bez zmiany etykiet
Epoka stanu OEM pierwsza kolumna każdego wiersza danych czas kalendarzowy ISO-8601 (ISO: Międzynarodowa Organizacja Normalizacyjna), skala czasu GPS
Położenie i prędkość OEM kolumny danych X Y Z X_DOT Y_DOT Z_DOT km, km/s
Metadane OMM REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY TEME / UTC / SGP4
Epoka OMM EPOCH postać ISO-8601 z dniem roku (epoka TLE)
Elementy średnie OMM MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR obr./dobę, –, deg, 1/promienie Ziemi

JSON (JavaScript Object Notation) wyniku rodzaju ephemeris niesie ten sam stan w jednostkach SI (Międzynarodowy Układ Jednostek) na próbkę: jd_utc, teme_r_m / teme_v_m_s, gcrs_r_m / gcrs_v_m_s, ecef_r_m (m, m/s), a także lat_deg, lon_deg, alt_km.

Uczciwy zakres#

  • OEM, TDM, Space Packet, KIF, SigMF i tekst komunikatu nawigacyjnego LEO są w trybie odczytu i zapisu; OMM, CZML, KML i efemerydy STK to programy zapisujące (czytnik OMM i serializacja XML są kolejnymi krokami); GeoJSON jest zapisywany i odczytywany z powrotem jako trasa; RINEX NAV, RINEX OBS, IONEX, produkty IERS EOP i TLE są czytnikami; eksport księżycowy LunaNet/IOAG jest programem zapisującym, którego metadane czasu przechodzą w obie strony. INTEROP.md wymienia, który eksport dotyczy każdego dołączonego scenariusza.
  • Powyższe odwzorowanie pól CCSDS/IGS jest dokumentacją, a nie stwierdzeniem, że jakikolwiek standard jest spełniony; formalna ocena względem tych standardów (i rejestracja w otwartym katalogu ESA (European Space Agency) ESSR (European Space Software Repository) / NASA (National Aeronautics and Space Administration)) jest śledzona osobno i oczekuje na przegląd.
  • Niezależna kontrola numeryczna redukcji układów przez SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — czysto rustowy zestaw narzędzi geometrii planetarnej) jest dostarczona w samodzielnej skrzynce wyłączonej z przestrzeni roboczej xval/anise-frames/: gcrs_to_itrs_matrix względem rotacji GCRF (Geocentric Celestial Reference Frame) → ITRF93 (International Terrestrial Reference Frame 1993) w ANISE w ośmiu epokach 2020–2023 zgadza się do ≤ 0,86 m na ziemi i ≤ 3,6 m na orbicie GNSS (zob. VALIDATION.md). Wymaga jąder SPICE, więc nie jest domyślną bramką ciągłej integracji (CI).