Научная статья на тему 'БИБЛИОТЕКА PYHUM'

БИБЛИОТЕКА PYHUM Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
111
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
гидролокатор бокового обзора / Humminbird / библиотека PyHum / дистанционное зондирование / затонувшие корабли / side-scanning sonar / Humminbird / PyHum library / remote sensing / shipwrecks

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — П.Н. Веревкин, А. А. Кузнецов, А.Е. Гончаров

В статье представлены результаты применения библиотеки с открытым исходным кодом PyHum для декодирования и анализа данных, получаемых с гидролокаторов фирмы Humminbird. Рассмотрена структура кода, функционал, а также достоинства и недостатки данной библиотеки в сравнении проприетарным программным обеспечением. В итоге проделанной работы мы пришли к выводу, что библиотека PyHum является удобным и функциональным инструментом для анализа данных, в то время как проприетарное программное обеспечение имеет ограниченный функционал. Открытый код PyHum позволяет расширять функциональные возможности данной библиотеки. В ближайшем будущем мы планируем переписать код данной библиотеки на языке Python 3, поскольку поддержка Python 2 в настоящее время прекращена.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE PYHUM LIBRARY

The article presents the results of using the PyHum open source library for decoding and analyzing data received from Humminbird sonars. The structure of the code, functionality, as well as the advantages and disadvantages of this library in comparison with proprietary software are considered. As a result of the work done, we came to the conclusion that the PyHum library is a convenient and functional tool for data analysis, while the proprietary software has limited functionality. PyHum is open source to extend the functionality of this library. In the near future, we plan to rewrite the code of this library in Python 3, since support for Python 2 is currently discontinued.

Текст научной работы на тему «БИБЛИОТЕКА PYHUM»

УДК 551.46.065

DOI: 10.24411/2658-4255-2020-12514 БИБЛИОТЕКА PYHUM

П.Н. Веревкин1, А. А. Кузнецов2, А.Е. Гончаров3

1 Студент, кафедра технической физики. Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнёва, г. Красноярск, Россия.

2 Д-р физ.-мат. наук, профессор, директор научно-образовательного центра "Институт космических исследований и высоких технологий". Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнёва, г. Красноярск, Россия.

3 Канд. ист. наук, доцент кафедры технического иностранного языка. Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнёва, г. Красноярск, Россия.

И verevkinpavel1997@mail.ru, kuznetsov@sibsau.ru, goncharovae@sibsau.ru

В статье представлены результаты применения библиотеки с открытым исходным кодом PyHum для декодирования и анализа данных, получаемых с гидролокаторов фирмы Humminbird. Рассмотрена структура кода, функционал, а также достоинства и недостатки данной библиотеки в сравнении проприетарным программным обеспечением. В итоге проделанной работы мы пришли к выводу, что библиотека PyHum является удобным и функциональным инструментом для анализа данных, в то время как проприетарное программное обеспечение имеет ограниченный функционал. Открытый код PyHum позволяет расширять функциональные возможности данной библиотеки. В ближайшем будущем мы планируем переписать код данной библиотеки на языке Python 3, поскольку поддержка Python 2 в настоящее время прекращена.

Ключевые слова: гидролокатор бокового обзора, Humminbird, библиотека PyHum, дистанционное зондирование, затонувшие корабли.

THE PYHUM LIBRARY

P.N. Verevkin1, A.A. Kuznetsov2, A.E. Goncharov2

1 Undergraduate student, Department of Technical Physics. Reshetnev Siberian State University of Science and Technology, Krasnoyarsk, Russia.

2 D.Sc., Institute of Space Research and High Technologies, CEO. Reshetnev Siberian State University of Science and Technology, Krasnoyarsk, Russia.

3 Cand.Sc., Department of Humanities, docent. Reshetnev Siberian State University of Science and Technology, Krasnoyarsk, Russia.

