Pular para o conteúdo
AstroWay/api v2.102.11 · pt
todos os sistemas normais

Precisão dos cálculos

A API AstroWay usa o Swiss Ephemeris (código C oficial da Astrodienst, criadores do astro.com) — o mesmo motor que os profissionais astraólogos usam há mais de 30 anos em Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/mês) e Janus. Compilámo-lo para WebAssembly e expusemos uma camada REST, sem intermediação de margens. Cada endpoint de cálculo básico é coberto por testes regressivos de snapshots; a precisão do motor é verificada por triangulação com três fontes independentes + contra o NASA 5-Millennium Eclipse Catalog:

  • Posições planetárias: < 0.1 arco-seg vs o swetest CGI oficial da Astrodienst
  • Cúspides de casas Placidus: 0.000" correspondência exata
  • Eclipses: < 1 minuto vs o Catálogo de Eclipses da NASA
  • Linhas ACG: < 1.5 km no equador vs swetest
  • Nascer/por do Sol: < 10 segundos vs timeanddate.com
  • VOC da Lua, ingressos e conjunções planetárias: precisão até uma fração de segundo
ComponenteValor
BibliotecaSwiss Ephemeris C code (aloistr/swisseph)
Versãocódigo C upstream da Astrodienst
Bindingsswisseph-wasm (WebAssembly no Node.js)
EfeméridesDE431 JPL ephemeris (via ficheiros .se1)
FallbackMoshier analítico (para datas fora de 1800-2399)
Partilha de códigoShared @/core com app.astroway.info — um motor, dois transportes

A precisão é verificada por triangulação — comparação com três fontes independentes:

Implementação oficial de referência do Swiss Ephemeris da própria Astrodienst — os criadores do Astro.com e que serve milhões de astrólogos em todo o mundo. A fonte pública mais autoritativa. O nosso motor é idêntico (0.00–0.07 segundos de arco de desvio).

Biblioteca Python independente que usa bindings pyswisseph em vez do nosso WASM. Confirma que a nossa camada WASM não distorce os dados.

API remota do Swiss Ephemeris (Lahiri sidereal). Desvio sistemático de 8–17 segundos de arco está relacionado com diferentes versões da fórmula Lahiri ayanamsa, e não com a precisão do motor.

Cartavs swetest (Astrodienst)vs Kerykeion (Python)vs Prokerala API
Monroe 19260.00”0.19”16.95” (sistemático)
Diana 19610.00”0.69”8.18” (sistemático)
Einstein 18790.07”Artefacto LMT do Kerykeion14.96” (sistemático)

Cada endpoint de cálculo básico é coberto por testes snapshots congelados em 3 cartas de referência (Monroe / Diana / Einstein) = 818 snapshots.

A suíte de snapshots deteta:

  • Erros de mapeamento de dados de entrada — ID incorreto do planeta, UT, sistema de casas
  • Pós-processamento — arredondamentos, conversão de unidades, perda de sinal
  • Divergência de valores padrão — nó médio vs nó verdadeiro, geocêntrico vs topocêntrico
  • Desvio de schema — validação que deixou passar uma forma incorreta
  • Implantação desatualizada — dist da produção não corresponde ao código

Tolerância: 5e-5° (≈0.18 segundos de arco) por defeito para todos os campos numéricos.

CartaDataDesvio máximo
Marilyn Monroe1926-06-010.00”
Princesa Diana1961-07-010.00”
Albert Einstein1879-03-140.07”
Cartadesvio ASCdesvio MCDesvio máximo da cúspide
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”
EventoNASA máximoNosso máximoDesvio
2025-03-14 Lua Total06:58 UT06:58 UT0.8 min
2025-03-29 Sol Parcial10:47 UT10:47 UT0.5 min
2025-09-07 Lua Total18:11 UT18:11 UT0.8 min
2025-09-21 Sol Parcial19:41 UT19:42 UT1.0 min

Todas as linhas MC/IC/ASC/DSC usam a fórmula correta longitude = RA − GMST (padrão Kenneth Bowser). Desvio do padrão: < 1.5 km no equador para todos os planetas.

LocalizaçãoDataParâmetroDesvio
Londres2026-04-15Nascer do Sol0.6 s
Londres2026-04-15Pôr do Sol9 s

Localizações polares (|lat| > 66.5°) devolvem automaticamente polarState + aviso de que as horas planetárias comuns não estão definidas.

O AstroWay usa orbes variáveis por planeta (regra MÍN de dois planetas), como no ZET9 e astro.com. Orbes por defeito (para carta natal):

AspetoSolLuaInteriorJúpiterExterior
Conjunção12°10°
Sextil6.5°
Quadratura10°
Trígono12°
Oposição12°10°

Aspetos menores (36°, 40°, 45°, 72°, 108°, 135°, 144°) estão desativados por defeito. Ativam-se explicitamente via ALL_ASPECTS.

Para |lat| > 66.5° os sistemas Placidus / Koch / Regiomontanus não estão matematicamente definidos. Nestes casos, o Swiss Ephemeris devolve automaticamente Porphyry, e a nossa API adiciona um aviso:

{
"system": "P",
"warning": "O sistema Placidus não está definido para lat=68.96° (> 66.5°). O Swiss Ephemeris substituiu por Porphyry..."
}

A regressão é verificada em cada PR via CI:

  • api-calc/tests/endpoints/ — 818 snapshots contra cartas de referência (Monroe / Diana / Einstein) + sinastria / composta / Davison
  • .github/workflows/api-accuracy.yml — execução automática no PR
  • Triangulação contra swetest CGI + Kerykeion — semanalmente
  • Monitorização do Swiss Ephemeris upstream via Dependabot
  • Datas fora do intervalo (antes de 1800 e depois de 2399): usa-se o analítico Moshier, precisão ~0.1” (vs < 0.01” para SWIEPH com ficheiros DE431)
  • Lilith Verdadeira (id=13) vs Lilith Média (id=12): diferença até 12° — por defeito usa-se Lilith Média (comportamento estável), Lilith Verdadeira está disponível via planetIds: [13]
  • Topocêntrico vs geocêntrico: por defeito geocêntrico

Para questões de precisão: escreve para support@astroway.info com os dados da carta e a referência esperada (astro.com ou outra fonte autoritativa).

Útil?
Запропонувати правку

Última atualização: