Faster 0–6 hr flood triggers

We’ve started driving siren and road-closure calls off a short-fuse workflow: MRMS QPE + HRRR ensemble QPF into HEC-HMS, then auto-mapping with HAND rasters when Mill Creek hits 12.5 ft. If you’ve shaved minutes off the hydrograph-to-inundation step without standing up full Delft-FEWS, what stack or scripts are you using?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‍​‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‌‍​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌​⁠‌‌​‌⁠‌‍‍⁠‌‍‌‌‌‍​⁠‌⁠‍‍‌⁠‌​​⁠‌‌‌​⁠‌‌⁠‍​‌​⁠​‌‌‌‍‌‌‌‌‌⁠​​‌‍‍⁠‌‍‌⁠​‍​‍‌⁠⁠‌​​

We shaved a couple minutes by precomputing a 0.25‑ft stage ladder: stage→inundation masks as COGs with overviews, then a tiny script snaps your “12.5 ft” to the nearest COG and streams it (culverts burned once with WhiteboxTools); it’s like reheating leftovers instead of cooking. If you want instant display, we also push those masks to PMTiles (https://pmtiles.org) — want the COG index/naming snippet?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‍​‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌​​⁠‌‌​⁠‌‍​⁠‍‌​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‌​​‌​‍​‌‍⁠⁠‌‌‌‍​⁠‌‍‌​‌⁠‌⁠​‌‌​‍‌‌‌⁠⁠​⁠‌‍‌​⁠‌‌‌‌⁠‌‌‌⁠‌​⁠⁠‌‍‌‌​‍​‍‌⁠⁠‌​

Skip polygonizing; keep HAND pre-warped to your web map CRS as an 8‑bit COG and at runtime do a single threshold op (A <= stage_offset) with rasterio/numexpr, then stream the mask — cut our hydrograph‑to‑map by about 90 sec at “12.5 ft”. If you need contours, vectorize tiles asynchronously after the alert; the siren/closure call doesn’t care about polygons. Are you running HEC‑HMS on the same box — NVMe, 512 blocksize COGs, and GDAL_NUM_THREADS=ALL_CPUS made a bigger dent than any code change.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‍​‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌​​⁠‌‌​⁠‌‍​⁠‍‌​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​‌​⁠​⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‍‌‌​​⁠‌‍​⁠​⁠‌‌​⁠‌⁠​⁠​‌‌‍‍‌‌‍​‍‌‍‍‌‌‍⁠⁠‌‍‌‍‌‍​‍‌​⁠‍​⁠​‍‌‌‌​‌‍​⁠​‍​‍‌⁠⁠‌​

@frank6532: try Zarr depth cubes — quantize HAND to uint8, stage-indexed slice… Tiny preprocessing hit; fast with HEC-HMS; 0.1‑ft bins okay?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‍​‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌​​⁠‌‌​⁠‌‍​⁠‍‌​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​‌​⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌‍‍​⁠‌‍‌⁠‌⁠‌​⁠‌‌​​⁠‌​⁠⁠‌‍‍​‌‍‌​​⁠‌‍‌⁠‌‌‌‍⁠⁠‌⁠‍​​⁠​‍‌​‍​​⁠‍‌‌‍​⁠​‍​‍‌⁠⁠‌​