Перейти до вмісту
AstroWay/api v2.19.0 · docs
усі системи в нормі
UA EN

Точність розрахунків

AstroWay API використовує Swiss Ephemeris (офіційний C-код від Astrodienst, творців astro.com) — той самий движок, на якому професійні астрологи 30+ років працюють у Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/міс) і Janus. Ми зібрали його у WebAssembly і виставили REST API-шаром, без посередницької націнки. Кожен із базових розрахункових ендпоінтів покритий regression snapshot-тестами; точність двигуна верифікована через triangulation з трьома незалежними джерелами + проти NASA 5-Millennium Eclipse Catalog:

  • Планетні позиції: < 0.1 arcsec vs офіційного swetest CGI Astrodienst
  • Куспиди домів Placidus: 0.000" exact match
  • Затемнення: < 1 хвилина vs NASA Eclipse Catalog
  • ACG лінії: < 1.5 км на екваторі vs swetest
  • Sunrise/sunset: < 10 секунд vs timeanddate.com
  • Moon VOC, ingresses, planet conjunctions: точність до частки секунди
КомпонентЗначення
БібліотекаSwiss Ephemeris C code (aloistr/swisseph)
Версіяupstream Astrodienst C code
Bindingsswisseph-wasm (WebAssembly у Node.js)
EphemerisDE431 JPL ephemeris (через .se1 файли)
FallbackMoshier analytical (для дат поза 1800-2399)
Code sharingShared @/core із app.astroway.info — один двигун, два транспорти

Точність перевіряється через триангуляцію — порівняння з трьома незалежними джерелами:

Офіційний reference-implementation Swiss Ephemeris від самих Astrodienst — команди, що створили Astro.com і обслуговує мільйони астрологів по всьому світу. Найавторитетніше публічне джерело. Наш двигун ідентичний (0.00–0.07 кутової секунди дрифту).

Незалежна Python-бібліотека використовує pyswisseph-bindings замість нашого WASM. Підтверджує, що наш WASM-шар не спотворює дані.

Віддалений Swiss Ephemeris API (sidereal Lahiri). Systemic drift 8–17 кутових секунд пов’язаний з різними версіями формули Lahiri ayanamsa, а не з точністю двигуна.

Результати триангуляції

Section titled “Результати триангуляції”
Картапроти swetest (Astrodienst)проти Kerykeion (Python)проти Prokerala API
Monroe 19260.00”0.19”16.95” (systemic)
Diana 19610.00”0.69”8.18” (systemic)
Einstein 18790.07”LMT-артефакт Kerykeion14.96” (systemic)

Regression-набір на рівні ендпоінтів

Section titled “Regression-набір на рівні ендпоінтів”

Кожен із базових обчислювальних ендпоінтів покритий замороженими snapshot-тестами на 3 референсних картах (Monroe / Diana / Einstein) = 561 snapshot-ів.

Snapshot-suite ловить:

  • Баги мапінгу вхідних даних — неправильний id планети, UT, система будинків
  • Пост-обробку — округлення, конвертація одиниць, втрата знаку
  • Розбіжність дефолтів — mean vs true node, geocentric vs topocentric
  • Schema drift — валідація пропустила неправильну форму
  • Застарілий деплой — prod dist не відповідає коду

Tolerance: 5e-5° (≈0.18 кутової секунди) за замовчуванням для всіх числових полів.

Позиції планет (тропік, проти swetest)

Section titled “Позиції планет (тропік, проти swetest)”
КартаДатаМаксимум drift
Marilyn Monroe1926-06-010.00”
Princess Diana1961-07-010.00”
Albert Einstein1879-03-140.07”

Куспіди домів Placidus (проти swetest)

Section titled “Куспіди домів Placidus (проти swetest)”
Картаdrift ASCdrift MCМаксимум drift куспіда
Monroe0.000”0.000”0.000”
Diana0.000”0.000”0.000”

Затемнення (проти NASA 5-Millennium Catalog)

Section titled “Затемнення (проти NASA 5-Millennium Catalog)”
ПодіяМаксимум NASAНаш максимумDrift
2025-03-14 Lunar Total06:58 UT06:58 UT0.8 хв
2025-03-29 Solar Partial10:47 UT10:47 UT0.5 хв
2025-09-07 Lunar Total18:11 UT18:11 UT0.8 хв
2025-09-21 Solar Partial19:41 UT19:42 UT1.0 хв

Астрокартографія (проти формули RA з swetest)

Section titled “Астрокартографія (проти формули RA з swetest)”

Усі лінії MC/IC/ASC/DSC використовують правильну формулу longitude = RA − GMST (стандарт Kenneth Bowser). Drift від еталона: < 1.5 км на екваторі для всіх планет.

Схід / Захід Сонця (проти timeanddate.com)

Section titled “Схід / Захід Сонця (проти timeanddate.com)”
ЛокаціяДатаПараметрDrift
London2026-04-15Sunrise0.6 с
London2026-04-15Sunset9 с

Полярні локації (|lat| > 66.5°) автоматично повертають polarState + warning, що звичайні planetary hours не визначені.

AstroWay використовує змінні орбіси per-planet (правило MIN двох планет), як у ZET9 та astro.com. Орбіси за замовчуванням (для натальної карти):

АспектSunMoonInnerJupiterOuter
Conjunction12°10°
Sextile6.5°
Square10°
Trine12°
Opposition12°10°

Мінорні аспекти (36°, 40°, 45°, 72°, 108°, 135°, 144°) за замовчуванням вимкнені. Вмикаються явно через ALL_ASPECTS.

Для |lat| > 66.5° системи Placidus / Koch / Regiomontanus математично не визначені. У таких випадках Swiss Ephemeris автоматично повертає Porphyry, і наш API додає warning:

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

Regression перевіряється на кожен PR через CI:

  • api-calc/tests/endpoints/ — 561 snapshot-ів проти референсних карт (Monroe / Diana / Einstein) + synastry / composite / davison
  • .github/workflows/api-accuracy.yml — автозапуск на PR
  • Триангуляція проти swetest CGI + Kerykeion — щотижня
  • Моніторинг upstream Swiss Ephemeris через Dependabot
  • Дати поза діапазоном (до 1800 і після 2399): використовується Moshier analytical, точність ~0.1” (проти < 0.01” для SWIEPH з файлами DE431)
  • True Lilith (id=13) vs Mean Lilith (id=12): різниця до 12° — за дефолтом Mean Lilith (стабільна поведінка), True Lilith доступний через planetIds: [13]
  • Topocentric vs geocentric: за замовчуванням geocentric

Про питання точності: пиши на support@astroway.info з даними карти й очікуваним еталоном (astro.com або інше авторитетне джерело).

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

Останнє оновлення: