Системы Сейсмического Мониторинга: Обзор, Установка, Настройка

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

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

Если есть возможность, хотелось бы еще сделать WWW страницу, где можно было бы просматривать показатели с датчиков в реальном времени.

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

А если так, то в целом я не смог найти ни одного HowTo даже в англоязычном Интернете, хотя общей и весьма разрозненной информации там достаточно.

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

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

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

Сейсмометры : В моем распоряжении было 2 сейсмометра немецкого производства – Guralp CMG-6TD. Эти устройства представляют собой комбинацию набора датчиков (гироскопов, массы и температуры), АЦП, контроллера с определенным объемом Flash-памяти и упакованы в герметичный круглый корпус.

Вы можете брать данные с каждого датчика либо в реальном времени (через COM-порт или внутренний TCP-сервер, к которому этот COM-порт делает удаленный доступ), либо просто закопать их куда-нибудь поглубже, а затем передать данные на диск через FireWire из внутреннего флэш-накопители.

Сейсмометры должны обнаруживать движение в трех направлениях: двух горизонтальных (E,N) и вертикальном (Z).

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

Время часов датчиков синхронизируется через GPS, который подключается непосредственно к самому датчику кабелем длиной 15 метров.

Если нет возможности подключить GPS, то встроенные часы реального времени можно настроить через терминал.



Системы сейсмического мониторинга: обзор, установка, настройка

А это один из датчиков, установленных на специальном постаменте в подвале сейсмического института в области, недалеко от Душанбе.



Системы сейсмического мониторинга: обзор, установка, настройка

Конечно, оборудование очень чувствительно и его следует устанавливать в более глубоком месте.

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

Но это дело будущего.



Системы сейсмического мониторинга: обзор, установка, настройка

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

В нашем случае был выбран Wi-Fi, а также соответствующее оборудование, необходимое для связи на расстоянии десятков километров.

Схема подключения одного датчика следующая: Датчик → (Ethernet) → Клиентский ящик Wi-Fi → (соединение Wi-Fi) → Точка доступа Wi-Fi → Интернет → Центральный сервер Получение данных от датчиков: Для «сбора» данных с датчиков используется фирменная программа «СКРИМ» — название программы очень удачное, поскольку, как оказывается, многие вещи даже в стандартных настройках совершенно неочевидны для человека, не работавшего с это оборудование раньше.

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

Короче говоря - временами при общении с программой, ее очередном зависании и т.п.

- громкая родно-русская речь была весьма обычным явлением.

КРИК: Универсальная программа от производителя для работы со всей линейкой сейсмологического оборудования Guralp. Предназначен для управления оборудованием приема и хранения данных сейсмометров в режиме реального времени.

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

Есть 2 версии - для Linux и для Win. Код закрытый, распространяются только бинарники.

Из всего зоопарка (в хорошем смысле) дистрибутивов Linux я использую в своей работе уже около 15 лет только один — это Debian Linux, соответственно, под ним я настраивал работу этого программного продукта.

Debian Linux, 64-битная версия: Screaming доступна только в виде пакета tar.gz или .

rpm (производитель рекомендует CentOS) — и только 32-битная сборка.

Чтобы запустить его при 64-битной установке, вам необходимо установить пакет ia32libs, который добавит поддержку 32-битных двоичных файлов в 64-битной системе.

После этого вы можете распаковать пакет Screaming в каталог, в котором планируете его использовать.

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

sh-скрипт, так как он использует свои собственные библиотеки, и в скрипте указывается путь к ним.

SCREAM — это интерактивная программа с GTK-интерфейсом, поэтому запускать ее нужно из X, либо под виртуальным X-сервером Xvfb — как я делал, если установка X на сервер не нужна.

SCREAM довольно требователен к ресурсам процессора, и я потратил много времени и нервов на выяснение причин его зависания, которые сильно уменьшились, когда я перенес установку с двухъядерного ноутбука Samsung на двухъядерный XEON Dell. Хотя, кроме процессора на машинах, все остальное было почти одинаково (память 2Гб, HDD 250Гб), но ситуация изменилась очень существенно.

Поэтому мы можем посоветовать вам не использовать в качестве сервера для СКРИМа машину со слабым процессором.

Хотя кто знает, может быть, он патологически не может переварить Самсунг? Подключение SCREAM и Guralp CMG-6TD: Для получения данных с сейсмометра необходимо подключить Гуралп к СКРИМ одним из доступных способов: Через COM-порт или через TCP-IP. Для краткости я опишу процедуру связи только через TCP-IP. Guralp использует последовательный TCP-сервер производства Lantronix и имеет интерфейс Telnet и WWW для настройки параметров.

По умолчанию Guralp (только если он включен) пытается получить IP-адрес через DHCP. Я не буду подробно описывать, как назначить адрес и получить доступ к WWW-интерфейсу, так как это подробно описано в инструкции.

Остановимся на тонкостях и настройке.

Доступ к WWW-интерфейсу необходим исключительно через Internet Explorer, так как криво написанные Javascript-скрипты и прочая начинка интерфейса не работают ни в одном другом браузере, отображая абсолютно неадекватное содержимое полей ввода, таких как IP-адрес и т.п.

Так как Windows я использую очень редко , то, что под Internet Exploiter всё можно настроить нормально, не сразу понял.

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

Поскольку устройство пытается получить адрес по DHCP только после включения, я настроил статический IP-адрес.

Теперь то, что нигде не описано: Меню последовательного подключения.

