Salta ai contenuti
AstroWay/api v2.102.11 · it
tutti i sistemi sono operativi

Precisione dei calcoli

L’API di AstroWay utilizza Swiss Ephemeris (codice C ufficiale di Astrodienst, creatori di astro.com) — lo stesso motore su cui i professionisti dell’astrologia lavorano da oltre 30 anni con Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/mese) e Janus. Lo abbiamo compilato in WebAssembly e esposto tramite un layer REST, senza markup intermediario. Ogni endpoint di calcolo di base è coperto da test regressionali snapshot; la precisione del motore è stata verificata tramite triangolazione con tre fonti indipendenti + contro il NASA 5-Millennium Eclipse Catalog:

  • Posizioni planetarie: < 0.1 arcsec vs swetest CGI ufficiale di Astrodienst
  • Cuspidi delle case Placidus: corrispondenza esatta 0.000"
  • Eclissi: < 1 minuto vs NASA Eclipse Catalog
  • Linee ACG: < 1.5 km all’equatore vs swetest
  • Alba/Tramonto: < 10 secondi vs timeanddate.com
  • VOC della Luna, ingressi, congiunzioni planetarie: precisione al millesimo di secondo
ComponenteValore
LibreriaSwiss Ephemeris C code (aloistr/swisseph)
Versionecodice C upstream di Astrodienst
Bindingsswisseph-wasm (WebAssembly in Node.js)
EfemeridiDE431 JPL ephemeris (tramite file .se1)
FallbackMoshier analitico (per date al di fuori del 1800-2399)
Condivisione codiceShared @/core con app.astroway.info — stesso motore, due trasporti

La precisione viene verificata tramite triangolazione — confronto con tre fonti indipendenti:

Implementazione ufficiale di riferimento di Swiss Ephemeris di Astrodienst — i creatori di Astro.com e fornitore di milioni di astrologi in tutto il mondo. La fonte pubblica più autorevole. Il nostro motore è identico (0.00–0.07 secondi d’arco di drift).

Libreria Python indipendente che utilizza i bindings pyswisseph invece del nostro WASM. Conferma che il nostro layer WASM non distorce i dati.

API remota Swiss Ephemeris (Lahiri sidereal). Un drift sistemico di 8–17 secondi d’arco è legato alle diverse versioni della formula Lahiri ayanamsa, e non alla precisione del motore.

Cartavs swetest (Astrodienst)vs Kerykeion (Python)vs Prokerala API
Monroe 19260.00”0.19”16.95” (sistemico)
Diana 19610.00”0.69”8.18” (sistemico)
Einstein 18790.07”Artefatto LMT di Kerykeion14.96” (sistemico)

Ogni endpoint di calcolo di base è coperto da test snapshot congelati su 3 carte di riferimento (Monroe / Diana / Einstein) = 818 snapshot.

La suite di snapshot rileva:

  • Bug di mappatura dei dati di input — ID pianeta errato, UT, sistema di case
  • Post-elaborazione — arrotondamenti, conversione delle unità, perdita del segno
  • Divergenza dei valori predefiniti — nodo medio vs vero, geocentrico vs topocentrico
  • Schema drift — la validazione ha permesso uno schema errato
  • Deploy obsoleto — la dist prod non corrisponde al codice

Tolleranza: 5e-5° (≈0.18 secondi d’arco) per impostazione predefinita per tutti i campi numerici.

CartaDataDrift massimo
Marilyn Monroe1926-06-010.00”
Princess Diana1961-07-010.00”
Albert Einstein1879-03-140.07”
Cartadrift ASCdrift MCDrift massimo della cuspide
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”
EventoMassimo NASAIl nostro massimoDrift
2025-03-14 Lunare Totale06:58 UT06:58 UT0.8 min
2025-03-29 Solare Parziale10:47 UT10:47 UT0.5 min
2025-09-07 Lunare Totale18:11 UT18:11 UT0.8 min
2025-09-21 Solare Parziale19:41 UT19:42 UT1.0 min

Tutte le linee MC/IC/ASC/DSC utilizzano la formula corretta longitude = RA − GMST (standard di Kenneth Bowser). Drift rispetto al riferimento: < 1.5 km all’equatore per tutti i pianeti.

LocalitàDataParametroDrift
Londra2026-04-15Alba0.6 s
Londra2026-04-15Tramonto9 s

Località polari (|lat| > 66.5°) restituiscono automaticamente polarState + un avviso che le consuete planetary hours non sono definite.

AstroWay utilizza orbite variabili per pianeta (regola MIN di due pianeti), come in ZET9 e astro.com. Orbite predefinite (per una carta natale):

AspettoSoleLunaPianeti interniGiovePianeti esterni
Congiunzione12°10°
Sestile6.5°
Quadratura10°
Trino12°
Opposizione12°10°

Gli aspetti minori (36°, 40°, 45°, 72°, 108°, 135°, 144°) sono disabilitati per impostazione predefinita. Si possono abilitare esplicitamente tramite ALL_ASPECTS.

Per |lat| > 66.5° i sistemi Placidus / Koch / Regiomontanus sono matematicamente indefiniti. In questi casi Swiss Ephemeris restituisce automaticamente Porphyry, e la nostra API aggiunge un avviso:

{
"system": "P",
"warning": "Il sistema Placidus è indefinito per lat=68.96° (> 66.5°). Swiss Ephemeris ha sostituito con Porphyry..."
}

La regressione viene verificata ad ogni PR tramite CI:

  • api-calc/tests/endpoints/ — 818 snapshot contro carte di riferimento (Monroe / Diana / Einstein) + synastry / composite / davison
  • .github/workflows/api-accuracy.yml — esecuzione automatica al PR
  • Triangolazione vs swetest CGI + Kerykeion — settimanalmente
  • Monitoraggio upstream Swiss Ephemeris tramite Dependabot
  • Date fuori range (prima del 1800 e dopo il 2399): viene utilizzato Moshier analitico, precisione ~0.1” (vs < 0.01” per SWIEPH con file DE431)
  • Lilith Vera (id=13) vs Lilith Media (id=12): differenza fino a 12° — per impostazione predefinita viene usata Lilith Media (comportamento stabile), Lilith Vera è disponibile tramite planetIds: [13]
  • Topocentrico vs geocentrico: per impostazione predefinita geocentrico

Per domande sulla precisione: scrivi a support@astroway.info con i dati della carta e il riferimento atteso (astro.com o altra fonte autorevole).

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

Ultimo aggiornamento: