Přesnost výpočtů
TL;DR
Sekce “TL;DR”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", maximum0.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 minutavs NASA Eclipse Catalog - ACG linie:
< 1.5 kmna rovníku vs swetest - Sunrise/sunset:
< 10 sekundvs 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ěleso | Maximální drift |
|---|---|
| Slunce, Venuše, Saturn | 0.001" |
| Merkur | 0.002" |
| true Node | 0.004" |
| Mars | 0.007" |
| Jupiter | 0.009" |
| Měsíc | 0.022" |
| Uran | 0.083" |
| Pluto | 0.097" |
| Neptun | 0.223" |
| Chiron | 0.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čí.
Engine
Sekce “Engine”| Komponenta | Hodnota |
|---|---|
| Knihovna | Swiss Ephemeris C code (aloistr/swisseph) |
| Verze | upstream Astrodienst C code |
| Bindings | swisseph-wasm (WebAssembly v Node.js) |
| Ephemeris | DE431 JPL ephemeris (přes .se1 soubory) |
| Fallback | Moshier analytical (pro data mimo 1800-2399) |
| Code sharing | Sdílené @/core z app.astroway.info – jeden engine, dva transporty |
Metodika
Sekce “Metodika”Přesnost je ověřována pomocí triangulace – porovnání se třemi nezávislými zdroji:
1. swetest CGI (etalon)
Sekce “1. swetest CGI (etalon)”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).
2. Kerykeion (Python)
Sekce “2. Kerykeion (Python)”Nezávislá Python-knihovna používá pyswisseph-bindings namísto našeho WASM.
Potvrzuje, že naše WASM-vrstva nezkresluje data.
3. Prokerala API
Sekce “3. Prokerala API”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.
Výsledky triangulace
Sekce “Výsledky triangulace”| Mapa | proti swetest (Astrodienst) | proti Kerykeion (Python) | proti Prokerala API |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (systemic) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (systemic) |
| Einstein 1879 | 0.07” | LMT-artefakt Kerykeion | 14.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.
Detailní benchmarky
Sekce “Detailní benchmarky”Pozice planet (tropické, proti swetest)
Sekce “Pozice planet (tropické, proti swetest)”| Mapa | Datum | Maximum drift |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
Kuspidy domů Placidus (proti swetest)
Sekce “Kuspidy domů Placidus (proti swetest)”| Mapa | drift ASC | drift MC | Maximum drift kuspida |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
Zatmění (proti NASA 5-Millennium Catalog)
Sekce “Zatmění (proti NASA 5-Millennium Catalog)”| Událost | Maximum NASA | Naše maximum | Drift |
|---|---|---|---|
| 2025-03-14 Lunar Total | 06:58 UT | 06:58 UT | 0.8 min |
| 2025-03-29 Solar Partial | 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 Solar Partial | 19:41 UT | 19:42 UT | 1.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)”| Lokace | Datum | Parametr | Drift |
|---|---|---|---|
| London | 2026-04-15 | Sunrise | 0.6 s |
| London | 2026-04-15 | Sunset | 9 s |
Polární lokace (|lat| > 66.5°) automaticky vrací polarState + varování,
že běžné planetary hours nejsou definovány.
Orbisy aspektů
Sekce “Orbisy aspektů”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):
| Aspekt | Sun | Moon | Inner | Jupiter | Outer |
|---|---|---|---|---|---|
| Conjunction | 12° | 10° | 5° | 8° | 5° |
| Sextile | 6.5° | 6° | 5° | 5° | 5° |
| Square | 10° | 8° | 5° | 7° | 5° |
| Trine | 12° | 8° | 5° | 5° | 5° |
| Opposition | 12° | 10° | 5° | 8° | 5° |
Minor aspekty (36°, 40°, 45°, 72°, 108°, 135°, 144°) jsou ve výchozím
nastavení vypnuty. Zapínají se explicitně přes ALL_ASPECTS.
Polární šířky
Sekce “Polární šířky”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-driftvaliduje 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
isErrora 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í.
Známá omezení
Sekce “Známá omezení”- 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
Odkazy
Sekce “Odkazy”- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- Katalog zatmění NASA: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/
Kontakty
Sekce “Kontakty”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).