Ga naar inhoud
AstroWay/api v2.102.11 · nl
alle systemen normaal

Nauwkeurigheid van berekeningen

De AstroWay API gebruikt Swiss Ephemeris (de officiële C-code van Astrodienst, de makers van astro.com) — dezelfde engine waar professionele astrologen al 30+ jaar mee werken in Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/maand) en Janus. Wij hebben deze engine gecompileerd naar WebAssembly en voorzien van een REST API-laag, zonder tussenliggende opslagkosten. Elke basisberekenings- endpoint wordt gedekt door regression snapshot-tests; de nauwkeurigheid van de engine is geverifieerd via triangulatie met drie onafhankelijke bronnen + tegen de NASA 5-Millennium Eclipse Catalog:

  • Planetaire posities: < 0.1 boogseconde vs de officiële swetest CGI van Astrodienst
  • Huiscusps Placidus: 0.000" exacte match
  • Eclipsen: < 1 minuut vs NASA Eclipse Catalog
  • ACG-lijnen: < 1.5 km op de evenaar vs swetest
  • Zonsopgang/-ondergang: < 10 seconden vs timeanddate.com
  • Moon VOC, ingresses, planetaire conjuncties: nauwkeurigheid tot op fracties van een seconde
ComponentWaarde
BibliotheekSwiss Ephemeris C-code (aloistr/swisseph)
Versieupstream Astrodienst C-code
Bindingsswisseph-wasm (WebAssembly in Node.js)
EphemerisDE431 JPL ephemeris (via .se1-bestanden)
FallbackMoshier analytisch (voor data buiten 1800-2399)
Code sharingGedeelde @/core met app.astroway.info — één engine, twee transports

De nauwkeurigheid wordt gecontroleerd via triangulatie — vergelijking met drie onafhankelijke bronnen:

De officiële reference-implementatie van Swiss Ephemeris van Astrodienst zelf — de code die Astro.com heeft gemaakt en die miljoenen astrologen wereldwijd gebruiken. De meest gezaghebbende publieke bron. Onze engine is identiek (0.00–0.07 boogseconde drift).

Een onafhankelijke Python-bibliotheek die pyswisseph-bindings gebruikt in plaats van onze WASM-laag. Bevestigt dat onze WASM-laag de data niet vervormt.

Een externe Swiss Ephemeris API (sidereal Lahiri). Systemische drift van 8–17 boogseconden is gerelateerd aan verschillende versies van de Lahiri ayanamsa- formule, en niet aan de nauwkeurigheid van de engine.

Kaartvs swetest (Astrodienst)vs Kerykeion (Python)vs Prokerala API
Monroe 19260.00”0.19”16.95” (systemisch)
Diana 19610.00”0.69”8.18” (systemisch)
Einstein 18790.07”LMT-artefact Kerykeion14.96” (systemisch)

Elke basisberekenings-endpoint wordt gedekt door bevroren snapshot-tests op 3 referentiekaarten (Monroe / Diana / Einstein) = 818 snapshots.

De snapshot-suite detecteert:

  • Fouten in datamapping — verkeerde planeet-id, UT, huizensysteem
  • Post-processing — afronding, eenhedenconversie, verlies van teken
  • Verschillen in standaardwaarden — mean vs true node, geocentrisch vs topocentrisch
  • Schema drift — validatie miste een verkeerde vorm
  • Verouderde deployment — prod-dist komt niet overeen met de code

Tolerantie: 5e-5° (≈0.18 boogseconde) standaard voor alle numerieke velden.

Planetaire posities (tropisch, vs swetest)

Section titled “Planetaire posities (tropisch, vs swetest)”
KaartDatumMaximale drift
Marilyn Monroe1926-06-010.00”
Princess Diana1961-07-010.00”
Albert Einstein1879-03-140.07”
Kaartdrift ASCdrift MCMaximale huiscus-drift
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”
GebeurtenisNASA maximumOns maximumDrift
2025-03-14 Maansverduistering totaal06:58 UT06:58 UT0.8 min
2025-03-29 Zonsverduistering gedeeltelijk10:47 UT10:47 UT0.5 min
2025-09-07 Maansverduistering totaal18:11 UT18:11 UT0.8 min
2025-09-21 Zonsverduistering gedeeltelijk19:41 UT19:42 UT1.0 min

Astrocartografie (vs formule RA van swetest)

Section titled “Astrocartografie (vs formule RA van swetest)”

Alle lijnen MC/IC/ASC/DSC gebruiken de juiste formule longitude = RA − GMST (standaard Kenneth Bowser). Drift ten opzichte van de referentie: < 1.5 km op de evenaar voor alle planeten.

Zonsopgang/-ondergang (vs timeanddate.com)

Section titled “Zonsopgang/-ondergang (vs timeanddate.com)”
LocatieDatumParameterDrift
Londen2026-04-15Zonsopgang0.6 s
Londen2026-04-15Zonsondergang9 s

Poolgebieden (|breedtegraad| > 66.5°) retourneren automatisch polarState + een waarschuwing dat normale planetaire uren niet gedefinieerd zijn.

AstroWay gebruikt variabele orbes per planeet (regel MIN van twee planeten), zoals in ZET9 en astro.com. Standaard orbes (voor een natalkaart):

AspectZonMaanBinnenplanetenJupiterBuitenplaneten
Conjunctie12°10°
Sextiel6.5°
Vierkant10°
Driehoek12°
Oppositie12°10°

Minder belangrijke aspecten (36°, 40°, 45°, 72°, 108°, 135°, 144°) zijn standaard uitgeschakeld. Ze worden expliciet ingeschakeld via ALL_ASPECTS.

Voor |breedtegraad| > 66.5° zijn de Placidus / Koch / Regiomontanus-systemen wiskundig niet gedefinieerd. In dergelijke gevallen retourneert Swiss Ephemeris automatisch Porphyry, en onze API voegt een waarschuwing toe:

{
"system": "P",
"warning": "Het Placidus-systeem is niet gedefinieerd voor breedtegraad=68.96° (> 66.5°). Swiss Ephemeris heeft Porphyry gebruikt..."
}

Regression wordt op elke PR gecontroleerd via CI:

  • api-calc/tests/endpoints/ — 818 snapshots tegen referentiekaarten (Monroe / Diana / Einstein) + synastrie / composiet / Davison
  • .github/workflows/api-accuracy.yml — automatisch starten op PR
  • Triangulatie tegen swetest CGI + Kerykeion — wekelijks
  • Monitoring van upstream Swiss Ephemeris via Dependabot
  • Data buiten het bereik (voor 1800 en na 2399): er wordt gebruikgemaakt van de Moshier analytische methode, nauwkeurigheid ~0.1” (vs < 0.01” voor SWIEPH met DE431-bestanden)
  • True Lilith (id=13) vs Mean Lilith (id=12): verschil tot 12° — standaard Mean Lilith (stabiel gedrag), True Lilith is beschikbaar via planetIds: [13]
  • Topocentrisch vs geocentrisch: standaard geocentrisch
Nuttig?
Запропонувати правку

Laatst bewerkt: