Environmental systems, such as rivers, channel networks, and reservoir cascades, are characterised by our ability to influence their behavior within the boundary conditions given by nature. Our demands on the system may be at odds with what the system is able to provide: we may want to use more water than is flowing into the system, for example.

Furthermore, demands may also conflict with each other. In a hydro power setting, for instance, spill flows to facilitate fish migration conflict with an operator’s objective to maximize power generation through the turbines.

This calls for several techniques:

  • Planning ahead using a system model
  • Resolving conflicting constraints and optimization goals
  • Robustness in face of meteorological forecast uncertainty

Multi-objective optimisation

RTC-Tools offers two approaches to the handling of competing goals and objectives. One is the weighting method, by which goals are traded off against each other. The other is lexicographic goal programming, a method whereby goals are arranged into an ordered list. This list is then worked down step by step, making sure that when optimising a goal, the previously optimised goals are no worse off. Lexicographic goal programming is a natural fit to systems for which goals have clearly defined priorities, such as safety concerns taking precedence over economic optimisation.

Forecast uncertainty

RTC-Tools supports the use of ensemble forecasts to generate robust solutions.

Extensible model library

The RTC-Tools model library is built using the Modelica modeling language. The Deltares Modelica library contains routing and reservoir models.

Users that want to introduce their own model components can do this by writing the governing equations in a new Modelica class. This flexibility has been used to apply RTC-Tools to other application areas, such as district heating systems.

Python scripting

RTC-Tools may be used as a Python package, facilitating programmatic formulation of complex optimisation problems.

Delft-FEWS integration

RTC-Tools can be tightly integrated with Delft-FEWS. Timeseries data, including ensemble forecasts, as well as parameter settings may be read from Delft-FEWS. Using the same Published Interface file format, optimized solutions are communicated back to Delft-FEWS.

More information can be found on the RTC-Tools web page.

Service packages

RTC-Tools is open source and can be used without of charge. Deltares offers different support packages, please contact the product manager for support packages.

We offer courses within the frame of the Delft Software Days. For individual courses, please contact the product management.


RTC-Tools can be installed using Python’s package manager pip. Detailed installation instructions, examples and documentation can be found at found at rtc-tools.readthedocs.io.

The source code of RTC-Tools is available on GitLab.

Share this page.