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

Precisione dei calcoli

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

  • Posizioni planetarie: mediana 0.0013", massimo 0.561" vs swetest CGI ufficiale di Astrodienst (misurato il 29/07/2026 su 130 misurazioni). Dettaglio per corpo celeste di seguito
  • Cuspide delle case Placidus: 0.000" corrispondenza esatta
  • Eclissi: < 1 minuto vs NASA Eclipse Catalog
  • Linee ACG: < 1.5 km all’equatore vs swetest
  • Alba/tramonto: < 10 secondi vs timeanddate.com
  • Luna VOC, ingresses, congiunzioni planetarie: precisione fino a frazioni di secondo

Questi numeri non sono una stima, ma il risultato di un’esecuzione. Lo script prende 10 carte, distribuite dal 1900 al 2050, interroga gli stessi momenti nel swetest CGI live di Astrodienst e confronta tutti i 13 corpi che restituiamo. In totale 130 misurazioni.

CorpoDrift massimo
Sole, Venere, Saturno0.001"
Mercurio0.002"
Nodo vero0.004"
Marte0.007"
Giove0.009"
Luna0.022"
Urano0.083"
Plutone0.097"
Nettuno0.223"
Chirone0.561"
Apogeo medio (Lilith)0.000"

Mediana su tutte le 130 misurazioni: 0.0013".

In precedenza su questa pagina c’era una promessa generale ”< 0.1 arcsec”. Le misurazioni del 29/07/2026 hanno mostrato che Nettuno, Plutone e Chirone non la mantengono, quindi la promessa è stata sostituita con i numeri effettivi. Chirone e i pianeti esterni hanno un drift maggiore perché le loro posizioni sono prese da un set compresso di effemeridi nell’assemblaggio WASM.

Puoi riprodurre autonomamente: api-calc/scripts/accuracy-vs-swetest.mjs esegue esattamente queste query e stampa la stessa tabella.

Verifica tu stesso. Lo script con cui sono stati misurati i numeri sopra si trova nel repository pubblico sotto licenza MIT: astroway/astrology-accuracy-benchmark. Funziona non solo con noi: un adattatore per qualsiasi altra API sono trenta righe, quindi le stesse 130 misurazioni possono essere eseguite contro un concorrente e confrontate. Una chiave sandbox è sufficiente.

ComponenteValore
LibreriaSwiss Ephemeris C code (aloistr/swisseph)
Versioneupstream Astrodienst C code
Bindingsswisseph-wasm (WebAssembly in Node.js)
EffemeridiDE431 JPL ephemeris (tramite file .se1)
FallbackMoshier analytical (per date fuori 1800-2399)
Code sharingShared @/core con app.astroway.info - un motore, due trasporti

La precisione è verificata tramite triangolazione - confronto con tre fonti indipendenti:

L’implementazione di riferimento ufficiale di Swiss Ephemeris da parte di Astrodienst - il team che ha creato Astro.com e serve 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).

Una libreria Python indipendente utilizza i binding pyswisseph invece del nostro WASM. Conferma che il nostro livello WASM non distorce i dati.

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

Cartacontro swetest (Astrodienst)contro Kerykeion (Python)contro Prokerala API
Monroe 19260.00”0.19”16.95” (systemic)
Diana 19610.00”0.69”8.18” (systemic)
Einstein 18790.07”Artefatto LMT Kerykeion14.96” (systemic)

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

La suite di snapshot rileva:

  • Bug di mappatura dei dati di input - ID pianeta, UT, sistema di case errati
  • Post-elaborazione - arrotondamento, conversione di unità, perdita di segno
  • Discrepanza dei valori predefiniti - nodo medio vs vero, geocentrico vs topocentrico
  • Schema drift - la validazione ha omesso una forma errata
  • Deploy obsoleto - la distribuzione di produzione 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 cuspide
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”
EventoMassimo NASANostro 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

Astrocartografia (contro la formula RA di swetest)

Sezione intitolata “Astrocartografia (contro la formula RA di swetest)”

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

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

Le località polari (|lat| > 66.5°) restituiscono automaticamente polarState + un avviso che le normali ore planetarie non sono definite.

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

AspettoSoleLunaInterniGioveEsterni
Congiunzione12°10°
Sestile6.5°
Quadrato10°
Trigono12°
Opposizione12°10°

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

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

{
"system": "P",
"warning": "Система Placidus не визначена для lat=68.96° (> 66.5°). Swiss Ephemeris підставив Porphyry..."
}

La regressione viene verificata ad ogni PR tramite CI:

  • api-calc/tests/endpoints/ - 873 snapshot contro carte di riferimento (Monroe / Diana / Einstein) + sinastria / composito / davison
  • .github/workflows/api-accuracy.yml - avvio automatico su PR
  • Triangolazione contro swetest CGI + Kerykeion - settimanalmente
  • Monitoraggio di Swiss Ephemeris upstream tramite Dependabot

La precisione del motore è metà della fiducia. L’altra metà è il contratto di output, che un agente (Claude, ChatGPT, Cursor) può validare. Il nostro server MCP non restituisce “testo grezzo, arrangiatevi”:

  • structuredContent tipizzato. Oltre 600 strumenti MCP, e la stragrande maggioranza di essi pubblica uno outputSchema rigoroso - il client MCP riceve una struttura validata, non una stringa da parsare a caso.
  • Protezione dallo schema drift. Il test CI openapi-example-drift valida ogni snapshot di regressione contro lo schema derivato dal suo stesso esempio: se l’output reale dell’endpoint diverge dallo schema pubblicato, la build fallisce. È proprio questa classe di discrepanze che causa l’errore MCP -32602 Output validation error.
  • Gli errori sono errori. Un fallimento dello strumento viene sempre restituito con il flag isError e un codice tipizzato (UPPER_SNAKE). Non mai restituiamo al modello uno stack trace grezzo o percorsi interni del server come “dati”.

Ciò significa che l’integrazione tramite MCP è prevedibile quanto una chiamata REST diretta: ciò che è descritto in /openapi.json è ciò che lo strumento restituisce.

  • Date fuori intervallo (prima del 1800 e dopo il 2399): viene utilizzato Moshier analytical, precisione ~0.1” (contro < 0.01” per SWIEPH con file DE431)
  • Lilith Vera (id=13) vs Lilith Media (id=12): differenza fino a 12° - per impostazione predefinita 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: