# Convnetquake Eval

> Evaluates a convolutional neural network's ability to detect seismic events versus background noise and classify their geographic origin using raw waveform data. It probes the model's generalization to unseen temporal periods and non-repeating seismic events. Use when the user wants to benchmark on Oklahoma Seismic Dataset (OGS), or asks about evaluating this task. Reports detection accuracy.

- Skill: `qhjqhj00/convnetquake-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/convnetquake-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/convnetquake-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/convnetquake-eval

---


# convnetquake-eval

> Convolutional Neural Network for Earthquake Detection and Location — Perol et al. (2017) (arXiv:1702.02073, 2017)

## What this evaluates

Evaluates a convolutional neural network's ability to detect seismic events versus background noise and classify their geographic origin using raw waveform data. It probes the model's generalization to unseen temporal periods and non-repeating seismic events.

## Datasets

- **Oklahoma Seismic Dataset (OGS)** — total 834029; splits: train (-1), test (131281); repo https://github.com/tperol/ConvNetQuake

## Metrics

- `detection accuracy` **(primary)** — range: percent
  - Percentage of windows correctly classified as either earthquake or noise across the entire test set.
- `location accuracy` — range: percent
  - Percentage of windows predicted as events that are correctly assigned to their true geographic cluster (classes 1-6).

## Input / output format

**Input**: 10-second, 3-channel (HHZ, HHN, HHE) ground velocity waveform windows sampled at 100 Hz, normalized per month by subtracting the mean and dividing by the absolute peak amplitude.

**Output**: Discrete class label (0 for noise, 1-6 for geographic cluster) or probability distribution over the 7 classes.

## Scoring recipe

```python
def compute_metrics(preds, golds):
    correct_det = sum(1 for p, g in zip(preds, golds) if (p == 0) == (g == 0))
    det_acc = correct_det / len(golds)
    detected = [i for i, p in enumerate(preds) if p != 0]
    correct_loc = sum(1 for i in detected if preds[i] == golds[i])
    loc_acc = correct_loc / len(detected) if detected else 0
    return det_acc, loc_acc
```

## Common pitfalls

- Location accuracy is calculated only on windows predicted as events, not on the full test set.
- The test set uses a strict temporal split (July 2014) rather than random shuffling, so results do not generalize to other months without retraining.
- The dataset is heavily imbalanced (~831k noise vs ~2.9k events), requiring noise injection augmentation to prevent overfitting.

## Evidence (verbatim from paper)

> The detection accuracy is the percentage of windows correctly classified as earthquake or noise. We obtain 74.5 % location accuracy on the test set (see Table[1]).

## Citation

```bibtex
@misc{perol2017convnetquake,
  title={Convolutional Neural Network for Earthquake Detection and Location},
  author={Perol et al. (2017)},
  year={2017},
  note={arXiv:1702.02073}
}
```

- arXiv: 1702.02073

