## ----warning=FALSE, include=FALSE--------------------------------------------- library(airGR) load(system.file("vignettesData/vignetteCNHysteresis.rda", package = "airGR")) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # data(X0310010) # summary(BasinObs) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # ## preparation of the InputsModel object # InputsModel <- CreateInputsModel(FUN_MOD = RunModel_CemaNeigeGR4J, # DatesR = BasinObs$DatesR, Precip = BasinObs$P, # PotEvap = BasinObs$E, TempMean = BasinObs$T, # ZInputs = median(BasinInfo$HypsoData), # HypsoData = BasinInfo$HypsoData, NLayers = 5) # # ## ---- calibration step # # ## calibration period selection # Ind_Cal <- seq(which(format(BasinObs$DatesR, format = "%Y-%m-%d") == "2000-09-01"), # which(format(BasinObs$DatesR, format = "%Y-%m-%d") == "2005-08-31")) # # # ## ---- validation step # # ## validation period selection # Ind_Val <- seq(which(format(BasinObs$DatesR, format = "%Y-%m-%d") == "2005-09-01"), # which(format(BasinObs$DatesR, format = "%Y-%m-%d") == "2010-07-31")) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # ## preparation of the RunOptions object for the calibration period # RunOptions_Cal <- CreateRunOptions(FUN_MOD = RunModel_CemaNeigeGR4J, # InputsModel = InputsModel, IndPeriod_Run = Ind_Cal, # IsHyst = TRUE) # # ## preparation of the RunOptions object for the validation period # RunOptions_Val <- CreateRunOptions(FUN_MOD = RunModel_CemaNeigeGR4J, # InputsModel = InputsModel, IndPeriod_Run = Ind_Val, # IsHyst = TRUE) # # ## preparation of the CalibOptions object # CalibOptions <- CreateCalibOptions(FUN_MOD = RunModel_CemaNeigeGR4J, # FUN_CALIB = Calibration_Michel, # IsHyst = TRUE) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # ## efficiency criterion: 75 % KGE'(Q) + 5 % KGE'(SCA) on each of the 5 layers # InputsCrit_Cal <- CreateInputsCrit(FUN_CRIT = rep("ErrorCrit_KGE2", 6), # InputsModel = InputsModel, RunOptions = RunOptions_Cal, # Obs = list(BasinObs$Qmm[Ind_Cal], # BasinObs$SCA1[Ind_Cal], # BasinObs$SCA2[Ind_Cal], # BasinObs$SCA3[Ind_Cal], # BasinObs$SCA4[Ind_Cal], # BasinObs$SCA5[Ind_Cal]), # VarObs = list("Q", "SCA", "SCA", "SCA", "SCA", "SCA"), # Weights = list(0.75, 0.05, 0.05, 0.05, 0.05, 0.05)) # # InputsCrit_Val <- CreateInputsCrit(FUN_CRIT = rep("ErrorCrit_KGE2", 6), # InputsModel = InputsModel, RunOptions = RunOptions_Val, # Obs = list(BasinObs$Qmm[Ind_Val], # BasinObs$SCA1[Ind_Val], # BasinObs$SCA2[Ind_Val], # BasinObs$SCA3[Ind_Val], # BasinObs$SCA4[Ind_Val], # BasinObs$SCA5[Ind_Val]), # VarObs = list("Q", "SCA", "SCA", "SCA", "SCA", "SCA"), # Weights = list(0.75, 0.05, 0.05, 0.05, 0.05, 0.05)) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # ## calibration # OutputsCalib <- Calibration(InputsModel = InputsModel, RunOptions = RunOptions_Cal, # InputsCrit = InputsCrit_Cal, CalibOptions = CalibOptions, # FUN_MOD = RunModel_CemaNeigeGR4J, # FUN_CALIB = Calibration_Michel) ## ----warning=FALSE, message=FALSE, eval=FALSE--------------------------------- # ## run on the calibration period # OutputsModel_Cal <- RunModel_CemaNeigeGR4J(InputsModel = InputsModel, # RunOptions = RunOptions_Cal, # Param = OutputsCalib$ParamFinalR) # # ## evaluation # OutputsCrit_Cal <- ErrorCrit(InputsCrit = InputsCrit_Cal, OutputsModel = OutputsModel_Cal) ## ----warning=FALSE------------------------------------------------------------ str(OutputsCrit_Cal, max.level = 2) ## ----warning=FALSE, message=FALSE, eval=FALSE--------------------------------- # ## run on the validation period # OutputsModel_Val <- RunModel_CemaNeigeGR4J(InputsModel = InputsModel, # RunOptions = RunOptions_Val, # Param = OutputsCalib$ParamFinalR) # # ## evaluation # OutputsCrit_Val <- ErrorCrit(InputsCrit = InputsCrit_Val, OutputsModel = OutputsModel_Val) ## ----warning=FALSE------------------------------------------------------------ str(OutputsCrit_Val, max.level = 2) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # ## preparation of RunOptions object # RunOptions_Cal_NoHyst <- CreateRunOptions(FUN_MOD = RunModel_CemaNeigeGR4J, # InputsModel = InputsModel, # IndPeriod_Run = Ind_Cal, # IsHyst = FALSE) # # RunOptions_Val_NoHyst <- CreateRunOptions(FUN_MOD = RunModel_CemaNeigeGR4J, # InputsModel = InputsModel, # IndPeriod_Run = Ind_Val, # IsHyst = FALSE) # # InputsCrit_Cal_NoHyst <- CreateInputsCrit(FUN_CRIT = ErrorCrit_KGE2, # InputsModel = InputsModel, # RunOptions = RunOptions_Cal_NoHyst, # Obs = BasinObs$Qmm[Ind_Cal], VarObs = "Q") # # ## preparation of CalibOptions object # CalibOptions_NoHyst <- CreateCalibOptions(FUN_MOD = RunModel_CemaNeigeGR4J, # FUN_CALIB = Calibration_Michel, # IsHyst = FALSE) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # ## calibration # OutputsCalib_NoHyst <- Calibration(InputsModel = InputsModel, # InputsCrit = InputsCrit_Cal_NoHyst, # RunOptions = RunOptions_Cal_NoHyst, # CalibOptions = CalibOptions_NoHyst, # FUN_MOD = RunModel_CemaNeigeGR4J, # FUN_CALIB = Calibration_Michel) ## ----warning=FALSE, eval=FALSE------------------------------------------------ # OutputsModel_Cal_NoHyst <- RunModel_CemaNeigeGR4J(InputsModel = InputsModel, # RunOptions = RunOptions_Cal_NoHyst, # Param = OutputsCalib_NoHyst$ParamFinalR) # # OutputsModel_Val_NoHyst <- RunModel_CemaNeigeGR4J(InputsModel = InputsModel, # RunOptions = RunOptions_Val_NoHyst, # Param = OutputsCalib_NoHyst$ParamFinalR) ## ----warning=FALSE, message=FALSE, eval=FALSE--------------------------------- # OutputsCrit_Cal_NoHyst <- ErrorCrit(InputsCrit = InputsCrit_Cal, # OutputsModel = OutputsModel_Cal_NoHyst) # # OutputsCrit_Val_NoHyst <- ErrorCrit(InputsCrit = InputsCrit_Val, # OutputsModel = OutputsModel_Val_NoHyst) ## ----warning=FALSE------------------------------------------------------------ str(OutputsCrit_Cal_NoHyst, max.level = 2) str(OutputsCrit_Val_NoHyst, max.level = 2)