This vignette is an example of flow naturalisation by modelling (Terrier et al. 2020).

By using the model calibrated with influenced flow on the Marne River, it’s now possible to model naturalised flows by dropping the connections to the Marne reservoir from the model.

Set the data

Loading naturalised data and influenced flow calibration:

# Input data for the model
load("_cache/V01.RData")
# Calibration in influenced flows
load("_cache/V05.RData")

Remove lag parameter in StDIZ_04 station because there is no longer upstream node on it.

Param6 <- Param5
Param6$STDIZ_04 <- Param6$STDIZ_04[-1]

Remove extra items from global configuration

selectedNodes <- c("STDIZ_04", "LOUVE_19", "VITRY_25", "CHALO_21", "MONTR_18", "NOISI_17")
griwrm4 <- griwrm[griwrm$id %in% selectedNodes,]
griwrm4[griwrm4$id == "NOISI_17", c("down", "length")] = NA # Downstream station instead of PARIS_05
plot(griwrm4)
#> NULL

Generate GRiwrmInputsModel object

data(QNAT)
InputsModel4 <- CreateInputsModel(griwrm4, DatesR, Precip, PotEvap, Qnat)
#> CreateInputsModel.GRiwrm: Treating sub-basin STDIZ_04...
#> CreateInputsModel.GRiwrm: Treating sub-basin MONTR_18...
#> CreateInputsModel.GRiwrm: Treating sub-basin LOUVE_19...
#> CreateInputsModel.GRiwrm: Treating sub-basin VITRY_25...
#> CreateInputsModel.GRiwrm: Treating sub-basin CHALO_21...
#> CreateInputsModel.GRiwrm: Treating sub-basin NOISI_17...

GriwmRunOptions object

IndPeriod_Run <- seq(366, length(DatesR)) # Until the end of the time series

The warmup period could also be defined as is:

IndPeriod_WarmUp = seq(1,IndPeriod_Run[1]-1)
RunOptions <- CreateRunOptions(
  InputsModel = InputsModel4,
  IndPeriod_WarmUp = IndPeriod_WarmUp,
  IndPeriod_Run = IndPeriod_Run
)

Run model with Michel calibration

OutputsModels4 <- RunModel(
  InputsModel4,
  RunOptions = RunOptions,
  Param = Param6
)
#> RunModel.GRiwrmInputsModel: Treating sub-basin STDIZ_04...
#> RunModel.GRiwrmInputsModel: Treating sub-basin MONTR_18...
#> RunModel.GRiwrmInputsModel: Treating sub-basin LOUVE_19...
#> RunModel.GRiwrmInputsModel: Treating sub-basin VITRY_25...
#> RunModel.GRiwrmInputsModel: Treating sub-basin CHALO_21...
#> RunModel.GRiwrmInputsModel: Treating sub-basin NOISI_17...

Compare simulated naturalised flow with the ones given by EPTB SGL

htmltools::tagList(lapply(
  names(OutputsModels4),
  function(x) {
    plot(OutputsModels4[[x]], Qobs = Qnat[IndPeriod_Run,x] , main = x)
  }
))

References

Terrier, Morgane, Charles Perrin, Alban de Lavenne, Vazken Andréassian, Julien Lerat, and Jai Vaze. 2020. “Streamflow Naturalization Methods: A Review.” Hydrological Sciences Journal, November, 1–25. https://doi.org/10.1080/02626667.2020.1839080.