SeisBench: A toolbox for machine learning in seismology

SeisBench is an open-source Python toolbox for machine learning in seismology. It brings together the whole machine learning model lifecycle: datasets and benchmarks, models and training pipelines, and efficient implementations for deploying the models in production.

25
mentions
6
contributors

Cite this software

What SeisBench: A toolbox for machine learning in seismology can do for you

PyPI - License GitHub Workflow Status Read the Docs PyPI Python 3.9 DOI

The Seismology Benchmark collection (SeisBench) is an open-source python toolbox for
machine learning in seismology. It provides a unified API for accessing seismic datasets and both training and applying machine learning algorithms to seismic data. SeisBench has been built to reduce the overhead when applying or developing machine learning techniques for seismological tasks.

To get started, try one of our example notebooks. For more detailed information on SeisBench check out the SeisBench documentation

Usage examples

Managing datasets and benchmark data

The SeisBench data module provides everything around data management.
This includes a common data format, tools to compile datasets in this format, and pre-compiled benchmark datasets that are hosted in the SeisBench repository.

Each dataset consists of two parts, the metadata and associated seismic waveforms. Waveforms are modeled as dataframes and are flexible in terms of their columns. Here is an example metadata for a dataset.

Example metadata

To each row in the metadata, there is an associated waveform. Here is an example three-component waveform trace.

Example waveform

Internally, waveforms are stored in hdf5-files. This allows managing large quantities of data while at the same time achieving high throughput rates for the training of deep learning models.

For further details, check the dataset basics notebook Open in Colab or the creating a dataset notebook Open in Colab.

Training ML models

The SeisBench model module contains a wide variety of deep learning models for processing seismic waveforms, for example, for event detection, phase picking, denoising and depth estimation.
To efficiently train these models, SeisBench offers custom, modular training pipelines with the generate module.
These convert the data from the datasets into the input format for each model, provide the correct label format and can also facilitate data augmentation.
Here's an example of a simple generator pipeline.

Example generator pipeline

For more details, check out the notebook on generator pipelines Open In Colab. To learn how to train a deep learning model from scratch using SeisBench datasets and generator pipelines, try the training phasenet notebook Open In Colab.

Deploying ML models

SeisBench bridges the gap between deep learning developers and seismological practitioners by allowing easy deployment of SeisBench models. To this end, SeisBench comes with a large collection of pretrained models and with a unified interface for all models. This interface allows to directly apply the models to all common data formats of seismic data. Here is an example showing the waveforms of an earthquake in Chile together with the predictions from PhaseNet implemented in SeisBench.

PhaseNet example

This example notebook Open In Colab provides details on how to deploy trained SeisBench models.

SeisBench can also be integrated into larger event detection pipelines. The notebook on creating a seismicity catalog Open In Colab walks users through the steps of phase picking and association on the challenging 2014 Iquique earthquake sequence in Northern Chile. This workflow allows to compile highly complete earthquake catalogs as visualised below.

2014 Iquique sequence

References

  • Woollam, J., Münchmeyer, J., Tilmann, F., Rietbrock, A., Lange, D., Bornstein, T., ... & Soto, H. (2022). SeisBench—A toolbox for machine learning in seismology. Seismological Research Letters, 93(3), 1695-1709. https://doi.org/10.1785/0220210324

    Reference publication for software.


  • Münchmeyer, J., Woollam, J., Rietbrock, A., Tilmann, F., Lange, D., Bornstein, T., ... & Soto, H. (2022). Which picker fits my data? A quantitative evaluation of deep learning based seismic pickers. Journal of Geophysical Research: Solid Earth, 127(1), e2021JB023499.
    https://doi.org/10.1029/2021JB023499

    Example of in-depth bencharking study of deep learning-based picking routines using the SeisBench framework.


Acknowledgement

The initial version of SeisBench has been developed at GFZ Potsdam and KIT with funding from Helmholtz AI. The SeisBench repository is hosted by HIFIS - Helmholtz Federated IT Services.

Logo of SeisBench: A toolbox for machine learning in seismology
Keywords
Programming languages
  • Jupyter Notebook 68%
  • Python 32%
License
  • GPL-3.0-only
</>Source code
Packages
pypi.org

Participating organisations

Helmholtz Centre Potsdam GFZ German Research Centre for Geosciences
Karlsruhe Institute of Technology (KIT)
Helmholtz Centre For Ocean Research Kiel (GEOMAR)

Mentions

Contributors

Related projects

Helmholtz AI

Democratizing AI

Updated 20 months ago