Changelog do Motor Astronômico

Changelog do motor

Versionamento semântico (MAJOR.MINOR.PATCH). MAJOR para mudanças que quebram compatibilidade. MINOR para features novas. PATCH para fixes que não alteram saídas existentes.

v2.2.0: 2026-04-29 (atual)

Marco L2 + L3 + L4 + L6++: Sistema solar completo, atlas estelar, pequenos corpos.

  • VSOP87D full para os 7 planetas (Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune): 31577 termos brutos baixados do IMCCE, 12104 preservados após truncagem em 1e-7 rad / 1e-9 AU. Validado contra Meeus 32.a (Venus heliocêntrico) com erro de 3.3 arcsec.
  • core/astro/ephemeris/PlanetEphemerisVSOP87.php: classe que computa posição geocêntrica com light-time iterativo (3 passes), conversão ecliptic-equatorial, magnitude aparente Meeus 41.
  • Páginas /astronomia/planeta/{nome}: 7 páginas individuais para cada planeta com posição em tempo real.
  • Hub /astronomia/planetas: tabela viva dos 7 planetas com RA, Dec, magnitude, fase, elongação.
  • API /api/v1/planeta: endpoint REST para qualquer planeta.
  • core/astro/StarCatalog.php: acesso a top 80 estrelas brilhantes (HIP) + 88 constelações IAU.
  • Páginas /astronomia/atlas, atlas-estrela, atlas-constelacao: catálogo navegável com nomes em PT, EN e Latim, formas genitivas, RA/Dec J2000.
  • core/astro/charts/LunarGlobe.php: SVG do globo lunar com terminator e libração.
  • core/astro/charts/EclipseMap.php: mapa-mundi para mostrar visibilidade de eclipses.
  • core/astro/ephemeris/KeplerEphemeris.php: solver de Kepler para pequenos corpos (asteroides + cometas).
  • 22 asteroides numerados com elementos osculadores JPL SBDB: Ceres, Pallas, Juno, Vesta, Hygiea, Eros, Ida, Apophis, Bennu, Ryugu, Itokawa, Didymos, etc.
  • 10 cometas históricos: Halley, Hale-Bopp, NEOWISE, Hyakutake, Churyumov-Gerasimenko, Tempel 1, Borrelly, Wild 2, Tsuchinshan-ATLAS, Borisov.
  • Páginas /astronomia/asteroides + asteroide individual: posição geocêntrica em tempo real, elementos orbitais, contexto editorial.
  • Endpoints visuais /astronomia/lunar-globe, /astronomia/sky-chart: SVG server-rendered.
  • 16 testes VSOP87 planetário (test_phase16_planets.php), todos pass. Adiciona ao total existente.
Total de páginas do laboratório: hub + 5 docs + lua + 7 planetas + planetas hub + sky-chart + lunar-globe + atlas + ~50 estrelas + 88 constelações + asteroides hub + 22 asteroides individuais. ~180 páginas auditáveis.

v2.1.0: 2026-04-28

Marco L0+L1+L5+L6+L8: Astronomia inaugurada.

  • Estrutura /astronomia/ criada com hub, páginas docs (precisão, metodologia, fontes, glossário, changelog).
  • Hub /astronomia/ criado para trilha pública de intent rápido.
  • IAU 2006 P03 precessão implementada em core/astro/frames/PrecessionIAU2006.php (Capitaine, Wallace & Chapront 2003).
  • Frame Bias matrix B em core/astro/frames/FrameBias.php (IERS Conventions 2010 Eq. 5.18).
  • Cadeia NPB (Nutação x Precessão x Bias) em core/astro/frames/NPBChain.php: ICRS <-> true of date.
  • Eclipses Besselian em core/astro/eclipse/BesselianElements.php: classifica eclipses solares (parcial/anular/total) e lunares (penumbral/parcial/total) com gamma e magnitude.
  • SVG charts server-rendered: SvgChart, SkyChartPolar (estereográfica), AltitudeTrack (altitude vs tempo).
  • Endpoint /astronomia/sky-chart: mapa do céu para qualquer data + localização.
  • API REST interna em /api/v1/: lua, sol, health, version. Restrita a localhost / X-OC-Internal por enquanto.
  • InputValidator com limites cientificamente justificados (latitude, altitude, pressão, temperatura, refração, ΔT, UT1-UTC, TAI-UTC, datetime).
  • i18n PT/EN com hreflang em todas páginas do laboratório.
  • 21 testes IAU 2006 (test_phase12_iau2006_frames.php), 15 testes charts (test_phase14_charts.php), 9 testes Besselian (test_phase15_besselian.php). Total: 45 novos testes, 100% pass.
  • Validação contra NASA Espenak: gamma com erro de 0.001 em eclipses solares, magnitude lunar com erro de 0.02.

