Skip to main content

PickerXL is a large deep learning model to measure arrival times from noisy seismic signals.

Project description

PickerXL

A large deep learning model to measure arrival times from noisy seismic signals. The model was developed by Chengping Chai, Derek Rose, Scott Stewart, Nathan Martindale, Mark Adams, Lisa Linville, Christopher Stanley, Anibely Torres Polanco and Philip Bingham.

Introduction

This model is trained on STEAD (Mousavi et al., 2019) for Primary (P) and Secondary (S) wave arrival picking. The model was trained using earthquake data at local distances (0-350 km). The model uses 57s-long three-component seismograms sampled at 100 Hz as input. The output of the model are probability channels corresponding to P wave, S wave, and noise. These probabilities can be used to compute P- and S-wave arrival times.

Installation

Creating a virtual environment is highly encouraged.

pip install pickerxl

To install only for CPU (e.g., macOS), you may use the following commands.

pip3 install torch torchvision torchaudio
pip3 install pickerxl

Example Usage

from pickerxl.pickerxl import Picker
import numpy as np
import h5py
model = Picker()
fid = h5py.File("example_waveforms.h5", "r")
data_group = fid["data"]
example_data = []
true_p_index = []
true_s_index = []
for akey in data_group.keys():
    dataset = data_group[akey]
    example_data.append(dataset[...])
    true_p_index.append(float(dataset.attrs["p_arrival_sample"]))
    true_s_index.append(float(dataset.attrs["s_arrival_sample"]))
fid.close()
preds = model.predict_probability(example_data)
p_index, s_index = model.predict_arrivals(example_data)
print("True P-wave arrival index:", true_p_index)
print("Predicted P-wave arrival index:", p_index)
print("True S-wave arrival index:", true_s_index)
print("Predicted S-wave arrival index:", s_index)

Test the Package

First, go to the top directory of the package. Then, using the following commands.

cd tests
python run_tests.py

example image

Known Limitations

  • The model may have a less-than-optimal performance for earthquake data outside of a source-receiver distance range of 10–110 km and a magnitude range of 0–4.5 because of biases in the training data.
  • The model may produce false detections when applied to continuous seismic data.
  • The model may not perform well for earthquake data at larger distances or for non-earthquake sources.

Reference

Chengping Chai, Derek Rose, Scott Stewart, Nathan Martindale, Mark Adams, Lisa Linville, Christopher Stanley, Anibely Torres Polanco, Philip Bingham; PickerXL, A Large Deep Learning Model to Measure Arrival Times from Noisy Seismic Signals. Seismological Research Letters 2025; 96 (4):2394-2404. doi: https://doi.org/10.1785/0220240353

License

GNU GENERAL PUBLIC LICENSE version 3

Credit

The architecture of the deep learning model was adapted from SeisBench (Woollam et al., 2022).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pickerxl-0.2.4.tar.gz (16.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pickerxl-0.2.4-py3-none-any.whl (15.8 MB view details)

Uploaded Python 3

File details

Details for the file pickerxl-0.2.4.tar.gz.

File metadata

  • Download URL: pickerxl-0.2.4.tar.gz
  • Upload date:
  • Size: 16.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for pickerxl-0.2.4.tar.gz
Algorithm Hash digest
SHA256 ee587e8c3646ca0dfcde55179ccf7c331055d9b27dafc0a16e19f28dca508d45
MD5 eea96ec79d6116c893c567ba1ee72d48
BLAKE2b-256 6f03c095b52620a9f944480412a9a2c401bf447e849bbb193f8ce5d9e8cde9dc

See more details on using hashes here.

File details

Details for the file pickerxl-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: pickerxl-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 15.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for pickerxl-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 724dbabe517ead964152ba6fe4b1b6c8c71473af5595b17071a59e1767a50e6a
MD5 06d5688931e2d1f13558fb16b6aaaf6c
BLAKE2b-256 4c80be0d1e13aaafb8009190d0702d32d89af6d83cba86e25819ffa88b01c431

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page