knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(airGRiwrm)
library(seinebasin)

This vignette aims at showing an example of flow naturalization by modeling [@terrierStreamflowNaturalizationMethods2020].

By using the model calibrated with influenced flows on the Marne River, it is now possible to model naturalized flows by dropping the connections to the Marne reservoir from the model. Please note that this is not the only way to remove the influence of reservoirs.

Set the data

We first load the naturalized data and influenced flow calibrated parameters (for GR4J, see vignette("V05_Open-loop_influenced_flow_calibration", package = "airGRiwrm")):

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

We must remove the lag parameter in the STDIZ_04 station because there is no longer upstream node on it since we remove the only upstream element for this station, a reservoir uptake:

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

We remove extra items from a complete configuration to keep only the Marne system:

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)

We can now generate the new GRiwrmInputsModel object:

data(QNAT)
InputsModel4 <- CreateInputsModel(griwrm4,
                                  DatesR,
                                  Precip[, selectedNodes],
                                  PotEvap[, selectedNodes])

GriwmRunOptions object

We first define the run period:

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

We define the (optional but recommended) warm up period as a one-year period before the run period:

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

Run model with Michel calibration

We keep the optimized parameter values obtained in vignette("V05_Open-loop_influenced_flow_calibration", package = "airGRiwrm") and run the model:

OutputsModels4 <- RunModel(
  InputsModel4,
  RunOptions = RunOptions,
  Param = Param6
)

Compare simulated naturalized flow with the ones given by EPTB SGL

We can finally compare the simulated naturalized flow with the ones given by @hydratecActualisationBaseDonnees2011a:

plot(OutputsModels4, Qobs = Qnat[IndPeriod_Run,])

References



inrae/airGRiwrm documentation built on Sept. 27, 2024, 6:08 p.m.