Рушій розрахунків
Кожне число, яке повертає API, береться з ефемерид, а не з готової таблиці й не з моделі. Ось що лежить в основі — і де межа, за якою ми нічого не рахуємо.
Ефемериди
Положення беруться з планетних ефемерид NASA JPL — тих самих даних, за якими прокладають курс космічних апаратів. Це 105 МБ табличних положень на 500–2999 рр. н. е., а також 735 нерухомих зір.
Це важливо, бо альтернатива — арифметика, якої вистачає для газетного гороскопа, але не для карти. Формули середнього руху за століття збиваються на градуси. Помітно це на народженнях 1890 чи 2090 року, а в дробовій карті похибка дає вже не трохи іншу, а зовсім іншу відповідь. У D60 пів градуса переносить планету в сусідню частку.
Сидеричний зодіак — але який саме
Ведична астрологія сидерична: положення відраховують від нерухомої точки на небі, а не від рухомої точки рівнодення. Різниця між ними — це аянамша, нині близько 24°, і єдиного загальноприйнятого значення для неї немає.
Тому це параметр. API приймає 48 аянамш — Лахірі, Раман, Крішнамурті, Феган — Бредлі, Юктешвар, Сур’я-сіддханта та інші. Лахірі стоїть за замовчуванням тому, що це державний стандарт Індії, а не тому, що вона єдино правильна.
{
"date_time": "1990-08-15T10:30:00+05:30",
"latitude": 26.9124,
"longitude": 75.7873,
"timezone_as_float": 5.5,
"ayanamsa": "KRISHNAMURTI"
}Два астрологи, які не сходяться щодо аянамші, можуть користуватися цим API — і кожен отримає ту карту, на яку очікує. API, у якому аянамшу жорстко зашито, мовчки стає на чийсь бік у суперечці, яку ще не розв’язано.
Що охоплює
299 ендпоінтів за тим, що вони рахують:
Швидкість
Медіанний час на сервері — 62 мс, а 76 % ендпоінтів відповідають швидше ніж за 100 мс. Виміряно на всіх опублікованих прикладах під час локального запуску. Ефемериди відображено в пам’ять, тож розрахунок карти впирається в арифметику, а не в диск.
Якщо виклик повільніший, то лише тому, що роботи справді більше: пошук транзитів перебирає діапазон дат, а PDF-звіт збирає близько двадцяти п’яти ендпоінтів в один документ і оплачується як один виклик.
Детермінованість
Ті самі вхідні дані завжди дають той самий результат. Немає ні випадкової вибірки, ні моделі, тож карта, розрахована сьогодні, і та сама карта через рік збігаються до байта. Саме тому відповіді можна кешувати, і саме тому 1 783 тестові функції перевіряють точні значення, а не діапазони.
А ще будь-яку розбіжність можна перевірити. Якщо наш Місяць і Місяць у вашій програмі не збігаються, помиляється хтось один, і аянамша чи часовий пояс покажуть, хто саме. Не буде такого, що обидва «приблизно правильні».
Чого ми не рахуємо
Рушій може видати число майже для будь-чого. Але деякі з цих чисел не означали б того, що бачить у них читач, — і таких ендпоінтів немає.
- Родові борги за Лал Кітаб. Вісім боргів усі джерела називають однаково, а от умови, за яких виникає кожен, — ні: навіть опубліковані правила для одного лише пітра-рін дають різні відповіді для тієї самої карти. Ми не публікуватимемо вердикт про чиїхось предків, який залежить від того, яку книжку ми випадково прочитали.
- Поля, для яких ми не можемо вивести правило. Якщо конкурент повертає значення, яке ми не змогли підтвердити жодним джерелом, такого поля в нас немає, а відповідь пояснює чому. Правдоподібної здогадки, яку ви не мали б змоги перевірити, там не буде.
- Будь-що, подане як медична, юридична чи фінансова порада. Тексти про ремедії (засоби корекції) — це традиційні приписи, і вони так і позначені.
Де дві школи справді розходяться і обидві мають підстави, відповідь вказує, яку з них застосовано, — щоб результат можна було перевірити, а не приймати на віру.
Спробуйте
curl -X POST https://api.occultapi.com/api/astro/planet-positions/ \
-H 'X-API-Key: yt_live_your_key_here' \
-H 'Content-Type: application/json' \
-d '{
"date_time": "1990-08-15T10:30:00+05:30",
"latitude": 26.9124,
"longitude": 75.7873,
"timezone_as_float": 5.5,
"ayanamsa": "LAHIRI"
}'Або запустіть у Playground без жодного рядка коду.