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. You can download the auto-labelled data and noise samples used for model training via this link. Below snippet code demonstrates how to deal with the dataset:
import h5py as hp
import matplotlib.pyplot as plt
dataset = "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()
OBSTransformer is a variant of EqTransformer optimized for OBS data. Visit the parent repository for detailed installation guidelines.
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.
- Create a text file including instrument information (see stations.dat)
- Build the required station metadata using the provided shell script (build_json.sh; needs two addresses)
- Prepare the dataset directory (see dataset/)
- Run the detection.py code (python detection.py dataset/)
Publication(s): will be added shortly ...
Niksejel, A. & Zhang, M., 2023. OBSTransformer: A Deep-Learning Seismic Phase Picker for OBS Data Using Automated Labelling and Transfer Learning. https://doi.org/10.48550/arXiv.2306.04753
@misc{niksejel2023obstransformer,
title={OBSTransformer: A Deep-Learning Seismic Phase Picker for OBS Data Using Automated Labelling and Transfer Learning},
author={Alireza Niksejel and Miao Zhang},
year={2023},
eprint={2306.04753},
archivePrefix={arXiv},
primaryClass={physics.geo-ph}
}