Evaluates the capability of seismic models to detect earthquake events and precisely pick P- and S-wave arrival times from continuous three-component waveform data. It measures both detection accuracy and temporal picking precision under a fixed time-tolerance constraint. Use when the user wants to benchmark on STEAD (Stanford Earthquake Dataset), or asks about evaluating this task. Reports F1.
Installs into .claude/skills of the current project.
Are you the author of Greenphase Eval?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-greenphase-eval)
---
name: greenphase-eval
description: Evaluates the capability of seismic models to detect earthquake events and precisely pick P- and S-wave arrival times from continuous three-component waveform data. It measures both detection accuracy and temporal picking precision under a fixed time-tolerance constraint. Use when the user wants to benchmark on STEAD (Stanford Earthquake Dataset), or asks about evaluating this task. Reports F1.
metadata:
skill_kind: dataset_eval
source_arxiv: 2603.03344
bibtex_key: [REDACTED]
confidence: high
---
# greenphase-eval
> GreenPhase: A Green Learning Approach for Earthquake Phase Picking — Wu et al. (arXiv:2603.03344, 2026)
## What this evaluates
Evaluates the capability of seismic models to detect earthquake events and precisely pick P- and S-wave arrival times from continuous three-component waveform data. It measures both detection accuracy and temporal picking precision under a fixed time-tolerance constraint.
## Datasets
- **STEAD (Stanford Earthquake Dataset)** — total 1320000; splits: train (960000), val (240000), test (120000)
## Metrics
- `F1` **(primary)** — range: [0, 1]
- Harmonic mean of precision and recall: F1 = 2 * (Precision * Recall) / (Precision + Recall). Computed separately for detection, P-wave picking, and S-wave picking.
- `Precision` — range: [0, 1]
- Ratio of true positives to all positive predictions: Precision = TP / (TP + FP).
- `Recall` — range: [0, 1]
- Ratio of true positives to all actual positives: Recall = TP / (TP + FN).
## Input / output format
**Input**: One-minute, three-component seismic records sampled at 100 Hz.
**Output**: Binary detection label and predicted arrival times (in samples or seconds) for P- and S-waves.
## Scoring recipe
```python
def evaluate(predictions, gold, tolerance=0.5):
tp = fp = fn = 0
for gt in gold:
if gt in predictions and abs(predictions[gt] - gt) <= tolerance:
tp += 1
else:
fn += 1
for pred in predictions:
if pred not in gold or abs(predictions[pred] - gold[pred]) > tolerance:
fp += 1
prec = tp / (tp + fp) if (tp + fp) > 0 else 0
rec = tp / (tp + fn) if (tp + fn) > 0 else 0
f1 = 2 * prec * rec / (prec + rec) if (prec + rec) > 0 else 0
return prec, rec, f1
```
## Common pitfalls
- Timing tolerance is strictly fixed at 0.5 seconds (50 samples at 100 Hz); deviations invalidate the metric.
- Metrics are computed separately for detection, P-wave picking, and S-wave picking, not jointly.
- Detection uses a fixed decision threshold of 0.5 on the classifier output.
## Evidence (verbatim from paper)
> A prediction is counted as a true positive (TP) if it correctly identifies a ground-truth phase arrival and its absolute timing error does not exceed 0.5 s. A false positive (FP) arises in two situations: (1) when the model predicts a phase arrival in a noise waveform where no ground-truth arrival exists, or (2) when the prediction corresponds to a true arrival but its timing error is greater than 0.5 s, i.e., the pick is imprecise. A false negative (FN) occurs when a ground-truth phase arrival is present in the waveform, but the model fails to produce a corresponding prediction within 0.5 s. Under these definitions, precision, recall, and F1 provide a balanced evaluation of both the ability to correctly detect phases and the accuracy of their predicted arrival times.
## Citation
```bibtex
@misc{wu2026greenphase,
title={GreenPhase: A Green Learning Approach for Earthquake Phase Picking},
author={Wu et al.},
year={2026},
note={arXiv:2603.03344}
}
```
- arXiv: 2603.03344