Visao geral da pipeline
O motor processa uma consulta em 9 estagios sequenciais, cada um com fonte cientifica explicita. Os estagios sao independentes (camadas), permitindo trocar implementacao de um sem afetar os outros.
1. Sanitizacao de inputs [ObserverModel] 2. Escalas de tempo (UTC→UT1→TAI→TT→TDB) [TimeScaleService + Espenak-Meeus] 3. Efemerides Sol e Lua (geocentricas) [VSOP87D + ELP-2000/82B] 4. Nutacao + aberracao anual [IAU 1980 ou IAU 2000A] 5. Conversao ecliptica → equatorial [Coordinates::eclipticToEquatorial] 6. Paralaxe topocentrica [TopocentricTransformer + WGS84] 7. Refracao atmosferica [Bennett, Saemundsson ou None] 8. Eventos do dia (rise/set/transit) [RiseSetTransitSolver] 9. Predicoes auxiliares [Phases, eclipses, super luas, libracao]
1. Sanitizacao e validacao de inputs
Todo parametro de entrada tem limites cientificamente justificados. Valores fora de range sao rejeitados com erro 400 ou substituidos por default seguro, conforme a politica de cada campo.
| Campo | Limite | Justificativa |
|---|---|---|
| Latitude | −90 a +90 graus | Definicao geometrica (polo a polo) |
| Longitude | −180 a +180 graus | Definicao geometrica |
| Altitude observador | −430 a +9000 metros | Mar Morto −430m ate Everest 8849m. ICAO ISA atmosfera padrao |
| Pressao atmosferica | 0 a 1100 hPa | ICAO ISA superficie 1013.25 hPa, recordes ate ~1083 hPa |
| Temperatura | −100 a +70 °C | Vostok −89.2 °C (1983), Lut +70.7 °C (2005) |
| Humidade relativa | 0 a 100 % | Definicao termodinamica |
| Refracao no horizonte | 0 a 1.5 graus | Padrao IAU 0.5667°, maximo plausivel ~1.5° |
| ΔT manual | −100 a +200 segundos | Janela 1900-2100, Espenak-Meeus 2006 |
| UT1−UTC | −0.9 a +0.9 segundos | IERS Conventions 2010, limite antes de leap second |
| TAI−UTC | 10 a 50 segundos | Atual 37s (desde 2017), historico desde 1972 |
| Step de eventos | 60 a 3600 segundos | Compromisso entre precisao e tempo de calculo |
| Datetime range | 4000 BC a 3000 AD | Janela teorica de Espenak-Meeus + ELP + VSOP |
2. Escalas de tempo
Astronomia usa varias escalas de tempo distintas, e confundi-las gera erros de minutos. O motor mantem todas explicitas e converte conforme o estagio:
- UTC (Coordinated Universal Time): o que aparece no relogio. Define-se via TAI menos leap seconds.
- UT1: tempo atrelado a rotacao real da Terra. UT1 − UTC publicado pela IERS, varia ~0.9s.
- TAI (International Atomic Time): tempo atomico, sem leap seconds. TAI − UTC = 37 segundos em 2026.
- TT (Terrestrial Time): TAI + 32.184 segundos. Uniforme, escala primaria para efemerides.
- TDB (Barycentric Dynamical Time): TT corrigido por efeitos relativisticos (envelope de ~1.7 ms).
A diferenca ΔT = TT − UT1 nao e previsivel matematicamente porque depende da rotacao real da Terra (afetada por mares, terremotos, El Niño). Usamos o polinomio Espenak-Meeus 2006:
// Para 2026: ΔT = 75.07 segundos UT1 − UTC = 0 segundos (caso default; IERS atualiza) TAI − UTC = 37 segundos TT − UTC = TAI − UTC + 32.184 = 69.184 segundos
Fonte: Espenak F., Meeus J., Five Millennium Canon of Solar Eclipses: -1999 to +3000, NASA Technical Publication 2006-214141 (2006). Polinomio em 9 ramos historicos cobrindo 4000 BC a 3000 AD.
3. Efemerides geocentricas
3.1 Lua: ELP-2000/82B (Chapront-Touzé & Chapront)
A teoria ELP-2000/82B (Ephemeride Lunaire Parisienne) foi desenvolvida por Michelle Chapront-Touzé e Jean Chapront no Bureau des Longitudes (Observatoire de Paris) nos anos 80, e e a teoria analitica de mais alta precisao para a Lua.
Total de 36 series, agrupadas por origem fisica:
| Series | Conteudo | Tamanho |
|---|---|---|
| ELP1-3 | Problema principal (Sol-Terra-Lua) | ~1500 termos |
| ELP4-6 | Perturbacoes da figura da Terra | ~50 termos |
| ELP7-9 | Figura da Terra × t (variacao secular) | ~10 termos |
| ELP10-21 | Perturbacoes planetarias (tabelas 1 e 2) | ~13000 termos |
| ELP22-27 | Efeitos de mare (×t⁰ e ×t¹) | ~10 termos |
| ELP28-30 | Perturbacoes da figura da Lua | ~30 termos |
| ELP31-33 | Termos relativisticos | ~30 termos |
| ELP34-36 | Planetario × excentricidade solar × t² | ~50 termos |
Total bruto: ~37.872 termos. Apos truncagem em 0.0001 arcsec (lon/lat) e 0.001 km (distancia), preservamos 8467 termos, suficientes para reproduzir Meeus 47.a com erro < 0.02 arcsec.
Inclui correcao de ajuste DE200/LE200 (que liga ELP analitico as efemerides numericas DE da JPL), argumentos de Delaunay completos (D, ℓ′, ℓ, F) e longitudes medias planetarias para 8 planetas.
Fontes:
- Chapront-Touzé M., Chapront J. (1983). The lunar ephemeris ELP-2000. Astronomy & Astrophysics, 124, 50-62.
- Chapront-Touzé M., Chapront J. (1988). ELP-2000/82B and the dynamical reference system. Astronomy & Astrophysics, 190, 342-352.
- Codigo Fortran original: IMCCE Bureau des Longitudes, MCJCGF.9601 (
elp82b_1.f).
3.2 Sol: VSOP87D (Bretagnon & Francou)
A teoria VSOP87 (Variations Seculaires des Orbites Planetaires) e da mesma equipe (Bretagnon e Francou, IMCCE/Bureau des Longitudes). VSOP87D e a variante que retorna coordenadas eclipticas heliocentricas no equinocio da data, ideal para conversao geocentrica.
Calculamos a posicao heliocentrica da Terra (longitude L, latitude B, distancia R) e invertemos para Sol geocentrico:
L_Sol_geo = L_Terra_helio + 180° B_Sol_geo = -B_Terra_helio R_Sol_geo = R_Terra_helio
Truncagem atual (Sun Lite): 35 termos para L, 7 para B, 16 para R = 58 termos totais. Precisao tipica ~3 arcsec na longitude do Sol. Equivalente ao Meeus Cap. 25.
Fonte: Bretagnon P., Francou G. (1988). Planetary theories in rectangular and spherical variables: VSOP87 solution. Astronomy & Astrophysics, 202, 309-315. Catalogo VizieR VI/81.
3.3 Frames IAU 2006 (opt-in)
Para uso cientifico avancado, o motor implementa a teoria IAU 2006 P03 (Capitaine, Wallace & Chapront 2003) para precessao e a matriz de Frame Bias B (IERS Conventions 2010, Eq. 5.18) para a transformacao entre ICRS e o equador medio J2000.0.
A cadeia completa NPB (Nutacao x Precessao x Bias) esta em core/astro/frames/NPBChain.php e permite:
// ICRS (J2000 inertial) -> equador verdadeiro de data $M = NPBChain::icrsToTrueOfDate($tTt, $deltaPsiArcsec, $deltaEpsArcsec, $epsADeg); $radec_apparent = NPBChain::transformIcrsToTrueOfDate(...)
Inclui obliquidade media IAU 2006 (Capitaine et al. 2003 Eq. 39), polinomios de zeta_A, z_A, theta_A para precessao em torno do equador equatorial. Validado em test_phase12_iau2006_frames.php (21/21 passes, incluindo ortogonalidade da matriz de precessao, round-trip ICRS <-> of-date e magnitude da precessao em 26 anos).
4. Correcoes aparentes
4.1 Nutacao
O eixo de rotacao da Terra oscila em escala curta (~18.6 anos) por causa do torque gravitacional Lua-Sol. A serie IAU 1980 (66 termos, Meeus Tabela 22.A) entrega precisao < 0.001″ em Δψ e Δε, e e o default. Para precisao de microsegundos de arco em pesquisa avancada, oferecemos a serie completa IAU 2000A (1365 termos, IERS Conventions 2010).
4.2 Aberracao anual
A velocidade orbital da Terra (~30 km/s) desloca a posicao aparente das estrelas em ate 20.5 arcsec. Para a Lua, o efeito e menor (a Lua se move com a Terra), mas nao zero. Aplicamos:
Δλ = -20.4898 / 3600 / R_AU × cos(β) (Meeus Eq. 23.1, simplificada para a Lua)
4.3 Conversao ecliptica → equatorial
Aplicada com a obliquidade verdadeira ε = ε₀ + Δε:
α (RA) = atan2(sin(λ) cos(ε) − tan(β) sin(ε), cos(λ)) δ (Dec) = asin(sin(β) cos(ε) + cos(β) sin(ε) sin(λ)) (Meeus Eq. 13.3 e 13.4)
5. Paralaxe topocentrica
A Lua esta a apenas 60 raios terrestres de distancia, entao sua posicao aparente muda ate 1 grau conforme o observador na Terra (paralaxe horizontal lunar). Para o Sol, e somente ~8.8 arcsec.
O motor calcula coordenadas topocentricas tratando o observador como ponto na superficie do elipsoide WGS84 (mais preciso que aproximar a Terra como esfera):
e² = 2f − f² (excentricidade ao quadrado) N = a / sqrt(1 − e² sin²(φ)) x_obs = (N + h) cos(φ) cos(L_solar) y_obs = (N + h) cos(φ) sin(L_solar) z_obs = (N(1 − e²) + h) sin(φ) (WGS84: a=6378137 m, f=1/298.257223563)
O vetor topocentrico e subtraido do vetor geocentrico do corpo, com correcao para o tempo sideral local. Resultado: RA, Dec, distancia e altura/azimute reais para o observador.
6. Refracao atmosferica
A atmosfera curva os raios de luz, levantando objetos proximos ao horizonte em ate 35 arcmin (efeito que faz o Sol parecer maior e mais alto no nascer/por). O motor oferece tres modelos:
| Modelo | Range | Caracteristicas |
|---|---|---|
| Bennett 1982 (default) | −0.9° a +90° | Formula classica, simples, boa para observacao visual |
| Saemundsson 1986 | −2° a +90° | Inversa de Bennett (apparent → true), mais precisa em baixa altitude |
| None (astrometrico) | — | Sem refracao. Usado para validacao contra catalogos estelares |
Cada modelo aceita pressao (hPa) e temperatura (°C) como inputs para ajustar a refracao real do dia.
Fonte: Bennett G.G. (1982). The calculation of astronomical refraction in marine navigation. Journal of Navigation, 35(2), 255-259. Saemundsson Th. (1986). Sky & Telescope, 72, 70.
7. Eventos do dia (rise / set / transit)
A Lua tem paralaxe horizontal de ~1 grau e move-se rapido no ceu (~13°/dia), entao a formula simples cos(H) = -tan(φ)tan(δ) erra ate 15 minutos no horario de nascer/por. Usamos abordagem mais robusta:
- Threshold de horizonte dinamico considerando: modo do disco (centro ou limbo superior), mergulho do horizonte (
0.0293·√altitude_m), refracao no horizonte (0.5667°default), paralaxe horizontal lunar. - Scan adaptativo da altura aparente em passos de 5 min (configuravel) ao longo do dia local.
- Bisseccao para refinar ate erro < 1 segundo nos cruzamentos de zero do altitude − threshold.
- Busca ternaria para o transito (maximo de altura).
Resultado: horarios de nascer, transito (culminacao) e por com precisao tipica ±5 segundos no zenite e ±30 segundos perto do horizonte. Suficiente para uso amador, observacional e didatico.
8. Predicoes auxiliares
O motor calcula tambem (sempre que aplicavel):
- Fases principais: Lua Nova, Quarto Crescente, Cheia, Quarto Minguante. Bisseccao de elongacao Sol-Lua.
- Apsides: perigeu e apogeu lunar via mes anomalistico (27.55 dias).
- Eclipses solares e lunares: detecao heuristica via proximidade da Lua aos nodos + distancia Terra-Lua-Sol.
- Super Luas e Microluas: classificacao por distancia em syzygy (≤360.000 km super, ≥405.000 km micro).
- Lua Azul / Negra: contagem de fases por mes calendario.
- Lunar Standstill: maximo da declinacao lunar (ciclo de 18.6 anos).
- Libracao optica: fracao do disco lunar visivel (em primeira ordem, Meeus Cap. 53).
- Magnitude aparente: formula de Allen 1976 (com fase angle).
- Velocidade orbital: vis-viva (preciso para distancia instantanea).
- Light-time: distancia Terra-Lua dividido por velocidade da luz (~1.3 segundos).
9. Calendarios multiculturais
Em paralelo a saida cientifica, o motor converte a data para 5 calendarios: Gregoriano, Juliano, Hijri (islamico), Hebraico, Chines. Util para professores de historia, religiao comparada, antropologia e estudos culturais.
Referencias rapidas
Bibliografia completa em /laboratorio/fontes. Glossario de termos em /laboratorio/glossario. Validacao numerica em /laboratorio/precisao. Versionamento do motor em /laboratorio/changelog.