The repository contains codes that demonstrate the use of interpretation techniques to gain insights into flooding mechanisms from LSTM-based hydrological models, as described in the papers
Jiang, S., Zheng, Y., Wang, C., & Babovic, V. (2022a). Uncovering flooding mechanisms across the contiguous United States through interpretive deep learning on representative catchments. Water Resources Research, 57, e2021WR030185. https://doi.org/10.1029/2021WR030185
and
Jiang, S., Bevacqua, E., & Zscheischler, J. (2022b). River flooding mechanisms and their changes in Europe revealed by explainable machine learning, Hydrology and Earth System Sciences, 26, 6339–6359, https://doi.org/10.5194/hess-26-6339-2022
Please refer to the file LICENSE for the license governing this code.
Kindly contact us with any questions or ideas you have concerning the code, or if you discover a bug. You may raise an issue here or contact Shijie Jiang through email at shijie.jiang(at)hotmail.com
The code was tested with Python 3.7. To use the code, please do:
-
Clone the repository:
git clone https://github.com/oreopie/hydro-interpretive-dl.git cd hydro-interpretive-dl
The study (Jiang et al., 2022a) was implemented based on MOPEX (Model Parameter Estimation Experiment) dataset by NOAA National Weather Service. One can download the data from the official website or HydroShare into
mopex
.
The study (Jiang et al., 2022b) was implemented based on the following datasets:
- GRDC dataset (https://www.bafg.de/GRDC)
- E-OBS gridded precipitation and temperature dataset (https://www.ecad.eu/download/ensembles/download.php)
- Catchment attributes and boundaries obtained from the Global Streamflow Indices and Metadata Archive (GSIM) (https://doi.pangaea.de/10.1594/PANGAEA.887477) and GRDC (https://www.bafg.de/GRDC/EN/02_srvcs/22_gslrs/222_WSB/watershedBoundaries.html)
We provide a dataset for a sample catchment that contains daily precipitation, temperature, and discharge in
data
.
-
Install dependencies (conda is recommended to manage packages):
conda create -n hydrodeepx python=3.6.6 conda activate hydrodeepx pip install innvestigate tensorflow==1.13.1 h5py==2.10 numpy keras shap matplotlib jupyter tqdm
Note for this implementation,
tensorflow v1.x
is recommended, thoughtensorflow v2.x
may also work. -
Start
Jupyter Notebook
and run the Jupyter Notebooks in the repository locally.