Skip to content

v1.5.0 — Storm overflow (CSO) layer

Latest

Choose a tag to compare

@aallan aallan released this 03 Jun 17:19
· 182 commits to main since this release

Storm Overflow (CSO) Layer

This release adds a fourth marker type to the Floodwatch map covering ~75 Combined Sewer Overflow sites in the Taw catchment, sourced live from South West Water's contribution to Water UK's National Storm Overflow Hub.

What you'll see on the map

  • Purple circle markers at every CSO site, sized by importance:
    • 22px for major facilities (wastewater treatment works)
    • 14px for minor sites (pumping stations, sewer-network overflows)
  • Shaded by status: discharging now (saturated purple) → spilled within 48h (medium) → quiet (pale) → monitor offline (hollow)
  • Hover any marker for the expanded site name (e.g. "Chulmleigh Wastewater Treatment Works Settled Storm Overflow") — works on EA station markers too
  • Click for a full popup: current state, asset type, permit ID, EDM last-ping, monthly + 30-day spill totals, daily-totals histogram (or event list when sparse), and a multi-year annual hours bar chart

Under the hood

  • Hourly polling of the SWW live FeatureServer accumulates a per-site event log in data/cso_<permit_id>.csv. The "Last 30 days" chart fills out over time as polling proceeds — popup shows "(monitoring started 3rd Jun 2026)" to set expectations.
  • One-off historical backfill (fetch_cso_history.py) pulls 2021–2025 annual spill totals from Water UK's All-Years FeatureServer. The annual hours chart is populated from day one.
  • Filtered to Taw catchment via river-name allowlist on the SWW receivingWaterCourse field (TAW, MOLE, YEO, LITTLE DART, DALCH, BRAY, etc.) — Torridge and other adjacent catchments excluded.

Test coverage

  • 181 tests (91 Python + 90 JavaScript), up from 104
  • 27 new Python tests for the CSO event-log state machine
  • 50 new JS tests for marker rendering, visual-state mapping, stats computation, and overlap detection

Other improvements

  • Legend reorganised into two columns on desktop — no more overlap with Leaflet's zoom controls
  • README hero image updated to show the CSO layer in action
  • Documentation sweep across README, CHANGELOG, TESTING, CONTRIBUTING, INSTALL

Compatibility

No breaking changes — purely additive. Existing data files, configuration, and API behaviour unchanged.

Full diff: v1.4.1...v1.5.0