Уловимые частицы: как сервисы Яндекса помогают прогнозировать последствия извержений вулканов

b1e1fd9e3d323cee48aec248afbdf18b.jpg

На территории России насчитывается от 200 до 300 вулканов. Около 13 из них находятся под особым наблюдением: это действующие вулканы, которые извергались в течение последних 25 лет. Самые активные расположены на территории Камчатки, которая входит в Тихоокеанское вулканическое огненное кольцо — зону в 40 тысяч километров по всему земному шару, где происходят извержения вулканов и пеплопады. Так что экстренные службы в этом регионе живут в постоянной готовности к последствиям извержений.

Оценкой вулканической активности на Камчатке занимается подразделение Единой геофизической службы РАН. В прошлом году её вулканологи совместно с командами Яндекс Погоды, Yandex Cloud, Школы Анализа Данных (ШАД) и Геоинтеллекта запустили проект, который позволяет визуализировать данные по результатам извержений и предсказывать пеплопады в конкретных населённых пунктах. В дальнейшем разработанный сервис можно будет использовать для других подобных задач, например, прогнозировать пеплопады в регионах за пределами Камчатского края.

Сегодня расскажем, как лагранжева дисперсионная модель рассеяния частиц, геоаналитика и нейронные сети в сервисе для ML‑разработки DataSphere помогают следить за облаком вулканического пепла практически в режиме реального времени.

Чем грозят извержения вулканов 

Только за 2023 год на Камчатке наблюдали крупные извержения трёх вулканов: Ключевского, Безымянного и Шивелуча. После этих случаев были разные последствия, потому что в процессе пробуждения вулканы могут вести себя не всегда предсказуемо.

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

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

Стромболианский типможет сопровождаться обильными потоками лавы и небольшими взрывами с выбросом раскалённых обломков. Такое извержение часто наблюдается на Ключевской сопке.

На видео — извержение 18 апреля 2020 года, съёмка Камчатского филиала ФИЦ ЕГС РАН.

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

Так, например, выглядело извержение 31 октября 2020 года, снятое Камчатским филиалом ФИЦ ЕГС РАН.

Поскольку напор газов при купольном извержении мощный, то в процессе могут возникать сильные взрывы. В результате образуются «палящие тучи»: после взрыва масса из газов, пепла и обломков большим облаком поднимается на высоту в несколько километров и потом перемещается дальше под действием ветра. Весной 2023 года взрыв на вулкане Шивелуч привёл к частичному разрушению его купола, а выброс пепла в высоту достиг 20 километров над уровнем моря.

Вулканский тип сопровождается мощным, часто внезапным взрывом и выбросом огромных чёрных туч уже на десятки километров в высоту. Именно так извергался Везувий, поэтому эти извержения могут называть «везувианскими» или «плинианскими» (в честь римского учёного Плиния Старшего). На Камчатке такие события происходят нечасто: например, извержения умеренного вулканского типа случались на Безымянном и Ключевской сопке в середине XX века.

Сильные плинианские извержения могут даже вызвать эффект вулканической зимы — глобального понижения температуры из‑за загрязнения атмосферы пеплом. Такое случалось в прошлом столетии лишь трижды: последний раз падение температуры Земли на полградуса вызвало извержение Пинатубо на Филиппинах в 1991 году.

Филиипинские рабочие удаляют пепел после извержения из дренажной канавы. Источник

Филиипинские рабочие удаляют пепел после извержения из дренажной канавы. Источник

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

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

Чем именно опасны такие выбросы пепла и пеплопады:

  • Угроза для воздушных судов. Вулканическая взвесь в воздухе вызывает моментальный износ турбин, что приводит к остановке двигателей самолётов и вертолётов с газотурбинными двигателями. Самолёты на воздушных винтах находятся в меньшей опасности, но и им тоже не стоит оказываться в самой гуще пепла.

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

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

  • Риски коротких замыканий. Пепел — хороший проводник электричества, а во время пеплопада воздух сильно электризуется. Это может привести к поломке электроприборов и замыканиям на линиях электропередач.

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

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

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

