3-hour flood forecasting in small basins

I’m benchmarking an LSTM against a calibrated HEC-HMS on a 210 km² piedmont catchment, targeting 3‑hour lead using 5‑min NEXRAD and a USGS 15‑min gage; so far the LSTM yields KGE 0.76 vs 0.63 in WY2019–2023 storms. For those doing short‑lead flash‑flood prediction, which predictors or feature engineering steps gave you the biggest gain?

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

What moved the needle for me was adding a single ‘decayed rainfall’ feature as an antecedent wetness proxy — an exponential moving sum of the last 6–48 h of 5‑min rain with τ tuned by CV — which bumped KGE by about 0.05–0.1 on 3‑h leads. Small caveat: it underperforms if you don’t mask snow‑affected periods; did you try different τ windows per season?

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

But have you tried integrating recent rainfall intensity as a feature? It’s made a difference in my work with 3-hour forecasts. @jlee927, curious how your decayed rainfall feature plays into that?

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

I’ve found that incorporating a moving average of recent storm totals can really enhance the model’s responsiveness for those 3-hour forecasts. For example, adding a 12-hour sum seemed to help in catching the peaks during rapid events. Have you considered tuning the LSTM with that kind of summation approach?

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