The article presents the results of using the PyHum open source library for decoding and analyzing data received from Humminbird sonars. The structure of the code, functionality, as well as the advantages and disadvantages of this library in comparison with proprietary software are considered. As a result of the work done, we came to the conclusion that the PyHum library is a convenient and functional tool for data analysis, while the proprietary software has limited functionality. PyHum is open source to extend the functionality of this library. In the near future, we plan to rewrite the code of this library in Python 3, since support for Python 2 is currently discontinued.

Keywords: side-scanning sonar, Humminbird, PyHum library, remote sensing, shipwrecks.

Статья получена: 13.10.2020 Принята к публикации: 26.11.2020 Опубликована онлайн: 21.12.2020

Введение

Ценность арктических водных ресурсов не только природная, но и историческая. В решении вопроса об исследовании богатейшего подводного мира водоемов Крайнего Севера, важнейшим инструментом являются гидроакустические системы. Для интерпретации данных с различных гидроакустических устройств, главным образом гидролокаторов бокового обзора (ГБО), используется комплекс специализированных программ.

В настоящее время в Сибирском государственном университете науки и технологий имени академика М.Ф. Решетнева реализуется междисциплинарный проект «Географическая информационная система «Енисей-Арктика» [1].

Часть исследователей проекта занимается сбором полевых данных при помощи гидроакустических систем. Собранные данные кодируются и хранятся в двоичном 8-ми битном виде. Это дает возможность существенно уменьшить объем памяти, необходимой для хранения данных. Полученные данные можно дешифрировать и произвести осмотр дна непосредственно на самом устройстве. В тоже время, зная алгоритм кодирования данных, их можно декодировать и провести дальнейший анализ

при помощи стороннего программного обеспечения. Решение подобных задач требует как правило большого количества вычислительных ресурсов. Для этой цели мы задействовали специальный комплекс, состоящий из нескольких компьютеров - вычислительный кластер [2]. Этот подход позволяет существенно сократить время обработки данных, однако возникает необходимость создания параллельных алгоритмов и программ, адаптированных к использованию на многопроцессорных вычислительных системах. Новые алгоритмы дадут возможность распознавать заданные объекты на изображении.

Одним из устройств для исследования в данной области является приобретенный прибор, обеспечивающий возможность совмещения «эхолота» с гидролокатором бокового обзора Onix 8 cxi SI Combo от фирмы Humminbird (Рис. 1). Данный аппарат при сравнительно невысокой цене, малых габаритах и мощности звукового излучения не уступает по качеству визуализации своим более дорогим «собратьям» и моделям других производителей [3]. Несмотря на то, что данное устройство позиционируется как устройство для рыбалки, его вполне можно использовать как вспомогательный инструмент для поиска подводных объектов [4].

I

i-

Рисунок 1 - Onix 8 cxiSICombo от фирмы Humminbird.

Работа гидролокатора

Среди множества устройств для изучения дна водоемов бесконтактными методами наиболее практичными являются гидролокаторы и эхолоты. Используя принципы гидроакустики, эти устройства позволяют обнаружить подводные объекты. В таблице 1 представлены сведения о зависимости дальности действия от частоты акустического сигнала [5].

Таблица 1

Зависимость дальности действия от частоты акустического сигнала.

Частота акустического сигнала, кГц Длина волны акустического сигнала, м Дальность действия, км

0,1 15 1000 и больше

1 1,5 100 и больше

10 0,15 10

25 0,06 3

50 0,03 1

100 0,015 0,6

500 0,003 0,15

1000 0,0015 0,05

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

Эти устройства могут излучать звуковые волны по 5 лучей разной направленности, которые, в свою очередь, имеют разные углы и частоты. Один луч обязательно расположен вертикально, другие - по бортам судна. Humminbird Onix 8 cxi SI Combo имеет встроенную функцию ГБО.

Кодирование данных

Рассматриваемые гидролокаторы от Humminbird записывают данные с 5 лучей разной направленности и частоты. Эти данные представляют собой зашифрованные двоичные 8 битные файлы.

В качестве примера структура файлов в памяти гидролокатора Onix Humminbird представлена на Рис. 2.