Например, сцены «Кибердеревни» на вымышленной планете Плутонск снимались на Камчатке сразу после извержения вулкана Шивелуч. Источники: Кинопоиск и муниципалитет Усть-Камчатского края

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

Как устроен мониторинг извержений вулканов  

Что и как наблюдают учёные

Современная история наблюдений за извержениями на Камчатке ведётся с 2000 года: актуальный архив вулканологов содержит всю информацию об извержениях за последние 23 года: дату и время, координаты вулкана‑источника извержения, высоту выброса. Для фиксации этих параметров используются несколько способов.

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

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

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

Спутниковые съёмки и зондирование. В работе вулканологам помогают и данные специализированных метеоспутников, которые оборудованы приборами для мультиспектральной съёмки и другими инструментами. Такие спутники бывают двух видов:

  • Геостационарные. Они вращаются на высокой геостационарной орбите синхронно с вращением Земли и потому как бы зависают над одной точкой. В качестве примера можно привести Himawari, GOES и Meteosat. Снимок с такого спутника немного напоминает фотографию на широкоугольный объектив: в центре фокуса мы наблюдаем картину без искажений, а вот по краям уже заметна дисторсия.

  • Полярно‑орбитальные. У них меньший охват из‑за более низкой орбиты, но они могут перемещать свой фокус и собирать более детальную информацию о подстилающей поверхности и перемещении воздушных масс. Примеры таких спутников — Terra и Aura, которые занимаются глобальным изучением климата. На их борту работают оптические приборы, например, MODIS и OMI. С их помощью можно отслеживать изменение облачности и другие процессы в нижних слоях атмосферы, например, концентрацию газов.

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

Лидарные наблюдения. В этом методе используются лидары — лазерные локаторы, которые регистрируют импульсы, рассеянные встречными объектами на пути лазера.

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

Лидарные системы могут быть установлены в стационарных наземных лабораториях. Например, подходящий для изучения атмосферы многоволновый аэрозольный лидар расположен в Троицке, в Институте общей физики им. А.М. Прохорова РАН.

Наземные и самолётные данные уже интересно совмещать со спутниковыми, чтобы получить более полную картину.

Как используются полученные данные

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

Для этого используется так называемая модель источника — алгоритм, который позволяет быстро понять, с каким именно извержением имеют дело учёные. У каждого вулкана есть свои пороговые значения для присвоения цветового кода. Например, извержение Ключевской сопки получит максимальный красный код, когда сейсмическая активность достигнет определённого порога, а пепел поднимется выше 3 километров над кратером.

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

В чём особенности прогноза движения пепла

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

Предсказывать траектории движения и распространение таких атмосферных примесей помогают несколько подходов.

Эйлеровы (сеточные) модели позволяют воссоздавать процессы атмосферного переноса воздушных масс. Уравнения этой модели, например, могут описывать явления турбулентной диффузии. В основе модели лежит дискредитизация пространства: для его описания мы задаём ячейки определённого размера, а затем решаем уравнение переноса, для которого всегда есть численное решение с конечной точностью.

Эта модель полезна при долгосрочном прогнозировании распространения атмосферных примесей, а также прогнозе климатических изменений.

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

Лагранжева дисперсионная модель позволяет моделировать траекторию частиц воздушной смеси с учётом различия их характеристик, например, размера или массы. Здесь нет привязки к какой‑то сетке координат, скорее — к конкретной частичке. Модели этого семейства более эффективны для работы с точечными источниками. В частности, они применяются для моделирования процессов загрязнения воздуха, например, их также используют для экологического контроля в работе промышленных предприятий. В случае с вулканическим пеплом они помогают воспроизводить более тонкие структурные особенности шлейфа от выброса.

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

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

Для расчёта распространения вулканического пепла часто используется модель с открытым исходным кодом FLEXPART, которая позволяет задать местоположение и объём выброса, а также рассчитать траектории переноса на основы данных метеорологических моделей. В своё время наши коллеги во главе с @avgan провалидировали работу модели на реальных данных, которые получены по лидарным измерениям после крупных извержений. Так вертикальный профиль распространения пепла, созданный моделью, совпадал с фактическими данными, полученными с лидара в Троицке после извержения знаменитого вулкана Эйяфьятлайокудль:

