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 is a collection of scripts for calibrating the Lisflood model.
This Readme text explains how to use the scripts with the LISFLOOD hydrological model against streamflow observations in an automated manner for multiple catchments. The scripts loop through the catchments in ascending order of catchment area, calibrating LISFLOOD for each \interstation region" (i.e., the catchment area excluding the area of upstream catchments) using a genetic algorithm (https://github.com/DEAP/deap). The calibration tool was created by Hylke Beck 2014 (JRC, Princeton) hylkeb@princeton.edu Modified by Feyera Aga Hirpa in 2015 (JRC) feyera.hirpa@ouce.ox.ac.uk Modified by Valerio Lorini (valerio.lorini@ec.europa.eu) and Alfieri Lorenzo (lorenzo.alfieri@ec.europa.eu) in 2018 The submodule Hydrostats was created 2011 by Sat Kumar Tomer (modified by Hylke Beck)
The calibration procedure consists of several Python scripts to be run consecutively
Before you start.
Software required
- pcraster > 0.41 http://pcraster.geo.uu.nl/
- Python 2.7
- postscript (for figures, you can avoid it though)
Python packages
- netCDF4 https://pypi.org/project/netCDF4/
- pcraster http://pcraster.geo.uu.nl/
- pandas (pip install ...)
- numpy (pip install ...)
- matplotlib (pip install ...)
- deap (https://deap.readthedocs.io/en/master/installation.html)
You MUST run them in the correct order because they're outcomes depend on each other.
Order:
- CAL_1_CAL_VAL_PERIODS
- CAL_2_PREP_MISC_REMOVE_SMALL_CATCH
- CAL_3_PREP_MISC
- CAL_4_SPREAD_WORKLOAD
- CAL_5_PREP_FORCING
- CAL_6_CUTMAPS_LAUNCH (that then runs CAL_6_CUT_MAPS)
- CAL_7_PERFORM_CAL
- CAL_8_CLEAN_SUBCATCH_DIRS
- CAL_9_PARAMETER_MAPS
- CAL_10_COMPUTE_STATS_AND_FIGURES_TIME_SERIES
N.B. Run the scripts from the folder Root using absolute path , else if your write only relative path the job will not work when submitted to the queue.
this ... is OKpython /PATH_TO_CALIBRATION_SCRIPTS/CAL_5_PERFORM_CAL.py /PATH_TO_CALIBRATION_SCRIPTS/settings_calibration.txt /PATH_TO_CALIBRATION_SCRIPTS/CatchmentsToProcess_01.txt
this in NOT OKpython ./CAL_8_COMPUTE_STATS_AND_FIGURES_TIME_SERIES.py ./settings_reforecasts_9616_testColombia.txt ./CatchmentsToProcess_01.txt