Поскольку данные берутся с устройства, даже если через TCP-IP все еще используется сервер TCP-Serial, здесь у нас есть настройка BaudRate. По умолчанию это (обычно) 19200, но при использовании более высокого значения SampleRate для сбора данных из Guralp оно возможно имеет смысл увеличить.

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

Если они не будут совпадать друг с другом, WWW-интерфейс перестанет функционировать, и придется восстанавливать работу с помощью Telnet, порт 9999, а там возвращать скорость в соответствии со скоростью внутреннего ком-порта устройства.

Меню подключения: выберите тип подключения.

В инструкции это описано очень скупо и только в общих чертах.

Выбираем протокол (TCP) и если локальный порт установлен 10001, удаленный порт 1567 и Remote Host 0.0.0.0, то все нормально - можно подключаться с любого IP (в принципе это настройки по умолчанию) ) Scream: Запустить, затем нажать правой кнопкой мыши на Сеть → Настроить, затем в открывшемся окне выбрать вкладку Мой клиент и снова нажать правой кнопкой мыши на пустое поле списка серверов → Добавить TCP-сервер → Добавить IP нашего устройства : 10001. Обратите внимание, что порт 10001 используется на самом Гуралпе.

Нажмите ОК и, выбрав только что добавленный сервер, нажмите Ctrl+C (Подключиться).

Если все в порядке, через минуту наше устройство должно появиться в разделе «Сеть» на левой панели.

Когда мы выберем устройство, справа мы увидим список каналов данных — это данные с датчиков, которые можно просмотреть в виде волновых графиков.

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

На этом этапе первая часть эпопеи завершена.

У нас установлено программное обеспечение SCREAM и датчик, который фактически подключен к нему и предоставляет данные.

Теперь нам нужно что-то сделать с этими данными.

SCREAM может не только получать данные от сейсмометров, но и передавать их дальше по TCP-IP. Главное, чтобы клиент поддерживал протокол SCREAM.

Системы сейсмического мониторинга: обзор, установка, настройка

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

и представление сейсмических данных.

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

Но так как бесплатной альтернативы я не нашел, пришлось с этим разобраться.

Документацию, исходный код и двоичные файлы можно найти и скачать здесь: Folkworm.ceri.memphis.edu/ew-doc Доступна 64-битная сборка, но эксплуатация показала, что 32-битная версия гораздо менее склонна к сбоям.

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

ДОЖДЕВОЙ ЧЕРВЬ — «А ещё дождевой червь!» ((с)шакал из Маугли) Система построена по принципу многокомпонентности, ядром является бинарник «startstop», который создает необходимые области Shared Memory для обмена данными, а также запускает и контролирует другие бинарники.

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

Соответственно, их нужно запускать в цикле.

Компоненты: Поскольку моя основная цель — не анализ, а только рендеринг данных, я буду использовать только подходящие для этой задачи компоненты: Screaming2ew: передача данных с сервера SCREAM во внутренний буфер EARTHWORM wave_serverV: получение данных из внутреннего буфера, сохранение их на диске и отправка клиентам по сети heli_ewII: отображает данные в стиле вертолета (сейсмографа) и представляет собой простую WWW-страницу.

Данные взяты с wave_server Файлы конфигурации хранятся в каталоге run/params и имеют вид daemon_name.d. Все использованные мной файлы конфигурации можно скачать со страницы проекта, которая приведена в конце этого обзора.

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

Итак, устанавливаем Earthworm: Создайте пользователя дождевого червя:

 
 adduser earthworm
 su - earthworm
 
Распакуйте бинарную сборку — Earthworm_7.4. создавать каталоги
  
 run
 run/datafiles
 run/gifs
 run/params
 run/scripts
 
переместите все файлы из каталога Earthworm_7.4/params в run/params отредактируйте Earthworm_7.4/environment/ew_linux.bash для простоты в разделе # Или задайте свои значения напрямую давайте добавим
 
 export EW_HOME=/home/earthworm/                                                                                                                          
 export EW_VERSION=earthworm_7.4                                                                                                                          
 export EW_RUN_DIR=$EW_HOME/run
 
Затем мы создаем символическую ссылку на файл параметров: ln -s /home/earthworm/earthworm_7.4/envoironment/earthworm.d /home/earthworm/run/params/earthworm.d Это необходимо, поскольку разные компоненты ищут один и тот же файл в разных каталогах.

При запуске компоненты могут не запускаться с ошибкой «невозможно определить ID вашего модуля» — модули и их идентификаторы прописаны в файле Earthworm.d — достаточно посмотреть в конфигурации модуля, как он сам себя называет (например MOD_SCREAM2EW) и добавьте его в список модулей со следующим ID — там все интуитивно понятно.

После этого необходимо создать скрипты запуска: #парам

 
 #!/bin/bash
 HOME=/home/earthworm
 BIN=$HOME/earthworm_7.4/bin
 EWE=$HOME/earthworm_7.4/environment
 PARAM=$HOME/run/params
 SLEEPTIME=2
 .

$EWE/ew_linux.bash ulimit -c unlimited

#startstop.sh
 
 #!/bin/bash
 DIR=`dirname $0`
 ME=`basename $0`
 ST=/tmp/$ME.stop
 EWENV=/home/earthworm/earthworm_7.4/environment
 DAEMON=startstop
 .

$DIR/param rm $ST while true; do echo Starting $DAEMON .

create $st to break cycle, and kill the daemon $DAEMON $BIN/$DAEMON if test -f "$ST"; then

Теги: #Наука #Конфигурация Linux #землетрясения #сейсмология
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.