Přeskočit na obsah
AstroWay/api v2.158.7 · cs
všechny systémy jsou v pořádku

Přesnost výpočtů

AstroWay API používá Swiss Ephemeris (oficiální C-kód od Astrodienst, tvůrců astro.com) – stejný engine, na kterém profesionální astrologové přes 30 let pracují v Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/měs) a Janus. Zkompilovali jsme jej do WebAssembly a vystavili jako REST API vrstvu, bez zprostředkovatelské marže. Každý ze základních výpočetních endpointů je pokryt regression snapshot-testy; přesnost enginu je ověřena pomocí triangulation se třemi nezávislými zdroji + proti NASA 5-Millennium Eclipse Catalog:

  • Planetární pozice: medián 0.0013", maximum 0.561" vs oficiálního swetest CGI Astrodienst (měřeno 2026-07-29 na 130 měřeních). Rozpis podle těles níže
  • Kuspidy domů Placidus: 0.000" exact match
  • Zatmění: < 1 minuta vs NASA Eclipse Catalog
  • ACG linie: < 1.5 km na rovníku vs swetest
  • Sunrise/sunset: < 10 sekund vs timeanddate.com
  • Moon VOC, ingresses, planet conjunctions: přesnost na zlomek sekundy

Metodologie: jak přesně bylo měřeno

Sekce “Metodologie: jak přesně bylo měřeno”

Tato čísla nejsou odhad, ale výsledek spuštění. Skript vezme 10 map, rozložených od roku 1900 do roku 2050, dotazuje se na stejné momenty v živém swetest CGI Astrodienst a porovnává všech 13 těles, která vracíme. Celkem 130 měření.

TělesoMaximální drift
Slunce, Venuše, Saturn0.001"
Merkur0.002"
true Node0.004"
Mars0.007"
Jupiter0.009"
Měsíc0.022"
Uran0.083"
Pluto0.097"
Neptun0.223"
Chiron0.561"
mean Apogee (Lilith)0.000"

Medián pro všech 130 měření: 0.0013".

Dříve na této stránce stál obecný slib „< 0.1 arcsec“. Měření z 2026-07-29 ukázala, že Neptun, Pluto a Chiron jej nedodržují, proto byl slib nahrazen skutečnými čísly. Chiron a vnější planety mají větší drift kvůli tomu, že jejich pozice jsou brány z komprimované sady efemerid ve WASM-sestavení.

Můžeš si to reprodukovat sám: api-calc/scripts/accuracy-vs-swetest.mjs provádí přesně tyto dotazy a tiskne stejnou tabulku.

Ověř si to sám. Skript, kterým byla měřena výše uvedená čísla, leží ve veřejném repozitáři pod MIT: astroway/astrology-accuracy-benchmark. Funguje nejen s námi: adaptér k jakémukoli jinému API je třicet řádků, takže stejných 130 měření můžeš spustit proti konkurentovi a porovnat. Klíče do sandboxu stačí.

KomponentaHodnota
KnihovnaSwiss Ephemeris C code (aloistr/swisseph)
Verzeupstream Astrodienst C code
Bindingsswisseph-wasm (WebAssembly v Node.js)
EphemerisDE431 JPL ephemeris (přes .se1 soubory)
FallbackMoshier analytical (pro data mimo 1800-2399)
Code sharingSdílené @/core z app.astroway.info – jeden engine, dva transporty

Přesnost je ověřována pomocí triangulace – porovnání se třemi nezávislými zdroji:

Oficiální reference-implementation Swiss Ephemeris od samotných Astrodienst – týmu, který vytvořil Astro.com a obsluhuje miliony astrologů po celém světě. Nejautoritativnější veřejný zdroj. Náš engine je identický (0.00–0.07 úhlové sekundy driftu).

Nezávislá Python-knihovna používá pyswisseph-bindings namísto našeho WASM. Potvrzuje, že naše WASM-vrstva nezkresluje data.

Vzdálené Swiss Ephemeris API (sidereal Lahiri). Systemic drift 8–17 úhlových sekund je spojen s různými verzemi vzorce Lahiri ayanamsa, a ne s přesností enginu.

Mapaproti swetest (Astrodienst)proti Kerykeion (Python)proti Prokerala API
Monroe 19260.00”0.19”16.95” (systemic)
Diana 19610.00”0.69”8.18” (systemic)
Einstein 18790.07”LMT-artefakt Kerykeion14.96” (systemic)

Regression-sada na úrovni endpointů

Sekce “Regression-sada na úrovni endpointů”

Každý ze základních výpočetních endpointů je pokryt zmrazenými snapshot-testy na 3 referenčních mapách (Monroe / Diana / Einstein) = 873 snapshotů.

Snapshot-suite zachytává:

  • Chyby mapování vstupních dat – nesprávné id planety, UT, systém domů
  • Post-processing – zaokrouhlování, konverze jednotek, ztráta znaménka
  • Rozdíly ve výchozích hodnotách – mean vs true node, geocentric vs topocentric
  • Schema drift – validace propustila nesprávnou formu
  • Zastaralý deploy – prod dist neodpovídá kódu

