Skip to content

09 · MET Pipeline Explorer

Round 3 · MET in the browser · data: real · streamed (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).

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 selftest
  • 88/88 node selftest against the case’s own MET .stat oracle; 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.