Skip to main content

RSMS Task 4 — context overlays (map + UI)

This document captures near-term scope, technical fit with rsms-suite, and a phased rollout for subcontract Task 4 (“incorporate other databases”). It complements:


Scope lock (what we care about now)​

Context-only. Show hydrologic monitoring, facilities, and infrastructure near the river so planners and scenario authors see real-world conditions and upstream context that matters operationally. This does not change Fortran plume math or ingestion of hydraulic outputs beyond existing RSMS flows (gages are display/context only unless separately wired into forcing—out of scope here).

Technical stack. Fits the current ArcGIS Maps SDK for JavaScript usage in rsms-frontend-react: GeoJSONLayer, Map, layer toggles, pop-ups/templates, and standard widgets—similar to existing Ohio basin/static GeoJSON wiring (see rsms-frontend-react/src/pages/map/ohioRiverbasinGeoJsonLayer.js).

More ambitious integrations (live federated queries, authenticated EPA portals, spill projection geometry rebuilt inside RSMS, etc.) are explicitly out of scope for the first slices.


Relationship to other RSMS work​

TopicWhere it lives
Time-stamped HEC-RAS binary flow files and API/worker changesTask 3 route—handled outside this doc. Binary ingest paths are associated with riverflows-api-drf (not in this repo); RSMS consumes upgraded flows via existing integration patterns once published.
Ohio RiverFlows API usage for runsAlready used by worker/API flows in-suite; unrelated to Task 4 overlays except sharing the same map UX surface.
Results prefetch / charts / tablesSee rsms-results-prefetch-design and results storage docs—not duplicated here.

Architecture preferences (FastAPI vs frontend vs stored extracts)​

Three ideas often coexist:

  1. Thin backend proxy (FastAPI) — Centralizes API keys, caching, CORS, and logging. Useful when upstream services require server-side credentials or heavy normalization.

  2. Call external services directly from the frontend — Fewer moving parts; aligns when stakeholders prefer not adding another hop. Works best for public endpoints with acceptable CORS and rate limits.

  3. Self-hosted curated extracts (blob/static hosting or bundled GeoJSON) — RSMS-side snapshots + codified geography (reach IDs, mainstem/tributary, optional river-mile buckets) so the client does not repeat “within x miles of mile y” spatial filtering against raw national datasets on every session.

Practical recommendation: Ship two pilot overlays in order (USGS streamgages, then USACE bridges), using static or lightly refreshed GeoJSON, NWIS/feature APIs, or HTTPS Feature/Layer URLs keyed to RSMS river semantics; add FastAPI mediation only when a specific source forces it (auth, unstable CORS, or transform cost).


Pilot overlays (locked order)​

Each pilot is one vertical slice end-to-end (toggle, legend, pop-ups/templates, attribution, documented refresh or API usage)—then reuse the same integration pattern for backlog layers.

PilotLayerRationale
Pilot AUSGS streamgagesAlready implemented in legacy RSMS; port map/UI behavior into this repo’s ArcGIS Maps SDK stack (GeoJSONLayer / feature layers). Provides immediate hydraulic context alongside scenarios and results.
Pilot BUSACE bridgesMatches subcontract Task 4 emphasis on railroad bridges, Corps-standard bridge linkage, and navigation-adjacent inventory; second overlay after gages are stable.

Further regulatory/threat themes (NPDES, crossings, TRI, etc.) follow rsms-threat-layers-backlog.md after pilots A and B.


Phased rollout​

PhaseGoalTypical delivery
0 — FoundationsLayer toggle pattern, attribution/source links in UI, performance guardrails (scale-dependent rendering / clustering strategy decided per layer).Extend map module alongside existing GeoJSON layers; document SRID and fields in backlog rows.
1 — Pilot AUSGS streamgages ported from legacy RSMS (subset near modeled corridors).GeoJSON snapshot and/or NWIS waterservices / maps-facing endpoints (watch CORS—proxy if needed); pop-ups with site metadata + NWIS links as in legacy.
2 — Pilot BUSACE bridges (inventory aligned with subcontract Corps-standard bridge path).Static GeoJSON or USACE/ArcGIS-hosted layer URL; confirm attribution and currency expectations vs engineering manuals.
3 — Expand backlogAdditional themes from rsms-threat-layers-backlog.md ranked by OH relevance and licensing.Same integration paths; shared legend/pop-up components where possible.
4 — Optional mediationIntroduce FastAPI or worker-hosted ETL only where needed (credentials, pagination glue, merging multi-source attributes into RSMS codification keys).Keep frontend reading one stable contract (geojson_url + schema version).

EPA Region 5 “State Mapping Projects” alignment​

EPA Region 5’s interactive mapping program is a useful catalog of layer themes and workflows (FRS-derived facility layers, pipe/rail crossing spill projections, downstream tracing concepts, reporting widgets). RSMS will not replicate that entire authenticated portal in phase 1–2.

See rsms-threat-layers-r5-mapping for a concise pattern → RSMS hook mapping.


Document history​

DateChange
2026-05-21Initial overview + phased rollout + pointers to mirrored upgrade artifacts.
2026-05-21Linked rsms-task4-and-r5-layer-catalog.md for Task 4/R5 enumeration + status tracking.
2026-05-22Locked pilots: Pilot A — USGS streamgages (legacy port); Pilot B — USACE bridges; phased rollout renumbered.