CreateIniStates.Rd 5.33 KB
Newer Older
1
2
3
4
5
6
7
\encoding{UTF-8}


\name{CreateIniStates}
\alias{CreateIniStates}


8
\title{Creation of the IniStates object possibly required by the CreateRunOptions functions}
9
10
11
12


\usage{
CreateIniStates(FUN_MOD, InputsModel,
13
  ProdStore = 350, RoutStore = 90, ExpStore = NULL,
14
15
16
17
18
19
20
21
22
  UH1 = NULL, UH2 = NULL,
  GCemaNeigeLayers = NULL, eTGCemaNeigeLayers = NULL,
  verbose = TRUE)
}


\arguments{
\item{FUN_MOD}{[function] hydrological model function (e.g. RunModel_GR4J, RunModel_CemaNeigeGR4J)}

23
\item{InputsModel}{[object of class \code{InputsModel}] see \code{\link{CreateInputsModel}} for details}
24

25
\item{ProdStore}{[numeric] production store level [mm]}
26

27
\item{RoutStore}{[numeric] routing store level [mm]}
28

29
\item{ExpStore}{(optional) [numeric] series of exponential store level (negative) [mm] for the GR6J model}
30

31
\item{UH1}{(optional) [numeric] unit hydrograph 1 levels [mm]}
32

33
\item{UH2}{(optional) [numeric] unit hydrograph 2 levels [mm]}
34

35
\item{GCemaNeigeLayers}{(optional) [numeric] snow pack [mm], possibly used to create the CemaNeige model initial state}
36

37
\item{eTGCemaNeigeLayers}{(optional) [numeric] snow pack thermal state [°C], possibly used to create the CemaNeige model initial state}
38
39
40
41
42
43
44

\item{verbose}{(optional) [boolean] boolean indicating if the function is run in verbose mode or not, \code{default = TRUE}}

}


\value{
45
[list] object of class \code{IniStates} containing the initial model internal states; it always includes the following:
46
         \tabular{ll}{
47
48
49
         \emph{$Store          }  \tab  [numeric] list of store levels (\emph{$Prod}, \emph{$Rout} and \emph{$Exp}) \cr
         \emph{$UH             }  \tab  [numeric] list of unit hydrographs levels (\emph{$UH1} and \emph{$UH2}) \cr
         \emph{$CemaNeigeLayers}  \tab  [numeric] list of CemaNeige variables (\emph{$G} and \emph{$eTG})
50
51
52
53
54
         }
}


\description{
55
Creation of the \code{IniStates} object possibly required by the \code{\link{CreateRunOptions}} functions
56
57
58
}

\details{
59
20 numeric values are required for UH1 and 40 numeric values are required for UH2 if GR4J, GR5J or GR6J are used (respectivly 20*24 and 40*24 for the daily model GR4H). \cr
60
GCemaNeigeLayers and eTGCemaNeigeLayers require each numeric values as many as given in \code{\link{CreateInputsModel}} with the NLayersargument. eTGCemaNeigeLayers values can be negatives.\cr
61
62
The structure of the object of class \code{IniStates} returned is always exactly the same for all models (except for the unit hydrographs levels that contain more values with GR4H), even if some states do nt exist (e.g. \emph{$UH$UH1} for GR2M).  \cr
If CemaNeige is not used, \emph{$CemaNeigeLayers$G} and \emph{$CemaNeigeLayers$eTG} are set to \code{NA}. \cr
63
64

Nota: the \code{StateEnd} objects from the outputs of \code{RunModel*} functions already respect the format given by the \code{CreateIniStates} function. 
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
}


\examples{
library(airGR)

## loading catchment data
data(L0123001)

## preparation of the InputsModel object
InputsModel <- CreateInputsModel(FUN_MOD = RunModel_GR4J, DatesR = BasinObs$DatesR, 
                                 Precip = BasinObs$P, PotEvap = BasinObs$E)

## run period selection
Ind_Run <- seq(which(format(BasinObs$DatesR, format = "\%d/\%m/\%Y \%H:\%M")=="01/01/1990 00:00"), 
80
               which(format(BasinObs$DatesR, format = "\%d/\%m/\%Y \%H:\%M")=="31/12/1991 00:00"))
81
82


83
### preparation of the IniStates object with low values of ProdStore and RoutStore
84
IniStates <- CreateIniStates(FUN_MOD = RunModel_GR4J, InputsModel = InputsModel,
85
                             ProdStore = 0, RoutStore = 0, ExpStore = NULL,
86
87
88
89
90
91
                             UH1 = c(0.52, 0.54, 0.15, rep(0, 17)),
                             UH2 = c(0.057, 0.042, 0.015, 0.005, rep(0, 36)),
                             GCemaNeigeLayers = NULL, eTGCemaNeigeLayers = NULL)
str(IniStates)  

## preparation of the RunOptions object
92
93
RunOptions <- CreateRunOptions(FUN_MOD = RunModel_GR4J, InputsModel = InputsModel,
                               IndPeriod_WarmUp = 0L,
94
                               IndPeriod_Run = Ind_Run, IniStates = IniStates)
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
                               
## simulation
Param <- c(257.238, 1.012, 88.235, 2.208)
OutputsModel <- RunModel_GR4J(InputsModel = InputsModel, RunOptions = RunOptions, Param = Param)

## results preview
plot(OutputsModel, Qobs = BasinObs$Qmm[Ind_Run])                               
  
  
### preparation of the IniStates object with high values of ProdStore and RoutStore
IniStates <- CreateIniStates(FUN_MOD = RunModel_GR4J, InputsModel = InputsModel,
                             ProdStore = 450, RoutStore = 100, ExpStore = NULL,
                             UH1 = c(0.52, 0.54, 0.15, rep(0, 17)),
                             UH2 = c(0.057, 0.042, 0.015, 0.005, rep(0, 36)),
                             GCemaNeigeLayers = NULL, eTGCemaNeigeLayers = NULL)
str(IniStates)  

## preparation of the RunOptions object
RunOptions <- CreateRunOptions(FUN_MOD = RunModel_GR4J, InputsModel = InputsModel,
                               IndPeriod_WarmUp = 0L,
                               IndPeriod_Run = Ind_Run, IniStates = IniStates)
                               
## simulation
Param <- c(257.238, 1.012, 88.235, 2.208)
OutputsModel <- RunModel_GR4J(InputsModel = InputsModel, RunOptions = RunOptions, Param = Param)

## results preview
plot(OutputsModel, Qobs = BasinObs$Qmm[Ind_Run]) 
123
124
125
126
127
128
129
130
131
132
133
134
}


\author{
Olivier Delaigue
}


\seealso{
\code{\link{CreateRunOptions}}
}