_images/logo_transparent.PNG

SuperflexPy

SuperflexPy is an open-source framework written in Python for constructing flexible, conceptual, distributed hydrological models.

SuperflexPy builds on our 10-years-experience with the development and application of Superflex. The new framework is a completely new implementation of Superflex and expands the possibility offered by the old version, allowing to build completely customized, spatially-distributed hydrological models.

Thanks to its object-oriented architecture, SuperflexPy can be easily extended to satisfy your own needs, creating new elements with a completely customized logic, just in a few lines of pure Python code.

Constructing a semi-distributed conceptual hydrological model will be straightforward with SuperflexPy, with a user experience similar to any other Python framework:

  • inputs and outputs are handled directly by the modeler using common Python libraries (e.g. Numpy or Pandas for reading from text files) without the need of customized input files and long pre- and post-processing to adapt the data to the model;
  • the elements of the framework are declared and initialized through a Python script, without the need of long and complicated setup text files;
  • all the elements of the framework are objects with built-in functionalities for handling parameters and states, routing the fluxes, and solving common structures present in conceptual models (e.g. reservoirs, lag functions, etc.);
  • the mathematical model is separated from the numerical model, allowing for testing different numerical methods for solving differential equations;
  • the framework can be run at any level of complexity, from a single bucket to an entire river network;
  • the framework is easy interface with other Python modules for calibration and uncertainty analysis; we will provide an interface to common frameworks.

Team

SuperflexPy is actively developed at Eawag, by researchers in the Hydrological modelling group, with the support of external people.

The core team consists of:

Stay in touch

If you want to get e-mails about future developments of the framework, please subscribe to our mailing list clicking here.

Code and demos

The source code can be accessed at the repository.

A demo, implementing GR4J, is available in a Colab Notebook.