Param_Sets_GR4J {airGR} | R Documentation

## Generalist parameter sets for the GR4J model

### Description

These parameter sets can be used as an alternative for the grid-screening calibration procedure (i.e. first step in `Calibration_Michel`). Please note that the given GR4J X4u variable does not correspond to the actual GR4J X4 parameter. As explained in Andréassian et al. (2014; section 2.1), the given GR4J X4u value has to be adjusted (rescaled) using catchment area (S) [km2] as follows: X4 = X4u / 5.995 * S^0.3 (please note that the formula is erroneous in the publication). Please, see the example below.
As shown in Andréassian et al. (2014; figure 4), only using these parameters sets as the tested values for calibration is more efficient than a classical calibration when the amount of data is low (6 months or less).

### Format

Data frame of parameters containing four numeric vectors

- GR4J X1 production store capacity [mm]

- GR4J X2 intercatchment exchange coefficient [mm/d]

- GR4J X3 routing store capacity [mm]

- GR4J X4u unajusted unit hydrograph time constant [d]

### References

Andréassian, V., F. Bourgin, L. Oudin, T. Mathevet, C. Perrin, J. Lerat, L. Coron, L. Berthet (2014). Seeking genericity in the selection of parameter sets: impact on hydrological model efficiency. Water Resources Research, 50(10), 8356-8366. doi: 10.1002/2013WR014761.

### See Also

`RunModel_GR4J`, `Calibration_Michel`, `CreateCalibOptions`.

### Examples

    library(airGR)

    ## loading catchment data
    data(L0123001)

    ## loading generalist parameter sets
    data(Param_Sets_GR4J)
    str(Param_Sets_GR4J)

    ## computation of the real GR4J X4
    Param_Sets_GR4J$X4 <- Param_Sets_GR4J$X4u / 5.995 * BasinInfo$BasinArea^0.3
    Param_Sets_GR4J$X4u <- NULL
    Param_Sets_GR4J <- as.matrix(Param_Sets_GR4J)

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

    ## ---- calibration step

    ## short calibration period selection (< 6 months)
    Ind_Cal <- seq(which(format(BasinObs$DatesR, format = "%Y-%m-%d")=="1990-01-01"),
                   which(format(BasinObs$DatesR, format = "%Y-%m-%d")=="1990-02-28"))

    ## preparation of the RunOptions object for the calibration period
    RunOptions_Cal <- CreateRunOptions(FUN_MOD = RunModel_GR4J,
                                   InputsModel = InputsModel, IndPeriod_Run = Ind_Cal)

    ## simulation and efficiency criterion (Nash-Sutcliffe Efficiency)
    ## with all generalist parameter sets on the calibration period
    OutputsCrit_Loop <- apply(Param_Sets_GR4J, 1, function(Param) {
      OutputsModel_Cal <- RunModel_GR4J(InputsModel = InputsModel,
                                        RunOptions = RunOptions_Cal,
                                        Param = Param)
      InputsCrit  <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE, InputsModel = InputsModel,
                                      RunOptions = RunOptions_Cal, Obs = BasinObs$Qmm[Ind_Cal])
      OutputsCrit <- ErrorCrit_NSE(InputsCrit = InputsCrit, OutputsModel = OutputsModel_Cal)
      return(OutputsCrit$CritValue)
    })

    ## best parameter set
    Param_Best <- unlist(Param_Sets_GR4J[which.max(OutputsCrit_Loop), ])

    ## ---- validation step

    ## validation period selection
    Ind_Val <- seq(which(format(BasinObs$DatesR, format = "%Y-%m-%d")=="1990-03-01"),
                   which(format(BasinObs$DatesR, format = "%Y-%m-%d")=="1999-12-31"))

    ## preparation of the RunOptions object for the validation period
    RunOptions_Val <- CreateRunOptions(FUN_MOD = RunModel_GR4J,
                                       InputsModel = InputsModel, IndPeriod_Run = Ind_Val)

    ## simulation with the best parameter set on the validation period
    OutputsModel_Val <- RunModel_GR4J(InputsModel = InputsModel,
                                      RunOptions = RunOptions_Val,
                                      Param = Param_Best)

    ## results preview of the simulation with the best parameter set on the validation period
    plot(OutputsModel_Val, Qobs = BasinObs$Qmm[Ind_Val])

    ## efficiency criterion (Nash-Sutcliffe Efficiency) on the validation period
    InputsCrit_Val  <- CreateInputsCrit(FUN_CRIT = ErrorCrit_NSE, InputsModel = InputsModel,
                                    RunOptions = RunOptions_Val, Obs = BasinObs$Qmm[Ind_Val])
    OutputsCrit_Val <- ErrorCrit_NSE(InputsCrit = InputsCrit_Val, OutputsModel = OutputsModel_Val)

[Package airGR version 1.3.2.23 Index]