Tradução automática, não revista por um falante nativo. O inglês é a referência.

Validação e evidênciasEditar no GitHubFonte: docs/STANDARDS.md

Normas e interoperabilidade

O Kshana fala os formatos de intercâmbio padrão das comunidades de GNSS (global navigation satellite system), de dinâmica de voo e de temporização, para poder conviver com o RTKLIB (uma biblioteca de código aberto de posicionamento cinemático em tempo real), o gLAB, o Ginan, o GMAT (General Mission Analysis Tool), o Orekit e as ferramentas dos centros de análise do IGS (International GNSS Service), em vez de ficar em uma ilha privada. Esta página relaciona os formatos de intercâmbio que o motor lê ou emite ao módulo que implementa cada um e à especificação de referência.

Ela se limita a formatos — coisas com uma direção de leitura/escrita. Os padrões de sinal e de algoritmo que o motor implementa em vez de ler (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System), IEEE (Institute of Electrical and Electronics Engineers) 1139, RTCA (formerly the Radio Technical Commission for Aeronautics) DO-229E, IGRF-14 (IGRF: International Geomagnetic Reference Field), a referência WG-C (WG: Working Group) do ARAIM (advanced receiver autonomous integrity monitoring), CCSDS (Consultative Committee for Space Data Systems) 401/DSN (DSN: Deep Space Network)) são evidenciados linha a linha em VERIFICATION-MATRIX.md.

Formatos que o motor fala#

