Перейти к основному содержимому

Расчётный движок

Каждое число, которое возвращает этот 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 эндпоинтов, сгруппированных по тому, что они считают:

ИИ и чат1
PDF-отчёты2
Панчанга23
Мухурта и время15
Восход Солнца и Луны2
Луна3
Календари13
Праздники и враты3
Натальная карта и дома11
Варги (дробные карты)23
Джаймини5
KP (Кришнамурти-паддхати)1
Чакры1
Планеты и положения11
Сила планет (бала)4
Аштакаварга5
Даши — накшатровые (по планетам)12
Даши — по раши (Джаймини)20
Инструменты для даш4
Йоги и доши4
Лал Китаб5
Совместимость5
Транзиты и годовые карты9
Таджика и варшапхала9
Поиск событий и переходов4
Прогнозы и толкования9
Прашна7
Таро4
Панча-пакши2
Возвращения планет5
Затмения7
Мунданная астрология10
Неподвижные звёзды4
Традиционная и эллинистическая5
Западная астрология12
Нумерология15
Китайская астрология4
Астрокартография4
Human Design3
Катастрофы и бедствия5
Утилиты3
Астрология1
Прашнавали4

Скорость

Медианное время на сервере — 62 мс, 76% эндпоинтов отвечают быстрее 100 мс. Замер сделан по всем опубликованным примерам на локальном запуске. Эфемериды отображаются в память, поэтому стоимость карты — это арифметика, а не чтение с диска.

Если вызов медленнее, значит, работы действительно больше: поиск транзитов перебирает диапазон дат, а PDF-отчёт собирает в один документ около двадцати пяти эндпоинтов и оплачивается как один вызов.

Детерминированность

Одинаковый вход всегда даёт одинаковый результат. В процессе нет ни случайной выборки, ни модели, поэтому карта, построенная сегодня, и та же карта через год совпадают побайтно. Именно поэтому ответы можно кешировать, и именно поэтому 1 783 тестовые функции проверяют точные значения, а не диапазоны.

А ещё расхождение можно проверить. Если наша Луна и Луна в вашей программе отличаются, одна из них неверна, и аянамша или часовой пояс покажут, какая именно, — вместо того чтобы обе были «примерно правильными».

Что мы не считаем

Движок может выдать число почти для чего угодно. Но некоторые такие числа значили бы не то, что в них увидит читатель, — и таких эндпоинтов у нас нет.

  • Родовые долги по Лал Китаб. Восемь долгов во всех источниках называются одинаково. А вот условия, при которых возникает каждый, — нет: опубликованные правила для одного только питри-рина дают разные ответы для одной и той же карты. Мы не станем выносить вердикт о чьих-то предках, который зависит от того, какую книгу мы прочитали.
  • Поля, для которых мы не можем вывести правило. Если конкурент возвращает значение, которое мы не смогли обосновать по источнику, у нас этого поля нет, и ответ объясняет почему. Правдоподобной догадки, которую вызывающая сторона никак не сможет проверить, там не будет.
  • Всё, что подаётся как медицинский, юридический или финансовый совет. Тексты о ремедиях — это традиционные предписания, и они так и помечены.

Там, где две школы действительно расходятся и у обеих есть основания, ответ указывает, какую из них он применил, — чтобы ответ можно было проверить, а не принимать на веру.

Попробуйте

curl
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"
  }'

Или запустите в песочнице, не написав ни строчки кода.

Дальше