HAL Id: hal-02609956
https://hal.inrae.fr/hal-02609956
Submitted on 16 May 2020
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
airGR and airGRteaching: two packages for rainfall-runoff modeling and teaching hydrology
O. Delaigue, G. Thirel, L. Coron, P. Brigode
To cite this version:
O. Delaigue, G. Thirel, L. Coron, P. Brigode. airGR and airGRteaching: two packages for rainfall-runoff modeling and teaching hydrology. 15th edition of the International R User Conference, Jul 2019, Toulouse, France. pp.1, 2019. �hal-02609956�
airGR & airGRteaching: two packages for
rainfall-runoff modeling and teaching hydrology
Olivier Delaigue
1, Guillaume Thirel
1, Laurent Coron
2& Pierre Brigode
31 IRSTEA – Hydrology Research Group (HYCAR) – Antony, France 2 EDF – PMC Hydrometeorological Center – Toulouse, France
3 Nice-Sophia-Antipolis University – G´eoazur UMR 7329 – Sophia-Antipolis, France
air
The use of R is growing fast in hydrology, as it covers all the steps necessary to lead complete hydrological studies (Slater
et al., 2019). GR is a suite of lumped hydrological models designed for flow simulation at various time steps. The models
are available in the airGR package and can easily be implemented on a set of catchments with limited data requirements.
airGRteaching is an add-on to airGR which simplifies its use and is more specifically oriented towards teaching.
GR hydrological models
I Designed with the objective to be as efficient as possible for flow simulation at various time steps (from hourly to annual)
I Warranted complexity structures and limited data requirements
I Can be applied on a wide range of conditions, including snowy catchments (CemaNeige snow routine included)
From airGR to airGRteaching
I The GR hydrological models have been implemented in airGR (Coron et al., 2019) I airGRteaching (Delaigue et al., 2019) depends on airGR. It offers simplified
functionalities that are particularly suitable for teaching hydrology
Main components of the airGR package
Pot. evaporation computation (from temp.-based formula)
Optimization algorithm Calibration/Validation
testing procedure Criteria for model
calibration and evaluation
Outputs
• Time series of simulated flows and internal state variables
• Efficiency criteria
• Plot diagnostics for simulation
Inputs
• Precipitation and temperature time series • Streamflow time series
• Catchment size and latitude
• Hypsometric curve (for snow module)
Hydrological models • GR4H (hourly) • GR4J, GR5J, GR6J (daily) • GR2M (monthly) • GR1A (annual) Snow module • CemaNeige airGRteaching functionalities
I The package only requires a basic level of programming
I Three functions are sufficient to implement the modeling chain: . data preparation (PerpGR())
. model calibration (CalGR()) . flow simulation (SimGR())
I Static and dynamic plots can be applied on outputs of aforementionned functions I The package proposes a Shiny interface allowing to realize:
. simulations of flows by manual modification of parameters . automatic model calibrations
. visualization of the internal states of the model
airGRteaching GUI allowing to understand the roles of parameters and internal variables of models
Data preparation, calibration and simulation with the GR5J model (+ CemaNeige snow module)
## data.frame of observed data
data(L0123002)
BasinObs <- BasinObs[, c("Dates", "Precip", "ETP", "Qmm", "Temp")]
## preparation of observed data for modeling
Prep <- PrepGR(ObsDF = BasinObs, HydroModel = "GR5J", CemaNeige = TRUE,
ZInputs = median(BasinInfo$HypsoData), HypsoData = BasinInfo$HypsoData)
## calibration step
Cal <- CalGR(PrepGR = Prep, CalCrit = "KGE", verbose = FALSE,
WupPer = NULL, CalPer = c("1990-01-01", "1993-12-31"))
## plot the parameter values and the criterion value during calibration
plot(Cal, which = "iter")
## plot the time series of observed and simulated flows
plot(Cal, which = "ts", main = "Calibration step")
## simulation step using the result of the automatic calibration method
Sim <- SimGR(PrepGR = Prep, CalGR = Cal, EffCrit = "NSE",
WupPer = NULL, SimPer = c("1994-01-01", "1998-12-31"))
## Crit. NSE[Q] = 0.8376
## plot giving an overview of the model outputs
plot(Sim)
1
## data.frame of observed data
data(L0123002)
BasinObs <- BasinObs[, c("Dates", "Precip", "ETP", "Qmm", "Temp")]
## preparation of observed data for modeling
Prep <- PrepGR(ObsDF = BasinObs, HydroModel = "GR5J", CemaNeige = TRUE,
ZInputs = median(BasinInfo$HypsoData), HypsoData = BasinInfo$HypsoData)
## calibration step
Cal <- CalGR(PrepGR = Prep, CalCrit = "KGE", verbose = FALSE,
WupPer = NULL, CalPer = c("1990-01-01", "1993-12-31"))
## plot the parameter values and the criterion value during calibration
plot(Cal, which = "iter")
## plot the time series of observed and simulated flows
plot(Cal, which = "ts", main = "Calibration step")
## simulation step using the result of the automatic calibration method
Sim <- SimGR(PrepGR = Prep, CalGR = Cal, EffCrit = "NSE",
WupPer = NULL, SimPer = c("1994-01-01", "1998-12-31"))
## Crit. NSE[Q] = 0.8376
## plot giving an overview of the model outputs
plot(Sim) 1 0 20 60 100 450 500 550 600 X1
prod. store capacity [mm]
0 20 60 100 0.0 0.5 1.0 1.5 X2 intercatchment e xch. coef . [mm/d] 0 20 60 100 50 60 70 80 90 X3
routing store capacity [mm]
0 20 60 100 1.0 1.2 1.4 1.6 1.8 X4 UH time constant [d] 0 20 60 100 0.38 0.42 0.46 X5 intercatchment e xch. threshold [−] 0 20 60 100 0.70 0.80 0.90 C1 w eight f or sno wpack ther mal state [−] 0 20 60 100 2.0 2.5 3.0 3.5 C2 degree−da y melt coef . [mm/degC/d] 0 20 40 60 80 100 120 0.75 0.80 0.85 0.90 KGE
Evolution of parameters and efficiency criterion during the iterations of the steepest−descent step
## data.frame of observed data
data(L0123002)
BasinObs <- BasinObs[, c("Dates", "Precip", "ETP", "Qmm", "Temp")]
## preparation of observed data for modeling
Prep <- PrepGR(ObsDF = BasinObs, HydroModel = "GR5J", CemaNeige = TRUE,
ZInputs = median(BasinInfo$HypsoData), HypsoData = BasinInfo$HypsoData)
## calibration step
Cal <- CalGR(PrepGR = Prep, CalCrit = "KGE", verbose = FALSE,
WupPer = NULL, CalPer = c("1990-01-01", "1993-12-31"))
## plot the parameter values and the criterion value during calibration
plot(Cal, which = "iter")
## plot the time series of observed and simulated flows
plot(Cal, which = "ts", main = "Calibration step")
## simulation step using the result of the automatic calibration method
Sim <- SimGR(PrepGR = Prep, CalGR = Cal, EffCrit = "NSE",
WupPer = NULL, SimPer = c("1994-01-01", "1998-12-31"))
## Crit. NSE[Q] = 0.8376
## plot giving an overview of the model outputs
plot(Sim) 1 70 50 30 10 precip . [mm/d] solid liquid 01/1994 01/1995 01/1996 01/1997 01/1998 −10 10 temp . [ ° C] mean layers 01/1994 01/1995 01/1996 01/1997 01/1998 0 400 1000 sno w pack [mm] mean layers 01/1994 01/1995 01/1996 01/1997 01/1998 0 5 10 15 flo w [mm/d] 01/1994 01/1995 01/1996 01/1997 01/1998 observed simulated 150 0
Jan Mar May Jul Sep Nov
0
150
300
30−days rolling mean
precip . & flo w [mm/month] 0 0.2 0.4 0.6 0.8 1 non−exceedance prob. [−] 0.5 2 5 flo w [mm/d] observed simulated log scale 0.5 1 2 5 10 0.5 2 5 observed flow [mm/d] sim ulated flo w [mm/d] log scale
airGR websites: get started with the packages or discover advanced uses I High degree of customization with airGR
. https://hydrogr.github.io/airGR/
I Simple features to learn hydrology with airGRteaching . https://hydrogr.github.io/airGRteaching/ References
I Coron L., Delaigue, O., Thirel, G., Perrin C., Michel C. (2019). airGR: Suite of GR Hydrological
Models for Precipitation-Runoff Modelling. R package version 1.2.13.16. URL: https://CRAN.R-project.org/package=airGR.
I Delaigue, O., Coron, L. and Brigode, P. (2019). airGRteaching: Teaching Hydrological Modelling
with GR (Shiny Interface Included). R package version 0.3.6.29. URL: https://CRAN.R-project.org/package=airGRteaching.
I Slater, L., Thirel, G., Harrigan, S., Delaigue, O., Hurley, A., Khouakhi, A., Prodoscimi, I., Vitolo,
C. & Smith, K. (2019). Using R in hydrology: a review of recent developments and future directions. Hydrology and Earth System Sciences, 1-33. DOI: 10.5194/hess-2019-50.
National Research Institute of Science and Technology
for Environment and Agriculture HYDR
O