Padrão Direção Módulo Especificação / autoridade Observações
CCSDS OEM (Orbit Ephemeris Message) leitura e escrita src/oem.rs CCSDS 502.0-B Orbit Data Messages, forma KVN (notação chave-valor) Efeméride tabulada de vetores de estado, ingerida por GMAT, Orekit e STK (Systems Tool Kit). parse_oem a lê de volta; validado ao recuperar o exemplo literal da Figura G-11 do Blue Book CCSDS 502.0-B-3 (tests/ccsds_reference.rs). O bloco de covariância de posição/velocidade de 6×6 opcional (COVARIANCE_START … COVARIANCE_STOP, a serialização KVN de 21 elementos do triângulo inferior com um COV_REF_FRAME opcional) é tanto escrito (covariance_block_kvn) quanto lido (parse_covariance_block), simétrico na ida e volta (testes de src/oem.rs).
CCSDS OMM (Orbit Mean-Elements Message) gravação src/omm.rs CCSDS 502.0-B-2, forma KVN Publicação na trilha de padronização dos elementos médios SGP4/TLE (SGP4: Simplified General Perturbations 4; TLE: conjunto de elementos de duas linhas) (movimento médio, e, i, Ω, ω, M, BSTAR (o termo de arrasto do propagador de órbita)). Alcançável pela CLI (CLI: interface de linha de comando) em um cenário orbit por meio de --export-omm <out.omm> ou export_omm = true (um OMM por satélite definido por TLE, com seu id NORAD (North American Aerospace Defense Command) real, designador COSPAR (Committee on Space Research) e época; tests/sp3_export_roundtrip.rs). A forma XML (Extensible Markup Language) e um leitor são desdobramentos posteriores.
CCSDS TDM (Tracking Data Message) leitura e escrita src/ccsds_tdm.rs CCSDS 503.0-B Tracking Data Message, forma KVN Registros de rastreamento de distância / Doppler / ângulo que uma passagem DSN/ESTRACK (ESTRACK: European Space Tracking network) entrega a um sistema de DO (determinação de órbita). Validado ao recuperar o exemplo literal da Figura E-9 do Blue Book CCSDS 503.0-B-2 (tests/ccsds_reference.rs).
CCSDS Space Packet (133,0) leitura e escrita src/space_packet.rs CCSDS 133.0-B-2 Space Packet Protocol O enquadramento de cabeçalho primário TM/TC (TM: telemetria; TC: telecomando) de 6 octetos que os sistemas de solo trocam. O codificador reproduz os vetores de teste em nível de byte publicados pela biblioteca independente spacepackets-py (testes de src/space_packet.rs).
SP3-c (SP3: Standard Product 3, o formato de órbita precisa) / SP3-d (efeméride precisa) leitura e escrita src/sp3.rs IGS Standard Product 3 (c/d) Série temporal de posição fixa à Terra (ECEF) + tempo de relógio. Ida e volta validada a < 0,5 m em um instantâneo real de gps-ops (tests/sp3_export_roundtrip.rs).
RINEX (Receiver Independent Exchange Format) 3 (navegação por transmissão) leitura src/rinex.rs RINEX 3.x NAV (IS-GPS-200, Galileo ICD (interface control document), BeiDou ICD, GLONASS (Global Navigation Satellite System da Rússia) ICD) Ingestão de NAV multi-GNSS (GPS LNAV (legacy navigation message), Galileo F/NAV, QZSS (Quasi-Zenith Satellite System do Japão), BeiDou MEO/IGSO (MEO: órbita média da Terra; IGSO: órbita geossíncrona inclinada), vetor de estado do GLONASS); utilizável como uma fonte Propagator de primeira classe.
TLE / 3LE (elementos de duas / três linhas) leitura src/tle.rs NORAD / Celestrak, AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 Propagados pelo núcleo SGP4/SDP4 validado (SDP4: Simplified Deep-space Perturbations 4) (4,12 mm contra os 666 vetores oficiais da AIAA).
RINEX 3.0x (observação) leitura src/rinex_obs.rs RINEX 3.0x OBS (4,00 esperado para ser lido, nunca exercitado com um arquivo 4,00) A outra metade do RINEX: os registros de código/portadora/Doppler/SNR (SNR: relação sinal-ruído) do próprio receptor (parse_obs). É a entrada que o solucionador de posicionamento por ponto único pvt consome junto com o arquivo de navegação por transmissão (tests/pvt_abmf.rs, estação real do IGS ABMF).
IONEX (IONosphere map EXchange format; mapas globais de TEC (total electron content)) leitura src/ionex.rs IONEX 1.x (produto de ionosfera do IGS) parse_ionex lê as grades globais de conteúdo total de elétrons do IGS — a alternativa medida à correção de Klobuchar transmitida — com interpolação espacial e temporal bilinear e o mapeamento de obliquidade para o atraso oblíquo.
IERS (International Earth Rotation and Reference Systems Service) finals2000A / Bulletin B (orientação da Terra) leitura src/eop.rs, src/frame_eop.rs IERS Conventions; IERS EOP (parâmetros de orientação da Terra) 14 C04 / finals2000A.all UT1 (Universal Time 1, tempo de rotação da Terra)−UTC (Tempo Universal Coordenado) e movimento polar do produto oficial, inclusive as linhas previstas, de modo que a redução de referencial possa ser executada em tempo real e o crescimento do seu erro de predição possa ser orçado (tests/operational_eop_predictor_reference.rs).
KIF (Kshana Interchange Format) leitura e escrita src/interchange.rs este repositório — veja SCHEMA.md O envelope neutro e versionado em que todo artefato pode ser embrulhado: format / schema_version / kind / engine_version / payload, com um veredito explícito de compatibilidade maior-menor para um consumidor. Não é um padrão externo; é documentado aqui porque uma ferramenta alheia precisa reconhecê-lo.
Intercâmbio lunar LunaNet / IOAG (Interagency Operations Advisory Group) escrita (metadados de tempo também lidos) src/lunar_interop.rs Especificação de interoperabilidade LunaNet / arquitetura de comunicações lunares do IOAG, sobre o CCSDS 502,0 O referencial lunar, a escala de tempo lunar e a efeméride lunar emitidos em formas CCSDS alinhadas ao LunaNet/IOAG (export_lunar_oem, export_kif_lunar, export_lunar_time_metadata), com uma verificação de campos sobre o OEM emitido (tests/lunar_interoperability_export_reference.rs).
CZML (Cesium Language) gravação src/interop/czml.rs Formato de pacote CZML do CesiumJS Um fluxo JSON (JavaScript Object Notation) de pacotes com marca de tempo para o globo do CesiumJS; objetos em movimento escritos em GCRS (INERTIAL). --export czml em qualquer tipo que coloque objetos sobre a Terra.
KML (Keyhole Markup Language) gravação src/interop/kml.rs OGC (Open Geospatial Consortium) KML 2,2 Longitude, latitude e altura fixas à Terra para o Google Earth e ferramentas de SIG (sistema de informação geográfica). --export kml.
GeoJSON escrita e leitura (rota) src/interop/geojson.rs IETF (Internet Engineering Task Force) RFC 7946 Geometria fixa à Terra para mapas web e ferramentas de SIG (--export geojson); um LineString é lido de volta como a entrada de trajetória reta dos tipos que a percorrem (--import-route <route.geojson>).
Efeméride STK (.e, EphemerisTimePosVel) gravação src/interop/stk.rs Formato de arquivo de efeméride do Ansys STK Posição e velocidade inerciais (ICRF) para o STK e ferramentas que leem o seu formato de efeméride. --export stk.
SigMF (Signal Metadata Format) leitura e escrita src/sigmf.rs Especificação SigMF Gravações complexas em banda base mais metadados JSON: o tipo spectrum grava suas amostras sintetizadas em fase/quadratura (IQ) (--export sigmf) e lê uma gravação por meio do seu bloco [recording].
Texto de mensagem de navegação LEO (estilo RINEX-4 e CSV (valores separados por vírgula)) leitura e escrita src/leo_navmsg/text.rs Layout de navegação RINEX 4, adaptado A efeméride e o relógio transmitidos pelo tipo leo-navmsg para um satélite de órbita baixa da Terra (LEO), exportados e reimportados; uma adaptação documentada, não um tipo de mensagem RINEX registrado (MODELLED na matriz de verificação).

