Newer
Older
\name{RunModel_CemaNeigeGR4J}
\alias{RunModel_CemaNeigeGR4J}
\title{Run with the CemaNeigeGR4J hydrological model}
Delaigue Olivier
committed
\description{
Function which performs a single run for the CemaNeige-GR4J daily lumped model over the test period.
}
Delaigue Olivier
committed
RunModel_CemaNeigeGR4J(InputsModel, RunOptions, Param)
\arguments{
\item{InputsModel}{[object of class \emph{InputsModel}] see \code{\link{CreateInputsModel}} for details}
\item{RunOptions}{[object of class \emph{RunOptions}] see \code{\link{CreateRunOptions}} for details}
Delaigue Olivier
committed
\item{Param}{[numeric] vector of 6 (or 8 parameters if \code{IsHyst = TRUE}, see \code{\link{CreateRunOptions}} for details)
Delaigue Olivier
committed
\tabular{ll}{
GR4J X1 \tab production store capacity [mm] \cr
GR4J X2 \tab intercatchment exchange coefficient [mm/d] \cr
GR4J X3 \tab routing store capacity [mm] \cr
GR4J X4 \tab unit hydrograph time constant [d] \cr
CemaNeige X1 \tab weighting coefficient for snow pack thermal state [-] \cr
CemaNeige X2 \tab degree-day melt coefficient [mm/°C/d] \cr
CemaNeige X3 \tab (optional) accumulation threshold [mm] (needed if \code{IsHyst = TRUE}) \cr
CemaNeige X4 \tab (optional) percentage (between 0 and 1) of annual snowfall defining the melt threshold [-] (needed if \code{IsHyst = TRUE}) \cr
}}
Delaigue Olivier
committed
[list] containing the function outputs organised as follows:
Delaigue Olivier
committed
\tabular{ll}{
Delaigue Olivier
committed
\emph{$DatesR } \tab [POSIXlt] series of dates \cr
\emph{$PotEvap } \tab [numeric] series of input potential evapotranspiration [mm/d] (E) \cr
\emph{$Precip } \tab [numeric] series of input total precipitation (P) [mm/d] \cr
\emph{$Prod } \tab [numeric] series of production store level (S) [mm] \cr
\emph{$Pn } \tab [numeric] series of net rainfall (Pn) [mm/d] \cr
\emph{$Ps } \tab [numeric] series of the part of Pn filling the production store (Ps) [mm/d] \cr
\emph{$AE } \tab [numeric] series of actual evapotranspiration [mm/d] \cr
\emph{$Perc } \tab [numeric] series of percolation (Perc) [mm/d] \cr
\emph{$PR } \tab [numeric] series of Pr=Pn-Ps+Perc (Pr) [mm/d] \cr
\emph{$Q9 } \tab [numeric] series of UH1 outflow (Q9) [mm/d] \cr
\emph{$Q1 } \tab [numeric] series of UH2 outflow (Q1) [mm/d] \cr
\emph{$Rout } \tab [numeric] series of routing store level (R1) [mm] \cr
\emph{$Exch } \tab [numeric] series of potential semi-exchange between catchments [mm/d] \cr
\emph{$AExch1 } \tab [numeric] series of actual exchange between catchments for branch 1 [mm/d] \cr
\emph{$AExch2 } \tab [numeric] series of actual exchange between catchments for branch 2 [mm/d] \cr
\emph{$AExch } \tab [numeric] series of actual exchange between catchments (1+2) [mm/d] \cr
\emph{$QR } \tab [numeric] series of routing store outflow (Qr) [mm/d] \cr
\emph{$QD } \tab [numeric] series of direct flow from UH2 after exchange (Qd) [mm/d] \cr
\emph{$Qsim } \tab [numeric] series of simulated discharge (Q) [mm/d] \cr
\emph{$CemaNeigeLayers} \tab [list] list of CemaNeige outputs (1 list per layer) \cr
\emph{$CemaNeigeLayers[[iLayer]]$Pliq } \tab [numeric] series of liquid precip. [mm/d] \cr
\emph{$CemaNeigeLayers[[iLayer]]$Psol } \tab [numeric] series of solid precip. [mm/d] \cr
\emph{$CemaNeigeLayers[[iLayer]]$SnowPack } \tab [numeric] series of snow pack (snow water equivalent) [mm] \cr
\emph{$CemaNeigeLayers[[iLayer]]$ThermalState } \tab [numeric] series of snow pack thermal state [°C] \cr
\emph{$CemaNeigeLayers[[iLayer]]$Gratio } \tab [numeric] series of Gratio [0-1] \cr
\emph{$CemaNeigeLayers[[iLayer]]$PotMelt } \tab [numeric] series of potential snow melt [mm/d] \cr
\emph{$CemaNeigeLayers[[iLayer]]$Melt } \tab [numeric] series of actual snow melt [mm/d] \cr
\emph{$CemaNeigeLayers[[iLayer]]$PliqAndMelt } \tab [numeric] series of liquid precip. + actual snow melt [mm/d] \cr
\emph{$CemaNeigeLayers[[iLayer]]$Temp } \tab [numeric] series of air temperature [°C] \cr
\emph{$CemaNeigeLayers[[iLayer]]$Gthreshold } \tab [numeric] series of melt threshold [mm] \cr
\emph{$CemaNeigeLayers[[iLayer]]$Glocalmax } \tab [numeric] series of local melt threshold for hysteresis [mm] \cr
Delaigue Olivier
committed
\emph{RunOptions$WarmUpQsim} \tab [numeric] series of simulated discharge (Q) on the warm-up period [mm/d] \cr
\emph{RunOptions$Param } \tab [numeric] parameter set parameter set used by the model \cr
Delaigue Olivier
committed
\emph{$StateEnd} \tab [numeric] states at the end of the run: store & unit hydrographs levels [mm], CemaNeige states [mm & °C]. See \code{\link{CreateIniStates}} for more details \cr
Delaigue Olivier
committed
}
Delaigue Olivier
committed
Refer to the provided references or to the package source code for further details on these model outputs.
Delaigue Olivier
committed
The choice of the CemaNeige version is explained in \code{\link{CreateRunOptions}}. \cr
Delaigue Olivier
committed
For further details on the model, see the references section. \cr
For further details on the argument structures and initialisation options, see \code{\link{CreateRunOptions}}.
Delaigue Olivier
committed
\cr
\cr
See \code{\link{RunModel_GR4J}} to look at the diagram of the hydrological model.
data(L0123002)
## preparation of the InputsModel object
Delaigue Olivier
committed
InputsModel <- CreateInputsModel(FUN_MOD = RunModel_CemaNeigeGR4J, DatesR = BasinObs$DatesR,
Precip = BasinObs$P, PotEvap = BasinObs$E, TempMean = BasinObs$T,
ZInputs = median(BasinInfo$HypsoData),
HypsoData = BasinInfo$HypsoData, NLayers = 5)
Delaigue Olivier
committed
Ind_Run <- seq(which(format(BasinObs$DatesR, format = "\%Y-\%m-\%d")=="1990-01-01"),
Delaigue Olivier
committed
which(format(BasinObs$DatesR, format = "\%Y-\%m-\%d")=="1999-12-31"))
## --- original version of CemaNeige
Delaigue Olivier
committed
RunOptions <- CreateRunOptions(FUN_MOD = RunModel_CemaNeigeGR4J, InputsModel = InputsModel,
Delaigue Olivier
committed
Param <- c(X1 = 408.774, X2 = 2.646, X3 = 131.264, X4 = 1.174,
CNX1 = 0.962, CNX2 = 2.249)
OutputsModel <- RunModel_CemaNeigeGR4J(InputsModel = InputsModel,
RunOptions = RunOptions, Param = Param)
plot(OutputsModel, Qobs = BasinObs$Qmm[Ind_Run])
## efficiency criterion: Nash-Sutcliffe Efficiency
Delaigue Olivier
committed
InputsCrit <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE, InputsModel = InputsModel,
RunOptions = RunOptions, Obs = BasinObs$Qmm[Ind_Run])
OutputsCrit <- ErrorCrit_NSE(InputsCrit = InputsCrit, OutputsModel = OutputsModel)
## --- version of CemaNeige with the Linear Hysteresis
Delaigue Olivier
committed
Delaigue Olivier
committed
## preparation of the RunOptions object
Delaigue Olivier
committed
RunOptions <- CreateRunOptions(FUN_MOD = RunModel_CemaNeigeGR4J, InputsModel = InputsModel,
Delaigue Olivier
committed
IndPeriod_Run = Ind_Run, IsHyst = TRUE)
Delaigue Olivier
committed
Delaigue Olivier
committed
## simulation
Delaigue Olivier
committed
Param <- c(X1 = 408.774, X2 = 2.646, X3 = 131.264, X4 = 1.174,
CNX1 = 0.962, CNX2 = 2.249, CNX3 = 100, CNX4 = 0.4)
Delaigue Olivier
committed
OutputsModel <- RunModel_CemaNeigeGR4J(InputsModel = InputsModel,
Delaigue Olivier
committed
RunOptions = RunOptions, Param = Param)
Delaigue Olivier
committed
## results preview
plot(OutputsModel, Qobs = BasinObs$Qmm[Ind_Run])
## efficiency criterion: Nash-Sutcliffe Efficiency
Delaigue Olivier
committed
InputsCrit <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE, InputsModel = InputsModel,
RunOptions = RunOptions, Obs = BasinObs$Qmm[Ind_Run])
Delaigue Olivier
committed
OutputsCrit <- ErrorCrit_NSE(InputsCrit = InputsCrit, OutputsModel = OutputsModel)
Delaigue Olivier
committed
Laurent Coron, Claude Michel, Charles Perrin, Audrey Valéry, Vazken Andréassian, Olivier Delaigue, Guillaume Thirel
Delaigue Olivier
committed
Perrin, C., Michel, C. and Andréassian, V. (2003).
Improvement of a parsimonious model for streamflow simulation.
Delaigue Olivier
committed
Journal of Hydrology, 279(1-4), 275-289, \doi{10.1016/S0022-1694(03)00225-7}.
\cr\cr
Delaigue Olivier
committed
Riboust, P., Thirel, G., Le Moine, N. and Ribstein, P. (2019).
Delaigue Olivier
committed
Revisiting a simple degree-day model for integrating satellite data: Implementation of SWE-SCA hystereses.
Delaigue Olivier
committed
Journal of Hydrology and Hydromechanics, 67(1), 70–81, \doi{10.2478/johh-2018-0004}.
\cr\cr
Delaigue Olivier
committed
Valéry, A., Andréassian, V. and Perrin, C. (2014).
"As simple as possible but not simpler": What is useful in a temperature-based snow-accounting routine?
Delaigue Olivier
committed
Part 1 - Comparison of six snow accounting routines on 380 catchments.
Delaigue Olivier
committed
Journal of Hydrology, 517(0), 1166-1175, \doi{10.1016/j.jhydrol.2014.04.059}.
\cr\cr
Delaigue Olivier
committed
Valéry, A., Andréassian, V. and Perrin, C. (2014).
"As simple as possible but not simpler": What is useful in a temperature-based snow-accounting routine?
Delaigue Olivier
committed
Part 2 - Sensitivity analysis of the Cemaneige snow accounting routine on 380 catchments.
Delaigue Olivier
committed
Journal of Hydrology, 517(0), 1176-1187, \doi{10.1016/j.jhydrol.2014.04.058}.
\code{\link{RunModel_CemaNeige}}, \code{\link{RunModel_CemaNeigeGR5J}},
\code{\link{RunModel_CemaNeigeGR6J}}, \code{\link{RunModel_GR4J}},
\code{\link{CreateInputsModel}}, \code{\link{CreateRunOptions}}, \code{\link{CreateIniStates}}.