High performance
22 July 2011

Прогноз погоды своими руками

Каждый из нас ругал синоптиков, когда оказывался под дождем, не имея в руках зонта. В топике я расскажу Вам как сделать прогноз погоды на основе модели WRF (Weather Research & Forecasting Model) на несколько суток вперед.

Несколько слов о WRF

WRF — это численная модель предсказания погоды, которая подходит как для прогнозирования состояния атмосферы, так и для научных исследований. Разрабатывается сообществом научных организаций США, в том числе Национальным центром атмосферы и океана, Национальным центром атмосферных исследований.
Представляет собой систему модулей: модуль подготовки начальных и граничных данных (WRF Preprocessing System), собственно решающее ядро (Advanced Research WRF), модуль постпроцессинга (WRF Postprocessing System).
Большая часть модели (собственно вся математика) реализована на языке fortran с использованием библиотеки MPI. На C написаны модули для работы с данными. Модель доступна в исходных кодах.
Естественно модель потребляет огромное количество процессорного времени, и спроектирована для запуска на суперкомпьютерах, т. к. прогноз погоды — одна из сложнейших задач.

Как собственно работает модель?

Скачивается набор входных данных (текущее состояние атмосферы). Затем запускаетмя модуль препроцессинга, которые состоит из трех программ:
  1. geogrid.exe — обрабатывает статические данные (рельеф, типы почвы, гидрография);
  2. ungrib.exe — распаковывает начальные данные;
  3. metgrid.exe — интерполирует, полученные выше данные, в сетку модели.
Затем стартует ядро модели, которые с помощью численных методов решает нелинейную систему дифференциальных уравнений в частных производных. Оно состоит из двух распараллеленых программ:
  1. real.exe — выполняет вертикальную интерполяцию входных данных;
  2. wrf.exe — собственно разрешающее ядро.
Подробнее о математике модели можно прочитать здесь.
Затем после завершения расчета мы получаем набор данных, т.е. прогноз состояния атмосферы на несколько суток вперед с дискретизацией в 1 час.
Теперь необходимо обработать эти данные и построить слайды, на которые бы мы нанесли приземную температуру, ветер, давление и осадки. На самом деле wrf продуцирует большое число полей, но мы ограничимся только этими. Для этих целей воспользуемся программа wrfpost.exe из модуля постпроцессинга.

Вычислительные ресурсы

Если у Вам не завалялся суперкомпьютер, то считать модель будет долго.
В домашних условиях можно использовать Core i5 или i7, чем больше ядер — тем быстрее будет считать. Но я взял пару 4-х ядерных Xeon'ов с 8 ГБ оперативной памяти под Slackware 12. Помимо копиляторов необходимо установить библиотеки MPI, например, MPICH2.
Единственное требование — платформа должна быть x86_64. Иначе препроцессинг не заведется.
Затраты по времени для области 3000 x 3000 км (прогноз на 2 суток) приведены в таблице ниже.
Шаг, км Точек Время вычислений, ч.
10 301 x 301 10
20 151 x 151 6
30 101 x 101 4
Пожелания по настройке

Все настройки задаются в файлах namelist.input и namelist.wps.
Шаги по осям X и Y (параметры DX, DY) лучше ставить одинаковыми. И шаг должен зависит от тех мощностей, которыми Вы располагаете. Поиграться хватит 10-50 км.
Шаг по времени DT рекомендуется выставлять равным 9 * DX (в км). DX, DY задаются в метрах, а DT в секундах.

Относительно параметризаций (пограничный, приземный слой, конвекция, микрофизика) лучше придерживаться рекомендованных параметров:
&physics
mp_physics = 8,8,8
ra_lw_physics = 1,1,1,
ra_sw_physics = 1,1,1,
sf_sfclay_physics = 1,1,1,
sf_surface_physics = 2,2,2,
bl_pbl_physics = 1,1,1,
cu_physics = 1,0,0,
/
Подробное описание всех параметров приведено в Руководстве пользователя.

Где скачать?

Официальный сайт модели: www.wrf-model.org
Компоненты модели: www.mmm.ucar.edu/wrf/users/download/get_sources.html
Рекомендую качать версию 3.2.1. Как минимум, потребуются:
WRF model V3.2.1,
WRF Preprocessing System V3.2.1,
WRF Postprocessing System V3.2,
low-resolution geographical data (10' resolution),
Начальные данные (разрешение 1°, размер порядка 500МБ): www.nco.ncep.noaa.gov/pmb/products/gfs
Чтобы скачать модель нужно пройти процедуру простой регистрации.
Если хотите считать с шагом меньше 10 км, то нужно будет скачать более подробный рельеф.

Программу grads (для построения слайдов) можно взять из проекта opengrads.org
Полное руководство пользователя (eng), он-лайн версия + pdf.

Готов ответить на вопросы и помочь в запуске, если у кого-то появится желание. Можно постараться хорошо настроить модель и давать прогноз погоды самому себе.

Результаты

Для затравки предлагаю Вашему вниманию слайды с прогнозами на субботу (завтра проверите):
1. Температура у Земли и ветер на высоте 10м
image
2. Приземное давление и осадки, накопленные от начала счета*
image

Все картинки, доспуны в альбоме: imgur.com/a/XqBi6 (надеюсь выдержит).

Для сравнения прогноз по Москве от Яндекса: pogoda.yandex.ru/moscow/details

* К сожалению поле часовых осадков построить не удалось, т. к. моделью выводятся осадки только от начала счета (от 03ч. 22.07.2011 MSK).

+51
23.4k 85
Comments 43