RunModel_CemaNeige: Run with the CemaNeige snow module

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/RunModel_CemaNeige.R

Description

Function which performs a single run for the CemaNeige snow module at the daily or hourly time step.

Usage

1
RunModel_CemaNeige(InputsModel, RunOptions, Param)

Arguments

InputsModel

[object of class InputsModel] see CreateInputsModel for details

RunOptions

[object of class RunOptions] see CreateRunOptions for details

Param

[numeric] vector of 2 (or 4 parameters if IsHyst = TRUE, see CreateRunOptions for details)

CemaNeige X1 weighting coefficient for snow pack thermal state [-]
CemaNeige X2 degree-day melt coefficient [mm/°C/time step]
CemaNeige X3 (optional) accumulation threshold [mm] (needed if IsHyst = TRUE)
CemaNeige X4 (optional) percentage (between 0 and 1) of annual snowfall defining the melt threshold [-] (needed if IsHyst = TRUE)

Details

The choice of the CemaNeige version (i.e. with or without hysteresis) is explained in CreateRunOptions.
For further details on the model, see the references section.
For further details on the argument structures and initialisation options, see CreateRunOptions.

Value

[list] containing the function outputs organised as follows:

$DatesR [POSIXlt] series of dates
$CemaNeigeLayers [list] list of CemaNeige outputs (1 list per layer)
$CemaNeigeLayers[[iLayer]]$Pliq [numeric] series of liquid precip. [mm/time step]
$CemaNeigeLayers[[iLayer]]$Psol [numeric] series of solid precip. [mm/time step]
$CemaNeigeLayers[[iLayer]]$SnowPack [numeric] series of snow pack (snow water equivalent) [mm]
$CemaNeigeLayers[[iLayer]]$ThermalState [numeric] series of snow pack thermal state [°C]
$CemaNeigeLayers[[iLayer]]$Gratio [numeric] series of Gratio [0-1]
$CemaNeigeLayers[[iLayer]]$PotMelt [numeric] series of potential snow melt [mm/time step]
$CemaNeigeLayers[[iLayer]]$Melt [numeric] series of actual snow melt [mm/time step]
$CemaNeigeLayers[[iLayer]]$PliqAndMelt [numeric] series of liquid precip. + actual snow melt [mm/time step]
$CemaNeigeLayers[[iLayer]]$Temp [numeric] series of air temperature [°C]
$CemaNeigeLayers[[iLayer]]$Gthreshold [numeric] series of melt threshold [mm]
$CemaNeigeLayers[[iLayer]]$Glocalmax [numeric] series of local melt threshold for hysteresis [mm]
$StateEnd [numeric] states at the end of the run: CemaNeige states [mm & °C]. See CreateIniStates for more details

Refer to the provided references or to the package source code for further details on these model outputs.

Author(s)

Laurent Coron, Audrey Valéry, Vazken Andréassian, Olivier Delaigue, Guillaume Thirel

References

Riboust, P., Thirel, G., Le Moine, N. and Ribstein, P. (2019). Revisiting a simple degree-day model for integrating satellite data: Implementation of SWE-SCA hystereses. Journal of Hydrology and Hydromechanics, 67(1), 70–81, doi: 10.2478/johh-2018-0004.

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? Part 1 - Comparison of six snow accounting routines on 380 catchments. Journal of Hydrology, 517(0), 1166-1175, doi: 10.1016/j.jhydrol.2014.04.059.

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? Part 2 - Sensitivity analysis of the Cemaneige snow accounting routine on 380 catchments. Journal of Hydrology, 517(0), 1176-1187, doi: 10.1016/j.jhydrol.2014.04.058.

See Also

RunModel_CemaNeigeGR4J, CreateInputsModel, CreateRunOptions, CreateIniStates, CreateCalibOptions.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
library(airGR)

## load of catchment data
data(L0123002)

## preparation of the InputsModel object
InputsModel <- CreateInputsModel(FUN_MOD = RunModel_CemaNeige, DatesR = BasinObs$DatesR,
                                 Precip = BasinObs$P,TempMean = BasinObs$T,
                                 ZInputs = BasinInfo$HypsoData[51], HypsoData=BasinInfo$HypsoData,
                                 NLayers = 5)

## run period selection
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"))


## --- original version of CemaNeige

## preparation of the RunOptions object
RunOptions <- CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,
                               IndPeriod_Run = Ind_Run)

## simulation
Param <- c(CNX1 = 0.962, CNX2 = 2.249)
OutputsModel <- RunModel_CemaNeige(InputsModel = InputsModel,
                                   RunOptions = RunOptions, Param = Param)

## results preview
plot(OutputsModel)


## --- version of CemaNeige with the Linear Hysteresis

## preparation of the RunOptions object
RunOptions <- CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,
                               IndPeriod_Run = Ind_Run, IsHyst = TRUE)

## simulation
Param <- c(CNX1 = 0.962, CNX2 = 2.249, CNX3 = 100, CNX4 = 0.4)
OutputsModel <- RunModel_CemaNeige(InputsModel = InputsModel,
                                   RunOptions = RunOptions, Param = Param)

## results preview
plot(OutputsModel)

Example output

input series were successfully created on 5 elevation layers for use by CemaNeige
Warning messages:
1: In CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,  :
  model warm up period not defined: default configuration used
  the year preceding the run period is used 

2: In CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,  :
  model states initialisation not defined: default configuration used
3: In CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,  :
  'MeanAnSolidPrecip' not defined: it was automatically set to c(659,659,659,659,659)  from the 'InputsModel' given to the function. Be careful in case your application is (short-term) forecasting.

Warning messages:
1: In CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,  :
  model warm up period not defined: default configuration used
  the year preceding the run period is used 

2: In CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,  :
  model states initialisation not defined: default configuration used
3: In CreateRunOptions(FUN_MOD = RunModel_CemaNeige, InputsModel = InputsModel,  :
  'MeanAnSolidPrecip' not defined: it was automatically set to c(659,659,659,659,659)  from the 'InputsModel' given to the function. Be careful in case your application is (short-term) forecasting.

airGR documentation built on April 27, 2021, 9:07 a.m.