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.
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])
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 )
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 )
We can finally compare the simulated naturalized flow with the ones given by @hydratecActualisationBaseDonnees2011a:
plot(OutputsModels4, Qobs = Qnat[IndPeriod_Run,])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.