Исходя из Рис. 2 и 3, в памяти устройства имеется три типа файлов: .DAT, .IDX, .SON. Каждый тип файла рассмотрим по отдельности. Самый первый тип файла *.DAT. Для всех моделей этот файл является бинарным и его требуется расшифровывать. Для модели Onix его можно открыть обычным текстовым редактором и увидеть всю информацию, потому что кодировка данного файла сопоставима с таблицей ASCII. В нем содержится базовая информация о сонаре: время начальной записи, начальной позиции и настройки сонара. Полный список параметров, которые можно извлечь из этого файла [6]:

1. Код воды (water code) - определяет тип воды по значениям: '0' - свежая вода (freshwater), '1' - очень соленая вода (deep salt), '2' - слабосоленая вода (shallow salt), '3' - неизвестная соленость воды (unknown).

2. Название эхолота (sonar name) -числовой код сообщаемый прибором.

Рисунок 2 - Структура файлов на памяти гидролокатора бокового обзора.

Рисунок 3 - Вид файлов гидролокатора бокового обзора в корневой папке.

3. Время unix (unix time) - время в секундах по Unix.

4. Универсальная поперечная проекция Меркатора (utm x coordinate).

5. Универсальная поперечная проекция Меркатора (utm y coordinate).

6. Имя файла (filename) - название файла *.DAT.

7. Количество сигналов (pings number of records) - количество сигналов (pings) в *.SON файлах.

8. Время между двумя записями (record length) - промежуток времени между последовательными записями.

9. Количество байтов в строке для ping (line size) - количество байтов нужные для кодирования одного ping в *.SON файле.

В основном, в *.DAT файле самая важная информация касательно данных это: количество отправленных-принятых сигналов (ping) и количество байт (line size), используемых для записи одного такого сигнала.

Файлы *.IDX идут неразрывно с файлами *.SON, каждому файлу *.SON соответствует свой файл *.IDX. Дело в том, что в *.IDX содержится информация об индексах последовательных сигналов (pings) в соответствующем файле *.SON. Под индексом подразумевается номер байта в файле *.SON. То есть, если есть необходимость прочитать 5-й сигнал, то из файла *.IDX берется значение байта для 5-го сигнала и считывается информация в *.SON согласно длине записи одного сигнала (line size).

В файлах *.SON содержатся записан-

я D-ÜVO

1Ш VIEW EDIT WAVPOINTS UVE DATA TRACK

У

¿5, •'?: CM

ные эхограммы. Параметры, которые можно извлечь из данного файла:

1. Координаты (широту UTM x coordinate, долготу UTM y coordinate).

2. Время в миллисекундах.

3. Частоту луча (=0, 50 or 83 kHz; =1 200 kHz; =2 SI Port; =3 SI Starboard).

4. Длину предложения - количество байт, которые отводятся на 1 эхограм-му. Читаются они через заголовок. Заголовок - это последовательность байтов, у^е каждый байт несет в себе информацию о глубине, частоте и так далее.

5. Глубину в сантиметрах.

6. Скорость передвижения лодки в см/сек.

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

Программы для чтения

Для декодирования записанных данных на гидролокаторах фирмы Humminbird используются следующие программы: Reefmaster, HumViewer и PyHum.

Reefmaster - это коммерческое приложение для персональных компьютеров [7] на базе операционной системы Windows, которое использует данные из файлов журнала эхолота для создания трехмерных подводных карт в сочетании с многоканальным средством просмотра эхолота и графическим управлением путевыми точками (Рис.4). Больше позиционируется как программа для рыболовов.

I Map Projects Ш Ш

escan Mosaics IS Ш *

g Global View О RecOOOOl * I

it Waypoints

Ù

4

1НГШЦ]

