get_station_status¶
Science¶
Negative evidence starts with a fact about the archive, not about the event: did this station have data in the window? The tool reads a precomputed daily availability table (never a live scan of the archive) and classifies each requested station — defaulting to the QC list — as one of three frozen states.
| State | Rule | Evidential weight |
|---|---|---|
delivering |
Coverage ≥ 90 % of the window | If there is no pick, the station was genuinely recording. That silence can be evidence |
silent |
Coverage < 90 %, but data exist within ± 7 days | A telemetry or archive gap. No weight as “the earth was quiet” |
absent |
No data within ± 7 days of the window | Not installed or not archived. Must never be counted as quiet |
An optional origin_ref adds epicentral distance and azimuth so the same
rows can be read as a geometry. Warnings fire for explicitly requested
stations that are absent or silent, and availability_stale when the
table has no row for the requested UTC day — zero delivering may then
mean a missing day, not a quiet network.
Delivering is not the same as detectable. Noise and distance are
predict_detectability and
explain_silence.
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 | inventory |
| Class | 2 |
| Tool version | 1.1.0 |
| Highest declared tier | F |
| Timeout | 5 s |
| Budget key | none |
readOnlyHint |
true |
idempotentHint |
true |
Input¶
| Field | Type | Required | Notes |
|---|---|---|---|
t_from_utc |
string | yes | |
t_to_utc |
string | yes | |
stations |
array[string] | null | no | default null |
origin_ref |
object (kind catalog | solution | value) | null |
no | default null |
Payload¶
| Field | Type | Required | Notes |
|---|---|---|---|
window |
object | yes | |
window.from_utc |
string | yes | |
window.to_utc |
string | yes | |
stations |
array[object] | yes | |
stations[].station_id |
string | yes | |
stations[].state |
string ∈ {delivering, silent, absent} |
yes | |
stations[].coverage_pct |
number | yes | |
stations[].gaps |
array[object] | yes | |
stations[].gaps[].from_utc |
string | yes | |
stations[].gaps[].to_utc |
string | yes | |
stations[].sample_rate_hz |
number | null | no | default null |
stations[].distance_km |
number | null | no | default null |
stations[].azimuth_deg |
number | null | no | default null |
counts |
object | yes | |
counts.delivering |
integer | yes | |
counts.silent |
integer | yes | |
counts.absent |
integer | yes | |
table_version |
string | yes |
Example request¶
{
"t_from_utc": "2024-06-15T08:00:00.000Z",
"t_to_utc": "2024-06-15T09:00:00.000Z",
"stations": [
"XX.STA1"
],
"origin_ref": {
"kind": "catalog",
"event_id": 1001
}
}
Example payload¶
{
"window": {
"from_utc": "2024-06-15T08:00:00.000Z",
"to_utc": "2024-06-15T09:00:00.000Z"
},
"stations": [
{
"station_id": "XX.STA1",
"state": "delivering",
"coverage_pct": 100.0,
"gaps": [],
"sample_rate_hz": 100.0,
"distance_km": 41.2,
"azimuth_deg": 212.0
}
],
"counts": {
"delivering": 26,
"silent": 2,
"absent": 4
},
"table_version": "2024-06-01"
}
What this tool does not tell you¶
What this tool does not tell you: whether a delivering station could have
detected anything — that depends on noise and distance (predict_detectability,
explain_silence).
Warnings named for this tool¶
| Code | When |
|---|---|
station_absent |
an explicitly requested station is absent |
station_silent |
an explicitly requested station is silent |
availability_stale |
the availability table has no row for the requested UTC day |