09 · MET Pipeline Explorer
Round 3 · MET in the browser · data: (baked fallback offline) · reimagines MET core + METplus
The lab’s centerpiece argument. It walks the grid_stat/point_stat workflow as ten stages,
badging each one browser / pre-encode needed / offline, and then actually runs
the browser-computable stages live on a real case (AIGFS vs URMA precipitation):
threshold → 2×2 contingency → SL1L2 partial sums → CNT/CTS scores → FSS
Every computed value is displayed as a triplet: computed-in-browser · MET’s .stat value ·
Δ. Contingency counts are bit-identical; real-valued statistics match to ±5e-6 (MET’s
own 5-dp output rounding).
Structure
Section titled “Structure”apps/met-pipeline-explorer/ index.html entry config.js data-source configuration (R2 base URL) src/case-source.js R2 oracle loader → baked-case fallback (source-aware header) src/pipeline.js the 10-stage model src/kernel.js threshold/CTC/SL1L2/FSS kernels (integral-image FSS) src/heatmap.js field rendering data/realcase.js baked real case (574 KB module) + 88-check selftestValidation & benchmarks
Section titled “Validation & benchmarks”- 88/88 node selftest against the case’s own MET
.statoracle; browser-verified live on production (counts bit-identical, 0 bad deltas). Six real precip cases stream from R2 (SL1L2 Δ~1e-6, counts exact); the baked case keeps the single-file build honest offline. - The companion explainer (
docs/met-pipeline-explainer.html) carries measured benchmarks: the real 8k-cell case computes in 0.46 ms warm / 4.28 ms cold; SL1L2 reduction runs at ~70 M cells/s; a 2048² grid (4.2 M cells) stays sub-second on CPU. The 263 KB gzipped first-visit download includes the whole app and the real case.
Single-file build: dist/met-pipeline-explorer.html.
