Resumo executivo
O motor OCSE-Lite (OC Scientific Lunar Engine) implementa as series analiticas ELP-2000/82B para a Lua, VSOP87D para o Sol, e teorias auxiliares (nutacao IAU 2000A, ΔT Espenak-Meeus 2006, refracao Bennett/Saemundsson, paralaxe topocentrica WGS84). Cada release passa por suite de validacao automatizada contra dois conjuntos de referencia:
- JPL Horizons (NASA / Jet Propulsion Laboratory): dataset seed com 322 pontos cobrindo a janela 1900-2050, com posicoes geocentricas e topocentricas da Lua e do Sol calculadas com efemerides DE numericas.
- Meeus 1998, Astronomical Algorithms, 2 ed.: exemplos canonicos do livro com valores de referencia explicitos (Examples 22.a, 25.b, 47.a entre outros).
Erros tipicos contra JPL Horizons
Os valores abaixo sao 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 tolerancia sao definidos antes de rodar e nao sao ajustados a posteriori.
| Metrica | Pontos avaliados | P95 medido | Maximo medido | Limite de tolerancia | 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 distancia (km) | 273 | 39.84 | 45.57 | ≤ 50 (P95) / ≤ 55 (max) | OK |
| Lua altitude topocentrica (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 iluminacao (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 distancia (km) | 49 | 1041.7 | 1328.5 | ≤ 1500 (P95) / ≤ 2000 (max) | OK |
Total: 322 pontos avaliados, 9 metricas em paralelo, todas dentro de tolerancia. Resultado: 9 pass, 0 fail. Engine version: OC Scientific Lunar Engine v2.0.0.
Validacao contra Meeus 1998
O livro Astronomical Algorithms (Jean Meeus, 2 ed., Willmann-Bell, 1998) traz exemplos numericos completos para cada algoritmo. Reproduzimos os exemplos canonicos:
| Exemplo Meeus | Algoritmo | Variavel | Valor Meeus | Valor motor | Diferenca |
|---|---|---|---|---|---|
| 22.a | Nutacao IAU 1980 | Δψ | −3.788″ | −3.788″ | ~0″ |
| 22.a | Nutacao IAU 1980 | Δε | +9.443″ | +9.443″ | ~0″ |
| 22.a | Obliquidade media | ε₀ | 23°26′27.407″ | 23°26′27.407″ | ~0″ |
| 25.b | VSOP87D Sol | λ aparente | 199.90988° | 199.90611° | −13.58″ |
| 25.b | VSOP87D Sol | Distancia | 0.99766 AU | 0.99760 AU | −0.00006 AU |
| 47.a | ELP-2000 Lua | λ ecliptica | 133.162659° | 133.162655° | −0.02″ |
| 47.a | ELP-2000 Lua | β ecliptica | −3.229127° | −3.229126° | +0.00″ |
| 47.a | ELP-2000 Lua | Distancia | 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 serie ELP-2000/82B implementada (8467 termos preservados apos truncagem em 0.0001 arcsec).
Cobertura temporal e degradacao de precisao
O motor cobre o intervalo 4000 BC – 3000 AD, que e o limite teorico do polinomio Espenak-Meeus para ΔT. A precisao varia conforme a janela:
| Janela | Erro tipico Lua (arcsec) | Erro tipico Sol (arcsec) | Erro horario rise/set (s) |
|---|---|---|---|
| 1980-2030 (alta confianca) | ~5 | ~1 | ~3 |
| 1900-2100 (janela util) | ~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+ |
Limitacoes conhecidas
O motor nao implementa hoje:
- Efemerides numericas DE440/DE441 da JPL. Usamos series analiticas, com precisao tipica de arcsec em vez de metros.
- Modelo de fotometria Hapke completo. A magnitude aparente da Lua e estimada via formula simplificada (~0.2 mag de incerteza).
- Libracao fisica completa (IAU WGCCRE 2015). A libracao optica esta em primeira ordem. Para selenografia precisa, a libracao fisica seria adicional.
- Polar motion (xp, yp) atualizado diariamente. Usamos modelo congelado, com erro maximo < 0.5 arcsec, abaixo dos demais erros.
- EOP (Earth Orientation Parameters) em tempo real. O motor e evergreen, sem feed externo.
Essas limitacoes representam diferenca abaixo da resolucao do olho humano (60 arcsec) e abaixo da precisao tipica de equipamento amador. Para uso recreativo, didatico, observacional amador, e divulgacao cientifica, o motor entrega precisao com folga.
Como reproduzir
Toda validacao e auditavel via scripts no diretorio 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 (Nutacao) php test_phase11_jpl_horizons.php # Validacao seed Horizons php test_phase11_time_scales.php # Escalas de tempo (UTC, UT1, TAI, TT, TDB) php test_phase0_regression.php # Regressao end-to-end
Os arquivos de seed do Horizons estao em lua/calculadora-lunar/benchmark/data/.
Versao do motor avaliada
| Componente | Versao |
|---|---|
| Engine | OC Scientific Lunar Engine v2.0.0 |
| Modelo de efemerides | OCSE-Lite-2026A |
| Lua | ELP-2000/82B full (8467 termos) |
| Sol | VSOP87D truncado (58 termos) |
| Nutacao | IAU 1980 (66 termos) + IAU 2000A opt-in (1365 termos) |
| ΔT | Espenak-Meeus 2006 (9 ramos historicos) |
| Refracao | Bennett 1982 / Saemundsson 1986 / None |
| Paralaxe | WGS84 elipsoide topocentrico |
Veja a metodologia completa em /laboratorio/metodologia e a bibliografia em /laboratorio/fontes.