13 · MODE Lab
Round 4 · Objects · data: · reimagines MET core (the MODE tool)
The whole MODE pipeline running live in the browser on the real precipitation case:
circular-disc convolution (missing-aware) → threshold → 8-connected objects → attributes (area, centroids, axis angle, aspect, convex hull, complexity, intensity percentiles) → MET’s fuzzy-logic total interest (piecewise-linear maps × the MODEConfig_default weights: boundary 4 · centroid 2 · intersection 2 · angle 1 · area-ratio 1) → matching at total_interest ≥ 0.70 → cluster merging via union-find over the match graph.
The full pipeline re-runs in ~12 ms, so convolution radius, threshold, and the interest threshold are sliders — the interactive feedback MODE’s notoriously fiddly parameters have always lacked.
Faithfulness, honestly stated
Section titled “Faithfulness, honestly stated”- The engine (
lib/met-mode.mjs, pure and DOM-free) follows MODE’s structure, attribute set, default weights and interest threshold; the distance-map breakpoints are MET-shaped defaults, rescaled to the grid diagonal in this app (MET’s shipped breakpoints assume a CONUS-size grid) and fully configurable. - This archive contains no MODE output, so there is no oracle — correctness rests on
lib/met-mode.selftest.mjs(42 checks: hand-worked disc geometry, rectangle moments, known-offset pair distances, interest-engine identities, a merging invariant) plus structural invariants enforced on the real case. - Omitted vs full MODE: curvature attributes, percentile-intensity object thresholds, asymmetric fcst/obs configs, secondary merge passes.
MTD (time domain)
Section titled “MTD (time domain)”The companion spike tools/bench/bench-mtd.mjs answers the matrix’s open MTD question:
3-D (x, y, t) 26-connected labeling of a 24-frame 512² stack takes ~101 ms (~107 MB
working set); 24×1024² takes ~379 ms (~428 MB) — feasible on desktop, memory-bound as
predicted, verified against a moving-blob case with a known answer.
Single-file build: dist/mode-lab.html (the real case travels with it).
