Дрейфующие буи используют для изучения короткопериодных внутренних волн (КВВ) — колебаний, которые происходят внутри толщи воды, на границе теплого и холодного слоев. Несмотря на то, что глазу они незаметны, эти колебания во многом отвечают за перемешивание океана: они переносят тепло, соль и питательные вещества, от которых зависит жизнь морских экосистем. В отличие от стационарных станций, дрейфующие буи можно быстро развернуть даже в плохую погоду и в отдаленных локациях, и они сами движутся вместе с течением, собирая данные сразу в нескольких точках.
Каждый буй — это автономный измерительный комплекс, на корпус которого прикреплены различные датчики для определения глубины и температуры, а внутри установлены GPS-приемник для определения координат, система сбора данных и спутниковый модем. Дрейфуя вместе с водой, буй непрерывно измеряет температуру на разных горизонтах и фиксирует свое местоположение. Собранные данные через спутник поступают на приемную станцию — обычный компьютер со специальной программой, подключенный к антеннам спутниковой связи и системе глобального позиционирования.
После обработки данные структурируются в таблицу Excel: дата и время, координаты буев, температура и гидростатическое давление, по которому океанологи пересчитывают реальную глубину каждого датчика. На эти показатели накладываются шумы, и задача ученого — выделить полезный сигнал и определить амплитуды, периоды, скорости и направления распространения КВВ. Раньше весь этот анализ выполнялся океанологами в сложном программном обеспечении MATLAB: приходилось запускать скрипты, вводить параметры в командной строке и разбираться в десятках графических окон, а обмен данными между разными программами отнимал время из-за несовместимых форматов файлов.
«Раньше у нас не было единого интерфейса для данных с буев. Из-за этого обмен информацией между разными программами превращался в рутину: файлы приходилось вручную конвертировать из одного формата в другой. Камеральная обработка — то есть приведение разрозненных измерений к единому виду и их проверка — требовала от специалиста навыков программирования. Все это отнимало много времени, а опыт, накопленный в экспедициях, было трудно передать молодым ученым. Поэтому нам понадобился новый программный продукт, который бы работал в оперативном режиме», — рассказал главный научный сотрудник СПб ИО РАН Алексей Зимин.
В поисках исполнителя океанологи обратились в Центр юзабилити и смешанной реальности ИТМО. Руководитель Центра Артем Смолин как раз подбирал практические кейсы для студентов, проходящих производственную практику, и запрос океанологов оказался полезным для обеих сторон. Он свел коллег из Института океанологии со студенткой факультета программной инженерии и компьютерной техники Ксенией Липаевой, которая взялась за разработку в рамках своей двухмесячной практики. Ксения создала приложение на основе MATLAB, не требующее скачивания самого ПО: программа устанавливается через exe-файл и содержит в себе все необходимые библиотеки и функции, поэтому пользователю не нужно ничего настраивать дополнительно.
«Установщик весит значительно меньше, чем среда MATLAB, а скачивание занимает всего несколько минут. Приложение работает на ноутбуке полностью автономно, без доступа в интернет, поэтому им можно пользоваться даже в арктических экспедициях, где спутниковая связь нестабильна», — объяснила разработчик приложения, студентка факультета программной инженерии и компьютерной техники ИТМО Ксения Липаева.
Ксения Липаева. Фото: Дмитрий Григорьев / ITMO NEWS
Анализ данных с буев состоит из шести этапов, каждый представлен в виде отдельной вкладки наподобие браузерных, по которым пользователь последовательно переходит. На первой вкладке он загружает исходный файл — таблицу с временными метками, координатами буев, температурными измерениями и данными о гидростатическом давлении. Система автоматически считывает все столбцы и проводит предварительную обработку: очищает данные от пустых ячеек, возникших из-за сбоев связи или временного отказа датчиков, и случайных выбросов (аномальных значений, которые отличаются от соседних замеров), сглаживает шумы и фильтрует высокочастотные помехи, возникающие при измерениях. На второй вкладке приложение строит график изотерм — линий, показывающих, как менялась глубина залегания определенных температур с течением времени. Разные температуры выделены разными цветами: например, 5°C — синяя линия, 6°C — зеленая, и так далее.
На третьем этапе океанолог выбирает интересующий его диапазон температур и нажатием кнопки вызывает детальный линейный график изменения глубины изотермы. На четвертой вкладке он выделяет временной интервал: щелкает по отрезку, когда предположительно проходила компактная группа внутренних волн. На пятой вкладке для этого отрезка автоматически запускается взаимно-корреляционная обработка: алгоритм вычисляет функцию взаимной корреляции между сигналами с разных буев, находит временные задержки, учитывает эффект Доплера (сдвиг частоты сигнала из-за движения буя относительно волны) и другие искажения. На шестой, финальной вкладке, пользователь видит итоговые результаты — скорость и направление распространения волны, период, амплитуду, структуру волнового пакета, представленные в виде графиков и таблиц.
Аналогичных разработок в России нет, а зарубежные инструменты для анализа внутренних волн по данным с дрейфующих буев существуют в единичных экземплярах. При этом заложенный в приложение принцип поэтапной обработки данных можно адаптировать и под другие океанологические задачи.
