1.
Final short conceptual risk model:
For each analysis unit (adaptive tile / catchment / pixel), compute a normalized Risk
Score ∈ [0,1] as a weighted combination of hazard, exposure, and vulnerability
features:
● Hazard: current rainfall intensity, API (antecedent), storm duration, predicted rainfall
in next window.
● Propagation: flow accumulation, contributing area, slope, distance to channel/outlet.
● Local susceptibility: elevation relative to local minima (depression depth), local
storage capacity (soil infiltration, imperviousness), land-use.
● Boundary conditions: river/sea level, drainage capacity, tide/surge (if applicable).
● Exposure: population/infrastructure presence (optional for scoring).
● Adaptive thresholding: compute percentiles across AOI so scores are comparable.
2.Full algorithm / workflow (detailed steps & pseudocode):
Inputs
● DEM (COG or GeoTIFF) — reprojected to local UTM meters.
● Precip rasters (real-time and recent history) aligned to grid or as station observations
(Mesonet, MRMS, IMERG).
● (Optional) Soil map (saturated hydraulic conductivity), land cover / imperviousness
raster, river network (NHD), tide/sea-level time series, drainage network capacity,
population/infrastructure layers.
● Configuration parameters: tileing thresholds, API decay τ, weights.
Preprocessing (one-time / periodic)
1. Reproject DEM → UTM, ensure no-data consistent.
2. Fill depressions (hydrologic fill) to remove spurious sinks (RichDEM or TauDEM).
3. Compute hydrologic attributes:
○ slope (degrees)
○ flow direction (D8)
○ flow accumulation (pixels and area in m²)
○ catchment delineation / watersheds for outlets (if required)
4. Compute local minima & depression depth:
○ For each pixel, compute elevation minus local minimum in a neighborhood /
contributing basin.
5. Load land cover & soil maps, resample to DEM grid: compute
impervious_fraction, infiltration_capacity (Ks proxy).
Runtime pipeline (every ingestion step, e.g., hourly)
A. Ingest precipitation inputs
● Latest raster P_t and previous n rasters {P_{t-1},...,P_{t-n}} or station time
series.
● If mixing raster + station: bias-correct radar/satellite using stations (simple
gauge-adjustment).
B. Compute local rainfall features
● intensity = mean(P_t over unit) (mm/hr)
● duration (hours of contiguous rainfall above threshold)
● API (antecedant precipitation index) per unit: API_t = P_t +
exp(-Δt/τ)*API_{t-1}
C. Routing & volume estimate
● For each pixel/unit compute contributing_volume = intensity *
contributing_area (m³/s proxy), incorporate rainfall duration for total volume.
● flow_velocity estimate from slope (Manning or power-law): v ≈ k *
sqrt(slope) (calibrate k).
D. Compare with storage & channel capacity
● available_storage = depression_volume + infiltration_capacity
* duration + drainage_capacity * duration
● overflow_flag = contributing_volume > available_storage (boolean)
or compute overflow_ratio = (contributing_volume -
available_storage) / (contributing_volume + ε)
E. Boundary conditions
● If within coastal buffer: include sea_level + surge and check backwater effects.
● If near river gauges: include river_stage and compare to bankfull threshold.
F. Compute normalized features (use robust percentiles 2–98):
● norm_intensity, norm_API, norm_rel_elev, norm_flowacc, norm_slope,
norm_impervious, norm_overflow_ratio, norm_river_stage_factor
Purpose: Make features comparable by removing units and
reducing outlier effects.
Use robust percentiles (2–98%) to scale values:
norm_feature=(feature−p2)/(p98−p2)
G. Risk score:
weighted sum (see formula above). Apply hysteresis / time smoothing to reduce flicker.
Purpose: Quantify flood/flooding hazard.
● Weighted sum of normalized features:
Risk=w1⋅norm_intensity+w2⋅norm_API+...+wn⋅norm_overflowRisk = w_1 \cdot
norm\_intensity + w_2 \cdot norm\_API + ... + w_n \cdot
norm\_overflowRisk=w1⋅norm_intensity+w2⋅norm_API+...+wn⋅norm_overflow
● Hysteresis/time smoothing: Avoids flickering risk values due to small changes
between time steps.
H. Decision logic & alerting
● if risk > alert_threshold and sustained > T_hours: send alert
● Include severity (Low/Medium/High/Critical) by thresholds on risk percentiles.
Purpose: Trigger warnings for users.
● Alert condition: If risk exceeds threshold and persists for more than
ThoursT_{hours}Thours.
● Severity levels: Based on risk percentiles (Low / Medium / High / Critical).
● Outputs: Messages to users, logs, polygons affected, expected lead time.
●
●
I. Output
● Raster GeoTIFF (COG) with risk score & component layers
● Tiles (PNG) for visualization
● Alerts + logs with affected polygons and lead time
● 3D Digital Twin / Model Output:
Purpose: Provide a realistic 3D simulation of terrain, water depth, and flow
dynamics.
Data used:
○ DEM (Digital Elevation Model) for terrain
○ Rasterized water depth or overflow layers
○ Flow velocity and contributing volume data
Output formats: 3D mesh (e.g., OBJ, GLTF), or interactive WebGL visualization.
Benefits:
○ Enables stakeholders to “see” floods in 3D, improving situational awareness.
○ Can be animated over time to visualize the evolution of water levels.
○ Supports integration with smart city platforms or virtual training simulations.