Lisflood OS
This repository hosts source code of LISFLOOD Calibration tool. Go to Lisflood OS page for more information.
Other useful resources
| Project | Documentation | Source code |
|---|---|---|
| Lisflood | Model docs | https://github.com/ec-jrc/lisflood-code |
| User guide | ||
| Lisvap | Docs | https://github.com/ec-jrc/lisflood-lisvap |
| Calibration tool | Docs | https://github.com/ec-jrc/lisflood-calibration (this repository) |
| Lisflood Utilities | https://github.com/ec-jrc/lisflood-utilities | |
| Lisflood Usecases | https://github.com/ec-jrc/lisflood-usecases |
This repository contains a collection of Python tools and libraries for calibrating the LISFLOOD hydrological model.
The calibration tools were created by Hylke Beck 2014 (JRC, Princeton). The submodule Hydrostats was created 2011 by Sat Kumar Tomer (modified by Hylke Beck). Modified by Feyera Aga Hirpa in 2015 (JRC). Modified by Valerio Lorini and Alfieri Lorenzo (JRC) in 2018. The calibration tools were completely refactored by Corentin Carton de Wiart (ECMWF) for the EFAS 5.0 and GloFAS 4.0 releases in 2023, and updated by Stefania Grimaldi and Carlo Russo (JRC) for the GloFAS 5.0 and EFAS 6.0 releases in 2026.
The calibration procedure consists of several Python scripts to be run consecutively. If needed, the tools are also available through a Python library called liscal:
import liscal
All the scripts found in the bin folder are just entry points for liscal functionalities.
Installation
You can install the calibration tools and the liscal library from GitHub:
git clone https://github.com/ec-jrc/lisflood-calibration.git
cd lisflood-calibration
pip install .
Once installed, you can run the scripts located in the bin folder or build your own workflow using the liscal library.
Calibration Workflow
The calibration worfklow is split into five main parts:
- Setting up the calibration and prepare the static data and station list.
- Filter the stations and compute the catchments dependencies graph together with some pre-processing maps (catchments masks, stations outlets, etc.).
Scripts involved in this step:
CAL_1_FILTER_STATIONS.py: filters stations and keep those with enough observations.CAL_2_HYDRO_DEPENDENCIES.py: computes the hydrological dependencies between the stations.
- Cut all the static maps and forcings and create one folder per catchment, named using the station ID of the station corresponding to the catchment. Best practice is to save the cutmaps outputs in a different folder than the calibration to avoid having to recompute them.
Scripts involved in this step:
CAL_3_MASK.py: extracts the mask of the stations.CAL_4_CUT_MAPS.py: cuts all the static and forcing maps from the mask computed in the previous step.CAL_4b_CUT_MAPS_list.pyscript provides a solution to apply CAL_4_CUT_MAPS.py to loop all the catchments
- From these maps, calibrate the catchment with respect to the observations at the station outlet of the catchment.
Scripts involved in this step:
CAL_5_EXTRACT_STATION.py: extracts station metadata and observation for a specified catchment.- Optional:
CAL_5b_SET_PRERUN_IN_SETTINGS.pyto set prerun date in settings file from station metadata. CAL_6_CALIBRATION.py: runs the calibration for a specified catchment.CAL_7_LONGTERM_RUN.py: runs the long term run for a specified catchment using the calibrated parameters.- Optional:
CAL_8_POSTPROCESSING.pycomputes calibration statistics for the catchment. - Optional:
CAL_9_DIAGNOSTICS.pycomputes calibration diagnostics for a list of catchments.
- Once all the catchments have been calibrated, we can compute the global parameter map:
CAL_10_PARAMETER_MAPS.py: concatenates all the catchments calibrated parameters into PCRaster parameters maps.
These scripts need to be run in sequence. Note that steps 3 and 4 are executed per catchment (or station). As the process can be heavy, it is up to the user to dispatch the workflow on the computing architecture and to make sure the upstream catchnments are run first. An example of workflow using PBS scheduling can be found in CAL_6-7_PERFORM_CAL_PBS.py.
for more details, please refer to the main documentation: https://ec-jrc.github.io/lisflood-calibration/
Metadata
Release files for liscal 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| liscal-2.0.0.tar.gz | 2.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| liscal-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.0 MB
Release files / liscal-2.0.0.tar.gz
| Download URL | liscal-2.0.0.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
49fb427427c440852607f141cb4eef59a5a50c6d3ddf59e97954913b1021cf93
|
|
BLAKE2b-256 checksum How to use checksums |
94a66d96572a39fd4875b9eeb76b37998f047817e82d4baffd0c4cce40c18332
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / liscal-2.0.0-py3-none-any.whl
| Download URL | liscal-2.0.0-py3-none-any.whl |
|---|---|
| Size | 876.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
11a42b0b9e989cc1362463e519dce9c1381508ea325bb69d26ac006a9cad58c8
|
|
BLAKE2b-256 checksum How to use checksums |
c184b0417a65223d80323ed6f6cf846b95fcffbb18f3ab48ed93c0e29255367e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|