From 4ce6ecc73bf961ddf04b2816699b270d5d97b5c0 Mon Sep 17 00:00:00 2001 From: Delaigue Olivier <olivier.delaigue@irstea.fr> Date: Fri, 29 Jan 2021 02:56:08 +0100 Subject: [PATCH] v1.6.10.3 docs(vignette): add line breaks to avoid too long code lines in sd_model vignette --- DESCRIPTION | 6 ++-- NEWS.md | 2 +- vignettes/V05_sd_model.Rmd | 64 ++++++++++++++++++++++++-------------- 3 files changed, 45 insertions(+), 27 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 11139a61..b6d315ca 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: airGR Type: Package Title: Suite of GR Hydrological Models for Precipitation-Runoff Modelling -Version: 1.6.10.2 -Date: 2021-01-28 +Version: 1.6.10.3 +Date: 2021-01-29 Authors@R: c( person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")), person("Olivier", "Delaigue", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7668-8468"), email = "airGR@inrae.fr"), @@ -29,7 +29,7 @@ Imports: Suggests: knitr, rmarkdown, caRamel, coda, DEoptim, dplyr, FME, ggmcmc, hydroPSO, imputeTS, Rmalschains, - ggplot2, GGally, + GGally, ggplot2, testthat Description: Hydrological modelling tools developed at INRAE-Antony (HYCAR Research Unit, France). The package includes several conceptual rainfall-runoff models (GR4H, GR5H, GR4J, GR5J, GR6J, GR2M, GR1A), a snow accumulation and melt model (CemaNeige) and the associated functions for their calibration and evaluation. Use help(airGR) for package description and references. License: GPL-2 diff --git a/NEWS.md b/NEWS.md index 4743cdc6..b87f6aa6 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ -### 1.6.10.2 Release Notes (2021-01-28) +### 1.6.10.3 Release Notes (2021-01-29) #### New features diff --git a/vignettes/V05_sd_model.Rmd b/vignettes/V05_sd_model.Rmd index 5e814abc..265fe8a0 100644 --- a/vignettes/V05_sd_model.Rmd +++ b/vignettes/V05_sd_model.Rmd @@ -69,10 +69,12 @@ InputsModelUp <- CreateInputsModel(FUN_MOD = RunModel_GR4J, DatesR = BasinObs$Da Ind_Run <- seq(which(format(BasinObs$DatesR, format = "%Y-%m-%d") == "1990-01-01"), which(format(BasinObs$DatesR, format = "%Y-%m-%d") == "1999-12-31")) RunOptionsUp <- CreateRunOptions(FUN_MOD = RunModel_GR4J, - InputsModel = InputsModelUp, IndPeriod_Run = Ind_Run, - IniStates = NULL, IniResLevels = NULL, IndPeriod_WarmUp = NULL) + InputsModel = InputsModelUp + , IndPeriod_WarmUp = NULL, IndPeriod_Run = Ind_Run, + IniStates = NULL, IniResLevels = NULL) InputsCritUp <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE, InputsModel = InputsModelUp, - RunOptions = RunOptionsUp, VarObs = "Q", Obs = BasinObs$Qmm[Ind_Run]) + RunOptions = RunOptionsUp, + VarObs = "Q", Obs = BasinObs$Qmm[Ind_Run]) CalibOptionsUp <- CreateCalibOptions(FUN_MOD = RunModel_GR4J, FUN_CALIB = Calibration_Michel) OutputsCalibUp <- Calibration_Michel(InputsModel = InputsModelUp, RunOptions = RunOptionsUp, InputsCrit = InputsCritUp, CalibOptions = CalibOptionsUp, @@ -101,9 +103,9 @@ we need to create the `InputsModel` object completed with upstream information: InputsModelDown1 <- CreateInputsModel( FUN_MOD = RunModel_GR4J, DatesR = BasinObs$DatesR, Precip = BasinObs$P, PotEvap = BasinObs$E, - Qupstream = matrix(QObsUp, ncol = 1), # Upstream observed flow - LengthHydro = 100 * 1000, # Distance between upstream catchment outlet and the downstream one in m - BasinAreas = c(180, 180) # Upstream and downstream areas in km² + Qupstream = matrix(QObsUp, ncol = 1), # upstream observed flow + LengthHydro = 1e2 * 1e3, # distance between upstream catchment outlet & the downstream one [m] + BasinAreas = c(180, 180) # upstream and downstream areas [km²] ) ``` @@ -111,15 +113,19 @@ And then calibrate the combination of Lag model for upstream flow transfer and G ```{r} RunOptionsDown <- CreateRunOptions(FUN_MOD = RunModel_GR4J, - InputsModel = InputsModelDown1, IndPeriod_Run = Ind_Run, - IniStates = NULL, IniResLevels = NULL, IndPeriod_WarmUp = NULL) + InputsModel = InputsModelDown1, + IndPeriod_WarmUp = NULL, IndPeriod_Run = Ind_Run, + IniStates = NULL, IniResLevels = NULL) InputsCritDown <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE, InputsModel = InputsModelDown1, - RunOptions = RunOptionsDown, VarObs = "Q", Obs = QObsDown[Ind_Run]) + RunOptions = RunOptionsDown, + VarObs = "Q", Obs = QObsDown[Ind_Run]) CalibOptionsDown <- CreateCalibOptions(FUN_MOD = RunModel_GR4J, FUN_CALIB = Calibration_Michel, - IsSD = TRUE) # Don't forget to specify that it's an SD model here -OutputsCalibDown1 <- Calibration_Michel(InputsModel = InputsModelDown1, RunOptions = RunOptionsDown, - InputsCrit = InputsCritDown, CalibOptions = CalibOptionsDown, + IsSD = TRUE) # specify that it's a SD model +OutputsCalibDown1 <- Calibration_Michel(InputsModel = InputsModelDown1, + RunOptions = RunOptionsDown, + InputsCrit = InputsCritDown, + CalibOptions = CalibOptionsDown, FUN_MOD = RunModel_GR4J) ``` @@ -151,8 +157,10 @@ CritDown1 <- ErrorCrit_NSE(InputsCritDown, OutputsModelDown1) We calibrate the model with the `InputsModel` object previously created for substituting the observed upstream flow with the simulated one: ```{r} -OutputsCalibDown2 <- Calibration_Michel(InputsModel = InputsModelDown2, RunOptions = RunOptionsDown, - InputsCrit = InputsCritDown, CalibOptions = CalibOptionsDown, +OutputsCalibDown2 <- Calibration_Michel(InputsModel = InputsModelDown2, + RunOptions = RunOptionsDown, + InputsCrit = InputsCritDown, + CalibOptions = CalibOptionsDown, FUN_MOD = RunModel_GR4J) ParamDown2 <- OutputsCalibDown2$ParamFinalR ``` @@ -172,10 +180,14 @@ paste(format(Lag), "m/s") Both calibrations overestimate this parameter: ```{r} -mLag <- matrix(c(Lag, OutputsCalibDown1$ParamFinalR[1], OutputsCalibDown2$ParamFinalR[1]), ncol = 1) -rownames(mLag) = c("theoretical", "calibrated with observed upstream flow", - "calibrated with simulated upstream flow") -colnames(mLag) = c("Lag parameter") +mLag <- matrix(c(Lag, + OutputsCalibDown1$ParamFinalR[1], + OutputsCalibDown2$ParamFinalR[1]), + ncol = 1, + dimnames = list(c("theoretical", + "calibrated with observed upstream flow", + "calibrated with simulated upstream flow"), + c("Lag parameter"))) knitr::kable(mLag) ``` @@ -197,11 +209,17 @@ CritDownTheo <- ErrorCrit_NSE(InputsCritDown, OutputsModelDownTheo) ## Parameters and performance of each subcatchment for all calibrations ```{r} -comp <- matrix(c(0, OutputsCalibUp$ParamFinalR, rep(OutputsCalibDown1$ParamFinalR, 2), - OutputsCalibDown2$ParamFinalR, ParamDownTheo), ncol = 5, byrow = TRUE) -comp <- cbind(comp, c(OutputsCalibUp$CritFinal, OutputsCalibDown1$CritFinal, - CritDown1$CritValue, OutputsCalibDown2$CritFinal, CritDownTheo$CritValue)) -colnames(comp) <- c("Lag", paste0("x", 1:4), "NSE") +comp <- matrix(c(0, OutputsCalibUp$ParamFinalR, + rep(OutputsCalibDown1$ParamFinalR, 2), + OutputsCalibDown2$ParamFinalR, + ParamDownTheo), + ncol = 5, byrow = TRUE) +comp <- cbind(comp, c(OutputsCalibUp$CritFinal, + OutputsCalibDown1$CritFinal, + CritDown1$CritValue, + OutputsCalibDown2$CritFinal, + CritDownTheo$CritValue)) +colnames(comp) <- c("Lag", paste0("X", 1:4), "NSE") rownames(comp) <- c("Calibration of the upstream subcatchment", "Calibration 1 with observed upstream flow", "Validation 1 with simulated upstream flow", -- GitLab