MOUSE: N066.21.645 E087.36.629 8.9m ¡MouseTracer: [ |oFf[|pATA: I |off | |

Рисунок 4 - Трек движения судна в программе Reefmaster.

PyHum GUI Sidescan Texture Map Texture Bed Class

Рисунок 5 - HumViewer пример работы в программе.

fibout | Read | | Correct | Remove Shadows | f"

Read a +EAT and associated set of +S0N files recorded by a Humminbird(R) instrument»

Parse the data into a set of memory mapped files that willsubsequently be used by the other functions of the PyHum module+

Export time-series data and metadata in other formats* Create a kml file for visualising boat track be selected♦ Create rudimentary plots of the data

Рисунок 6 - GUI интерфейс библиотеки PyHum.

это бесплатная про- программирования Python. Она со-

HumViewer грамма [8] для просмотра записей эхолотов Humminbird (Рис. 5). Устанавливается под операционными системами Windows и MacOS. Модель гидролокатора Humminbird ONIX не поддерживается. Главный минус данной программы - закрытый исходный код и ограниченный функционал программы; в целом, она может использоваться для просмотра файлов, а не их анализа.

И последняя программа для расшифровки данных называется PyHum [9]. Это программа с открытым исходным кодом,написанная на языке

вместима с большинством моделей гидролокаторов фирмы Humminbird. Данная программа имеет модульный набор инструментов (Рис. 6) и обширный функционал для первичной и вторичной обработки данных. Возможность бесплатного приобретения и доработки кода, а также исследование новых алгоритмов, предоставленных разработчиком Даниэлем Буском-бом (Daniel Buscombe) имеет свою ценность. Поэтому данная программа рассматривается как основная для расшифровки данных с гидролокаторов Humminbird.

Исследование

библиотеки PyHum

В процессе исследования данной библиотеки были выявлены следующие недостатки: медленная скорость работы языка Python, которую разработчики попытались компенсировать, используя доработку языка CPython и многопоточность. CPython способен увеличить скорость работы программы, написанной на языке Python на 20%. Использование параллельных библиотек позволяет ускорить программу, однако это приводит к увеличению объема используемой оперативной памяти, которой может не хватить для завершения декодирования. В зависимости от конфигурации компьютера можно выбрать оптимальное количество процессов, дающее максимальное ускорение и не приводящее к переполнению объема оперативной памяти.

Другая проблема библиотеки в том, что разработчики с 2019 г. не поддерживают программу, не развивают ее, и она в плане языка Python уже устаревает, так как написана на Python 2.7 версии. Это создает некоторые проблемы при установке программы, подборе пакетов для ее нормального функционирования. Однако, несмотря на эти недостатки, PyHum имеет богатый функционал для работы с данными от гидролокаторов фирмы Humminbird.

Функционал библиотеки PyHum представлен в виде модульной структуры [10]:

1. «Read» - модуль чтения, декодирует необработанные данные, содержащиеся в файлах *.SON, для создания временного ряда данных.

2. «Correct» - модуль корректировки, применяет основные геометрические и радиометрические поправки для учета воздействия условий окружающей среды (например, звукопоглощения) и настроек эхограмм (например, уровня сигнала и диаграммы направленности).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. «Remove Shadows» - модуль удаления теней, используется для визу-

ального сегментирования и удаления областей, лишенных текстуры (например, водяного столба и акустических теней), которые существуют в ближнем и дальнем полях эхограммы.

4. «Map Sidescan» - модуль карты, используется для проецирования откорректированной и отфильтрованной эхограммы в известную систему координат с использованием информации о местоположении и навигации, собранной с помощью прилагаемой GPS-антенны, в единицах децибел ватт (дБВт). В [11] подробно изложены методы обработки данных и акустические поправки, закодированные в программном обеспечении.

5. «Texture» - модуль текстуры, считает радиометрические скорректированные данные Humminbird, выполняет текстовый анализ, используя спектральный метод [11]. Данные разбиваются на ячейки и в каждом окне анализируются спектрально, чтобы вычислить масштаб длины текстуры для каждого окна.

6. «Map Texture» - модуль позволяет загружать фрагменты бокового сканирования и создавать облако точек с пространственно привязанными значениями масштаба длины текстуры. Создает файлы с расширением *.kml, которые рассчитаны по эхограммам бокового обзора.

7. «Bed Class» - анализ первого коэффициента e1 - «шероховатость» и второго e2 - «твердость», эхо возвращается от высокочастотного направленного вниз эхолота. Генерирует обобщенные акустические параметры в целях точечной классификации погруженных субстратов/растительности. Создает некоторые элементарные графики KML файла и текстовые файлы.

Если обобщить, то получается, что PyHum позволяет читать данные в первичном виде, позволяет извлекать данные о местоположении, скорости судна, глубине, времени, извлекать трек движения. Но самое главное - можно удалять ненужные тени со снимков и производить сглаживание, различные корректировки, делая

изображение более читаемым. Стоит также обратить внимание, что в программе есть алгоритм, позволяющий определять тип грунта. Также в библиотеку встроена "защита от ошибок", касающаяся файлов *.IDX. Заключается она в том, что если файлы *.IDX отсутствуют или повреждены, то их можно создать самому благодаря алгоритму Кнута-Морриса-Пратта. Алгоритм позволяет отыскать начало каждого сигнала в файле *.SON по записи строки целых чисел [192, 222, 171, 33, 128] и восстановить файлы *.IDX.

В процессе декодирования данных с Humminbird ONIX с помощью библиотеки PyHum было обнаружено затонувшие судно в Игарской протоке. Длина корабля 80 метров и ширина 14 м (Рис. 7).

На снимке четко видны очертания корабля. Мы предполагаем, что это баржа 1930-50-х годов.

Итоги исследования и перспективы развития.

В итоге проделанной работы мы пришли к выводу, что библиотека PyHum является удобным и функциональным инструментом для анализа данных, получаемых с гидролокаторов от фирмы Humminbird, в то время как проприетарное программное обеспечение имеет ограниченный функционал. Открытый код PyHum позволяет расширять функциональные возможности данной библиотеки. В 2021 году мы планируем переписать код данной библиотеки на языке Python 3, поскольку поддержка Python 2 в настоящее время прекращена.

19280 19290 19300 19310 19320 19330 19340 19350 19360 Distance along track (m)

Рисунок 7 - Затонувший корабль через PyHum.

All maps © OpenCycleMap. map data © QpenStreetMap

I MOUSE: N067.459601 E086.574189 22.88m |Mouse Tracer: | OFF | DATA: | OFF |

Рисунок 8 - Местоположение затонувшего корабля через Reef master (на гидроакустическом

снимке пропорции судна существенно искажены).

Работа выполнена при поддержке гранта Президента Российской Федерации на развитие гражданского общества «Некоммерческая междисциплинарная научно-образовательная платформа «Енисейская Арктика» (проект № 18-2-017584).

Список литературы:

1. Goncharov A. E. A GIS for the Yenisei: an overview of maritime industrial archaeology on the Yenisei River and prospects for its development // IOP Conference Series: Materials Science and Engineering. 2020. 822. 012040.

2. Астафьев Д. С., Веревкин П. Н., Мадисон Р. А., Федоров В. А. Виртуальный вычислительный кластер. Решетнёвские чтения. Электронное издание 2019 г. URL: https://disk.sibsau.ru/index. php/s/L9sHGlDFLhGZbCx (дата обращения 04.10.2020г.)

3. Астафьев Д. С., Веревкин П. Н. Применение библиотеки PyHum для анализа гидрографических данных. Актуальные проблемы авиации и космонавтики. Электронное издание 2019 г. URL: https://disk.sibsau.ru/index. php/s/7sAiJGJW5LkapdR (дата обращения 04.10.2020г.)

4. Hamill D., Buscombe D., Wheaton J.M. Alluvia substrate mapping by automated texture segmentation of recreational-grade side scan sonar imagery // PLoS ONE. 2018. 13(3): e0194373. URL: https://doi.org/10.1371/journal.pone.0194373 (дата обращения 04.10.2020г.)

5. Фирсов. Ю. Г Основы гидроакустики и использования гидрографических сонаров. Санкт-Петербург, 2010.

6. Buscombe D. Binary Sonar Data Formats. URL:https://github.com/dbuscombe-usgs/ PyHum/blob/master/docs/data_formats.rst (дата обращения 04.10.2020 )

7. Reefmaster. URL: https://reefmaster.com.au/ index.php/products/reefmaster (дата обращения 04.10.2020 )

8. HumViewer. URL:http://humviewer.cm-johansen. dk/Сдата обращения 04.10.2020 )

9. Buscombe D. PyHum. URL: https://github.com/ dbuscombe-usgs/PyHum (дата обращения 04.10.2020 )

10. Buscombe D. Modules. URL: https://github.com/ dbuscombe-usgs/PyHum/blob/master/docs/ modules.rst/ (дата обращения 04.10.2020 )

11. Buscombe D., Grams, P.E., and Smith, S. (2015) "Automated riverbed sediment classification using low-cost sidescan sonar", Journal of Hydraulic Engineering, 10.1061/(ASCE) HY.1943-7900.0001079, 06015019. URL: https:// ascelibrary.org/doi/full/10.1061/%28ASCE%2 9HY.1943-7900.0001079 (дата обращения 05.12.2020 )

References:

1. Goncharov A. E. A GIS for the Yenisei: an overview of maritime industrial archaeology on the Yenisei River and prospects for its development // IOP Conference Series: Materials Science and Engineering. 2020. 822. 012040.

2. Astafiev D. S., Verevkin P. N., Madison R. A., Fedorov V. A. Virtual'nyj vychislitel'nyj klaster. Reshetnyovskie chteniya. Elektronnoe izdanie 2019 g. [The virtual computing cluster. Reshetnev readings. Electronic edition 2019]. URL: https:// disk.sibsau.ru/index.php/s/L9sHGlDFLhGZbCx (access date 04.10.2020)

3. Astafiev D. S., Verevkin P. N. Primenenie biblioteki PyHum dlya analiza gidrograficheskih dannyh. Aktual'nye problemy aviacii i kosmonavtiki. Elektronnoe izdanie 2019 g. [Using the PyHum library to analyze hydrographic data. Actua problems of aviation and cosmonautics. Electronic edition 2019]. URL: https://disk.sibsau. ru/index.php/s/7sAiJGJW5LkapdR (access date 04.10.2020)

4. Hamill D., Buscombe D., Wheaton J.M. Alluvia substrate mapping by automated texture segmentation of recreational-grade side scan sonar imagery // PLoS ONE. 2018. 13(3): e0194373. https://doi.org/10.1371/journal.pone.0194373

5. Firsov. YU. G. Osnovy gidroakustiki i ispol'zovaniya gidrograficheskih sonarov. Sankt-Peterburg, 2010. [Fundamentals of hydroacoustics and the use of hydrographic sonars. St. Petersburg, 2010.]

6. Buscombe D. Binary Sonar Data Formats. URL:https://github.com/dbuscombe-usgs/ PyHum/blob/master/docs/data_formats.rst (access date 04.10.2020)

7. Reefmaster. URL: https://reefmaster.com.au/index. php/products/reefmaster (access date 04.10.2020)

8. HumViewer. URL: http://humviewer.cm-johansen. dk/ (access date 04.10.2020)

9. Buscombe D. PyHum. URL: https://github. com/dbuscombe-usgs/PyHum (access date 04.10.2020)

10. Daniel Buscombe. Modules. URL: https://github. com/dbuscombe-usgs/PyHum/blob/master/docs/ modules.rst/ (access date 04.10.2020)

11. Buscombe, D., Grams, P.E., and Smith, S. (2015) "Automated riverbed sediment classification using low-cost sidescan sonar", Journal of Hydraulic Engineering, 10.1061/(ASCE) HY.1943-7900.0001079, 06015019. URL: https:// ascelibrary.org/doi/full/10.1061/%28ASCE%29 HY.1943-7900.0001079 (access date 05.12.2020)

i Надоели баннеры? Вы всегда можете отключить рекламу.