v2.0.0: 2026-04-27

Refatoração em camadas SSOT (Single Source of Truth).

  • Layered architecture: motor reorganizado em core/astro/ com 30+ classes especializadas (TimeScales, Coordinates, MoonPosition, SunPosition, ObserverModel, TopocentricTransformer, RiseSetTransitSolver, PhaseGeometryCalculator, etc).
  • ELP-2000/82B full: 36 séries carregadas em elp_all.php (8467 termos preservados após truncagem em 0.0001 arcsec). Reproduz Meeus 47.a com erro < 0.02 arcsec.
  • VSOP87D Sun: 58 termos truncados (35 L + 7 B + 16 R), substituindo as séries simplificadas anteriores.
  • IAU 2000A nutation opt-in: 1365 termos completos disponíveis via observer.nutation_model = 'iau2000a'. Default permanece IAU 1980 para compatibilidade.
  • 3 modelos de refração: Bennett 1982 (default), Saemundsson 1986, None (modo astrométrico).
  • Espenak-Meeus ΔT: polinômio completo em 9 ramos históricos cobrindo 4000 BC – 3000 AD.
  • Topocentric transformer: paralaxe via elipsoide WGS84 (opcional, default esfera para compatibilidade).
  • Time scale bundle: UTC, UT1, TAI, TT, TDB explícitos em cada saída.
  • Calendários multiculturais: gregoriano, juliano, hijri, hebraico, chinês.
  • Folclore lunar: nomes de Lua Cheia/Nova por mês (Algonquin) + termos Tupi-Guarani por fase.
  • Birth date metrics: lunações vividas, dias, anos.
  • Validation suite: 30+ scripts test_phase*.php cobrindo cada camada.
  • JPL Horizons benchmark: 322 pontos seed, 9/9 métricas dentro de tolerância.
Marco editorial: criação do /astronomia/ com páginas /precisao, /metodologia, /fontes, /glossario e este changelog.

v1.x.x: 2026-04 e anteriores

Versões anteriores antes da refatoração em camadas. Implementação monolítica em MoonPhaseCalculator.php com aproximações de baixa ordem (suficiente para uso recreativo/educacional simples mas não para validação científica). Mantida em lua/data/MoonPhaseCalculator.php para compatibilidade com páginas públicas que não precisam da precisão do v2.

Roadmap próximas versões

v2.1.0: Frames IAU 2006

  • IAU 2006 P03 precessão (substitui IAU 1976)
  • Frame bias matrix B (ICRS → equador médio J2000)
  • Cadeia ICRS → BCRS → GCRS → CIRS → ITRS
  • TT-TDB diferença relativística completa

v2.2.0: Sistema solar

  • VSOP87D FULL para 7 planetas (Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune)
  • Páginas individuais por planeta em /astronomia/planeta/{nome}
  • Predição de oposições e maior elongação

v2.3.0: Atlas estelar

  • Catálogo Hipparcos top 5000
  • 88 constelações IAU + culturas Tupi, Yanomami, Chinesa, Indiana
  • Páginas /astronomia/atlas/constelacao/{nome} e /astronomia/atlas/estrela/{HIP}

v2.4.0: Pequenos corpos

  • 5000 asteroides com elementos osculadores Keplerianos
  • 100 cometas históricos numerados
  • Predição de próximas aparições

v2.5.0: Eclipses Besselian

  • Elementos Besselianos completos
  • Mapa de visibilidade global
  • Magnitude local exata para qualquer cidade

v2.6.0: Saídas gráficas

  • Sky chart 2D estereográfica polar SVG
  • All-sky panoramic SVG
  • Lunar globe com terminator
  • Eclipse path maps
  • Sistema solar vista superior

v3.0.0: DE440 com lazy load

  • Leitor SPK em PHP
  • Suporte ao DE440 (1550-2650, 114 MB binário)
  • Toggle engine=elp (default) vs engine=de440
  • Precisão de metros em vez de arcsec

Política de compatibilidade

  • MAJOR (X.0.0): pode quebrar API ou alterar saídas existentes. Anunciada com 90 dias de antecedência.
  • MINOR (x.Y.0): novas features ou novos campos de saída, sem quebrar existentes.
  • PATCH (x.y.Z): correção de bugs ou aumentos de precisão que não mudam contratos.

Veja a metodologia atual, validação de precisão, e bibliografia completa.