Referenciais e tempo#

O referencial que o motor emite é explícito, não implícito. A redução IAU (International Astronomical Union) 2006/2000A baseada em CIO (CIO: Celestial Intermediate Origin) (src/cio.rs) e a redução TEME (true equator, mean equinox) por equinócio/GMST (GMST: Greenwich mean sidereal time) (src/frames.rs, src/nutation.rs) são validadas bit a bit em relação aos vetores de referência SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) (veja VALIDATION.md).

Quadro Realização Observações
TEME nativo do SGP4 Equador verdadeiro, equinócio médio — o referencial de saída do SGP4/SDP4.
GCRS (Geocentric Celestial Reference System) / J2000 precessão IAU 2006 + nutação IAU 2000A/2000B teme_to_gcrs (cadeia de equinócio).
CIRS (Celestial Intermediate Reference System) IAU 2006/2000A CIO (X, Y, s) gcrs_to_cirs_matrix (eraC2ixys).
ITRS (International Terrestrial Reference System) / ECEF ERA (ângulo de rotação da Terra) + movimento polar do IERS (CIO) ou GMST + movimento polar (equinócio) gcrs_to_itrs_matrix (CIO, eraC2tcio) / teme_to_itrf (equinócio).
geodésico WGS-84 (WGS: World Geodetic System) exato + inverso iterativo ecef_to_geodetic / geodetic_to_ecef.
Escala de tempo Uso
TT (Tempo Terrestre) Avaliação dos argumentos de precessão/nutação/CIO (jd_tt).
UT1 Ângulo de rotação da Terra / GMST (jd_ut1).
JD de duas partes (data juliana) src/jd2.rs Jd2 para resolução de época inferior a µs.

Mapeamento campo de saída → padrão (CCSDS 502,0)#

O que os dois escritores de mensagens de órbita colocam em cada campo CCSDS ODM (Orbit Data Messages, 502,0), lido de uma execução de scenarios/orbit-sgp4-gps.toml com --export-oem e --export-omm:

Saída do Kshana Campo CCSDS ODM Valor / unidade
Metadados do segmento OEM CENTER_NAME / REF_FRAME / TIME_SYSTEM EARTH / TEME / GPS — o referencial em que os propagadores integram e a escala de tempo da grade de épocas, sem renomeação
Época do estado OEM primeira coluna de cada linha de dados tempo de calendário ISO-8601 (ISO: International Organization for Standardization), escala de tempo GPS
Posição e velocidade OEM colunas de dados X Y Z X_DOT Y_DOT Z_DOT km, km/s
Metadados OMM REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY TEME / UTC / SGP4
Época OMM EPOCH forma ISO-8601 de dia do ano (a época do TLE)
Elementos médios OMM MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR rev/dia, –, graus, 1/raios da Terra

O JSON (JavaScript Object Notation) de resultado do tipo ephemeris traz o mesmo estado em unidades do SI (Sistema Internacional de Unidades) por amostra: jd_utc, teme_r_m / teme_v_m_s, gcrs_r_m / gcrs_v_m_s, ecef_r_m (m, m/s), mais lat_deg, lon_deg, alt_km.

Escopo honesto#

  • OEM, TDM, Space Packet, KIF, SigMF e o texto de mensagem de navegação LEO são de leitura e escrita; OMM, CZML, KML e a efeméride STK são escritores (um leitor de OMM e a serialização XML são desdobramentos posteriores); o GeoJSON é escrito e lido de volta como uma rota; RINEX NAV, RINEX OBS, IONEX, os produtos EOP do IERS e o TLE são leitores; a exportação lunar LunaNet/IOAG é um escritor cujos metadados de tempo fazem ida e volta. INTEROP.md lista qual exportação se aplica a cada cenário incluído.
  • O mapeamento de campos CCSDS/IGS acima é documentação, não uma declaração de que algum padrão é atendido; a avaliação formal em relação a esses padrões (e o registro no catálogo aberto ESA (European Space Agency) ESSR (European Space Software Repository) / NASA (National Aeronautics and Space Administration)) é acompanhada separadamente e está pendente de revisão.
  • A verificação cruzada numérica independente SPICE/ANISE (SPICE: Spacecraft, Planet, Instrument, C-matrix, Events; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — um toolkit de geometria planetária em Rust puro) da redução de referencial é entregue no crate autônomo xval/anise-frames/, excluído do workspace: gcrs_to_itrs_matrix contra a rotação GCRF (Geocentric Celestial Reference Frame) → ITRF93 (International Terrestrial Reference Frame 1993) do ANISE, ao longo de oito épocas de 2020–2023, concorda a ≤ 0,86 m no solo e a ≤ 3,6 m em órbita GNSS (veja VALIDATION.md). Ela precisa de kernels SPICE; por isso, não é um portão padrão de integração contínua (CI).