4. Почасовой лунный прогноз (GET /get_hourly_forecast)

Выгрузка для ИИ (JSON)

Метод возвращает синхронный geocentric-прогноз на локальные сутки. `phase_name` сохраняет legacy bucket, `phase_angle` содержит нормализованную элонгацию Moon-Sun, а `phase_direction` независимо показывает waxing/waning/boundary. `tithi` и `lunar_day` остаются разными сущностями; legacy-аппроксимация tithi/tithi-1 не используется.

# 4. Почасовой лунный прогноз (GET /get_hourly_forecast)

Endpoint

GET/api.php?action=get_hourly_forecast

Query parameters

Поле / ПараметрТипОписание
date*string (YYYY-MM-DD)Локальная дата, для которой строится hourly-массив.
Пример: 2026-03-18
citystringГород для server-side геокодинга. Можно использовать вместо ручных координат.
Пример: Москва
countrystringОпциональное уточнение для `city`.
Пример: Россия
latfloatШирота. Используется вместе с `lng` и `timezone`.
Пример: 55.7558
lngfloatДолгота.
Пример: 37.6176
timezonestringIANA timezone. Обязательна при ручных координатах без `city`.
Пример: Europe/Moscow
api_key / X-API-Key*stringAPI-ключ для авторизации sync-endpoint.

# Практические рекомендации

Диапазон ответа: от local `00:00` запрошенного дня до local `00:00` следующего дня включительно.

Астрономическая рамка: `geocentric`.

Если timezone содержит DST-переход, число точек может отличаться от 25, потому что сохраняются локальные календарные часы.

Повторный запрос по тем же `date + lat + lng + timezone` возвращается из JSON-cache без нового обращения к внешнему источнику эфемерид.

Границы hourly VOC выбираются из канонических окон LunarVocProvider и точно совпадают с weekly forecast для того же астрономического окна.

Response model

Поле / ПараметрТипОписание
statusstringСтатус синхронного ответа.
Пример: success
cachedbooleanПризнак попадания в result-cache.
data.schema_versionstringВерсия hourly result-cache contract.
Пример: 1.3.2
data.metaobjectМетаданные диапазона, локации, шага и источника эфемерид.
data.hours[]arrayПочасовой массив результата.

Hour fields

Поле / ПараметрТипОписание
hour_indexintegerИндекс точки внутри local-day массива.
local_datetime / utc_datetimeISO-8601 datetimeЛокальная и UTC-временные отметки часа.
moonobjectПоложение Луны: longitude, latitude, sign, sign_degree, speed, is_retro.
planetsobjectGeocentric-положения Солнца, Меркурия, Венеры, Марса, Юпитера, Сатурна, Урана, Нептуна и Плутона.
moon_aspects[]arrayТекущие мажорные аспекты Луны к планетам: conjunction, sextile, square, trine, opposition.
lunarobjectФаза Луны: legacy `phase_name`, элонгация `phase_angle` и независимый `phase_direction` (`waxing|waning|boundary|null`). `phase_name=New Moon` не означает автоматически waxing; `phase_name=Full Moon` не отменяет direction. Также: `tithi`, nullable `lunar_day`, `is_satanic`, `void_of_course`.

Void of course fields

Поле / ПараметрТипОписание
statusstring`ok`, если начало и конец окна доказаны часовым рядом; `unknown`, если не хватает lookback/lookahead.
calculation_version / precisionstringВерсия `lunar-voc-1.1.0` и точность `hourly_rounded`, общие с weekly VOC.
is_void_nowbooleanНаходится ли Луна без курса в текущей точке.
starts_at_local / ends_at_localISO-8601 datetimeКанонические границы текущего окна void of course в локальном времени. При status=unknown обе границы равны null; timestamp запроса не подставляется вместо начала.
next_signstringСледующий знак Луны после выхода из текущего окна.
last_aspect / next_aspect_before_sign_changeobject|nullПоследний и ближайший мажорный аспект до смены знака.

Политика кеширования

# Кэширование

Метод использует двухуровневый кэш.

Результат hourly-forecast
До инвалидирования входными параметрами

JSON-cache schema 1.3.2 по `date + lat + lng + timezone`; устаревший lunar-day payload отклоняется.

Geocentric hourly ephemeris
До повторного использования того же диапазона

Пакетный cache эфемеридных рядов с 72-часовым lookback/lookahead. Тот же нормализованный geocentric ряд получает pure resolver LunarVocProvider; дневная агрегация и hourly-ветка используют одни canonical boundaries.

Bash (cURL)

Запрос по координатам и timezone.

Фрагмент кодаbash
curl -s "https://digihash.ru/datacollector/api.php?action=get_hourly_forecast&date=2026-03-18&lat=55.7558&lng=37.6176&timezone=Europe/Moscow&api_key=655351024"

Bash (cURL)

Запрос по названию города с server-side геокодингом.

Фрагмент кодаbash
curl -s "https://digihash.ru/datacollector/api.php?action=get_hourly_forecast&date=2026-03-18&city=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&country=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&api_key=655351024"