Exportações e importações de interoperabilidade
Uma execução grava um documento de resultado, um gráfico e um relatório. --export também grava a geometria do cenário, ou o seu sinal sintetizado, nos formatos que outras ferramentas já leem: um visualizador de globo, um mapa de desktop, um sistema de informação geográfica (GIS), um pacote de análise de missão ou uma ferramenta de rádio definido por software (SDR). Nada aqui lê um relógio ou a rede, e nenhuma exportação traz carimbo de data e hora de geração; assim, o mesmo cenário gera arquivos idênticos byte a byte a cada execução.
kshana scenarios/jamming-demo.toml --export czml # one format
kshana scenarios/jamming-demo.toml --export kml --export geojson
kshana scenarios/jamming-demo.toml --export all # every format that applies
kshana scenarios/jamming-demo.toml --export list # which apply, and why not, without running
kshana scenarios/terrain-nav.toml --import-route route.geojson --export geojson
Os arquivos são gravados ao lado do cenário, com nomes iguais ao do documento de resultado: jamming-demo.czml, jamming-demo.kml, jamming-demo.geojson, um jamming-demo.<object>.e por objeto em movimento (ou jamming-demo.e quando há apenas um) e o par l-band-waterfall-jamming.sigmf-meta / .sigmf-data. Com --study-name, eles tomam o nome do estudo, como as outras saídas.
Um formato nomeado explicitamente que não se aplica ao cenário é um erro que imprime o motivo; com all, o motivo é impresso e o formato é ignorado. Os pontos de entrada da biblioteca são kshana::interop::export(src, format), kshana::interop::plan(src) e kshana::interop::geojson::apply_route(src, geojson); eles recebem o texto do cenário e devolvem bytes, sem tocar em nenhum arquivo, de modo que rodam também na build WebAssembly. O servidor do Model Context Protocol (MCP) oferece os mesmos três como as ferramentas export_interop, list_export_formats e import_route (veja mcp/kshana-mcp/README.md).
Código: src/interop/ (scene.rs constrói uma descrição geométrica do cenário; czml.rs, kml.rs, geojson.rs e stk.rs a gravam), src/sigmf.rs e src/spectrum.rs para o sinal. Testes: tests/interop_formats.rs.
Formatos#
| Formato | O que é | Especificação seguida |
|---|---|---|
| CZML | Cesium Language: um array JSON (JavaScript Object Notation) de pacotes com marcação de tempo, lido pelo CesiumJS | https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Structure |
| KML | Keyhole Markup Language 2,2, um padrão do Open Geospatial Consortium (OGC), lido pelo Google Earth e pela maioria das ferramentas de GIS; as trilhas com marcação de tempo usam a extensão do Google gx:Track |
https://www.ogc.org/standards/kml/ (namespace do esquema http://www.opengis.net/kml/2.2; namespace da extensão http://www.google.com/kml/ext/2.2) |
| GeoJSON | JSON geográfico, Request for Comments (RFC) 7946 da Internet Engineering Task Force (IETF) | https://www.rfc-editor.org/rfc/rfc7946.html |
STK .e |
o arquivo de efemérides do Ansys Systems Tool Kit (STK), na forma tempo-posição-velocidade EphemerisTimePosVel |
https://help.agi.com/stk/Content/stk/importfiles-02.htm |
| SigMF | Signal Metadata Format: um arquivo de metadados JSON e um arquivo bruto de amostras complexas em fase e em quadratura (IQ) | https://sigmf.org/ |
O que cada arquivo contém#
Todo formato geoespacial é gravado a partir da mesma cena, de modo que não podem divergir quanto à posição de qualquer coisa. Uma cena tem até quatro tipos de objeto:
- Objetos em movimento — satélites e uma plataforma de usuário quando se move — amostrados na própria grade de tempo do cenário, com os propagadores que a execução do tipo de cenário usa.
- Locais fixos — um receptor, uma estação terrestre, um jammer ou a origem de um referencial de navegação local.
- Trilhas sem tempo — os pontos de passagem que um tipo de cenário de posicionamento, navegação e temporização (PNT) alternativo de terreno, gravidade ou combinado percorre. Esses tipos de cenário não têm eixo de tempo, portanto as trilhas não carregam nenhum.
- Áreas de cobertura do jammer — para o tipo de cenário
jamming, dois círculos em torno do jammer: o alcance no solo dentro do qual um satélite no zênite (o mais forte) cai abaixo do limiar de rastreamento, de modo que todos os satélites são perdidos, e o alcance dentro do qual um satélite na máscara de elevação (o mais fraco) cai, de modo que o rastreamento começa a falhar. Ambos vêm das equações de enlace do próprio tipo de cenário (Kaplan e Hegarty, Understanding GPS/GNSS (Global Positioning System / Global Navigation Satellite Systems), 3ª ed., §9,4), com o jammer no horizonte do receptor e perda no espaço livre, e o conjunto de testes verifica que a relação portadora/densidade de ruído efetiva em cada raio é igual ao limiar com precisão de 1e-6 dB. O círculo é desenhado em uma esfera com o raio médio da Terra.
CZML#
O primeiro pacote é o pacote do documento ("id": "document", "version": "1.0"), com um relógio que abrange a grade de tempo. Cada objeto em movimento é um pacote cujo position tem uma epoch ISO 8601 (formato de data e hora da Organização Internacional de Normalização) UTC (Tempo Universal Coordenado), referenceFrame "INERTIAL" e amostras cartesian [t, x, y, z, ...]: segundos após a época, metros no Geocentric Celestial Reference System (GCRS). O CesiumJS toma INERTIAL como o International Celestial Reference Frame (ICRF), cujos eixos o GCRS compartilha. Os locais fixos e os centros das áreas de cobertura são posições cartesian constantes, fixas à Terra, com referenceFrame "FIXED". Uma área de cobertura é uma ellipse com ambos os semieixos iguais ao seu raio; uma trilha sem tempo é uma polyline fixada ao solo. A description de cada pacote declara o referencial novamente em palavras.
KML#
Um <Document> com uma <Folder> por classe de objeto. Um objeto em movimento é um <Placemark> que contém um <gx:Track>: um <when> por amostra (ISO 8601 UTC) e depois um <gx:coord> por amostra (longitude, latitude, altura). Os locais são <Point>, as áreas de cobertura são <Polygon> cujo anel é fechado e anti-horário, e as trilhas sem tempo são <LineString>. As coordenadas são longitude e latitude do World Geodetic System 1984 (WGS 84) em graus decimais e altura em metros acima do elipsoide WGS 84, gravadas com altitudeMode absolute. O KML lê absolute como altura acima do nível médio do mar; a diferença, a ondulação do geoide, fica dentro de cerca de ±110 m e não é aplicada. A descrição do documento informa isso.
GeoJSON#
Uma FeatureCollection. As posições são [longitude, latitude] ou [longitude, latitude, height] — longitude primeiro, como a RFC 7946 exige — em graus WGS 84, com altura em metros acima do elipsoide. Um objeto em movimento é um LineString com uma propriedade times_utc que contém um horário ISO 8601 por posição; uma trilha que cruza o meridiano de 180° é gravada como um MultiLineString cortado ali, como a RFC 7946 §3.1.9 pede (o ponto de cruzamento é interpolado, e times_utc lista então apenas as amostras originais). Os locais são Point, as áreas de cobertura são Polygon com anel exterior fechado e anti-horário (§3.1.6), e as trilhas sem tempo são LineString. Cada feature tem uma propriedade units que nomeia a unidade de cada membro numérico.
STK .e#
Um arquivo por objeto em movimento, já que uma efeméride do STK descreve um veículo. O cabeçalho traz NumberOfEphemerisPoints (igual ao número de linhas de dados), ScenarioEpoch (UTC, d Mon yyyy hh:mm:ss.ssssss), InterpolationMethod Lagrange com InterpolationSamplesM1 5, CentralBody Earth, CoordinateSystem ICRF e DistanceUnit Meters; as linhas sob EphemerisTimePosVel são segundos após a época, posição em metros e velocidade em metros por segundo, no GCRS. Uma cena com apenas locais fixos ou trilhas sem tempo não grava nenhum arquivo .e: um ponto fixo é uma Facility do STK, não uma efeméride. Um id que não é uma parte simples de nome de arquivo (uma camada de constelação e um satélite, Pulsar inclined/S1-0163) é gravado com cada outro caractere como -, numerado se dois ids passarem a coincidir.
O tipo de cenário leo-pass e o tipo de cenário leo-pnt-chain (por meio do seu estágio [pass]) exportam todos os satélites de órbita terrestre baixa (LEO) e o usuário a partir dos propagadores e da grade de tempo do próprio tipo de cenário. O tipo de cenário trabalha em ECI0, o referencial inercial centrado na Terra alinhado com o referencial fixo à Terra na época; cada amostra é convertida para o referencial fixo à Terra no seu próprio instante pela rotação da Terra do tipo de cenário e, a partir daí, para o GCRS por meio do referencial true equator, mean equinox (TEME) em que o propagador Simplified General Perturbations 4 (SGP4) produz a saída, naquele instante, com o UT1 (Tempo Universal, o ângulo de rotação da Terra) tomado igual ao UTC e o movimento polar desprezado, como nas outras exportações. Os outros tipos de cenário LEO informam por que um formato não se aplica (a tabela abaixo).
Campanhas#
Um campaign exporta cada cenário membro que tem geometria como seu próprio conjunto de arquivos, com o rótulo do membro inserido antes do sufixo do formato: cada execução de fase (<phase>, ou <phase>-<k> quando a fase tem várias execuções), o cenário-base do sweep (sweep), o cenário de Monte Carlo (monte-carlo) e cada membro composto (o seu rótulo, com os valores compartilhados que ele vincula gravados). campaign-shared-jammer-sea-road.toml --export kml grava campaign-shared-jammer-sea-road.ship-strait.kml e campaign-shared-jammer-sea-road.car-coast-road.kml. Um membro idêntico a um anterior é gravado uma vez, e os valores que uma campanha aplica em tempo de execução (transferências, valores de sweep, sementes) não estão no membro exportado. Um formato se aplica a uma campanha quando se aplica a qualquer membro; caso contrário, o motivo é a nota 4 da tabela abaixo. Veja CAMPAIGNS.md.
SigMF#
O instantâneo [iq] do tipo de cenário spectrum — a banda L modelada, desenhada como amostras complexas em um instante — como um par .sigmf-meta / .sigmf-data, no tipo de dado que [iq] nomeia (cf32_le ou ci16_le). É a mesma gravação que a execução grava e relê para a sua própria verificação de consistência: os metadados exportados são iguais ao bloco iq.sigmf.meta do documento de resultado, e o arquivo de dados tem o comprimento iq.sigmf.data_bytes. O gravador é src/sigmf.rs, o módulo que o tipo de cenário spectrum já usava; nada é duplicado.
Referenciais e tempo#
- O motor propaga em TEME (true equator, mean equinox of date), o seu referencial nativo. Os objetos em movimento são rotacionados para o GCRS pela redução
nutation::teme_to_gcrs(precessão IAU 2006 e nutação IAU 2000B, em que IAU é a União Astronômica Internacional), que reproduz o exemplo publicado de Vallado de TEME para GCRF (Geocentric Celestial Reference Frame) com 0,11 m, para CZML e STK, e para o referencial fixo à Terra porframes::teme_to_ecefpara KML e GeoJSON. A rotação fixa à Terra é o ângulo sideral médio de Greenwich, com o UT1 tomado igual ao UTC e o movimento polar não aplicado — a mesma redução que a exportação SP3 (Standard Product 3) usa. Em um raio de órbita de GPS, o UT1−UTC desprezado, de até 0,9 s, desloca a longitude de um satélite em até cerca de 1,7 km; os locais em terra não são afetados, pois são dados em latitude e longitude. - O tipo de cenário
ephemerisé a exceção: a sua saída do motor já traz posições GCRS e fixas à Terra (com o UT1−UTC e o movimento polar do cenário, ou uma série real do International Earth Rotation and Reference Systems Service (IERS)), e essas são gravadas sem alteração. - Todo horário é UTC. Os segundos intercalares não são modelados: um deslocamento que atravessa um segundo intercalar é contado como se todo dia tivesse 86.400 s, como as grades de tempo do motor contam.
- A época de
t = 0é a que a execução do tipo de cenário usa, e cada arquivo a nomeia: aepochdo tipo de cenárioorbit; quando ela está ausente, a época mais antiga que os próprios dados dos satélites trazem (uma época de conjunto de elementos de duas linhas (TLE), o tempo de referência de uma efeméride transmitida, o início de um arquivo SP3) e 2000-01-01T00:00:00Z somente quando nenhum satélite traz uma (elementos keplerianos). As exportações SP3 e OEM (Orbit Ephemeris Message) mantêm 2000-01-01T00:00:00Z para um cenário semepoch; assim, para esse cenário, as suas datas diferem das destes arquivos. Semepochde cenário, cada satélite que traz a sua própria época é rotacionado para os referenciais GCRS e fixo à Terra no seu próprio instante (a sua época maist), já que é essa a data a que pertence a sua posição TEME; quando as épocas dos satélites diferem, as marcas de tempo compartilhadas seguem a premissa do motor de que todo satélite começa emt = 0, e o arquivo informa por quantas horas elas diferem. A época do elemento SGP4 das constelações Walker dos tipos de cenáriojammingegnss-sim(2018-06-12T00:00:00Z), que as suas execuções também usam para a rotação da Terra; aepochdo tipo de cenáriopasses; aepochdo tipo de cenárioephemerisou a época do TLE. O tipo de cenáriointegritynão tem época de calendário; a sua exportação datat = 0como para um cenário de órbita sem ela. - Os satélites mantêm os identificadores posicionais
G01,G02, ... que as exportações SP3 e OEM lhes dão, porque os propagadores não carregam as linhas de nome do TLE.
Importações#
- Rota GeoJSON.
--import-route <file>(biblioteca:interop::geojson::apply_route) lê o primeiroLineStringde um documento GeoJSON — uma geometria simples, umaFeatureou umaFeatureCollection— e o grava nas entradas de trilha deterrain-nav,terrain-slam,gravity-mapecombined-altpnt(start_lat_deg,start_lon_deg,step_lat_deg,step_lon_deg,waypoints) antes da execução. Esses tipos de cenário percorremstart + i·step; por isso uma rota é aceita quando é exatamente isso: os seus dois extremos (a contagem dewaypointsdo cenário é mantida), ou três ou mais posições igualmente espaçadas em uma reta em latitude e longitude, com precisão de 1e-7 grau (cerca de 1 cm). Qualquer outra rota é recusada e o erro nomeia a posição mais afastada da reta. Uma rota para um tipo de cenário sem entrada de trajetória é recusada com esse motivo. Longitude e latitude têm o intervalo verificado, o que detecta um arquivo com latitude primeiro. - Gravação SigMF. O bloco
[recording]do tipo de cenáriospectrumlê um par.sigmf-meta/.sigmf-datapor meio desrc/sigmf.rse plota a sua estimativa de Welch ao lado do modelo (veja SPECTRUM.md). Ler arquivos é um recurso da build nativa; a build WebAssembly recebe os bytes por meio dekshana::sigmf::read.
Como as exportações são verificadas#
tests/interop_formats.rs analisa cada exportação com um validador escrito a partir da especificação do formato, e não com o código do próprio gravador:
- CZML: um array JSON cujo primeiro pacote é o pacote do documento com um
version; identificadores de pacote únicos; toda posição declarareferenceFrameFIXEDouINERTIAL; as posições amostradas são[t, x, y, z, ...]com uma época ISO 8601 e tempos crescentes. - KML: um documento XML (Extensible Markup Language) bem formado no namespace OGC KML 2,2, com uma feature raiz; a ordem dos elementos do esquema dentro de um Placemark; no máximo uma geometria por Placemark; anéis lineares fechados de quatro ou mais posições; tuplas
lon,lat[,alt]dentro do intervalo; valoresaltitudeModeválidos;styleUrlque se resolvem; umgx:Trackcom tantos<when>quantos<gx:coord>, e o namespace da extensão declarado. - GeoJSON: longitude primeiro e dentro do intervalo, latitude dentro do intervalo, dois ou três números por posição, linhas de duas ou mais posições, anéis exteriores fechados e anti-horários, nenhum segmento cruzando o meridiano de 180°, nenhum membro
crs, uma propriedadeunitsem cada feature. - STK: a linha de versão
stk.v., um blocoBEGIN Ephemeris/END Ephemeriscom as palavras-chave exigidas,DistanceUnit Meters,NumberOfEphemerisPointsigual ao número de linhas de dados, sete números por linha, tempos crescentes. - SigMF:
core:datatypeecore:versionemglobal, arrayscaptureseannotations,core:sample_startem cada captura e um arquivo de dados com amostras inteiras.
Além da estrutura, um satélite exportado para CZML e para STK é comparado com o próprio estado do motor após a mesma redução de referencial, e concorda a 1 mm em posição (os arquivos trazem 0,1 mm): contra a própria saída GCRS do tipo de cenário ephemeris e contra uma propagação TEME para GCRS independente da constelação orbit-sgp4-gps, cada satélite datado pela sua própria época de TLE lida do texto do cenário. Duas verificações saem do motor: as posições CZML do primeiro satélite orbit-sgp4-gps concordam a 0,1 m (medido 2,3 cm) com o mesmo TLE propagado pelo pacote Python sgp4 e reduzido ao GCRS pelo ERFA (Essential Routines for Fundamental Astronomy, a implementação aberta da biblioteca SOFA da IAU), e as posições fixas à Terra dos satélites orbit-rinex são iguais às posições da efeméride transmitida da especificação de interface do Global Positioning System a 1 mm. As posições fixas à Terra da exportação jamming são comparadas com as posições que a execução de jamming avalia, a 5 mm. A rota GeoJSON faz ida e volta por um cenário de trilha, o par SigMF é relido para os mesmos bytes e toda exportação é determinística byte a byte.
Estas são verificações contra as especificações publicadas e contra o próprio motor. Os arquivos não foram carregados no CesiumJS, no Google Earth, no Ansys STK nem em uma ferramenta SDR como parte do conjunto de testes; portanto, a aceitação por uma versão específica dessas ferramentas não é testada aqui.
Intercâmbio de órbita, atitude e kernels (biblioteca, 0,36)#
Ao lado dos formatos --export, a 0,36 acrescentou leitores e gravadores de biblioteca para os arquivos padrão que as ferramentas de análise de missão trocam. Eles recebem e devolvem texto ou bytes e não tocam em nenhum arquivo. Cada um é uma linha VALIDATED da matriz de verificação, contra a implementação independente nomeada ali:
- Orbit Data Messages do CCSDS (
kshana::odm, comkshana::ndm_xmlpara a forma XML): OPM, OMM e OCM em notação de palavra-chave e valor (KVN) e NDM/XML, segundo o CCSDS 502.0-B-3 (OPM e OMM nas versões 3,0 e 2,0, OCM 3,0). Verificadas nos dois sentidos contra o Orekit: o Orekit lê os arquivos do Kshana e o Kshana lê os do Orekit. Os achados que permanecem são fixados por testes. - Attitude Data Messages do CCSDS (
kshana::adm, comkshana::ndm_xml): AEM e APM segundo o CCSDS 504.0-B-2, em KVN e NDM/XML. Verificadas contra o Orekit do mesmo modo, e as rotações de registro contra as do Orekit. - SPICE SPK (
kshana::spk_writer): gravadores e leitores de segmentos SPK do NAIF dos tipos 9 e 13 (com a exportação de um OEM do CCSDS para um kernel SPK) e dos tipos 3 e 21 (polinômios de Chebyshev e linhas de diferenças estendidas), verificados contra os próprios leitores do toolkit NAIF SPICE, até a identidade byte a byte. O Kshana grava os segmentos a partir de registros que lhe são dados: não ajusta coeficientes de Chebyshev nem produz linhas de diferenças.
O importador e gravador de OEM do CCSDS, e o bloco de covariância do OEM, são mais antigos e estão descritos nas importações acima e na matriz.
Limitações#
- Somente os tipos de cenário da tabela abaixo exportam geometria. Os tipos de cenário cuja geometria é centrada na Lua, em Marte ou em outro corpo não são exportados: CZML, KML e GeoJSON descrevem posições em torno da Terra, e esta versão grava arquivos STK somente com
CentralBody Earth, embora o próprio formato STK permita outros corpos centrais. constellation-design,earth-gnss-lunareoem-interoptêm geometria referenciada à Terra que esta versão não exporta; a tabela indica o motivo de cada um.- O tipo de cenário
gnss-inspercorre a sua trajetória em um plano tangente local plano; por isso, apenas a origem do plano é exportada, não a trajetória. - As posições dos satélites fixas à Terra desprezam o UT1−UTC e o movimento polar (veja Referenciais e tempo); as alturas do KML são elipsoidais, não acima do nível médio do mar.
- As áreas de cobertura supõem propagação no espaço livre, um jammer no horizonte do receptor e uma Terra esférica para o círculo.
Todos os arquivos de cenário#
O que kshana <scenario> --export <format> faz com cada arquivo em scenarios/ (o manifesto da suíte não é um cenário e fica de fora). "yes" significa que o formato é gravado e passa pelo seu validador; caso contrário, o número aponta para o motivo. Gerada por cargo run --bin gen_validation_artifacts; tests/interop_formats.rs falha quando ela está desatualizada.
| Cenário | Tipo | CZML | KML | GeoJSON | STK .e |
SigMF |
|---|---|---|---|---|---|---|
acm-link.toml |
acm-link |
não [1] | não [1] | não [1] | não [1] | não [2] |
aocs-slew-mekf.toml |
aocs |
não [3] | não [3] | não [3] | não [3] | não [2] |
aocs-slew.toml |
aocs |
não [3] | não [3] | não [3] | não [3] | não [2] |
aperture-duty-cycle.toml |
aperture-duty-cycle |
não [4] | não [4] | não [4] | não [4] | não [2] |
araim-gps-galileo.toml |
integrity |
sim | sim | sim | sim | não [2] |
araim-reference-check.toml |
araim-reference-check |
não [4] | não [4] | não [4] | não [4] | não [2] |
ascent-losses.toml |
ascent-losses |
não [5] | não [5] | não [5] | não [5] | não [2] |
attitude-budget.toml |
attitude-budget |
não [4] | não [4] | não [4] | não [4] | não [2] |
automotive-urban-canyon.toml |
gnss-ins |
sim | sim | sim | não [6] | não [2] |
campaign-jam-spoof-holdover-integrity.toml |
campaign |
sim | sim | sim | sim | não [7] |
campaign-monte-carlo-clock-holdover.toml |
campaign |
não [7] | não [7] | não [7] | não [7] | não [7] |
campaign-optimize-link-budget.toml |
campaign |
não [7] | não [7] | não [7] | não [7] | não [7] |
campaign-shared-jammer-sea-road.toml |
campaign |
sim | sim | sim | sim | não [7] |
campaign-spectrum-holdover-integrity.toml |
campaign |
sim | sim | sim | sim | não [7] |
campaign-sweep-jammer-power.toml |
campaign |
sim | sim | sim | sim | não [7] |
celeste-iod-classical-pilot-signals.toml |
leo-signal |
não [8] | não [8] | não [8] | não [8] | não [2] |
celeste-iod-end-to-end.toml |
leo-pnt-chain |
sim | sim | sim | sim | não [2] |
celeste-iod-fused-pvt.toml |
leo-pvt |
não [9] | não [9] | não [9] | não [9] | não [2] |
cislunar-arc-recovery.toml |
cislunar-arc-recovery |
não [10] | não [10] | não [10] | não [10] | não [2] |
cislunar-observability.toml |
cislunar-observability |
não [10] | não [10] | não [10] | não [10] | não [2] |
clock-ensemble.toml |
clock |
não [4] | não [4] | não [4] | não [4] | não [2] |
clock-fitted-log.toml |
clock |
não [4] | não [4] | não [4] | não [4] | não [2] |
clock-holdover-labsr.toml |
clock |
não [4] | não [4] | não [4] | não [4] | não [2] |
clock-holdover.toml |
clock |
não [4] | não [4] | não [4] | não [4] | não [2] |
clock-measured-log.toml |
clock |
não [4] | não [4] | não [4] | não [4] | não [2] |
combined-altpnt.toml |
combined-altpnt |
sim | sim | sim | não [6] | não [2] |
conflict-resilience.toml |
conflict-resilience |
não [4] | não [4] | não [4] | não [4] | não [2] |
constellation-multi-gnss-coverage.toml |
constellation-design |
não [11] | não [11] | não [11] | não [11] | não [2] |
contact-schedule.toml |
contact-schedule |
não [1] | não [1] | não [1] | não [1] | não [2] |
earth-gnss-lunar.toml |
earth-gnss-lunar |
não [12] | não [12] | não [12] | não [12] | não [2] |
entry-heating-stardust.toml |
entry-heating |
não [13] | não [13] | não [13] | não [13] | não [2] |
eo-coverage.toml |
eo-coverage |
não [4] | não [4] | não [4] | não [4] | não [2] |
eo-radiometry.toml |
eo-radiometry |
não [5] | não [5] | não [5] | não [5] | não [2] |
ephemeris.toml |
ephemeris |
sim | sim | sim | sim | não [2] |
europa-surface-pnt.toml |
body-pnt |
não [10] | não [10] | não [10] | não [10] | não [2] |
fusion-pnt-coupled.toml |
fusion |
não [4] | não [4] | não [4] | não [4] | não [2] |
fusion-pnt.toml |
fusion |
não [4] | não [4] | não [4] | não [4] | não [2] |
gnss-ins-aviation.toml |
gnss-ins |
sim | sim | sim | não [6] | não [2] |
gnss-ins-maritime.toml |
gnss-ins |
sim | sim | sim | não [6] | não [2] |
gnss-ins-rail.toml |
gnss-ins |
sim | sim | sim | não [6] | não [2] |
gnss-ins.toml |
gnss-ins |
sim | sim | sim | não [6] | não [2] |
gnss-sim-container-terminal-skyline.toml |
gnss-sim |
sim | sim | sim | sim | não [2] |
gnss-sim-raim.toml |
gnss-sim |
sim | sim | sim | sim | não [2] |
gnss-ssv-formation-heo.toml |
gnss-ssv |
não [14] | não [14] | não [14] | não [14] | não [2] |
gnss-ssv-heo.toml |
gnss-ssv |
não [14] | não [14] | não [14] | não [14] | não [2] |
gnss-ssv-lunar-weak.toml |
gnss-ssv |
não [14] | não [14] | não [14] | não [14] | não [2] |
gnss-ssv-nav-lunar.toml |
gnss-ssv |
não [14] | não [14] | não [14] | não [14] | não [2] |
gnss-ssv-shell.toml |
gnss-ssv |
não [14] | não [14] | não [14] | não [14] | não [2] |
gps-denied-gravity-nav-egm2008.toml |
gravity-map |
sim | sim | sim | não [6] | não [2] |
gps-denied-gravity-nav.toml |
gravity-map |
sim | sim | sim | não [6] | não [2] |
gravity-map-error-mc.toml |
gravity-map |
sim | sim | sim | não [6] | não [2] |
gravity-map-nav.toml |
gravity-map |
sim | sim | sim | não [6] | não [2] |
holdover-test-example.toml |
holdover-test |
não [4] | não [4] | não [4] | não [4] | não [2] |
holdover-test-ptp4l.toml |
holdover-test |
não [4] | não [4] | não [4] | não [4] | não [2] |
hybrid-optical-rf.toml |
hybrid-optical-rf |
não [4] | não [4] | não [4] | não [4] | não [2] |
hybrid-pnt.toml |
hybrid |
não [4] | não [4] | não [4] | não [4] | não [2] |
hybrid-ukf.toml |
hybrid-ukf |
não [4] | não [4] | não [4] | não [4] | não [2] |
impairment-eval.toml |
impairment-eval |
não [4] | não [4] | não [4] | não [4] | não [2] |
imu-deadreckoning.toml |
inertial |
não [4] | não [4] | não [4] | não [4] | não [2] |
ins-trn-coast.toml |
ins-trn-coast |
não [4] | não [4] | não [4] | não [4] | não [2] |
integrity-harbour-approach.toml |
integrity |
sim | sim | sim | sim | não [2] |
integrity-raim.toml |
integrity |
sim | sim | sim | sim | não [2] |
jamming-demo.toml |
jamming |
sim | sim | sim | sim | não [2] |
jamming-harbour-approach-skyline.toml |
jamming |
sim | sim | sim | sim | não [2] |
l-band-waterfall-jamming.toml |
spectrum |
não [4] | não [4] | não [4] | não [4] | sim |
launch-window.toml |
launch-window |
não [15] | não [15] | não [15] | não [15] | não [2] |
leo-band-trade.toml |
leo-signal |
não [8] | não [8] | não [8] | não [8] | não [2] |
leo-doppler-positioning.toml |
leo-pvt |
não [9] | não [9] | não [9] | não [9] | não [2] |
leo-focus-data-services.toml |
campaign |
não [7] | não [7] | não [7] | não [7] | não [7] |
leo-focus-fused-pnt-sisre.toml |
campaign |
não [7] | não [7] | não [7] | não [7] | não [7] |
leo-focus-indoor-uhf.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-focus-iot-eirp.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-focus-ntn-bandwidth.toml |
campaign |
não [7] | não [7] | não [7] | não [7] | não [7] |
leo-focus-ppp-altitude.toml |
campaign |
não [7] | não [7] | não [7] | não [7] | não [7] |
leo-focus-science-iono-sounding.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-indoor-uhf.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-iot-energy.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-navmsg-celeste-iod.toml |
leo-navmsg |
não [16] | não [16] | não [16] | não [16] | não [2] |
leo-navmsg-encode-decode.toml |
leo-navmsg |
não [16] | não [16] | não [16] | não [16] | não [2] |
leo-navmsg-fit-interval-trade.toml |
leo-navmsg |
não [16] | não [16] | não [16] | não [16] | não [2] |
leo-navmsg-midpass-update.toml |
leo-navmsg |
não [16] | não [16] | não [16] | não [16] | não [2] |
leo-navmsg-model-comparison.toml |
leo-navmsg |
não [16] | não [16] | não [16] | não [16] | não [2] |
leo-pass-celeste-iod-multiband.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-pass-iridium.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-pass-vs-gnss-cn0.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-pass-xona-pulsar.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-pnt-end-to-end.toml |
leo-pnt-chain |
sim | sim | sim | sim | não [2] |
leo-pnt-mega-shell.toml |
constellation-design |
não [11] | não [11] | não [11] | não [11] | não [2] |
leo-ppp-convergence.toml |
leo-ppp |
não [9] | não [9] | não [9] | não [9] | não [2] |
leo-pvt-fjord-skyline.toml |
leo-pvt |
não [9] | não [9] | não [9] | não [9] | não [2] |
leo-resilience-gnss-jammed-leo-carries.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-resilience-js-margin.toml |
spectrum |
não [4] | não [4] | não [4] | não [4] | não [17] |
leo-resilience-multiband-diversity.toml |
campaign |
não [7] | não [7] | não [7] | não [7] | não [7] |
leo-resilience-spoof-doppler.toml |
leo-pass |
sim | sim | sim | sim | não [2] |
leo-resilience-spoof-monitors.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-timing-utc.toml |
leo-pvt |
não [9] | não [9] | não [9] | não [9] | não [2] |
leo-vertical-5g-network-timing.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-vertical-asset-tracking-iot.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-vertical-autonomous-vehicle-skyline.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-vertical-autonomous-vehicle.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-vertical-critical-infrastructure-timing.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-vertical-polar-arctic.toml |
campaign |
sim | sim | sim | sim | não [7] |
leo-vertical-rail-maritime.toml |
campaign |
sim | sim | sim | sim | não [7] |
link-budget.toml |
link-budget |
não [4] | não [4] | não [4] | não [4] | não [2] |
lunanet-araim.toml |
lunar-integrity |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-ascent.toml |
lunar-ascent |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-attack-surface.toml |
lunar-attack-surface |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-beacon.toml |
lunar-beacon |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-descent-lola.toml |
lunar-descent |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-descent.toml |
lunar-descent |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-differential-pnt.toml |
lunar-differential-pnt |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-frame-campaign.toml |
lunar-frame-campaign |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-frame-realisation.toml |
lunar-frame-realisation |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-infrastructure-carrier-phase.toml |
lunar-infrastructure |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-infrastructure-frame-coestimation.toml |
lunar-infrastructure |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-infrastructure-geodesy-sensitivity.toml |
lunar-infrastructure |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-infrastructure-od-consistency-model-error.toml |
lunar-infrastructure |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-infrastructure-od-consistency.toml |
lunar-infrastructure |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-infrastructure-space-tie.toml |
lunar-infrastructure |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-interop-export.toml |
lunar-interop-export |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-jamming.toml |
lunar-jamming |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-joint-od-clock.toml |
lunar-joint-od-clock |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-llr-datum.toml |
lunar-llr-datum |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-orbit-rendezvous-elfo.toml |
lunar-orbit-rendezvous |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-orbit-rendezvous.toml |
lunar-orbit-rendezvous |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-relay-constellation.toml |
constellation-design |
não [11] | não [11] | não [11] | não [11] | não [2] |
lunar-station-coverage-public-sources.toml |
lunar-station-coverage |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-station-coverage-terrain.toml |
lunar-station-coverage |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-station-coverage.toml |
lunar-station-coverage |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-station-geodesy-baseline.toml |
lunar-llr-datum |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-station-geodesy-with-station.toml |
lunar-llr-datum |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-station-time-lab.toml |
lunar-time-budget |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-surface-terrain.toml |
lunar-surface |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-surface.toml |
lunar-surface |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-time-budget.toml |
lunar-time-budget |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-time-offset.toml |
lunar-time-offset |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-vlbi-fim.toml |
lunar-vlbi-fim |
não [10] | não [10] | não [10] | não [10] | não [2] |
lunar-vlbi.toml |
lunar-vlbi |
não [10] | não [10] | não [10] | não [10] | não [2] |
maritime-port-approach-coast.toml |
ins-trn-coast |
não [4] | não [4] | não [4] | não [4] | não [2] |
maritime-spoof-position-push.toml |
spoof-detect |
não [4] | não [4] | não [4] | não [4] | não [2] |
maritime-strait-jamming.toml |
jamming |
sim | sim | sim | sim | não [2] |
mars-orbit-pnt.toml |
body-pnt |
não [10] | não [10] | não [10] | não [10] | não [2] |
mars-pnt-lmo.toml |
mars-pnt |
não [10] | não [10] | não [10] | não [10] | não [2] |
mars-pnt-surface.toml |
mars-pnt |
não [10] | não [10] | não [10] | não [10] | não [2] |
mars-pnt-transfer.toml |
mars-pnt |
não [10] | não [10] | não [10] | não [10] | não [2] |
meo-leo-fused-pvt.toml |
leo-pvt |
não [9] | não [9] | não [9] | não [9] | não [2] |
mission-thread-artemis-class.toml |
mission-thread |
não [4] | não [4] | não [4] | não [4] | não [2] |
mission-thread-short.toml |
mission-thread |
não [4] | não [4] | não [4] | não [4] | não [2] |
moonlight-service-volume.toml |
moonlight-service-volume |
não [10] | não [10] | não [10] | não [10] | não [2] |
multi-band-jamming-waterfall.toml |
spectrum |
não [4] | não [4] | não [4] | não [4] | não [17] |
ntn-5g-positioning.toml |
ntn-positioning |
não [9] | não [9] | não [9] | não [9] | não [2] |
oem-interop.toml |
oem-interop |
não [18] | não [18] | não [18] | não [18] | não [2] |
optical-atmosphere-network.toml |
optical-atmosphere |
não [19] | não [19] | não [19] | não [19] | não [2] |
optical-atmosphere-techniques.toml |
optical-atmosphere |
não [19] | não [19] | não [19] | não [19] | não [2] |
orbit-gnss-challenged.toml |
orbit |
sim | sim | sim | sim | não [2] |
orbit-molniya.toml |
orbit |
sim | sim | sim | sim | não [2] |
orbit-multignss.toml |
orbit |
sim | sim | sim | sim | não [2] |
orbit-real-tle.toml |
orbit |
sim | sim | sim | sim | não [2] |
orbit-rinex.toml |
orbit |
sim | sim | sim | sim | não [2] |
orbit-sgp4-gps.toml |
orbit |
sim | sim | sim | sim | não [2] |
orbit-urban-canyon-skyline.toml |
orbit |
sim | sim | sim | sim | não [2] |
passes.toml |
passes |
sim | sim | sim | sim | não [2] |
polar-arctic-leo-coverage.toml |
leo-pvt |
não [9] | não [9] | não [9] | não [9] | não [2] |
pvt-abmf.toml |
pvt |
sim | sim | sim | não [6] | não [2] |
quantum-anomaly-detect.toml |
quantum-anomaly-detect |
não [4] | não [4] | não [4] | não [4] | não [2] |
quantum-cai-coast.toml |
inertial |
não [4] | não [4] | não [4] | não [4] | não [2] |
quantum-gnss-free-nav.toml |
quantum-gnss-free-nav |
não [4] | não [4] | não [4] | não [4] | não [2] |
quantum-time-transfer.toml |
quantum-time-transfer |
não [4] | não [4] | não [4] | não [4] | não [2] |
quantum-trade.toml |
quantum-trade |
não [4] | não [4] | não [4] | não [4] | não [2] |
rail-tunnel-coast.toml |
ins-trn-coast |
não [4] | não [4] | não [4] | não [4] | não [2] |
realtime-frame-eop.toml |
realtime-frame-eop |
não [4] | não [4] | não [4] | não [4] | não [2] |
reentry.toml |
reentry |
não [4] | não [4] | não [4] | não [4] | não [2] |
slot-timing-ocxo-leo.toml |
slot-timing |
não [4] | não [4] | não [4] | não [4] | não [2] |
small-uas-jammed-nav.toml |
gnss-ins |
sim | sim | sim | não [6] | não [2] |
solar-system-tour.toml |
solar-system |
não [10] | não [10] | não [10] | não [10] | não [2] |
space-packet.toml |
space-packet |
não [4] | não [4] | não [4] | não [4] | não [2] |
space-weather.toml |
space-weather |
não [4] | não [4] | não [4] | não [4] | não [2] |
spoof-attack.toml |
spoof |
não [4] | não [4] | não [4] | não [4] | não [2] |
spoof-detect.toml |
spoof-detect |
não [4] | não [4] | não [4] | não [4] | não [2] |
spoof-meaconing.toml |
spoof |
não [4] | não [4] | não [4] | não [4] | não [2] |
starlink-sop-doppler-positioning.toml |
leo-pvt |
não [9] | não [9] | não [9] | não [9] | não [2] |
sweep-clock-stability.toml |
sweep |
não [20] | não [20] | não [20] | não [20] | não [2] |
sweep-nd-inertial.toml |
sweep-nd |
não [20] | não [20] | não [20] | não [20] | não [2] |
telecom-prtc-holdover-24h.toml |
telecom-timing |
não [4] | não [4] | não [4] | não [4] | não [2] |
telecom-synce-eec.toml |
telecom-timing |
não [4] | não [4] | não [4] | não [4] | não [2] |
telecom-tie-ingest.toml |
telecom-timing |
não [4] | não [4] | não [4] | não [4] | não [2] |
terrain-nav.toml |
terrain-nav |
sim | sim | sim | não [6] | não [2] |
terrain-slam.toml |
terrain-slam |
sim | sim | sim | não [6] | não [2] |
time-transfer-budget.toml |
time-transfer-budget |
não [21] | não [21] | não [21] | não [21] | não [2] |
timetransfer.toml |
timetransfer |
não [4] | não [4] | não [4] | não [4] | não [2] |
tracking-loop.toml |
tracking-loop |
não [4] | não [4] | não [4] | não [4] | não [2] |
xona-pulsar-end-to-end.toml |
leo-pnt-chain |
sim | sim | sim | sim | não [2] |
xona-pulsar-signals.toml |
leo-signal |
não [8] | não [8] | não [8] | não [8] | não [2] |
Por que um formato não se aplica:
- os tipos de cenário
contact-scheduleeacm-linkplanejam contatos de downlink e codificação; exporte um cenáriopassespara o mesmo satélite e a mesma estação para ver a geometria - o SigMF contém amostras complexas em banda base, que apenas o tipo de cenário
spectrumsintetiza - o tipo de cenário
aocssimula a atitude em torno do centro de massa, sem órbita nem posição no solo, de modo que não há nada a posicionar na Terra - a entrada do cenário não traz posição horizontal (nem latitude e longitude, nem coordenadas centradas na Terra, nem elementos orbitais além, no máximo, de uma altitude), de modo que não há nada a posicionar na Terra
- os tipos de cenário
eo-radiometryeascent-lossescalculam orçamentos sem posição na Terra - uma efeméride do STK descreve a posição e a velocidade de um veículo em função do tempo; esta cena tem apenas pontos fixos ou trilhas sem tempo (um ponto fixo é uma Facility do STK, não uma efeméride)
- nenhum cenário membro da campanha tem algo que este formato descreva; exporte um membro isoladamente para ver o seu motivo
- o tipo de cenário
leo-signalanalisa projetos de sinal (espectros, rastreamento, aquisição, compatibilidade) sem posição de satélite ou de usuário; exporte o cenárioleo-passouleo-pnt-chainque percorre o projeto - não exportado nesta versão: os tipos de cenário de posicionamento fundido colocam seus satélites em um referencial fixo à Terra relativo a uma época que nunca nomeiam, de modo que uma exportação com marcação de tempo teria de inventar a data de calendário (exporte, em vez disso, o cenário
leo-passouleo-pnt-chain) - a geometria do tipo de cenário é centrada na Lua, em Marte ou em outro corpo do sistema solar; CZML, KML e GeoJSON descrevem posições na Terra ou em torno dela, e esta versão grava efemérides STK somente com CentralBody Earth
- não exportado nesta versão:
constellation-designcoloca seus satélites em um referencial fixo ao corpo relativo a uma época que nunca nomeia, de modo que uma exportação com marcação de tempo teria de inventar a data de calendário - não exportado nesta versão: a constelação do Global Navigation Satellite System (GNSS) da Terra de
earth-gnss-lunaré vista de um receptor à distância lunar, cuja trajetória o tipo de cenário não expõe como série temporal - não exportado nesta versão: o tipo de cenário
entry-heatinginforma cargas e aquecimento de pico e não mantém nenhuma trilha no solo com marcação de tempo - o tipo de cenário
gnss-ssvvarre a disponibilidade e a intensidade do enlace para um usuário em uma camada ou em uma trajetória kepleriana; não tem uma única posição a colocar em um mapa - o cenário
launch-windowfornece a latitude do local de lançamento, mas não a longitude, de modo que o local não pode ser posicionado - não exportado nesta versão: a órbita verdadeira de
leo-navmsgé uma referência de ajuste cujo ângulo de rotação da Terra na época é uma entrada (theta0_deg, padrão 0), não derivado da data de calendário, de modo que as suas posições fixas à Terra não estão ligadas a uma data - este cenário de espectro não tem bloco [iq], de modo que nenhuma amostra é sintetizada para gravar
- não exportado nesta versão:
oem-interoplê e grava uma Orbit Ephemeris Message do CCSDS (Consultative Committee for Space Data Systems), que já é, em si, o arquivo de intercâmbio de efemérides - o tipo de cenário
optical-atmospherecalcula estatísticas de enlace para locais em terra, sem geometria com marcação de tempo a posicionar - o cenário varre outro cenário sobre uma grade; exporte o cenário varrido isoladamente
- o tipo de cenário
time-transfer-budgetcalcula um orçamento de enlace e estabilidades, sem geometria com marcação de tempo a posicionar