Repository navigation
PhaseNet-Plus (Geysers), v2
PhaseNet-Plus-TF (STFT branch, polarity, event and magnitude heads) retrained on the Geysers data with the reviewed architecture: no resnet blocks, attention along time at stage 3 and the bottleneck, magnitude loss weight 0.1. Run v41_seis_tf_plus_seed1, step 24,000, EMA weights. Code: AI4EPS/PhaseNet-Plus 343d683 (architecture), phasenet==0.2.6.dev3 (P(up) at each P pick).
- 2.00 M parameters. The checkpoint declares
window_nx = 1(one station per patch; scores identical to the training nx, since attention stays within a station). - Not loadable by
phasenet<=0.2.6.dev1(different architecture); v1 / v1.1 stay for those versions.
Scores (Geysers val + test eval sets)
| model | P precision at recall 0.85 | S precision at recall 0.85 | polarity agreement | magnitude MAE per record |
|---|---|---|---|---|
| PhaseNet (2018) | 0.667 | 0.594 | ||
| v39 (magnitude weight 1.0) | 0.667 | 0.612 | 0.816 | 0.34 |
| v2 | 0.700 | 0.687 | 0.823 | 0.29 |
Magnitude is compressed at the ends (about +0.3 below M0.5, about -1.3 at M3 and above).
Class tests (EPS207 notebooks)
- QuakeFlow on 2025-08-14, 42 BG/NC stations: P recall 0.90, S 0.99 against the NCEDC picks, median offset 10 ms; NCEDC events found 162/167 by GaMMA, 154 by ADLoc, 153 by HypoDD; P polarity agreement 0.918.
- Focal mechanisms, 150 events of 2016 (4,739 analyst readings): polarity agreement 0.876 (impulsive 0.911, emergent 0.735); HASH from model polarities vs analyst polarities, median Kagan angle 12°. BG borehole stations keep the archive sign convention: flip their polarities per station before HASH.
from phasenet.utils.inference import load_checkpoint, predict_2d, detect_picks
model = load_checkpoint("phasenet_plus_geysers_v2.pth") # EMA weights
scores, _ = predict_2d(model, waveform) # waveform: (3, n_stations, nt); scores (4, n_stations, nt): noise, P, S, P(up)
picks = detect_picks(scores, channel_ids, {}, begin_time_iso) # P picks carry phase_polarity = P(up)sha256: 56d8ca3c3d6a7a96751a8a1e3dacf0881ac4a624bcba50fd69c3bbc4223b7f60