Seisbench Versions Save

SeisBench - A toolbox for machine learning in seismology

v0.7.0

3 weeks ago

Major updates

  • SeisBench now features a model for low-frequency earthquake (LFE) detection and three LFE stack datasets. The model can be plugged into regular earthquake detection workflows just as any SeisBench model. Note that the quality of the LFE picks is substantially below that of regular earthquake detection models. See #286
  • The annotate/classify backend has been substantially revamped. Large chunks of pre- and postprocessing are now conducted as vectorized operations in PyTorch. This leads to at least 20 % speed ups on CPU and more than 50 % speed ups on GPU. For DeepDenoiser, speed ups can be as high as 20x. Picking one day of 100 Hz three-component waveforms on GPU now takes below 1 s. For further details and more benchmark results, see #282
  • The OBSTransformer model and OBST2024 dataset have been added. These now complement the existing models and datasets for ocean bottom seismometer picking, giving users a wider range of options. See #279 and #281
  • The TXED dataset with waveforms from Texas is now available through SeisBench. See #275

Thanks to everyone how contributed to this release with feedback, issues, and especially with PRs.

All merged PRs

New Contributors

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.6.0...v0.7.0

v0.6.0

4 months ago

Major updates

  • The MLAAPDE dataset is now available through SeisBench. MLAAPDE is a large-scale dataset containing phase picks primarily at teleseismic distances. Big shoutout to Hank Cole at NEIC for compiling the dataset and making it available for us. See #241
  • The annotate and classify functions now expose an async interface. This allows you to integrate them smoothly into your asyncio pipelines, for example for preloading the next waveforms while picking. See #251
  • The reliability and accessibility of the SeisBench remote repository has been improved by adding a backup repository. See #256

Thanks to everyone how contributed to this release with feedback, issues, and especially with PRs.

All merged PRs

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.5.0...v0.6.0

v0.5.0

8 months ago

Major updates

  • SeisBench now comes with two models for teleseismic depth phase picking and depth estimation. DepthPhaseNet and DepthPhaseTEAM allow to identify the depth of teleseismic events through their depth phases. In addition DepthFinder offers a convenient interfaces with direct connection to FDSN. Check #231 for details.
  • The Pacific Northwest (PNW) dataset by Ni et al. (2023) is now available through SeisBench. See #199. Thanks to @niyiyu for making this available.
  • The output structure of all SeisBench models is now identical. This is a breaking change but quick to fix. Picking models now return an abstract output object, picks are available at model.classify(stream).picks. Similarly, EQTransformer or CRED detections can be accessed at model.classify(stream).detections. For convenience, picks and detections can now also be filtered through station and confidence criteria. For details see #230.
  • The ProbabilisticLabeller has been updated to allow independent labels that can be used with a sigmoid instead of a softmax layer. Thanks to @zhong-yy for the addition in #229.

Thanks to everyone how contributed to this release with feedback, issues, and especially with PRs.

All merged PRs

New Contributors

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.4.0...v0.5.0

v0.4.0

1 year ago

Major updates

  • SeisBench now includes a benchmark dataset and two picking models for ocean bottom seismometer (OBS). Both the dataset and the models are accessible through the regular SeisBench interface. The newly trained models can make use of hydrophone components and consistently outperform models trained on land data for OBS picking. A reference preprint is available.
  • We optimized the access speed for benchmark datasets. This will speed up model training. Speed-ups affect both datasets cached in memory and datasets accessed directly from disk.
  • Already in version 0.3.2, we fixed a critical bug in the normalization of traces that degraded performance of a large number of models.

All merged PRs

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.3.0...v0.4.0

v0.3.0

1 year ago

Major updates

  • The PhaseNet implementations between SeisBench and the original implementations differed. We now adjusted the implementation within SeisBench. This means that the original weights for PhaseNet are now available in SeisBench. The previous version of PhaseNet is now available as PhaseNetLight.
  • SeisBench now supports data grouping to train models on multiple stations. Check out the grouping argument for datasets and the GroupGenerator
  • Window annotation models, such as EQTransformer, can now use different stacking models for the overlap between two windows. For EQTransformer, the default was changed to max stacking in agreement with the original implementation.
  • The optional arguments to annotate and classify have been cleaned up. They now are documented automatically, have clear default values and are validated to avoid invalid arguments.
  • We increased the default overlap for window annotation models due to recent research on missing translation invariance for picking models.

Thanks to everyone how contributed to this release with feedback, issues, and especially with PRs.

All merged PRs

New Contributors

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.2.1...v0.3.0

v0.2.0

2 years ago

What's changed

  • UrbanDenoiser (https://doi.org/10.1126/sciadv.abl3564) is now available in SeisBench. It can be loaded using DeepDenoiser.from_pretrained("urban") (#83).
  • The ProbabilisticLabeller now supports different label shapes, i.e., Gaussian, Triangular and Box (#67).
  • SeisBench models now support local saving and loading through the newly added save and load functions. The functions ensure that not only model weights can be saved and loaded but also further model parameters, such as the component order or the sampling rate #69, #71, #86).
  • The WaveformModel annotate/classify functions now support multiprocessing for annotating large datasets. Simply set the parallelism parameter in the call to these functions. The previous API based on asyncio is maintained for processing small stream objects, as multiprocessing has a higher overhead due to latency (#64, #68, #81).
  • SeisBench now supports Python 3.10 (#52, #70).
  • We added further example notebooks (#58, #72).
  • The from_pretrained API to load pretrained models has been completely rewritten. It now supports model versioning, coming with the new function list_versions and the version_str parameter for from_pretrained. In addition, more control and transparency were added whether the function queries the SeisBench remote repository or only the local cache (#76, #77, #86).
  • Added secondary keys for get_idx_from_trace_name to avoid trace name collisions for chunked data sets and multi-part datasets (#78, #84)
  • In addition, v0.2 contains all bugfixes introduced in the patch versions of v0.1 and further minor fixes (#63, #85).

Thanks to everyone contributing to this release through issues, PRs and commits!

v0.1.10

2 years ago

What's Changed

  • Added DeepDenoiser (#59), a deep learning model for denoising waveforms published by Zhu et al (2019).
  • Extended backend for WaveformModel annotate function to give more flexibility to implement models beyond picking
  • Restructured example workflows and added further example workflows (#55)
  • Fixed infinite loop when annotating short waveform fragments
  • Added Copy augmentation
  • Pinned version requirement of numpy to 1.21 due to dependency issues

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.1.9...v0.1.10

v0.1.8

2 years ago

What's Changed

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.1.7...v0.1.8

v0.1.7

2 years ago

What's Changed

Full Changelog: https://github.com/seisbench/seisbench/compare/v0.1.6...v0.1.7

v0.1.5

2 years ago

This release adds the Iquique dataset, a dataset consisting of events around the Mw=8.1 Iquique earthquake in Chile 2014. The dataset is relatively small, providing a good starting point for model development on low resources. As we are still in v0.1, the dataset is added using a patch version, rather than a new minor version.