Расчётный движок
Каждое число, которое возвращает этот API, получено из эфемерид, а не из таблицы и не от модели. Вот что лежит в основе и где мы проводим черту: что считать не будем.
Эфемериды
Положения берутся из планетных эфемерид NASA JPL — тех же данных, по которым ведут навигацию космических аппаратов. Это 105 МБ табличных положений на диапазон 500–2999 гг. н. э. и ещё 735 неподвижных звёзд.
Это важно, потому что альтернатива — арифметика, точности которой хватит для газетного гороскопа, но не для карты. Формулы среднего движения за столетия уходят на градусы: это проявляется на рождениях 1890 или 2090 года, а в варгах превращается не в чуть-чуть другой ответ, а в совсем другой. В D60 полградуса переносят планету в следующее деление.
Сидерический зодиак — и какой именно
Ведическая астрология сидерическая: положения отсчитываются от неподвижной точки на небе, а не от смещающегося равноденствия. Разница между ними называется аянамшей, сейчас она около 24°, и единого общепринятого значения у неё нет.
Поэтому это параметр. Поддерживается 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"
}'Или запустите в песочнице, не написав ни строчки кода.