Tolerance: 5e-5° (≈0.18 úhlové sekundy) ve výchozím nastavení pro všechna číselná pole.

Pozice planet (tropické, proti swetest)

Sekce “Pozice planet (tropické, proti swetest)”
MapaDatumMaximum drift
Marilyn Monroe1926-06-010.00”
Princess Diana1961-07-010.00”
Albert Einstein1879-03-140.07”

Kuspidy domů Placidus (proti swetest)

Sekce “Kuspidy domů Placidus (proti swetest)”
Mapadrift ASCdrift MCMaximum drift kuspida
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”

Zatmění (proti NASA 5-Millennium Catalog)

Sekce “Zatmění (proti NASA 5-Millennium Catalog)”
UdálostMaximum NASANaše maximumDrift
2025-03-14 Lunar Total06:58 UT06:58 UT0.8 min
2025-03-29 Solar Partial10:47 UT10:47 UT0.5 min
2025-09-07 Lunar Total18:11 UT18:11 UT0.8 min
2025-09-21 Solar Partial19:41 UT19:42 UT1.0 min

Astrokartografie (proti vzorci RA ze swetest)

Sekce “Astrokartografie (proti vzorci RA ze swetest)”

Všechny linie MC/IC/ASC/DSC používají správný vzorec longitude = RA − GMST (standard Kenneth Bowser). Drift od etalonu: < 1.5 km na rovníku pro všechny planety.

Východ / Západ Slunce (proti timeanddate.com)

Sekce “Východ / Západ Slunce (proti timeanddate.com)”
LokaceDatumParametrDrift
London2026-04-15Sunrise0.6 s
London2026-04-15Sunset9 s

Polární lokace (|lat| > 66.5°) automaticky vrací polarState + varování, že běžné planetary hours nejsou definovány.

AstroWay používá proměnné orbisy per-planet (pravidlo MIN dvou planet), jako v ZET9 a astro.com. Orbisy ve výchozím nastavení (pro natální mapu):

AspektSunMoonInnerJupiterOuter
Conjunction12°10°
Sextile6.5°
Square10°
Trine12°
Opposition12°10°

Minor aspekty (36°, 40°, 45°, 72°, 108°, 135°, 144°) jsou ve výchozím nastavení vypnuty. Zapínají se explicitně přes ALL_ASPECTS.

Pro |lat| > 66.5° systémy Placidus / Koch / Regiomontanus nejsou matematicky definovány. V takových případech Swiss Ephemeris automaticky vrací Porphyry a naše API přidává varování:

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

Nepřetržité ověřování

Sekce “Nepřetržité ověřování”

Regrese je ověřována při každém PR přes CI:

  • api-calc/tests/endpoints/ – 873 snapshotů proti referenčním mapám (Monroe / Diana / Einstein) + synastry / composite / davison
  • .github/workflows/api-accuracy.yml – automatické spuštění na PR
  • Triangulace proti swetest CGI + Kerykeion – týdně
  • Monitorování upstream Swiss Ephemeris přes Dependabot

Spolehlivost MCP – typovaný výstup

Sekce “Spolehlivost MCP – typovaný výstup”

Přesnost enginu je polovina důvěry. Druhá polovina je výstupní kontrakt, který agent (Claude, ChatGPT, Cursor) může validovat. Náš MCP-server nevrací „surový text, poraďte si sami“:

  • Typizovaný structuredContent. Více než 600 MCP-nástrojů a drtivá většina z nich publikuje striktní outputSchema – MCP-klient obdrží validovanou strukturu, nikoli řetězec, který je třeba náhodně parsovat.
  • Ochrana proti schema driftu. CI-test openapi-example-drift validuje každý regression-snapshot proti schématu odvozenému z jeho vlastního příkladu: pokud se skutečný výstup endpointu odchýlí od publikovaného schématu, sestavení selže. Právě tato třída nesrovnalostí způsobuje chybu MCP -32602 Output validation error.
  • Chyby jsou chyby. Selhání nástroje se vždy vrací s příznakem isError a typizovaným kódem (UPPER_SNAKE). Nikdy modelu neposkytujeme syrový stack trace nebo interní cesty serveru jako „data“.

To znamená, že integrace přes MCP je stejně předvídatelná jako přímé REST-volání: to, co je popsáno v /openapi.json, je to, co nástroj vrací.

  • Data mimo rozsah (do 1800 a po 2399): používá se Moshier analytical, přesnost ~0.1” (proti < 0.01” pro SWIEPH se soubory DE431)
  • True Lilith (id=13) vs Mean Lilith (id=12): rozdíl až 12° – ve výchozím nastavení Mean Lilith (stabilní chování), True Lilith je dostupný přes planetIds: [13]
  • Topocentric vs geocentric: ve výchozím nastavení geocentric

Ohledně otázek přesnosti: napiš na support@astroway.info s daty mapy a očekávaným etalonem (astro.com nebo jiný autoritativní zdroj).

Užitečné?
Запропонувати правку

Aktualizováno: