H HAENIKEN.
EN RU

Техническая заметка · Астросферум Technical note · Astrosferum

От полей ICON
к прогнозу для телескопа.
From ICON fields
to a forecast for a telescope.

Как численный прогноз погоды превращается в почасовую оценку облаков, состояния атмосферы и пригодности ночи для наблюдений. How numerical weather prediction becomes an hourly view of clouds, atmospheric stability and observing conditions.

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

Я начал «Астросферум» именно с этой проблемы. Хотелось не угадывать качество ночи по одному признаку, а сохранить всю цепочку причин: от исходного цикла погодной модели до графика, на котором видно, что именно ограничивает наблюдение в конкретный час.

01МодельICON-EU или ICON Global
02ПоляGRIB2, уровни атмосферы
03Расчётоблака, ветер, турбулентность
04Результатпочасовые графики

Сначала — подходящая модель

Внутри европейской области служба использует ICON-EU с шагом сетки около семи километров. За её пределами берётся всемирная ICON Global с более крупной сеткой. Все величины для одного прогноза приходят из одной модели: приземная погода, облака и высотный профиль не смешиваются между разными источниками.

Новый цикл становится рабочим только после проверки полноты. Если загрузка оборвалась, предыдущий завершённый цикл остаётся на месте. Это простое правило важнее попытки любой ценой показать самые свежие данные.

Что извлекается из GRIB2

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

Эти данные не складываются в одну непрозрачную формулу. Облачная преграда, туман, осадки, ветер и оптическая турбулентность рассчитываются отдельно. Поэтому плохой час можно объяснить: например, плотными нижними облаками, сильным сдвигом ветра на высоте или осадками, которые сразу запрещают практическое наблюдение.

Одна оценка — не весь прогноз

Общий индекс пригодности от 1 до 10 удобен для первого взгляда, но рядом всегда остаются исходные причины. Потеря качества распределяется между ними, а не прячется внутри итогового числа. Отдельно строятся облачность по высоте, скорость и сдвиг ветра, оценка качества изображения, события Солнца, Луны, Юпитера и Сатурна.

«Астросферум» не измеряет небо над площадкой. Он рассчитывает, что следует из конкретного цикла модели и явно показывает границы этой оценки.

Число, связанное с размыванием изображения атмосферой, остаётся модельной оценкой. Локальный рельеф, нагретая крыша, купол телескопа и облако меньше шага сетки могут изменить реальную картину. Для абсолютной калибровки нужны наблюдения и специализированные приборы, а не ещё один коэффициент в программе.

Как сохраняется воспроизводимость

На каждом графике указаны источник, модель, время исходного цикла, сетка, часовой пояс и версии расчёта. Цикл, конфигурация без секретов и ревизия кода позволяют повторить результат. Промежуточные данные привязаны к циклу модели, координатам и версии алгоритма, поэтому старый расчёт нельзя случайно выдать за новый.

Вся служба собрана в одном исполняемом файле на Go. Он обновляет модели, обслуживает Telegram и VK, выполняет расчёты и строит изображения. PostgreSQL хранит только пользовательские точки и сводную статистику. Публичный сетевой порт, отдельная очередь сообщений и самостоятельная служба отрисовки здесь не нужны.

Подробнее: научная методика ↗ открытые данные DWD ↗ исходный код ↗

A conventional weather forecast can often be reduced to cloud cover, precipitation and surface wind. A telescope needs more context. Thin high cloud and dense cloud near the horizon cause different problems, while calm air at the observing site says little about a strong flow ten kilometres above it.

That was the starting point for Astrosferum. Instead of guessing the quality of a night from one value, the system keeps the full chain of evidence: from a specific numerical-model run to a chart that shows what limits observing at a particular hour.

01ModelICON-EU or ICON Global
02FieldsGRIB2, atmospheric levels
03Calculationcloud, wind, turbulence
04Resulthourly charts

Choosing one coherent model

Within the European domain, the service uses ICON-EU at roughly seven-kilometre grid spacing. Outside that domain it uses the coarser global ICON model. Every value in one forecast comes from the same model, so surface weather, cloud fields and the vertical profile are not mixed across unrelated sources.

A new model run becomes active only after a completeness check. If a download is interrupted, the previous complete run remains in use. This simple rule matters more than showing the newest timestamp at any cost.

What is extracted from GRIB2

The nearest model grid point is selected for the requested coordinates. Surface fields provide temperature, humidity, precipitation, visibility and wind. Atmospheric layers provide pressure, temperature, wind components, cloud water and ice, layer heights and model turbulent kinetic energy.

These inputs are not collapsed into one opaque formula. Cloud obstruction, fog, precipitation, wind and optical turbulence are calculated separately. A poor hour can therefore be explained by dense low cloud, strong shear aloft or precipitation that makes practical observing impossible.

One score is not the whole forecast

The overall 1–10 suitability score is useful for a quick scan, but the underlying reasons remain visible. Losses are attributed to individual factors instead of being hidden inside the final number. Separate charts cover cloud by height, wind speed and shear, image-quality estimates, and events for the Sun, Moon, Jupiter and Saturn.

Astrosferum does not measure the sky above an observing site. It calculates what follows from a named model run and makes the limits of that estimate explicit.

The atmospheric image-blur value remains a model-derived estimate. Local terrain, a warm roof, a telescope dome or cloud smaller than the model grid can change real conditions. Absolute calibration requires observations and dedicated instruments, not another tuning constant.

Keeping results reproducible

Every chart records the source, model, base time, grid, time zone, calculation version and drawing version. The model run, non-secret configuration and source revision are enough to repeat a result. Intermediate data is keyed by model run, coordinates and algorithm version, preventing an older calculation from being presented as current.

The service is built as one Go executable. It updates model data, serves Telegram and VK, performs calculations and draws the images. PostgreSQL stores saved user locations and aggregate statistics. The system does not need a public listening port, an external message broker or a separate drawing service.

Read more: scientific method ↗ DWD open data ↗ source code ↗

ПродолжитьContinue

К профилю
и другим проектам.
Back to the profile
and other work.

Вернуться на главную Back to home