# Moment Sky — gate técnico ES15 **PASSOU**: 27 cenários, 382 posições comparadas; maior erro angular **0.009399°**, limite **1°** por posição e sistema de coordenadas testado. Execução: Node v20.19.4; Astronomy Engine 2.1.19. Referências oficiais coletadas em 28/10/2026, arquivadas em references/ com URLs e hashes SHA-256. ## Método e evidência 12 cenários USNO Celestial Navigation e 15 cenários JPL Horizons. São resultados publicados pelos serviços oficiais, independentes de Astronomy Engine; não usamos saídas do próprio motor como referência nem precisamos recorrer a fórmulas alternativas. O teste e o runtime usam somente arquivos locais. USNO: hc/zn são altura geométrica calculada e azimute, sem as correções de sextante. Comparamos todas as estrelas presentes no recorte HYG e os planetas listados (exceto Mercúrio, ausente do serviço). Sol e Lua do USNO são excluídos explicitamente: a Lua exige tratamento topocêntrico; ambos têm referências JPL próprias. As referências USNO validam alt/az estelar; não há teste direto independente de RA/Dec estelar. JPL: observador geodésico terrestre ao nível do elipsoide, centro aparente do alvo, AIRLESS. O cenário C13 usa quantidade 4 (alt/az). J01–J14 usam quantidades 2 e 4: RA/Dec aparentes da data e azimute/altura topocêntricos, em graus. Os cabeçalhos, duas linhas numéricas e modelos de efemérides são preservados nas respostas brutas; o teste usa a primeira linha. Sun=10, Moon=301 e centros planetários 199/299/499/599/699. Fontes e consultas em references/cases.json, jpl-query.json e expanded-cases.json. Erro é separação de grande círculo por haversine, usando (altura,azimute) ou (declinação,RA×15). Para J01–J14, o erro da posição é o máximo das duas separações. Todos os valores devem ser finitos e ≤1°. Não descartamos posições por erro nem filtramos alvos sob o horizonte. Cada cenário abaixo exibe seu maior erro; references/results.json registra cada posição individual. ## Tabela caso a caso | Caso/alvo | UTC | Fuso de entrada | Lat, lon ° | Posições | Erro alt/az ° | Erro RA/Dec ° | Máximo ° | Fonte | |---|---|---|---|---:|---:|---:|---:|---| | C01 | 2025-01-15T03:00:00Z | UTC-5 | 40, -75 | 30 | 0.005787 | — | 0.005787 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-01-15&time=03%3A00%3A00&coords=40%2C-75) | | C02 | 2025-02-15T05:00:00Z | UTC+11 | -34, 151 | 35 | 0.005751 | — | 0.005751 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-02-15&time=05%3A00%3A00&coords=-34%2C151) | | C03 | 2025-03-15T07:00:00Z | UTC+0 | 51, 0 | 27 | 0.008008 | — | 0.008008 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-03-15&time=07%3A00%3A00&coords=51%2C0) | | C04 | 2025-04-15T09:00:00Z | UTC+2 | -34, 18 | 31 | 0.007320 | — | 0.007320 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-04-15&time=09%3A00%3A00&coords=-34%2C18) | | C05 | 2025-05-15T11:00:00Z | UTC+9 | 35, 139 | 28 | 0.005600 | — | 0.005600 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-05-15&time=11%3A00%3A00&coords=35%2C139) | | C06 | 2025-06-15T13:00:00Z | UTC+12 | -37, 175 | 32 | 0.005633 | — | 0.005633 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-06-15&time=13%3A00%3A00&coords=-37%2C175) | | C07 | 2025-07-15T15:00:00Z | UTC-10 | 20, -155 | 29 | 0.005697 | — | 0.005697 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-07-15&time=15%3A00%3A00&coords=20%2C-155) | | C08 | 2025-08-15T17:00:00Z | UTC-5 | -12, -77 | 35 | 0.006835 | — | 0.006835 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-08-15&time=17%3A00%3A00&coords=-12%2C-77) | | C09 | 2025-09-15T19:00:00Z | UTC+05:30 | 28, 77 | 29 | 0.005765 | — | 0.005765 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-09-15&time=19%3A00%3A00&coords=28%2C77) | | C10 | 2025-10-15T21:00:00Z | UTC+3 | -1, 37 | 27 | 0.005697 | — | 0.005697 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-10-15&time=21%3A00%3A00&coords=-1%2C37) | | C11 | 2025-11-15T23:00:00Z | UTC+2 | 65, 25 | 30 | 0.005735 | — | 0.005735 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-11-15&time=23%3A00%3A00&coords=65%2C25) | | C12 | 2025-12-15T01:00:00Z | UTC-3 | -55, -68 | 34 | 0.009399 | — | 0.009399 | [USNO](https://aa.usno.navy.mil/api/celnav?date=2025-12-15&time=01%3A00%3A00&coords=-55%2C-68) | | C13 | 2025-03-08T23:30:00Z | America/New_York | 40, -75 | 1 | 0.000173 | — | 0.000173 | [JPL Horizons DE441](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27199%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27-75%2C40%2C0%27&START_TIME=%272025-03-08+23%3A30%27&STOP_TIME=%272025-03-08+23%3A31%27&STEP_SIZE=%271+m%27&QUANTITIES=%274%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J01 / Sun | 2000-01-15T03:00:00Z | UTC (Z) | 40, -75 | 1 | 0.001302 | 0.000144 | 0.001302 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%2710%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27-75%2C40%2C0%27&START_TIME=%272000-01-15+03%3A00%27&STOP_TIME=%272000-01-15+03%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J02 / Moon | 2010-02-15T05:00:00Z | UTC (Z) | -34, 151 | 1 | 0.000384 | 0.000234 | 0.000384 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27301%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27151%2C-34%2C0%27&START_TIME=%272010-02-15+05%3A00%27&STOP_TIME=%272010-02-15+05%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J03 / Mercury | 2026-03-15T07:00:00Z | UTC (Z) | 51, 0 | 1 | 0.001187 | 0.000867 | 0.001187 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27199%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%270%2C51%2C0%27&START_TIME=%272026-03-15+07%3A00%27&STOP_TIME=%272026-03-15+07%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J04 / Venus | 2040-04-15T09:00:00Z | UTC (Z) | -34, 18 | 1 | 0.000504 | 0.000365 | 0.000504 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27299%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%2718%2C-34%2C0%27&START_TIME=%272040-04-15+09%3A00%27&STOP_TIME=%272040-04-15+09%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J05 / Mars | 2000-05-15T11:00:00Z | UTC (Z) | 35, 139 | 1 | 0.001093 | 0.000302 | 0.001093 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27499%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27139%2C35%2C0%27&START_TIME=%272000-05-15+11%3A00%27&STOP_TIME=%272000-05-15+11%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J06 / Jupiter | 2010-06-15T13:00:00Z | UTC (Z) | -37, 175 | 1 | 0.000597 | 0.000732 | 0.000732 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27599%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27175%2C-37%2C0%27&START_TIME=%272010-06-15+13%3A00%27&STOP_TIME=%272010-06-15+13%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J07 / Saturn | 2026-07-15T15:00:00Z | UTC (Z) | 20, -155 | 1 | 0.002686 | 0.002694 | 0.002694 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27699%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27-155%2C20%2C0%27&START_TIME=%272026-07-15+15%3A00%27&STOP_TIME=%272026-07-15+15%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J08 / Sun | 2040-08-15T17:00:00Z | UTC (Z) | -12, -77 | 1 | 0.000608 | 0.000122 | 0.000608 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%2710%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27-77%2C-12%2C0%27&START_TIME=%272040-08-15+17%3A00%27&STOP_TIME=%272040-08-15+17%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J09 / Moon | 2000-09-15T19:00:00Z | UTC (Z) | 28, 77 | 1 | 0.000930 | 0.000140 | 0.000930 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27301%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%2777%2C28%2C0%27&START_TIME=%272000-09-15+19%3A00%27&STOP_TIME=%272000-09-15+19%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J10 / Mercury | 2010-10-15T21:00:00Z | UTC (Z) | -1, 37 | 1 | 0.000332 | 0.000376 | 0.000376 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27199%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%2737%2C-1%2C0%27&START_TIME=%272010-10-15+21%3A00%27&STOP_TIME=%272010-10-15+21%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J11 / Venus | 2026-11-15T23:00:00Z | UTC (Z) | 65, 25 | 1 | 0.002607 | 0.002496 | 0.002607 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27299%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%2725%2C65%2C0%27&START_TIME=%272026-11-15+23%3A00%27&STOP_TIME=%272026-11-15+23%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J12 / Mars | 2040-12-15T01:00:00Z | UTC (Z) | -55, -68 | 1 | 0.000638 | 0.000361 | 0.000638 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27499%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27-68%2C-55%2C0%27&START_TIME=%272040-12-15+01%3A00%27&STOP_TIME=%272040-12-15+01%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J13 / Jupiter | 2000-01-15T03:00:00Z | UTC (Z) | 40, -75 | 1 | 0.002647 | 0.002017 | 0.002647 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27599%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27-75%2C40%2C0%27&START_TIME=%272000-01-15+03%3A00%27&STOP_TIME=%272000-01-15+03%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | | J14 / Saturn | 2010-02-15T05:00:00Z | UTC (Z) | -34, 151 | 1 | 0.005357 | 0.005548 | 0.005548 | [JPL Horizons](https://ssd.jpl.nasa.gov/api/horizons.api?format=json&COMMAND=%27699%27&OBJ_DATA=%27NO%27&MAKE_EPHEM=%27YES%27&EPHEM_TYPE=%27OBSERVER%27&CENTER=%27coord%40399%27&COORD_TYPE=%27GEODETIC%27&SITE_COORD=%27151%2C-34%2C0%27&START_TIME=%272010-02-15+05%3A00%27&STOP_TIME=%272010-02-15+05%3A01%27&STEP_SIZE=%271+m%27&QUANTITIES=%272%2C4%27&APPARENT=%27AIRLESS%27&CSV_FORMAT=%27YES%27&ANG_FORMAT=%27DEG%27) | ## Cobertura por alvo | Alvo | Posições | Maior erro ° | |---|---:|---:| | Sun | 2 | 0.001302 | | Moon | 2 | 0.000930 | | Mercury | 3 | 0.001187 | | Venus | 7 | 0.008008 | | Mars | 6 | 0.001183 | | Jupiter | 8 | 0.002647 | | Saturn | 11 | 0.005548 | | Estrelas HYG | 343 | 0.009399 | ## Convenções e limites - Entrada UTC ISO com Z, ou hora local e fuso explícito. Calendário gregoriano; intervalo 2000–2050. Datas inválidas e horários IANA ambíguos/inexistentes são rejeitados. Coordenadas geodésicas em graus, norte/leste positivos. Não há consulta de rede, gravação de entradas ou geolocalização. - Saída: 179 estrelas HYG de magnitude V ≤3, Sol, Lua e Mercúrio, Vênus, Marte, Júpiter e Saturno. RA em horas e declinação em graus, equador/equinócio verdadeiros da data; alt/az em graus, azimute norte=0°, leste=90°. RA/Dec de entrada do catálogo são J2000; não confundir com a saída da data. - Corpos do sistema solar: tempo de luz, aberração e paralaxe topocêntrica via Astronomy Engine. Estrelas: movimento próprio tangencial linear, precessão e nutação; aberração anual estelar, paralaxe e movimento radial/perspectivo não modelados. A aproximação estelar fica abaixo do limite nos casos testados; não equivale a astrometria completa. - Altura geométrica sem refração, terreno, obstáculos ou extinção. UTC aproxima UT1 (diferença moderna inferior a 0,9 s). Não se aceita segundo intercalar digitado. Não há garantia universal de erro ≤1° fora das posições efetivamente testadas; anos cobertos: 2000, 2010, 2025, 2026 e 2040. Magnitudes não são validadas pelo gate. - aboveHorizon significa altitude >0°. visible é apenas elegibilidade geométrica com Sol ≤−6°; não garante detecção humana e não é critério apropriado para visibilidade diurna do Sol/Lua. A API retorna todos os objetos, inclusive abaixo do horizonte. ## Licenças e reprodução Catálogo adaptado HYG v4.1 sob CC BY-SA 4.0, atribuição e alterações em [LICENCA-DADOS.md](LICENCA-DADOS.md). Dependências Astronomy Engine e Luxon sob MIT, avisos integrais em licenses/. Suporte da marca: suporte@rohnelt.dev. ```sh npm ci npm test npm run gate ``` npm test valida as referências e regenera este relatório; npm run gate também regenera o relatório isoladamente. Scripts collect-*.py acessam a rede apenas na aquisição opcional de referências. Sem UI, servidor, pm2, host, publicação ou cobrança. GATE: PASSOU