О проекте
Каждый год на нашей планете происходят миллионы землетрясений. Большинство из них могут быть зафиксированы только высокоточными приборами, но бывают и такие, которые приводят к разрушению целых городов. Более подробно о природе землетрясений можно почитать на википедии.
Для того, чтобы зафиксировать сейсмические колебания, которые возникают при землетрясениях, используются специальные приборы - сейсмографы.
До недавнего времени сейсмографы представляли из себя преимущественно механические или электромеханические приборы. Они записывали форму колебаний на бумаге, что создавало трудности при распространении полученных записей.
С приходом цифровой эры механические приборы стали постепенно заменяться на цифровые. В них аналоговый сигнал с сейсмического датчика оцифровывается при помощи АЦП а затем записывается в файл, который может быть прочитан с помощь специальных программ на обычном компьютере.
Сначала, как это обычно бывает, никаких стандартов ни на формат данных ни на протокол обмена ими не существовало, что создавало определенные трудности при использовании данных полученных разными коллективами ученых.
Со временем эти проблемы были решены и на свет появились такие стандарты де-факто, как miniseed для хранения архива волновых форм и FDSN Web Services, который позволяет получить из архива произвольные записи волновых форм, а так же как каталог событий. Фактически, теперь любой пользователь интернета может скачать эти данные себе на компьютер.
Целью данного проекта было предоставить возможность загрузки сейсмических записей на основе каталогов землетрясений а так же сохранение их в формате звуковых файлов.
Программа имеет командно строковой интерфейс, что позволяет автоматизировать данный процесс.
Возможности
- выбор FDSN Web Service из списка или задание вручную;
- вывод каталога событий с заданными критериями;
- вывод списка работающих станций c заданными критериями;
- загрузка произвольного куска сейсмических данных;
- загрузка сейсмических записей на основе каталога событий с заданными критериями;
Примеры полученных звуков
Примеры использования программы
Вывести список событий за 2016 год с магнитудой больше либо равной 7.0:
seismicsound-dl --print-selected-events --event-start-time 2016-01-01T00:00:00 --event-end-time 2016-12-31T00:00:00 --event-min-mag 7.0
Результат:
INFO: Downloading the event list... ------------------------------------------------------------------------------------------------ List of Events ------------------------------------------------------------------------------------------------ ID | TYPE | MAG | LATITUDE | LONGITUDE | DEPTH | TIME | DESCRIPTION ------------------------------------------------------------------------------------------------ 9948944 | Mww | 7.6 | -43.4053 | -73.9403 | 38.000 | 2016-12-25T14:22:27 | SOUTHERN CHILE 9946716 | mww | 7.9 | -4.5049 | 153.5216 | 94.540 | 2016-12-17T10:51:10 | NEW IRELAND REGION, P.N.G. 9912119 | mww | 7.8 | -10.6760 | 161.3298 | 41.000 | 2016-12-08T17:38:46 | SOLOMON ISLANDS 5198717 | mww | 7.0 | 11.9597 | -88.8355 | 10.340 | 2016-11-24T18:43:48 | OFF COAST OF CENTRAL AMERICA 5197722 | Mww | 7.8 | -42.7245 | 173.0647 | 22.000 | 2016-11-13T11:02:59 | SOUTH ISLAND, NEW ZEALAND 5192066 | mww | 7.1 | -37.4010 | 179.0548 | 19.000 | 2016-09-01T16:37:57 | OFF E. COAST OF N. ISLAND, N.Z. 5191763 | mww | 7.1 | -0.0471 | -17.8294 | 10.000 | 2016-08-29T04:29:57 | NORTH OF ASCENSION ISLAND 5190904 | mww | 7.4 | -55.2793 | -31.8740 | 10.000 | 2016-08-19T07:32:22 | SOUTH GEORGIA ISLAND REGION 5190300 | mww | 7.2 | -22.4778 | 173.1108 | 16.440 | 2016-08-12T01:26:36 | SOUTHEAST OF LOYALTY ISLANDS 5189231 | mww | 7.7 | 18.5439 | 145.5410 | 207.620 | 2016-07-29T21:18:26 | MARIANA ISLANDS 5183973 | mww | 7.2 | -56.2409 | -26.9353 | 78.000 | 2016-05-28T09:46:59 | SOUTH SANDWICH ISLANDS REGION 5181222 | mww | 7.0 | -16.0429 | 167.3786 | 24.000 | 2016-04-28T19:33:24 | VANUATU ISLANDS 5180176 | mww | 7.8 | 0.3819 | -79.9218 | 20.590 | 2016-04-16T23:58:36 | NEAR COAST OF ECUADOR 5180038 | mww | 7.0 | 32.7906 | 130.7543 | 10.000 | 2016-04-15T16:25:06 | KYUSHU, JAPAN 5176028 | mww | 7.8 | -4.9521 | 94.3299 | 24.000 | 2016-03-02T12:49:48 | SOUTHWEST OF SUMATRA, INDONESIA 5172800 | mww | 7.2 | 54.0057 | 158.5128 | 163.220 | 2016-01-30T03:25:10 | KAMCHATKA PENINSULA, RUSSIA 5172125 | mww | 7.1 | 59.6204 | -153.3392 | 125.600 | 2016-01-24T10:30:29 | SOUTHERN ALASKA ------------------------------------------------------------------------------------------------ Total: 17
Вывести список событий за август 2016 года с магнитудой больше либо равной 5.0 с эпицентром вблизи Италии:
seismicsound-dl --print-selected-events --event-start-time 2016-08-01T00:00:00 --event-end-time 2016-09-01T00:00:00 --event-min-mag 5.0 --event-min-lon 9 --event-max-lon 19 --event-min-lat 37 --event-max-lat 43
Результат:
INFO: Downloading the event list... ------------------------------------------------------------------------------------------------ List of Events ------------------------------------------------------------------------------------------------ ID | TYPE | MAG | LATITUDE | LONGITUDE | DEPTH | TIME | DESCRIPTION ------------------------------------------------------------------------------------------------ 5191300 | mww | 5.6 | 42.8335 | 13.1319 | 4.950 | 2016-08-24T02:33:29 | CENTRAL ITALY 5191298 | mww | 6.2 | 42.7230 | 13.1877 | 4.440 | 2016-08-24T01:36:32 | CENTRAL ITALY ------------------------------------------------------------------------------------------------ Total: 2
Вывести список вертикальных каналов станций, которые установлены вблизи Италии и писали в момент, когда произошло событие с идентификатором "5191300":
seismicsound-dl --print-selected-traces --event-id 5191298 --station-min-lon 9 --station-max-lon 19 --station-min-lat 37 --station-max-lat 43 --channel *Z
Результат:
INFO: Downloading the station list... -------------------------------------------------------------------------------------------------------------------------- List of Channels -------------------------------------------------------------------------------------------------------------------------- NET | STA | LOC | CHAN | LATITUDE | LONGITUDE | ELEVAT | DEPTH | START TIME | END TIME | SITE NAME -------------------------------------------------------------------------------------------------------------------------- GE | MATE | | BHZ | 40.6491 | 16.7044 | 0.494 | 0.000 | 2007-04-24T00:00:00 | 2599-12-31T23:59:59 | U Basilicata/GEOFON Station Matera, Italy GE | MATE | | HHZ | 40.6491 | 16.7044 | 0.494 | 0.000 | 2007-04-24T00:00:00 | 2599-12-31T23:59:59 | U Basilicata/GEOFON Station Matera, Italy ... YR | ED23 | | HHZ | 42.7433 | 13.2871 | 1.040 | 0.000 | 2016-08-30T00:00:00 | 2017-05-30T00:00:00 | SPELONGA YR | ED24 | | HHZ | 42.6556 | 13.1922 | 1.103 | 0.000 | 2016-08-30T00:00:00 | 2017-05-30T00:00:00 | ROCCASALLI YR | ED25 | | HHZ | 42.5988 | 13.3519 | 1.350 | 0.000 | 2016-08-30T00:00:00 | 2017-05-30T00:00:00 | CORNILLI NUOVO -------------------------------------------------------------------------------------------------------------------------- Total: 382
Загрузить не более 10 записи события с идентификатором "5191300" с каналов "BHZ" с location "00" оборудования установленного вблизи Италии. Полученные аудиозаписи сохранить в текущий каталог с частотой дискретизации равной 16кГц:
seismicsound-dl --event-id 5191298 --station-min-lon 1 --station-max-lon 29 --station-min-lat 27 --station-max-lat 53 --channel BHZ --location 00 --limit 10 --sample-rate 16000
Результат:
$ ls -1 ID_5191298.G.CLF.00.BHZ.20160824013132.20160824023632.wav ID_5191298.G.ECH.00.BHZ.20160824013132.20160824023632.wav ID_5191298.G.SSB.00.BHZ.20160824013132.20160824023632.wav ID_5191298.II.BFO.00.BHZ.20160824013132.20160824023632.wav ID_5191298.II.IBFO.00.BHZ.20160824013132.20160824023632.wav
Для не более, чем 10 событий с магнитудой больше либо равной 7.0 загрузить по одной записи с каналов "HHZ" с location "00". Каждую запись удлинить до 14400 секунд:
seismicsound-dl --event-min-mag 7 --channel HHZ --location 00 --limit 10 --limit-per-event 1 --seconds-after 14400
Результат:
$ ls -1 ID_5190904.AG.CCAR.00.HHZ.20160819072724.20160819113224.wav ID_5191763.AG.CCAR.00.HHZ.20160829042458.20160829082958.wav ID_5192066.AG.CCAR.00.HHZ.20160901163259.20160901203759.wav ID_5197722.AG.CCAR.00.HHZ.20161113105801.20161113150301.wav ID_5198717.AG.CCAR.00.HHZ.20161124183848.20161124224348.wav ID_9912119.AG.CCAR.00.HHZ.20161208173348.20161208213848.wav ID_9946716.AG.CCAR.00.HHZ.20161217104612.20161217145112.wav ID_9948944.AG.CCAR.00.HHZ.20161225141728.20161225182228.wav ID_9953968.AG.CCAR.00.HHZ.20170110060849.20170110101349.wav ID_9993759.AG.CCAR.00.HHZ.20170122042525.20170122083025.wav
Параметры запуска
Использование: seismicsound-dl [OPTIONS] Опции: ============================================================================= опции, которые влияют на выходные аудио файлы ============================================================================= --sample-rate установить частоту оцифровки аудио файлов (по умолчанию '44100') --sample-format установить формат отчетов аудио файлов вы можете использовать следующие значения: i16 -- 16 бит на отчет (целочисленное) i24 -- 24 бит на отчет (целочисленное) i32 -- 32 бит на отчет (целочисленное) f32 -- 32 бит на отчет (IEEE774) f64 -- 64 бит на отчет (IEEE774) (по умолчанию 'i16') --output-directory установить выходной каталог для аудио файлов (по умолчанию '.' (текущий каталог)) --filename-format установить формат имени аудио файлов вы можете использовать в формате следующие переменные: %eid% -- идентификатор события %net% -- код сети %sta% -- код станции %loc% -- код location %chan% -- код канала %starttime% -- время начала (будет представлено как 'YYYYMMDDTHHMMSS') %endtime% -- время окончания (будет представлено как 'YYYYMMDDTHHMMSS') (по умолчанию '%eid%.%net%.%sta%.%loc%.%cha%.%stm%.%etm%') --filename-conflict-action установить действия при дублировании имен файлов вы можете использовать следующие значения: suffix -- добавить к новому имени файла уникальный суффикс overwrite -- перезаписать старый файл новым skip -- не загружать дублирующиеся файлы (по умолчанию 'suffix') ============================================================================= опции, которые влияют на параметры выбора списка событий ============================================================================= --event-id установить идентификатор события (если установлена эта опция, то все другие опции связанные с формированием списка событий (--event-*) будут проигнорированы. В результате будет список из одного события с заданным идентификатором) --event-start-time установить время начала интервала, в котором произошло событие (время должно иметь следующий формат: 'YYYY-MM-DDTHH:MM:SS') --event-end-time установить время конца интервала, в котором произошло событие (время должно иметь следующий формат: 'YYYY-MM-DDTHH:MM:SS') --event-min-mag установить минимальную магнитуду землетрясения (подробности смотрите в 'шкале магнитуд землетрясений' ниже) --event-max-mag установить максимальную магнитуду землетрясения (подробности смотрите в 'шкале магнитуд землетрясений' ниже) --event-min-depth установить минимальную глубину землетрясения (единицы измерения: километры) --event-max-depth установить максимальную глубину землетрясения (единицы измерения: километры) условия поиска BOX, несовместимы с условиями поиска RADIAL --event-min-lat установить минимальную широту (единицы измерения: градусы; диапазон значений: [-90.0; 90.0]) --event-max-lat установить максимальную широту (единицы измерения: градусы; диапазон значений: [-90.0; 90.0]) --event-min-lon установить минимальную долготу (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) --event-max-lon установить максимальную долготу (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) условия поиска RADIAL, несовместимы с условиями поиска BOX --event-lat установить широту центральной точки (единицы измерения: градусы; диапазон значений: [-90.0; 90.0]) --event-lon установить долготу центральной точки (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) --event-min-radius установить минимальную дистанцию от географической точки определенной как "центральная точка" (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) --event-max-radius установить максимальную дистанцию от географической точки определенной как "центральная точка" (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) ============================================================================= опции, которые влияют на параметры выбора списка трасс ============================================================================= --network установить код сети (подробности смотрите в 'формат кода сети' ниже) --station установить код станции (подробности смотрите в 'формат кода станции' ниже) --location установить код location (подробности смотрите в 'формат кода location' ниже) --channel установить код канала (подробности смотрите в 'формат кода канала' ниже) --start-time установить время начала трассы данных (время должно иметь следующий формат: 'YYYY-MM-DDTHH:MM:SS') --end-time установить время окончания трассы данных (время должно иметь следующий формат: 'YYYY-MM-DDTHH:MM:SS') Примечание: если вы установили временной интервал трассы данных, то все опции связанные с формированием списка событий (--event-*) будут проигнорированы условия поиска BOX, несовместимы с условиями поиска RADIAL --station-min-lat установить минимальную широту (единицы измерения: градусы; диапазон значений: [-90.0; 90.0]) --station-max-lat установить максимальную широту (единицы измерения: градусы; диапазон значений: [-90.0; 90.0]) --station-min-lon установить минимальную долготу (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) --station-max-lon установить максимальную долготу (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) условия поиска RADIAL, несовместимы с условиями поиска BOX --station-lat установить широту центральной точки (единицы измерения: градусы; диапазон значений: [-90.0; 90.0]) --station-lon установить долготу центральной точки (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) --station-min-radius установить минимальную дистанцию от географической точки определенной как "центральная точка" (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) --station-max-radius установить максимальную дистанцию от географической точки определенной как "центральная точка" (единицы измерения: градусы; диапазон значений: [-180.0; 180.0]) ============================================================================= другие опции ============================================================================= --limit установить лимит общего количества загружаемых аудио файлов (по умолчанию неограниченно) --limit-per-event установить лимит количества загружаемых аудио файлов для каждого события (по умолчанию неограниченно) --seconds-before установить количество дополнительных секунд, которые будут загружены до первой сейсмической фазы (по умолчанию '300' секунд) --seconds-after установить количество секунд, которые будут загружены после первой сейсмической фазы (по умолчанию '3600' секунд) --fdsnws-dataselect-url установить URL fdsnws dataselect сервиса вы можете так же использовать КОД, который может быть найден в списке fdsnws dataselect сервисов (смотрите --print-fdsnws-dataselect-services) (по умолчанию используются первая запись из списка fdsnws dataselect сервисов) --fdsnws-station-url установить URL fdsnws station сервиса вы можете так же использовать КОД, который может быть найден в списке fdsnws station сервисов (смотрите --print-fdsnws-station-services) (по умолчанию используются первая запись из списка fdsnws station сервисов) --fdsnws-event-url установить URL fdsnws event сервиса вы можете так же использовать КОД, который может быть найден в списке fdsnws event сервисов (смотрите --print-fdsnws-event-services) (по умолчанию используются первая запись из списка fdsnws event сервисов) --print-fdsnws-dataselect-services показать список известных fdsnws dataselect сервисов и выйти --print-fdsnws-station-services показать список известных fdsnws station сервисов и выйти --print-fdsnws-event-services показать список известных fdsnws event сервисов и выйти --print-fdsnws-services показать список известных fdsnws сервисов и выйти --print-selected-events показать список выбранных событий без загрузки аудио файлов (будут использованы только те опции, которые влияют на параметры выбора списка событий) --print-selected-traces показать список выбранных трасс без загрузки аудио файлов (будут использованы только те опции, которые влияют на параметры выбора списка трасс) --selected-events-format установить формат строки вывода информации о выбранных событиях вы можете использовать в формате следующие переменные: %eid% -- идентификатор события %type% -- тип магнитуды %val% -- значение магнитуды %lat% -- широта %lon% -- долгота %depth% -- глубина %time% -- время (будет представлено как 'YYYY-MM-DDTHH:MM:SS') %desc% -- event description (по умолчанию ' %eid% | %type% | %val% | %lat% | %lon% | %depth% | %time% | %desc%') --selected-traces-format установить формат строки вывода информации о выбранных трассах вы можете использовать в формате следующие переменные: %net% -- код сети %sta% -- код станции %loc% -- код location %chan% -- код канала %lat% -- широта %lon% -- долгота %elevat% -- высота %depth% -- глубина %stime% -- время начала (будет представлено как 'YYYY-MM-DDTHH:MM:SS') %etime% -- время окончания (будет представлено как 'YYYY-MM-DDTHH:MM:SS') %site% -- имя места (по умолчанию ' %net% | %sta% | %loc% | %chan% | %lat% | %lon% | %elevat% | %depth% | %stime% | %etime% | %site%') --debug показать отладочную информацию --help показать это сообщение и выйти ============================================================================= краткое справочное руководство ============================================================================= шкала магнитуд землетрясений: - 2.5 или меньше -- как правило, не ощущается, но могут быть записаны сейсмографами (~900,000 в год) - 2.5 .. 5.4 -- зачастую ощущаются, но вызывают лишь незначительные повреждения (~30,000 в год) - 5.5 .. 6.0 -- небольшие повреждения зданий и сооружений (~500 в год) - 6.1 .. 6.9 -- могут вызывать значительные разрушения в густо населенных районах (~100 в год) - 7.0 .. 7.9 -- сильные землетрясения, серьезные разрушения (~20 в год) - 8.0 или сильнее -- сильнейшие землетрясения, могут полностью разрушить поселения вблизи эпицентра (каждые 5 .. 10 лет) формат кода сети: - 2 символа: верхний регистр или цифры формат кода станции: - 5 символа: верхний регистр или цифры формат кода location: - 2 символа: верхний регистр или цифры формат кода канала: - 3 символа: верхний регистр или цифры вы так же можете использовать специальные символы: - '?' для любого одного символа (пример: 'EH?', 'E??R') - '*' для любого количества любых символов (пример: 'EH*', 'AK*')
Новости
Версия 0.1.1
- исправлены некоторые ошибки
Версия 0.1.0pre
- первый публичный релиз
Скачать
Готовые сборки:
https://github.com/AlekseyDurachenko/seismicsound-dl/releases
Исходный код:
https://github.com/AlekseyDurachenko/seismicsound-dl
Баг-трекер:
https://github.com/AlekseyDurachenko/seismicsound-dl/issues
Лицензия GNU GPLv3+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
The complete text of the GNU General Public License version 3 can be found in `LICENSE.GPLv3+'.