Apps Новости

Яндекс анонсирует собственную технологию прогноза погоды. С точностью до дома

Яндекс анонсирует собственную технологию прогноза погоды. С точностью до дома
Технозавр

Сегодня Яндекс анонсировал новую технологию Метеум — теперь с ее помощью Яндекс.Погода будет строить собственный прогноз погоды, а не только полагаться на данные партнеров, как это было раньше.

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

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

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

Сейчас в мире есть несколько основных моделей, по которым предсказывают погоду. Например, модель с открытым исходным кодом WRF, модель GFS, которые изначально являлись американской разработкой. Сейчас ее развитием занимается агентство NOAA.

Модель WRF поддерживается и развивается учеными по всему миру, однако и у нее есть официальная версия — ее развитием и поддержкой занимается американский научный институт NCAR, находящийся в Болдере, штат Колорадо. Изначально WRF развивалась как две параллельные ветки — ARW и NMM, ныне упраздненная. Модели GFS и WRF имеют несколько разный вектор развития (GFS распространяет глобальные и ориентированные на США продукты). WRF в первую очередь локальная модель, которую можно настроить под определенную местность.

Часть 1. Про классическую метеорологию

По своей сути WRF -это open source программа, написанная на Фортране (см. врезку) и отражающая текущее понимание учеными законов физики и динамики атмосферы и, соответственно, погоды. Как всякий уважающий себя представитель open source software, WRF не работает «из коробки». То есть, вероятно, большинству линуксоидов удастся ее запустить, но только после изрядного количества времени, потраченного на чтение мануалов и компиляцию. При этом качество предсказаний погоды с помощью сырой версии может неприятно удивить. WRF создана, чтобы описывать сложную динамическую систему — атмосферу Земли, и потому нуждается в аккуратной настройке.

Лирическое отступление про Фортран

Понятно, что Фортран, наверное, не самый лучший выбор для создания больших систем с открытым исходным кодом. Но существуют две серьезные причины не переписывать WRF на другие языки. Первая — код, что называется, проверен временем: не одно поколение ученых внесло свой вклад в формирование физической модели. Кроме того, данный код широко поддерживается научными группами по всему миру. Вторая причина заключается в том, что для описания такой сложной системы, как окружающая нас среда, требуются изрядные вычислительные ресурсы. Современные же компиляторы, типа Intel Fortran, позволяют собрать исполняемые файлы таким образом, чтобы те выполнялись с максимальной производительностью.

Весь процесс работы модели можно разделить на две условные части: предсказание физики и предсказание динамики. Физические модули WRF отслеживают количество тепла, которое выделяется и поглощается в атмосфере, а также образование осадков в нужное время и в нужном месте. Динамика — это движение воздушных масс, роза ветров, формирование циклонов и прочее. За физику отвечает набор полуэмпирических моделей, по одной на тот или иной процесс, за динамику — параметризованная версия уравнения Эйлера.

На картинке показан срез расчетной сетки модели. Результаты расчетов температуры отображены цветом ячеек и являются в основном следствием физических процессов - нагрева и охлаждения. Стрелочки показывают перенос воздушных масс, то есть результат расчета динамики

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

Уравнение Эйлера — это дифференциальное уравнение в частных производных. Понятно, что компьютер не может решать дифференциальные уравнения в частных производных без посторонней помощи. Помощь в данном случае состоит в разложении уравнений математической модели на конечно-разностные схемы. То есть, представляя производные в виде разностей, можно получить максимально правильное решение уравнения.

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

Вероятно, эта задача была бы совсем уж неподъемной, если бы не наблюдения. За те годы, в течение которых человечество интересовалось будущими метеоусловиями (а это большой срок), накопился некоторый опыт проведения атмосферных измерений. Были придуманы такие вещи, как метеостанции, спутниковые спектрометры, самолетные приборы, радары, лидары — да мало ли чего еще. Тот объем данных, который является минимально необходимым для составления прогноза на уровне точности, соответствующем современным стандартам, необходимо использовать все доступные источники информации: более 10 000 метеостанций по всему миру, более 80 спутников на околоземной орбите, около 1 500 станций радиологического зондирования.

Метеум

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

Некоторые из доступных человечеству способов наблюдения за атмосферой

Некоторые из доступных человечеству способов наблюдения за атмосферой

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

Сейчас система расчетных областей численной модели Яндекса спроектирована таким образом, чтобы покрывать территорию РФ прогнозами двух типов — на сетке с грубым разрешением (6 на 6 км) и на сетке с мелким разрешением (2 на 2 км). Эти сетки вложены друг в друга и взаимодействуют, передавая между собой данные о граничных и начальных условиях.

Чтобы рассчитывать, обрабатывать и хранить параметры атмосферы на таких масштабах, необходимы огромные вычислительные мощности. Дневной объем поступающих в хранилище прогнозов составляет более 10 ТБ. Прогноз погоды на 48 часов с заданным уровнем детализации для Московской области даже на кластерах Яндекса занимает около 6 часов.

