Skip to content

guided_repick

Science

Run a deep-learning picker in a short window around a predicted arrival at one station, and return referenceable picks. The window is centred on a given time or on the predicted P or S of a referenced origin, and is capped at 30 s: a wide window defeats the point of guiding and reintroduces the false picks that blind low-threshold picking produces.

The menu is phasenet or eqtransformer, with a discrete picker_threshold and filter_band. The model sees the full three-component stream; channel only chooses which component's picks are reported. Each pick has a pick_index so a later relocate can add it by reference.

noise_context is returned unasked: the 1–20 Hz acceleration PSD of the 10 s before the searched window, the weekly baseline p50_db, and the percentile of that baseline. A low-threshold pick on a noisy station is the usual failure mode — the picker will mark noise as well as phases.

Finding nothing is informative. Finding something is not proof the phase is real.

References

  • Zhu, W. and Beroza, G. C. (2019). PhaseNet: a deep-neural-network-based seismic arrival-time picking method. Geophysical Journal International. doi:10.1093/gji/ggy423
  • Mousavi, S. M., Ellsworth, W. L., Zhu, W., Chuang, L. Y. and Beroza, G. C. (2020). Earthquake transformer—an attentive deep-learning model for simultaneous earthquake detection and phase picking. Nature Communications. doi:10.1038/s41467-020-17591-w
  • Woollam, J. et al. (2022). SeisBench—A toolbox for machine learning in seismology. Seismological Research Letters. doi:10.1785/0220210278

Contract

Generated from the live registry (ToolSpec). Field names, types and defaults come from the input and payload models; they are not hand-typed.

Group repick
Class 4
Tool version 1.0.1
Highest declared tier E
Timeout 20 s
Budget key guided_repick
readOnlyHint true
idempotentHint false

Input

Field Type Required Notes
station_id string yes
target object (kind origin | time) yes discriminated on kind
picker string ∈ {phasenet, eqtransformer} yes
picker_threshold number ∈ {0.1, 0.2, 0.3, 0.5} yes
channel string ∈ {Z, horizontals, all} | null no default null
window_s number no default 10.0; ≥ 2.0; ≤ 30.0
filter_band string ∈ {none, 0.5-5, 1-20, 2-8, 2-15} no default "none"
hypothesis string | null no default null

Payload

Field Type Required Notes
station_id string yes
channel_ids_used array[string] yes
target_time_utc string yes
searched_window object yes
searched_window.from_utc string yes
searched_window.to_utc string yes
picks array[object] yes
picks[].pick_index integer yes
picks[].phase string yes
picks[].time_utc string yes
picks[].probability number yes
picks[].offset_from_target_s number yes
picks[].channel_id string yes
noise_context object yes
noise_context.measured_noise_db number | null no default null
noise_context.baseline_p50_db number | null no default null
noise_context.percentile_of_baseline number | null no default null
noise_context.method string yes
noise_context.definitions object yes
model object yes
model.picker string yes
model.weights string yes
model.seisbench_version string | null no default null

Example request

{
  "station_id": "YY.STA3",
  "channel": "Z",
  "target": {
    "kind": "origin",
    "origin_ref": {
      "kind": "catalog",
      "event_id": 1001
    },
    "phase": "P"
  },
  "window_s": 10,
  "picker": "phasenet",
  "picker_threshold": 0.2,
  "filter_band": "none"
}

Example payload

{
  "station_id": "YY.STA3",
  "channel_ids_used": [
    "YY.STA3..HHZ",
    "YY.STA3..HHN",
    "YY.STA3..HHE"
  ],
  "target_time_utc": "2024-06-15T08:12:12.100Z",
  "searched_window": {
    "from_utc": "2024-06-15T08:12:07.100Z",
    "to_utc": "2024-06-15T08:12:17.100Z"
  },
  "picks": [
    {
      "pick_index": 0,
      "phase": "P",
      "time_utc": "2024-06-15T08:12:12.900Z",
      "probability": 0.34,
      "offset_from_target_s": 0.8,
      "channel_id": "YY.STA3..HHZ"
    }
  ],
  "noise_context": {
    "measured_noise_db": -141.0,
    "baseline_p50_db": -146.3,
    "percentile_of_baseline": 88
  },
  "model": {
    "picker": "phasenet",
    "weights": "instance",
    "seisbench_version": "0.5.0"
  }
}

What this tool does not tell you

What this tool does not tell you: that a pick is real. If it finds nothing, that is informative. If it finds something at a low threshold, compare with the noise context before believing it — the picker produces picks on noise too.

Warnings named for this tool

Code When
station_silent the station is silent in the searched window
data_gap the window is only partially covered
clipped_trace amplitude reaches digitizer full scale
low_confidence_fit a fitted quantity has poor statistics
budget_low at most one call remains in the tool budget

Errors named for this tool

Code When
E_DATA_UNAVAILABLE reason is no_waveform or station_absent