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 |