Precisão do Motor Astronômico

Precisão do motor astronômico

Validação contínua contra JPL Horizons e exemplos canônicos do Meeus 1998. Erros típicos publicados aqui sem maquiar. Esta página é atualizada a cada release do motor.

Resumo executivo

O motor OCSE-Lite (OC Scientific Lunar Engine) implementa as séries analíticas ELP-2000/82B para a Lua, VSOP87D para o Sol, e teorias auxiliares (nutação IAU 2000A, ΔT Espenak-Meeus 2006, refração Bennett/Saemundsson, paralaxe topocêntrica WGS84). Cada release passa por suite de validação automatizada contra dois conjuntos de referência:

  • JPL Horizons (NASA / Jet Propulsion Laboratory): dataset seed com 322 pontos cobrindo a janela 1900-2050, com posições geocêntricas e topocêntricas da Lua e do Sol calculadas com efemérides DE numéricas.
  • Meeus 1998, Astronomical Algorithms, 2 ed.: exemplos canônicos do livro com valores de referência explícitos (Examples 22.a, 25.b, 47.a entre outros).
Janela de uso recomendada: 1900-2100 com erros típicos abaixo de 30 arcsec na posição lunar. Fora dessa janela, a precisão degrada controladamente até ~ arc-min em 4000 BC e 3000 AD via extrapolação Espenak-Meeus.

Erros típicos contra JPL Horizons

Os valores abaixo são do test_phase11_jpl_horizons.php, executado contra o seed benchmark/data/horizons_moon_seed.csv e horizons_sun_seed.csv. P95 = 95 percentil do erro absoluto. Os limites de tolerância são definidos antes de rodar e não são ajustados a posteriori.

Métrica Pontos avaliados P95 medido Máximo medido Limite de tolerância Status
Lua RA (arcsec) 260 23.04 53.65 ≤ 35.00 (P95) / ≤ 60.00 (max) OK
Lua Dec (arcsec) 260 8.22 24.70 ≤ 12.00 (P95) / ≤ 30.00 (max) OK
Lua distância (km) 273 39.84 45.57 ≤ 50 (P95) / ≤ 55 (max) OK
Lua altitude topocêntrica (arcsec) 13 43.94 43.94 ≤ 60 (P95) / ≤ 75 (max) OK
Lua azimute (arcsec) 13 15.54 15.54 ≤ 25 (P95) / ≤ 40 (max) OK
Lua iluminação (pontos pp) 272 0.011 0.673 ≤ 0.05 (P95) / ≤ 1.0 (max) OK
Sol RA (arcsec) 49 1.92 2.28 ≤ 5 (P95) / ≤ 8 (max) OK
Sol Dec (arcsec) 49 0.54 0.54 ≤ 2 (P95) / ≤ 3 (max) OK
Sol distância (km) 49 1041.7 1328.5 ≤ 1500 (P95) / ≤ 2000 (max) OK

Total: 322 pontos avaliados, 9 métricas em paralelo, todas dentro de tolerância. Resultado: 9 pass, 0 fail. Engine version: OC Scientific Lunar Engine v2.0.0.

Validação contra Meeus 1998

O livro Astronomical Algorithms (Jean Meeus, 2 ed., Willmann-Bell, 1998) traz exemplos numéricos completos para cada algoritmo. Reproduzimos os exemplos canônicos:

Exemplo Meeus Algoritmo Variável Valor Meeus Valor motor Diferença
22.a Nutação IAU 1980 Δψ −3.788″ −3.788″ ~0″
22.a Nutação IAU 1980 Δε +9.443″ +9.443″ ~0″
22.a Obliquidade média ε₀ 23°26′27.407″ 23°26′27.407″ ~0″
25.b VSOP87D Sol λ aparente 199.90988° 199.90611° −13.58″
25.b VSOP87D Sol Distância 0.99766 AU 0.99760 AU −0.00006 AU
47.a ELP-2000 Lua λ eclíptica 133.162659° 133.162655° −0.02″
47.a ELP-2000 Lua β eclíptica −3.229127° −3.229126° +0.00″
47.a ELP-2000 Lua Distância 368409.7 km 368409.7 km ~0 km
47.a ELP-2000 Lua Paralaxe horizontal 0.991990° 0.991990° ~0″

