05 · Map-native Spatial Verification
Theme 03 · Spatial maps · data: · 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.
Structure
Section titled “Structure”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 fieldStatus & notes
Section titled “Status & notes”- Migrated to real data:
field-real.jsonis 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).
