jackknife_location¶
Science¶
Leave-one-station-out relocation. The tool locates the full referenced
phase set, then relocates again with each station's phases held out in
turn, on the same grid × depth_mode menu as relocate.
The spread of those trials is a sensitivity measure, not a confidence
interval around the truth.
max_shift_km is the largest epicentral jump relative to the reference.
most_influential_station is the station whose removal moved the
epicentre farthest. A trial that does not converge or that times out is
kept with converged: false and the envelope warns partial_result.
Jackknife already skips a set with fewer than four stations; that is a
station floor, distinct from relocate's four-phase floor.
A large shift when one station is removed means the location leans on that station (often a close-in P, or the only station closing a gap). It does not mean the catalogue origin is a given number of kilometres from the true hypocentre.
References¶
- Efron, B. (1982). The Jackknife, the Bootstrap and Other Resampling Plans. SIAM. doi:10.1137/1.9781611970319
- Lomax, A., Michelini, A. and Curtis, A. (2014). Earthquake Location, Direct, Global-Search Methods. doi:10.1007/978-3-642-27737-5_150-2
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 | solution |
| Class | 3 |
| Tool version | 1.1.0 |
| Highest declared tier | E |
| Timeout | 90 s |
| Budget key | jackknife_location |
readOnlyHint |
true |
idempotentHint |
false |
Input¶
| Field | Type | Required | Notes |
|---|---|---|---|
picks |
object | yes | The phase set a solution tool works on. |
picks.base |
object (kind catalog | none | solution) |
yes | discriminated on kind |
picks.phase_set |
string ∈ {all, p_only} |
yes | |
picks.exclude_pick_ids |
array[integer] | no | |
picks.add_picks |
array[object] | no | |
picks.add_picks[].tool_call_id |
string | yes | |
picks.add_picks[].pick_index |
integer | yes | |
grid |
string ∈ {shallow, deep} |
no | default "deep" |
depth_mode |
string ∈ {free, fixed_5, fixed_10, fixed_15} |
no | default "free" |
hypothesis |
string | null | no | default null |
Payload¶
| Field | Type | Required | Notes |
|---|---|---|---|
reference |
object | yes | |
reference.origin_time_utc |
string | yes | |
reference.latitude_deg |
number | yes | |
reference.longitude_deg |
number | yes | |
reference.depth_km |
number | yes | |
reference.depth_fixed |
boolean | yes | |
reference.rms_s |
number | null | yes | |
reference.gap_deg |
number | null | yes | |
reference.num_phases |
integer | yes | |
reference.num_stations |
integer | yes | |
reference.min_distance_km |
number | null | yes | |
reference.uncertainty |
object | null | yes | |
reference.uncertainty.horizontal_km |
number | null | yes | |
reference.uncertainty.min_horizontal_km |
number | null | yes | |
reference.uncertainty.max_horizontal_km |
number | null | yes | |
reference.uncertainty.azimuth_max_horizontal_deg |
number | null | yes | |
reference.uncertainty.depth_km |
number | null | yes | |
reference.uncertainty.ellipsoid |
object | null | yes | |
reference.uncertainty.ellipsoid.len1_km |
number | null | yes | |
reference.uncertainty.ellipsoid.az1_deg |
number | null | yes | |
reference.uncertainty.ellipsoid.dip1_deg |
number | null | yes | |
reference.uncertainty.ellipsoid.len2_km |
number | null | yes | |
reference.uncertainty.ellipsoid.az2_deg |
number | null | yes | |
reference.uncertainty.ellipsoid.dip2_deg |
number | null | yes | |
reference.uncertainty.ellipsoid.len3_km |
number | null | yes | |
reference.quality |
object | yes | |
reference.quality.converged |
boolean | yes | |
reference.quality.grid_boundary_hit |
boolean | yes | |
reference.quality.grid |
string | yes | |
reference.quality.grid_floor_km |
number | yes | |
trials |
array[object] | yes | |
trials[] |
object | no | |
max_shift_km |
number | null | yes | |
most_influential_station |
string | null | yes | |
n_trials |
integer | yes | |
n_failed |
integer | yes | |
config |
object | null | no | default null |
config.grid |
string | yes | |
config.depth_mode |
string | yes | |
config.phase_set |
string | yes | |
config.template_digest |
string | null | no | default null |
Example request¶
{
"picks": {
"base": {
"kind": "catalog",
"event_id": 1001
},
"phase_set": "all"
},
"grid": "deep",
"depth_mode": "free"
}
Example payload¶
{
"reference": {
"origin_time_utc": "2024-06-15T08:12:03.410Z",
"latitude_deg": 47.152,
"longitude_deg": 24.497,
"depth_km": 12.4,
"depth_fixed": false,
"rms_s": 0.24,
"gap_deg": 108.0,
"num_phases": 9,
"num_stations": 6,
"min_distance_km": 18.3,
"uncertainty": null,
"quality": {
"converged": true,
"grid_boundary_hit": false,
"grid": "deep",
"grid_floor_km": 250.0
}
},
"trials": [
{
"station_removed": "XX.STA1",
"n_phases": 8,
"latitude_deg": 47.161,
"longitude_deg": 24.51,
"depth_km": 12.0,
"rms_s": 0.27,
"shift_km": 1.4,
"depth_shift_km": -0.4,
"converged": true
}
],
"max_shift_km": 6.2,
"most_influential_station": "YY.STA3",
"n_trials": 6,
"n_failed": 0,
"config": {
"grid": "deep",
"depth_mode": "free",
"phase_set": "all",
"template_digest": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
}
}
What this tool does not tell you¶
What this tool does not tell you: absolute accuracy. Spread measures sensitivity to individual stations, not distance from the truth.
Warnings named for this tool¶
| Code | When |
|---|---|
partial_result |
an individual trial timed out (converged: false on that trial) |