O exemplo Meeus 47.a (Lua em 1992-04-12 00:00 TD) reproduz todos os valores do livro com erro abaixo de 0.02 arcsec, o que comprova a fidelidade da série ELP-2000/82B implementada (8467 termos preservados após truncagem em 0.0001 arcsec).

Cobertura temporal e degradação de precisão

O motor cobre o intervalo 4000 BC – 3000 AD, que é o limite teórico do polinômio Espenak-Meeus para ΔT. A precisão varia conforme a janela:

Janela Erro típico Lua (arcsec) Erro típico Sol (arcsec) Erro horário rise/set (s)
1980-2030 (alta confiança) ~5 ~1 ~3
1900-2100 (janela útil) ~10-30 ~2-5 ~5-30
1700-1900 ~30-60 ~5-10 ~30-60
1500-1700 ~60-120 ~10-20 ~60-120
500-1500 (medieval) ~120-300 ~20-60 ~120-600
500 BC – 500 AD (antigo) ~300-1000 ~60-180 ~600-3600
4000 BC e 3000 AD (extremos) ~1000-5000 ~180-600 ~3600+
Limitação declarada: nos extremos da janela, o erro vem principalmente da incerteza em ΔT (variação da rotação terrestre não previsível matematicamente). A série ELP-2000 em si tem precisão consistente.

Limitações conhecidas

O motor não implementa hoje:

  • Efemérides numéricas DE440/DE441 da JPL. Usamos séries analíticas, com precisão típica de arcsec em vez de metros.
  • Modelo de fotometria Hapke completo. A magnitude aparente da Lua é estimada via fórmula simplificada (~0.2 mag de incerteza).
  • Libração física completa (IAU WGCCRE 2015). A libração óptica está em primeira ordem. Para selenografia precisa, a libração física seria adicional.
  • Polar motion (xp, yp) atualizado diariamente. Usamos modelo congelado, com erro máximo < 0.5 arcsec, abaixo dos demais erros.
  • EOP (Earth Orientation Parameters) em tempo real. O motor é evergreen, sem feed externo.

Essas limitações representam diferença abaixo da resolução do olho humano (60 arcsec) e abaixo da precisão típica de equipamento amador. Para uso recreativo, didático, observacional amador, e divulgação científica, o motor entrega precisão com folga.

Como reproduzir

Toda validação é auditável via scripts no diretório lua/calculadora-lunar/:

php test_phase1_meeus_example.php       # Meeus 47.a (Lua)
php test_phase3_sun.php                 # Meeus 25.b (Sol)
php test_phase9_nutation.php            # Meeus 22.a (Nutação)
php test_phase11_jpl_horizons.php       # Validação seed Horizons
php test_phase11_time_scales.php        # Escalas de tempo (UTC, UT1, TAI, TT, TDB)
php test_phase0_regression.php          # Regressão end-to-end

Os arquivos de seed do Horizons estão em lua/calculadora-lunar/benchmark/data/.

Versão do motor avaliada

ComponenteVersão
Engine OC Scientific Lunar Engine v2.0.0
Modelo de efemérides OCSE-Lite-2026A
Lua ELP-2000/82B full (8467 termos)
Sol VSOP87D truncado (58 termos)
Nutação IAU 1980 (66 termos) + IAU 2000A opt-in (1365 termos)
ΔT Espenak-Meeus 2006 (9 ramos históricos)
Refração Bennett 1982 / Saemundsson 1986 / None
Paralaxe WGS84 elipsoide topocêntrico

Veja a metodologia completa em /astronomia/metodologia e a bibliografia em /astronomia/fontes.