https://github.com/alirezaniki/OBSTransformer
A deep learning seismic phase picker for Ocean Bottom Seismometer data
https://github.com/alirezaniki/OBSTransformer
Last synced: 4 months ago
JSON representation
A deep learning seismic phase picker for Ocean Bottom Seismometer data
- Host: GitHub
- URL: https://github.com/alirezaniki/OBSTransformer
- Owner: alirezaniki
- License: mit
- Created: 2023-05-17T22:41:22.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-22T00:13:40.000Z (about 1 year ago)
- Last Synced: 2024-03-22T01:26:57.203Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 15.6 MB
- Stars: 21
- Watchers: 4
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-seismology - OBSTransformer - A Deep Learning Seismic Phase Picker for OBS Data.  (Phase picking and association)
README

---
Description
--**OBSTransformer** is a transfer-learned seismic phase picker for Ocean Bottom Seismometer data (OBS) adopted from the EqTransformer model.
**OBSTransformer** has been trained on an auto-labelled tectonically inclusive OBS dataset comprising ~36k earthquake and 25k noise samples.
**OBSTransformer** is now integrated with the hands-free earthquake location workflow-[LOC-FLOW](https://github.com/Dal-mzhang/LOC-FLOW).
You can download the auto-labelled data and noise samples used for model training via [this link](https://drive.google.com/file/d/1sM2JD9QF6obfFtIPTB3wQxtDvEhndPVT/view?usp=sharing). Below
snippet code demonstrates how to deal with the dataset:
```
import h5py as hp
import matplotlib.pyplot as pltdataset = "OBST_training_data.hdf5"
d = hp.File(dataset, 'r')
for item in d['data']:
if not item.endswith('EV'): continue
dd = d.get(f'data/{item}')
p_arr = dd.attrs['p_arrival_sample']
s_arr = dd.attrs['s_arrival_sample']
print(p_arr, s_arr)
plt.plot(dd)
plt.show()
```---
Installation
--OBSTransformer is a variant of EqTransformer optimized for OBS data. Visit the [parent repository](https://github.com/smousavi05/EQTransformer) for detailed installation guidelines.
To start with (anaconda):
--```
conda create -n obst python=3.7
conda activate obst
pip install --upgrade pip
pip install obspy
pip install EQTransformer
```
You may encounter version conflicts between packages, such as numpy or protobuf. Try to install the suggested versions to eliminate the issue.---
Quick Instruction
--1. Create a text file including instrument information (see stations.dat)
2. Build the required station metadata using the provided shell script (build_json.sh; needs two addresses)
3. Prepare the dataset directory (see dataset/)
4. Run the detection.py code (python detection.py dataset/)---
Reference
--Niksejel, A. & Zhang, M., 2024. OBSTransformer: A Deep-Learning Seismic Phase Picker for OBS Data Using Automated Labelling and Transfer Learning. Geophysical Journal International, ggae049, https://doi.org/10.1093/gji/ggae049.