Skip to content
Switch branches/tags

Latest commit


Git stats


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

Binder Build status License: MIT

iRONS (interactive Reservoir Operation Notebooks and Software) is a python package that enables the simulation, forecasting and optimisation of reservoir systems. The package includes a set of interactive notebooks that demonstrate key functionalities through practical examples, and that can be run in the Jupyter environment either locally or remotely via a web browser.

The core functions (you can find them in the Toolbox folder)

The iRONS package provides a set of Python functions implementing typical reservoir modelling tasks, such as: estimating inflows to a reservoir, simulating operator decisions, closing the reservoir mass balance equation – in the context of both short-term forecasting and long-term predictions.

The notebooks (you can find them in the Notebooks folder)

iRONs is based on the use of interactive Jupyter Notebooks ( Jupyter Notebooks is a literate programming environment that combines executable code, rich media, computational output and explanatory text in a single document. The notebooks included in iRONS are divided in two sections:

A. Knowledge transfer: A set of simple examples to demonstrate the value of simulation and optimisation tools for water resources management – i.e. why one should use these tools in the first place.

B. Implementation: A set of workflow examples showing how to apply the iRONS functions to more complex problems such as: generating inflow forecasts through a rainfall-runoff model (including bias correcting weather forecasts); optimising release scheduling against an inflow scenario or a forecast ensemble; optimising an operating policy against time series of historical or synthetic inflows.

Quick start

Click on the button below to open iRONS on so you can run, modify and interact with the Notebooks online.


In the section A - Knowledge transfer you can start with the Notebook iRONS/Notebooks/A - Knowledge transfer/1.a. Simple example of how to use Jupyter Notebooks.ipynb

In the section B - Implementation you can start with the Notebook iRONS/Notebooks/B - Implementation/1.b. Bias correction of weather forecasts.ipynb

🚨 Note in the section B - Implementation the Notebook iRONS/Notebooks/B - Implementation/1.a. Downloading ensemble weather forecasts.ipynb can only be run locally after installing iRONS.


To install and run iRONS locally:

git clone
cd iRONS
pip install -r requirements.txt

🚨 Note this installation option includes both the Toolbox and Notebooks as well the example forecast data (ECMWF forecasts netcdf files) used by the Notebooks in the section B - Implementation.

Or you can install only the Toolbox:

pip install irons

If you get an error message try with:

pip install --ignore-installed irons

🚨 Note this installation option does NOT include the Notebooks.

If you use JupyterLab instead of Jupyter Notebooks you will need to install the following extensions:

jupyter labextension install @jupyter-widgets/jupyterlab-manager # install the plotly extension
jupyter labextension install bqplot@0.4.6 # install the bqplot extension
jupyter labextension install @jupyterlab/plotly-extension # install the Jupyter widgets extension


Simulation and multi-objective optimization of the operation of a reservoir system




No releases published


No packages published