Skip to content

05 · Map-native Spatial Verification

Theme 03 · Spatial maps · data: real · baked · reimagines MET core (grid_stat + masks) + METplotpy

A pannable/zoomable Canvas error field with forecast/observation/error layers, named region masks, per-mask continuous + categorical MET statistics, hover readout, and a brush box. It renders the ratio-of-sums vs mean-of-ratios difference on screen.

apps/spatial-maps/
index.html entry
src/app.mjs boot + orchestration
src/grid.mjs gridded field model
src/masks.mjs named region masks
src/stats.mjs per-mask stats via lib/met-stats.mjs
src/mapview.mjs canvas pan/zoom rendering
data/field-real.json real AIGFS−URMA 2 m-T error field (binned from the v2 store)
data/field.json synthetic fallback field
  • Migrated to real data: field-real.json is a real AIGFS-vs-URMA 2 m-temperature error field binned from the v2 common-grid store (per-region ME +0.11 K, RMSE 1.18 K, r 0.975; 28/28 self-checks), with the synthetic field as offline fallback.
  • Grid-convention gotcha lives here: the v2 store is lon 0–360 with row 0 = south; the binning script converts both (see Lessons).
  • Single-file build: dist/spatial-maps.html (~456 KB).