title: "03_First_Calibration"
author: "David Dorchies"
vignette: >
  %\VignetteIndexEntry{Calibration of naturalised semi-distributive model}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
knitr::opts_chunk$set(echo = TRUE)

Loading libraries, network and time series data

Run vignette("01_First_network", package = "griwrm") and vignette("02_First_run", package = "griwrm") before this one in order to create the Rdata files loaded below:

library(griwrm)
load("_cache/V01.RData")
load("_cache/V02.RData")

InputsCrit object

InputsCrit <- CreateInputsCrit(
  InputsModel = InputsModel, 
  FUN_CRIT = airGR::ErrorCrit_KGE2,
  RunOptions = RunOptions, Qobs = Qobs
)
str(InputsCrit)

GriwrmCalibOptions object

CalibOptions <- CreateCalibOptions(InputsModel)
str(CalibOptions)

Calibration

OutputsCalib <- Calibration(InputsModel, RunOptions, InputsCrit, CalibOptions)
save(OutputsCalib, file = "_cache/V03.RData")

Run model with Michel calibration

giropMichel <- girop
for(id in giropMichel$id) {
  giropMichel$params[giropMichel$id == id] <- list(OutputsCalib[[id]]$Param)
}

OutputsModels <- RunModel(
  InputsModel = InputsModel,
  RunOptions = RunOptions,
  girop = giropMichel
)

Save calibration data for next vignettes

save(giropMichel, file = "_cache/V03.RData")

Plot the result for each basin

htmltools::tagList(lapply(
  names(OutputsModels), 
  function(x) {
    plot(OutputsModels[[x]], Qobs = Qobs[RunOptions[[x]]$IndPeriod_Run,x] , main = x)
  }
))