RunModel_GR2M.Rd 5.2 KB
Newer Older
Delaigue Olivier's avatar
Delaigue Olivier committed
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/RunModel_GR2M.R
\encoding{UTF-8}
\name{RunModel_GR2M}
\alias{RunModel_GR2M}
\title{Run with the GR2M hydrological model}
\usage{
RunModel_GR2M(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}

\item{Param}{[numeric] vector of 4 parameters
\tabular{ll}{
GR2M X1      \tab production store capacity [mm]                 \cr
GR2M X2      \tab groundwater exchange coefficient [mm/month]    \cr
}}
}
\value{
[list] list containing the function outputs organised as follows:
         \tabular{ll}{
         \emph{$DatesR  }          \tab [POSIXlt] series of dates                                                    \cr
         \emph{$PotEvap }          \tab [numeric] series of input potential evapotranspiration [mm/h]                 \cr
         \emph{$Precip  }          \tab [numeric] series of input total precipitation [mm/h]                          \cr
         \emph{$Prod    }          \tab [numeric] series of production store level (X(2)) [mm]                        \cr
         \emph{$AE      }          \tab [numeric] series of actual evapotranspiration [mm/h]                          \cr
         \emph{$Perc    }          \tab [numeric] series of percolation (PERC) [mm/h]                                 \cr
         \emph{$PR      }          \tab [numeric] series of PR=PN-PS+PERC [mm/h]                                      \cr
         \emph{$Q9      }          \tab [numeric] series of HU1 outflow (Q9) [mm/h]                                   \cr
         \emph{$Q1      }          \tab [numeric] series of HU2 outflow (Q1) [mm/h]                                   \cr
         \emph{$Rout    }          \tab [numeric] series of routing store level (X(1)) [mm]                           \cr
         \emph{$Exch    }          \tab [numeric] series of potential semi-exchange between catchments [mm/h]         \cr
         \emph{$AExch   }          \tab [numeric] series of actual exchange between catchments (1+2) [mm/h]           \cr
         \emph{$QR      }          \tab [numeric] series of routing store outflow (QR) [mm/h]                         \cr
         \emph{$QD      }          \tab [numeric] series of direct flow from HU2 after exchange (QD) [mm/h]           \cr
         \emph{$Qsim    }          \tab [numeric] series of Qsim [mm/h]                                               \cr
         \emph{$StateEnd}          \tab [numeric] states at the end of the run (res. levels, HU1 levels, HU2 levels) [mm] \cr
         }
         (refer to the provided references or to the package source code for further details on these model outputs)
}
\description{
Function which performs a single run for the GR2M monthly lumped model.
}
\details{
For further details on the model, see the references section.
For further details on the argument structures and initialisation options, see \code{\link{CreateRunOptions}}.
}
\examples{
## load of catchment data
require(airGR)
data(L0123001)

## conversion of example data from daily to monthly time-step
TabSeries       <- data.frame(BasinObs$DatesR,BasinObs$P,BasinObs$E,BasinObs$T,BasinObs$Qmm)
TimeFormat      <- "daily"
NewTimeFormat   <- "monthly"
ConvertFun      <- c("sum","sum","mean","sum")
NewTabSeries    <- SeriesAggreg(TabSeries=TabSeries,TimeFormat=TimeFormat,
                                NewTimeFormat=NewTimeFormat,ConvertFun=ConvertFun)
BasinObs        <- NewTabSeries
names(BasinObs) <- c("DatesR","P","E","T","Qmm")

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

## run period selection
Ind_Run <- seq(which(format(BasinObs$DatesR,format="\%m/\%Y")=="01/1990"),
               which(format(BasinObs$DatesR,format="\%m/\%Y")=="12/1999"))

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

## simulation
Param <- c(265.072,1.040)
OutputsModel <- RunModel_GR2M(InputsModel=InputsModel,RunOptions=RunOptions,Param=Param)

## results preview
plot_OutputsModel(OutputsModel=OutputsModel,Qobs=BasinObs$Qmm[Ind_Run])

## efficiency criterion: Nash-Sutcliffe Efficiency
InputsCrit  <- CreateInputsCrit(FUN_CRIT=ErrorCrit_NSE,InputsModel=InputsModel,
                                RunOptions=RunOptions,Qobs=BasinObs$Qmm[Ind_Run])
OutputsCrit <- ErrorCrit_NSE(InputsCrit=InputsCrit,OutputsModel=OutputsModel)
cat(paste("  Crit  ",OutputsCrit$CritName,"  ",round(OutputsCrit$CritValue,4),"\\n",sep=""))

}
\author{
Laurent Coron (March 2015)
}
\references{
Mouelhi S. (2003),
      Vers une chaîne cohérente de modèles pluie-débit conceptuels globaux aux pas de temps pluriannuel, annuel, mensuel et journalier,
      PhD thesis (in French), ENGREF, Cemagref Antony, France. \cr
  Mouelhi, S., C. Michel, C. Perrin and V. Andréassian (2006),
      Stepwise development of a two-parameter monthly water balance model,
      Journal of Hydrology, 318(1-4), 200-214, doi:10.1016/j.jhydrol.2005.06.014.
}