Сравнение фактических данных и результатов работы модели: (а) так со временем изменялся вертикальный профиль распространения пепла, по данным лидарных измерений 19 апреля 2010 года; (b) так распространение частиц пепла во времени моделирует FLEXPART

Сравнение фактических данных и результатов работы модели: (а) так со временем изменялся вертикальный профиль распространения пепла, по данным лидарных измерений 19 апреля 2010 года; (b) так распространение частиц пепла во времени моделирует FLEXPART

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

Как модели рассеивания работают на практике 

Метеорологи Яндекс Погоды изначально опирались на такую схему работы:

  1. Сначала мы должны получить данные из модели источника: время и место извержения, высоту выброса и примерный объём эмиссии пепла — его можно прикинуть, исходя из высоты облака.

  2. Затем эти данные нужно обогатить информацией о погоде, например, о температуре, влажности, скорости и направлении ветра. Эту информацию берут из открытых источников метеоданных (раньше мы уже рассказывали, как метеорологи работают с такими источниками). Или используют метеорологическую модель, чтобы рассчитать их в более высоком разрешении.

  3. На основе этой информации запускаем расчёт для модели рассеивания частиц (FLEXPART).

  4. Дальше эту информацию визуализируем на карте. Для этого мы используем разработки компании Геоинтеллект: в их системе довольно удобно реализовать движение облака пепла с течением времени.

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

Чтобы автоматизировать этот процесс мы решили добавить в схему машинное обучение с помощью сервиса Yandex DataSphere.

Как нейронные сети повышают эффективность прогноза 

Облегчить первый этап можно с помощью ML‑модели для оценки параметров выброса вулкана: высоты, плотности выброса и цветового кода активности. Эту задачу мы предложили студентам Школы Анализа данных Яндекса (ШАД).

f703066821eba38000d1fea6b5229056.jpgДарья Родичева, студентка ШАД:

Обычно параметры выброса определялись экспертами по поступающим видеоданным. Методы машинного обучения в этом сценарии помогают автоматизировать процесс и одновременно приблизить качество модели источника к человеческим возможностям.

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

Получилась такая схема решения, где в качестве модели источника мы подключаем ML‑модель, обученную в сервисе DataSphere:

Итоговое решение построено на связке трёх облачных сервисов с системой геоаналитики

Итоговое решение построено на связке трёх облачных сервисов с системой геоаналитики

Для реализации этой задумки нужно было обучить модель на данных из архива Единой геофизической службы РАН. Весь процесс разделился на несколько этапов.

Предобработка данных

Для начала работы специалисты РАН предоставили команде проекта видеосъёмки извержений трёх вулканов: Ключевского, Безымянного и Шивелуча. Также для формирования датасета использовались исторические данные геофизической службы за последний год в виде таблицы с полями: временной меткой, высотой выброса, цветовым кодом для каждого вулкана.

74d4d5b30fa0a0d846ea26570c985e80.png

На этапе предобработки для каждой даты в таблице подобрали кадры, сделанные за 30 минут до и после события. Получалось, что одной строке в таблице соответствовало 60 кадров. Каждая пара «кадр‑класс сейсмической активности» составляла один обучающий сэмпл данных, соответственно для каждого извержения было 60 таких сэмплов. Из этой выборки сразу удалили ночные снимки, на которых невозможно визуализировать выброс пепла.

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

33f475c194455c4cf3fbed765d180877.png

Как можно заметить, в процессе работы команда столкнулась с несбалансированностью данных и отсутствием некоторых классов. Для борьбы с этим пробовали разные подходы:

  • Upsampling — дублирование примеров из миноритарного класса.

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

Лучшая из имеющихся моделей была обучена на данных после процедуры upsampling.

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

После преобразования кадров с помощью ColorJitter изображения нужно было нормализовать — привести к единому формату. Так что на финальном этапе предобработки из кадра также вырезались области с кратерами вулканов, а затем полученные изображения приводились к размеру 224×224 пикселя.

Так выглядят поэтапно обработанные с помощью ColorJitter кадры. Конкретно эта камера снимает Ключевской и Безымянный, поэтому изображения получилось два.

