Przejdź do głównej zawartości
AstroWay/api v2.102.11 · pl
wszystkie systemy w normie

Dokładność obliczeń

AstroWay API używa Swiss Ephemeris (oficjalnego kodu C od Astrodienst, twórców astro.com) — tego samego silnika, na którym profesjonalni astrolodzy od ponad 30 lat pracują w Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/m-c) i Janus. Zebraliśmy go w WebAssembly i udostępniliśmy przez warstwę REST API, bez pośredniczącej marży. Każdy z podstawowych punktów końcowych obliczeniowych jest pokryty testami regresyjnymi snapshot; dokładność silnika zweryfikowana przez triangulację z trzema niezależnymi źródłami + przeciwko NASA 5-Millennium Eclipse Catalog:

  • Pozycje planetarne: < 0.1 sekundy łuku vs oficjalnego swetest CGI Astrodienst
  • Kuspy domów Placidusa: 0.000" idealne dopasowanie
  • Zaćmienia: < 1 minuta vs NASA Eclipse Catalog
  • Linie ACG: < 1.5 km na równiku vs swetest
  • Wschód/zachód Słońca: < 10 sekund vs timeanddate.com
  • Księżyc VOC, wejścia, koniunkcje planetarne: dokładność do ułamka sekundy
KomponentWartość
BibliotekaSwiss Ephemeris C code (aloistr/swisseph)
Wersjaupstream Astrodienst C code
Bindingsswisseph-wasm (WebAssembly w Node.js)
EphemerisDE431 JPL ephemeris (przez pliki .se1)
FallbackAnaliza Moshiera (dla dat poza 1800–2399)
Współdzielenie koduWspólny @/core z app.astroway.info — jeden silnik, dwa transporty

Dokładność jest weryfikowana przez triangulację — porównanie z trzema niezależnymi źródłami:

Oficjalna implementacja referencyjna Swiss Ephemeris od samego Astrodienst — komendy, które stworzyły Astro.com i obsługują miliony astrologów na całym świecie. Najbardziej autorytatywne publiczne źródło. Nasz silnik jest identyczny (0.00–0.07 sekundy łuku dryfu).

Niezależna biblioteka Python używa pyswisseph-bindings zamiast naszego WASM. Potwierdza, że nasza warstwa WASM nie zniekształca danych.

Zdalne API Swiss Ephemeris (sidereal Lahiri). Systematyczny dryf 8–17 sekund łuku związany z różnymi wersjami formuły Lahiri ayanamsa, a nie z dokładnością silnika.

Mapavs swetest (Astrodienst)vs Kerykeion (Python)vs Prokerala API
Monroe 19260.00”0.19”16.95” (systematyczny)
Diana 19610.00”0.69”8.18” (systematyczny)
Einstein 18790.07”Artefakt LMT Kerykeion14.96” (systematyczny)

Każdy z podstawowych punktów końcowych obliczeniowych jest pokryty zamrożonymi testami snapshot na 3 mapach referencyjnych (Monroe / Diana / Einstein) = 818 snapshotów.

Pakiet snapshot wykrywa:

  • Błędy mapowania danych wejściowych — nieprawidłowy id planety, UT, system domów
  • Obróbkę końcową — zaokrąglanie, konwersja jednostek, utrata znaku
  • Rozbieżność domyślnych ustawień — węzeł średni vs rzeczywisty, geocentryczny vs topocentryczny
  • Dryft schematu — walidacja pominęła nieprawidłowy kształt
  • Nieaktualny deploy — dystrybucja prod nie odpowiada kodowi

Tolerancja: 5e-5° (≈0.18 sekundy łuku) domyślnie dla wszystkich pól numerycznych.

MapaDataMaksymalny dryft
Marilyn Monroe1926-06-010.00”
Princess Diana1961-07-010.00”
Albert Einstein1879-03-140.07”
Mapadryft ASCdryft MCMaksymalny dryft kuspy
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”
WydarzenieMaksymalny NASANasz maksymalnyDryft
2025-03-14 Zaćmienie Księżyca całkowite06:58 UT06:58 UT0.8 min
2025-03-29 Zaćmienie Słońca częściowe10:47 UT10:47 UT0.5 min
2025-09-07 Zaćmienie Księżyca całkowite18:11 UT18:11 UT0.8 min
2025-09-21 Zaćmienie Słońca częściowe19:41 UT19:42 UT1.0 min

Wszystkie linie MC/IC/ASC/DSC używają poprawnej formuły longitude = RA − GMST (standard Kenneth Bowser). Dryft względem wzorca: < 1.5 km na równiku dla wszystkich planet.

LokalizacjaDataParametrDryft
Londyn2026-04-15Wschód Słońca0.6 s
Londyn2026-04-15Zachód Słońca9 s

Lokalizacje polarne (|szer. geogr.| > 66.5°) automatycznie zwracają polarState + ostrzeżenie, że zwyczajne godziny planetarne nie są zdefiniowane.

AstroWay używa zmiennych orbisów per-planeta (reguła MIN dwóch planet), jak w ZET9 i astro.com. Orbisy domyślne (dla mapy natalnej):

AspektSłońceKsiężycPlanety wewnętrzneJowiszPlanety zewnętrzne
Koniunkcja12°10°
Sekstyl6.5°
Kwadratura10°
Trygon12°
Opozycja12°10°

Mniejsze aspekty (36°, 40°, 45°, 72°, 108°, 135°, 144°) domyślnie wyłączone. Włączane są jawnie przez ALL_ASPECTS.

Dla |szer. geogr.| > 66.5° systemy Placidusa / Koch / Regiomontanusa są matematycznie niezdefiniowane. W takich przypadkach Swiss Ephemeris automatycznie zwraca Porphyry, a nasze API dodaje ostrzeżenie:

{
"system": "P",
"warning": "System Placidus nie jest zdefiniowany dla szerokości=68.96° (> 66.5°). Swiss Ephemeris użył Porphyry..."
}

Regresja jest sprawdzana przy każdym PR przez CI:

  • api-calc/tests/endpoints/ — 818 snapshotów przeciwko mapom referencyjnym (Monroe / Diana / Einstein) + synastria / kompozyt / Davison
  • .github/workflows/api-accuracy.yml — automatyczne uruchamianie przy PR
  • Triangulacja przeciwko swetest CGI + Kerykeion — co tydzień
  • Monitorowanie upstream Swiss Ephemeris przez Dependabot
  • Daty poza zakresem (przed 1800 i po 2399): używana jest analiza Moshiera, dokładność ~0.1” (vs < 0.01” dla SWIEPH z plikami DE431)
  • Prawdziwy Lilith (id=13) vs średni Lilith (id=12): różnica do 12° — domyślnie średni Lilith (stabilne zachowanie), prawdziwy Lilith dostępny przez planetIds: [13]
  • Topocentryczny vs geocentryczny: domyślnie geocentryczny

W sprawach dotyczących dokładności: pisz na support@astroway.info z danymi mapy i oczekiwanym wzorcem (astro.com lub inne autorytatywne źródło).

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

Ostatnia aktualizacja: