Skip to content
A distributed hydrological modeling platform
Python Jupyter Notebook Other
Branch: master
Clone or download
verseve wflow_sbm unsat flow its
Iterations for vertical unsaturated flow now based on fixed maximum change in soil water per iteration step. This was based on infiltration rate.
Latest commit 220f8b6 Jan 6, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
Sandbox move the rest up one directory Nov 7, 2018
Scripts wflow version number Sep 3, 2019
examples Add missing files for example model wflow_brantas_sbm_lintul Nov 4, 2019
notebooks update paths with wflow-py in docs Nov 7, 2018
openda_bmi move the rest up one directory Nov 7, 2018
tests Update wflow_sbm Sep 3, 2019
wflow wflow_sbm unsat flow its Jan 6, 2020
.gitattributes move files up, delete outdated QGIS manual Nov 7, 2018
.gitignore Version and xarray Oct 19, 2019
.readthedocs.yml Installation notes and environment.yml Nov 3, 2019
Dockerfile correct dir Apr 5, 2019
LICENSE Create LICENSE Jun 21, 2017 move files up, delete outdated QGIS manual Nov 7, 2018
README.rst README.rst not updated in last commit Nov 3, 2019
README.rst.bak Installation notes and environment.yml Nov 3, 2019
environment.yml better frozen init, bump gdal and proj Nov 6, 2019
logo.ico move files up, delete outdated QGIS manual Nov 7, 2018
pyinstall.cmd move files up, delete outdated QGIS manual Nov 7, 2018 Add fallback_version to (use_scm_version) Oct 28, 2019
wflow_all.spec bump recursion limit Nov 6, 2019



wflow consists of a set of Python programs that can be run on the command line and perform hydrological simulations. The models are based on the PCRaster Python framework. In wflow this framework is extended (the wf_DynamicFramework) so that models build using the framework can be controlled using the API. Links to BMI, OpenMI and OpenDAP have been made.

A link to the latest version can always be found at

Reference documentation at:

Obtaining wflow

Go to There you can download the source or a release. Also make sure you get the required third party models first (see below).

Which version to use

The master branch can change rapidly (and break functionality without warning) so please use one of the releases if possible. If you want to adjust things in the model(s) we assume you should be comfortable using the master branch.


The main dependencies for wflow are an installation of Python 3.6, and PCRaster 4.2+. Only 64 bit OS/Python is supported.

Installing Python

For Python we recommend using the Anaconda Distribution for Python 3, which is available for download from The installer gives the option to add python to your PATH environment variable. We will assume in the instructions below that it is available in the path, such that python, pip, and conda are all available from the command line.

Note that there is no hard requirement specifically for Anaconda's Python, but often it makes installation of required dependencies easier using the conda package manager.

Installing pcraster

Install as a conda environment

The easiest and most robust way to install wflow is by installing it in a separate conda environment. In the root repository directory there is an environment.yml file. This file lists all dependencies, except PCRaster, which must be installed manually as described above. Either use the environment.yml file from the master branch (please note that the master branch can change rapidly and break functionality without warning) , or from one of the releases {release}.

Run this command to start installing all wflow dependencies:

  • conda env create -f environment.yml

This creates a new environment with the name wflow. To activate this environment in a session, run:

  • activate wflow

For the installation of wflow there are two options (from the Python Package Index (PyPI) or from Github). To install a release of wflow from the PyPI (available from release 2018.1):

  • pip install wflow=={release}

To install directly from GitHub (from the HEAD of the master branch):

  • pip install git+

or from Github from a specific release:

  • pip install git+{release}

Now you should be able to start this environment's Python with python, try import wflow to see if the package is installed.

More details on how to work with conda environments can be found here:

If you are planning to make changes and contribute to the development of wflow, it is best to make a git clone of the repository, and do a editable install in the location of you clone. This will not move a copy to your Python installation directory, but instead create a link in your Python installation pointing to the folder you installed it from, such that any changes you make there are directly reflected in your install.

  • git clone
  • cd wflow
  • activate wflow
  • pip install -e .

Alternatively, if you want to avoid using git and simply want to test the latest version from the master branch, you can replace the first line with downloading a zip archive from GitHub:

Install using pip

Besides the recommended conda environment setup described above, you can also install wflow with pip. For the more difficult to install Python dependencies, it is best to use the conda package manager:

  • conda install numpy scipy gdal netcdf4 cftime xarray pyproj numba python-dateutil

Then install a release {release} of wflow (available from release 2018.1) with pip:

  • pip install wflow=={release}

Check if the installation is successful

To check it the install is successful, go to the examples directory and run the following command:

  • python -m wflow.wflow_sbm -C wflow_rhine_sbm -R testing

This should run without errors.


Although you can get everything with the python packages bundled with most linux distributions (CentOS, Ubuntu, etc) we have found that the easiest way is to install the linux version of Anaconda and use the conda tool to install all requirements apart from pcraster which has to be installed manually.

Since version 4.2, compiled versions of PCRaster are no longer distributed, so it will need to be built following the instructions given at


Unfortunately there is no pcraster build for osx yet. If anybody wants to pick this up please let the guys at know!



See doi of the release you use. If you use a snapshot of the development (without a DOI) cite as follows:

Jaap Schellekens, Willem van Verseveld, Martijn Visser, Hessel Winsemius, Tanja Euser, Laurène Bouaziz, Christophe Thiange, Sander de Vries, Hélène Boisgontier, Dirk Eilander, Daniel Tollenaar, Albrecht Weerts, Fedor Baart, Pieter Hazenberg, Arthur Lutz, Corine ten Velden, Mischa Jansen, Imme Benedict, YEAR. openstreams/wflow: unstable-master., obtained: DATE_OF_DOWNLOAD


To check the doi of releases you use:

You can’t perform that action at this time.