Прогноз погоды рассчитывается каждый раз, когда пользователь обращается к сервису. Это продиктовано не только желанием отдавать самый точный актуальный прогноз погоды специально для координат пользователя, но еще и суровой необходимостью. Дело в том, что объем данных о погоде с высоким разрешением настолько велик, что предрасчет такого прогноза над территорией РФ займет несколько часов, и ни одна рантаймовая база не сможет отвечать на запросы за приемлемое время. Это также верно не только для результатов Метеума, но и для некоторых моделей, которые входят в его состав. Например, модели GFS и WRF передают такое количество информации, что для их передачи в API был организован микросервис, который, в отличие от многих баз данных хранить, обновлять и отдавать данные непосредственно из памяти входящих в микросервис машин.

Так на одном из ранних этапов работы выглядело расположение расчетных областей в центральном регионе РФ. Красный - внешний домен с сеткой 6 на 6 км, синие - вложенные области с более высоким разрешением (2 на 2 км)

Так на одном из ранних этапов работы выглядело расположение расчетных областей в центральном регионе РФ. Красный — внешний домен с сеткой 6 на 6 км, синие — вложенные области с более высоким разрешением (2 на 2 км)

Система получения, обработки и анализа данных, расчетов модели и их совмещения в алгоритме ассимиляции данных — это цепочка из многих звеньев. Помимо правильной обработки поступающих данных, необходимо корректно настроить их усвоение в начальных условиях для дифференциальных уравнений. За разработку и физическое обоснование этих алгоритмов отвечает теория ассимиляции данных — наука о корректном сочетании наблюдений с прогнозами математических моделей. Однако наблюдения за состоянием атмосферы, которые Яндекс получает из различных источников, могут пригодиться и для других целей.

Часть 2. Про машинное обучение

WRF является стандартом индустрии метеопрогнозирования, однако есть и другие модели: прогнозы, сделанные с помощью них Яндекс получает от своих партнеров. Несмотря на все знания человечества об атмосферных процессах, спутники и суперкомпьютеры, все эти модели, как вы знаете, ошибаются. Интересным является то, что в их прогнозах есть систематически воспроизводимые закономерности.

Помимо собственно модели WRF, которая рассчитывается на кластерах Яндекса, компания получает прогнозы для 12000 городов по всему миру, сделанные одним из партнеров Яндекса — компанией Foreca. Более детальная информация о глобальном состоянии атмосферы к нам приходит из американской модели Global Forecast System, которая считается одной из самых точных глобальных моделей в мире и имеет разрешение в 0,25 градуса.

Метеум

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

Некоторые из моделей прогноза погоды завышают количество выпавших на землю осадков, другие — занижают ночную температуру в черте города. Имея в распоряжении архив прогнозов моделей, можно выделить очень много таких закономерностей, в том числе и гораздо менее очевидных, чем те, о которых говорилось выше. Человеку это сделать достаточно сложно из-за огромных объемов данных, а вот алгоритмы машинного обучения с этим прекрасно справляются. Для выявления закономерностей и взаимосвязей между прогнозами моделей и реальной метеорологической обстановкой, Яндекс использует алгоритм машинного обучения Матрикснет.

Матрикснет принимает на вход специальным образом переработанные архивы прогнозов погоды и сопоставляет их с данными о реальной метеорологической обстановке. В качестве данных о реальной погоде используются наблюдения, полученные на тысячах профессиональных метеостанций по всему миру.

В результате таких сопоставлений получается формула корректировки прогноза, которая, в зависимости от метеорологической ситуации, составляет оптимальную комбинацию прогнозов из данных моделей, предоставленных поставщиками.

Метеум

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

Метеум

Их недостаточно для построения гиперлокального прогноза. Поэтому Метеум способен использовать большое количество данных, косвенно указывающих на метеообстановку. Яндекс уже использует данные Яндекс.Карт, которые помогают нам учитывать ландшафт местности. Приведем еще один пример. Во многих моделях телефонов встроены барометры. Они не такие точные, как в метеостанциях, зато их миллионы. И распределены они там, где живут люди. В следующем году мы начнем использовать их данные для уточнения фактического состояния атмосферы.

Метеум

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

Часть 3. Behind blue eyes

В режиме реального времени прогнозы моделей, необходимые для работы Метеума, собираются из нескольких разных источников. Находящиеся в микросервисе прогнозы WRF и GFS весят более 60 ГБ и обновляются каждую минуту. Причем они делают это атомарно, большими кусками. Такие требования сделали невозможным использование традиционных рантайм-баз. Прогнозы компании Foreca хранятся в PostgreSQL, так как их объемы и частота обновления значительно ниже. После обработки и показа пользователю, результаты формулы вместе с составными частями (прогнозы поставщиков и другие факторы, передаваемые в Матрикснет), отправляются в кластер MapReduce. Эти данные впоследствии используются для верификации и дополнительной настройки работы Метеума.

Часть 4. Тотальный рантайм

Все те процессы, которые описаны выше, происходят каждый раз, когда пользователь заходит в Яндекс.Погоду. Делая запрос, вы посылаете в Метеум свои географические координаты. Он собирает все необходимые для прогноза данные, анализирует метеорологическую обстановку, тип подстилающей поверхности и составляет на основе этих данных свой собственный прогноз специально для вашего положения.

Метеум

Часть 5. Что получилось

По оценкам Яндекса (увы, независимых измерителей в этой области пока нет), на сегодня их прогноз погоды точнее всех известных им конкурентов. Например, их температурный прогноз на 24 часа ошибается на 35 % меньше ближайшего конкурента.

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

Источник: Хабрахабр