Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A Web-based system Intelligent Dam Decisions and Assessment, is currently operational for Detroit Dam, OR:


The repository contains scripts and files necessary for setting up the system and customizing it for any dam of interest. The iDDEA system can be decoupled into the container (frontend) and modeling framework for the content (backend), to arrive at an intelligent system that improves the productivity and independent reuse of each component.

The backend framework uses the weather forecasts from Numerical Weather Prediction models to simulate hydrologic model and a data-based Artificial Neural Network (ANN) model and generates optimized release decisions.

The frontend architecture disseminates the forecasted meteorological variables, reservoir inflow, optimized operations and retrospective weekly assessment of forecasts and hydropower benefits.

The following sections describe each of the two components.

1. Backend Architecture

The backend of the DSS comprises of four different modules embedded into a framework, to produce optimized reservoir releases for 1-16 days lead time. The modules are coupled with each other, where one’s output becomes the input to the next to generate the different results that serve as the content for the frontend template-based architecture. Because the DSS backend is designed to be model-agnostic, two different models were implemented for generating the reservoir inflow forecasts – one that uses a physically based hydrologic model while other using the data-based approach of Artificial Neural Networks (ANNs).

The individual components are described next along with the location of scripts in this repository for each component

Weather Forecast Model

The GFS model, run by the National Oceanic and Atmospheric Administration (NOAA), produces global forecast fields in almost realtime for lead time of 1-16 days at each data assimilation cycle (00, 06, 12 and 18 UTC). These forcings are downloaded and processed to be used by the hydrologic/ANN model for generating the flow forecasts.

Because the coarse resolution atmospheric forcings produced by the global scale NWP models are often not detailed enough for the relatively small reservoir catchments, dynamic downscaling was performed using the Weather Research Forecasting (WRF) model to prepare forcings for hydrologic model. The scripts for GFS processing are available under iDDEA/backend/wrf-setup and, while the WRF's namelist configuration files for Detroit dam are provided under iDDEA/backend/wrf-setup/.

However, for the ANN model, the need of WRF downscaling was eliminated due to basin-averaged inputs provided to ANN model. The scripts for processing GFS data for the ANN inputs are available under iDDEA/backend/ann-model. The user can read more about WRF model's downloading and setup here:

Hydrologic Model (Variable Infiltration Capacity, VIC)

The macroscale, distributed Variable Infiltration Capacity (VIC) hydrologic model (Liang et al. 1994) was chosen to model the reservoir inflows ( The time step of the VIC model simulation was selected as daily with a spatial resolution of 0.1˚, considering the limitations of the user agency environment such as internet connectivity and restrictions in the computational power. The VIC model is forced with the NCDC hindcast forcings and WRF-downscaled GFS forecast forcings of precipitation, temperature, and wind speed at 0.1˚ resolution. Routing of streamflow was performed separately using the routing model of Lohmann et al. (1996). The user is referred to Ahmad & Hossain et al. (2019) for details on calibration and validation of the model.

The VIC and Routing model's parameter and input files for Detroit dam are available in the repository under iDDEA/backend/vic-setup/

Data-Based (ANN) Forecast Model

A three-layered ANN was designed using antecedent precipitation (2 days), baseflow (3 days), streamflow (3 days; for lead times of 4-7 days), moving average streamflow (3-, 5- and 8-day window based on lead time), forecast precipitation (1 day) and forecast min/max temperature (1 day each) as the input predictors. The use of basin-averaged NWP fields from GFS model alleviates the need of computationally expensive dynamic downscaling using WRF.

The ANN model was built in the python scripting language usign the open-sourcelibrary called pyrenn ( The model's config files and scripts to process the inputs are available under iDDEA/backend/ann-model/

Reservoir Operations Model

The reservoir operations were modeled at a time daily step to produce the optimized release policy over the forecast horizon of 7 days. As the forecast skill reduces with increasing lead time, the optimization model uses the updated flow forecasts (based on VIC or ANN model) every other day. This strategy is called model predictive control (MPC) (Turner et al. 2017), which provides the optimal release policy over the forecast horizon. However, only the first two values of this policy are actually applied to the system, and the same optimization procedure is repeated using updated forecasts at the next time step over a forecast horizon shifted two steps ahead.

The optimization was formulated as a Multi-objective Optimization Problem (MOP) with the objective functions of hydropower maximization and flood control (Madsen et al. 2009). The Non-dominated Sorting Genetic Algorithm (NSGA-II; Deb et al. 2000) was used to yield the optimal solutions from which an appropriate alternative was chosen at suitable satisfaction levels of both the objectives. The open-source library of platypus ( was used to setup the optimization model and generate advisory for optimized operations.

The model scripts are available under iDDEA/backend/reservoir-operations/

Benefits Assessment

Assessment of the optimized release decisions is performed against the observed operations without any optimization, on every day of the model run retrospectively over the past week. The optimized hydropower benefits are obtained using the optimized releases while passing the observed inflow into the system. These optimized releases are obtained from the MPC approach where the optimization is performed at every alternate step with the updated forecasts. The observed hydropower benefits, however, are computed from observed operations without any optimization/forecasts.

The scripts for continuous assessment of the optimal strategy obtained from VIC and ANN-based forecasts are available under iDDEA/backend/reservoir-operations/ ( and

2. Frontend Architecture

The other primary component that serves as the link between the complex models running in the backend and the user (dam operator) is the frontend or visualization framework of the i-DDEA DSS. This framework is organized into several modules to help achieve the desired characteristics of the DSS. The three main aspects of the user experience considered here are – visual, functional and technical elements that are implemented using various open source tools, libraries and Application Program Interfaces (APIs).

The scripts and tools for the frontend are all available in the iDDEA/frontend folder. For customization, the user specifically needs to modify the iDDEA/frontend/index.html, iDDEA/frontend/js/dssreservoir.js, iDDEA/frontend/css/demo.css and html files under iDDEA/frontend/charts/ for the individual charts of timeseries visualization. The scripts are coded in a user friendly way such that any user with some experience in web-programming will be able to understand and modify them for any other dam of interest or for implementing a new feature in the system.


For any issues with the iDDEA DSS, suggestions, comments or feedback, please contact at


Web-based Intelligent Dam Decisions and Assessment







No releases published


No packages published