Precizia calculelor
API-ul AstroWay folosește Swiss Ephemeris (codul C oficial de la Astrodienst, creatorii lui astro.com) — același motor pe care astrologii profesioniști l-au folosit timp de 30+ ani în Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/lună) și Janus. L-am compilat în WebAssembly și l-am expus printr-un strat REST, fără margini de intermediere. Fiecare dintre endpoint-urile de bază de calcul este acoperit de teste snapshot de regresie; precizia motorului a fost verificată prin triangulație cu trei surse independente + comparativ cu NASA 5-Millennium Eclipse Catalog:
- Poziții planetare:
< 0.1 arcsecfață de swetest CGI oficial Astrodienst - Cuspidale caselor Placidus:
0.000"potrivire exactă - Eclipse:
< 1 minutfață de NASA Eclipse Catalog - Linii ACG:
< 1.5 kmla ecuator față de swetest - Răsărit/apus de Soare:
< 10 secundefață de timeanddate.com - VOC Lună, ingresse, conjuncții planetare: precizie la fracțiuni de secundă
Motorul
Section titled “Motorul”| Componentă | Valoare |
|---|---|
| Bibliotecă | Codul C Swiss Ephemeris (aloistr/swisseph) |
| Versiune | codul C upstream Astrodienst |
| Bindings | swisseph-wasm (WebAssembly în Node.js) |
| Ephemeris | DE431 JPL ephemeris (prin fișiere .se1) |
| Fallback | Moshier analitic (pentru date în afara intervalului 1800-2399) |
| Partajare cod | Partajat @/core cu app.astroway.info — un singur motor, două transporturi |
Metodologie
Section titled “Metodologie”Precizia este verificată prin triangulație — compararea cu trei surse independente:
1. swetest CGI (etalon)
Section titled “1. swetest CGI (etalon)”Implementarea de referință oficială Swiss Ephemeris de la chiar Astrodienst — comenzile care au creat Astro.com și deservește milioane de astrologi din întreaga lume. Cea mai autoritară sursă publică. Motorul nostru este identic (0.00–0.07 secunde de arc de drift).
2. Kerykeion (Python)
Section titled “2. Kerykeion (Python)”O bibliotecă independentă Python care folosește bind-urile pyswisseph în locul
stratului nostru WASM. Confirmă că stratul nostru WASM nu distorsionează datele.
3. Prokerala API
Section titled “3. Prokerala API”Un API Swiss Ephemeris la distanță (ayanamsa Lahiri sideral). Drift-ul sistematic de 8–17 secunde de arc este legat de diferite versiuni ale formulei Lahiri ayanamsa, și nu de precizia motorului.
Rezultate ale triangulației
Section titled “Rezultate ale triangulației”| Hartă | față de swetest (Astrodienst) | față de Kerykeion (Python) | față de Prokerala API |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (sistematic) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (sistematic) |
| Einstein 1879 | 0.07” | artefact LMT Kerykeion | 14.96” (sistematic) |
Set de regresie la nivel de endpoint
Section titled “Set de regresie la nivel de endpoint”Fiecare dintre endpoint-urile de bază de calcul este acoperit de teste snapshot înghețate pe 3 hărți de referință (Monroe / Diana / Einstein) = 818 snapshots.
Suita de snapshots detectează:
- Bug-uri de mapare a datelor de intrare — id incorect al planetei, UT, sistem de case
- Post-procesare — rotunjire, conversie de unități, pierderea semnului
- Divergență de valori implicite — nodul mediu vs. adevărat, geocentric vs. topocentric
- Drift de schemă — validarea a ratat o formă incorectă
- Depuneri învechite — dist-ul de producție nu corespunde codului
Toleranță: 5e-5° (≈0.18 secunde de arc) implicit pentru toate câmpurile numerice.
Benchmarks detaliate
Section titled “Benchmarks detaliate”Poziții planetare (tropic, față de swetest)
Section titled “Poziții planetare (tropic, față de swetest)”| Hartă | Dată | Drift maxim |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
Cuspidale caselor Placidus (față de swetest)
Section titled “Cuspidale caselor Placidus (față de swetest)”| Hartă | drift ASC | drift MC | Drift maxim al cuspidalei |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
Eclipse (față de NASA 5-Millennium Catalog)
Section titled “Eclipse (față de NASA 5-Millennium Catalog)”| Eveniment | Maxim NASA | Maximul nostru | Drift |
|---|---|---|---|
| 2025-03-14 Lunară Totală | 06:58 UT | 06:58 UT | 0.8 min |
| 2025-03-29 Parțială Solară | 10:47 UT | 10:47 UT | 0.5 min |
| 2025-09-07 Lunară Totală | 18:11 UT | 18:11 UT | 0.8 min |
| 2025-09-21 Parțială Solară | 19:41 UT | 19:42 UT | 1.0 min |
Astrocartografie (față de formula RA din swetest)
Section titled “Astrocartografie (față de formula RA din swetest)”Toate liniile MC/IC/ASC/DSC folosesc formula corectă longitude = RA − GMST
(standard Kenneth Bowser). Drift față de etalon: < 1.5 km la ecuator pentru
toate planetele.
Răsărit / Apus de Soare (față de timeanddate.com)
Section titled “Răsărit / Apus de Soare (față de timeanddate.com)”| Locație | Dată | Parametru | Drift |
|---|---|---|---|
| Londra | 2026-04-15 | Răsărit | 0.6 s |
| Londra | 2026-04-15 | Apus | 9 s |
Locații polare (|lat| > 66.5°) returnează automat polarState +
warning că orele planetare obișnuite nu sunt definite.
Orbi de aspecte
Section titled “Orbi de aspecte”AstroWay folosește orbi variabile per-planetă (regula MIN a două planete), ca în ZET9 și astro.com. Orbi implicit (pentru harta natală):
| Aspect | Soare | Lună | Interne | Jupiter | Externe |
|---|---|---|---|---|---|
| Conjuncție | 12° | 10° | 5° | 8° | 5° |
| Sextil | 6.5° | 6° | 5° | 5° | 5° |
| Pătrat | 10° | 8° | 5° | 7° | 5° |
| Trigon | 12° | 8° | 5° | 5° | 5° |
| Opoziție | 12° | 10° | 5° | 8° | 5° |
Aspectele minore (36°, 40°, 45°, 72°, 108°, 135°, 144°) sunt dezactivate implicit.
Se activează explicit prin ALL_ASPECTS.
Latitudini polare
Section titled “Latitudini polare”Pentru |lat| > 66.5° sistemele Placidus / Koch / Regiomontanus nu sunt definite matematic. În astfel de cazuri, Swiss Ephemeris returnează automat Porphyry, iar API-ul nostru adaugă un warning:
{ "system": "P", "warning": "Sistemul Placidus nu este definit pentru lat=68.96° (> 66.5°). Swiss Ephemeris a substituit cu Porphyry..."}Verificare continuă
Section titled “Verificare continuă”Regresia este verificată la fiecare PR prin CI:
api-calc/tests/endpoints/— 818 snapshots față de hărți de referință (Monroe / Diana / Einstein) + synastry / composite / davison.github/workflows/api-accuracy.yml— rulare automată la PR- Triangulație față de swetest CGI + Kerykeion — săptămânal
- Monitorizare upstream Swiss Ephemeris prin Dependabot
Limitări cunoscute
Section titled “Limitări cunoscute”- Date în afara intervalului (înainte de 1800 și după 2399): folosește Moshier analitic, precizie ~0.1” (față de < 0.01” pentru SWIEPH cu fișiere DE431)
- Lilith adevărată (id=13) vs. Lilith medie (id=12): diferență de până la 12° —
implicit folosește Lilith medie (comportament stabil), Lilith adevărată este
disponibilă prin
planetIds: [13] - Topocentric vs. geocentric: implicit geocentric
Linkuri
Section titled “Linkuri”- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- Catalogul de eclipse NASA: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/
Contacte
Section titled “Contacte”Pentru întrebări legate de precizie: scrie la support@astroway.info cu datele hărții tale și sursa de referință așteptată (astro.com sau altă sursă autoritară).