Так выглядят поэтапно обработанные с помощью ColorJitter кадры. Конкретно эта камера снимает Ключевской и Безымянный, поэтому изображения получилось два.

В самом конце подготовленную выборку разделили на train и validation: тестовый датасет составлял 20% от всех данных, а валидационный — 30% от оставшихся.

Обучение моделей

Для решения задачи рассматривали несколько архитектур:

  • ResNet. Это свёрточная нейронная сеть для классификации изображений, в основе которой лежит идея residual connections. В буквальном переводе, это «остаточные связи», которые позволяют передавать информацию непосредственно от одного слоя нейросети к другому, минуя промежуточные слои, и тем самым решают проблему затухания градиента.

  • ConvNeXt. Это State Of The Art свёрточная нейросеть для классификации изображений, полученная из ResNet-50 c помощью изменений, заимствованных из архитектуры трансформера.

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

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

8835d08cce3be19145a292885bb6fbc2.jpgДарья Родичева, студентка ШАД:

Часто для автоматизации подбора гиперпараметров применяют grid search или random search, но в данной ситуации нужно было делать это самостоятельно, так как модели долго обучаются и используют много ресурсов, кроме того, много параметров требуется настраивать вручную.

Так выглядели графики обучения модели ResNet на данных для вулкана Безымянного:

0f6c9a483024427fa47fc310be573587.png

Здесь мы видим графики функции потерь перекрестной энтропии, f‑beta меры (beta=2), точности и полноты на валидационной выборке.

Аналогичные графики на тех же данных для ConvNeXt:

43fcbde821adcc91274287a2f8f643f4.png

При обучении обеих моделей использовался приём early stopping. Из графиков для ConvNeXT видно, что модель быстро переобучается. Это можно объяснить тем, что в этой архитектуре очень много обучаемых параметров, и это позволяет ей просто «запомнить» небольшой обучающий датасет.

Можно также сопоставить лучшие результаты обеих моделей c учётом гиперпараметров:

ResNet-18

Tiny ConvNeXt

2 линейных слоя

2 линейных слоя

Размер скрытого слоя —128

Размер скрытого слоя —256

Веса модели не замораживались при обучении

Веса модели не замораживались при обучении

Алгоритм оптимизации обучения — Adam

Алгоритм оптимизации обучения — Adam

Learning rate — 5e-4

Learning rate — 5e-4

Weight decay — 0

Weight decay — 5e-5

Scheduler — StepLR (step_size=5, gamma=0.5)

Scheduler — StepLR (step_size=5, gamma=0.5)

Без dropout

Dropout (p=0.2)

fa94d270545e8db485278be87d99222c.png

Когда команда сравнила результаты на тестовом датасете, то решила использовать для Безымянного вулкана обученную модель ConvNext, а для Шивелуча и Ключевского — ResNet.

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

Так выглядели графики обучения модели на данных для Безымянного вулкана после всех экспериментов

Так выглядели графики обучения модели на данных для Безымянного вулкана после всех экспериментов

Передача новых изображений в модель и визуализация

После обучения мы настроили передачу данных системы видеонаблюдения в модель для распознавания выбросов. Мы сохраняем кадры трансляции в объектное хранилище и анализируем их с помощью ML.

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

Масса облака из пепла вычисляется в соответствии с присвоенным классом: чем выше выброс, тем большее количество пепла можно ожидать. Это не точная величина, но даже такая оценка позволяет предсказывать дальнейшее распространение.

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

От момента попадания видео в систему до формирования дашборда проходит около 10 минут. За счёт этого можно организовать быстрое оповещение экстренных служб, которое не зависит от человеческого фактора.

Сейчас команда ШАДа ждёт поступления новых видеоданных для обучения более качественных моделей, которые дадут возможность классификации на большее количество классов, чем есть сейчас. В дальнейших планах — обучить нейронные сети для определения высоты выброса. Всё это позволит повысить точность задания выброса и улучшить прогноз. Кроме того, ШАДовцы планирует расширить набор данных, например, информацией со спутников, чтобы научиться оценивать объёмы выбросов.

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

А уже сейчас можно познакомиться с визуализацией накопленных исторических данных в нашем сервисе.

© Habrahabr.ru