An error occurred while loading the file. Please try again.
-
Delaigue Olivier authored
v0.2.9.19 CLEAN: Hydromodel argument of the PrepGR function is now checked by the match.arg function
b1efcab5
PrepGR <- function(ObsDF = NULL, DatesR = NULL, Precip = NULL, PotEvap = NULL, Qobs = NULL, TempMean = NULL,
ZInputs = NULL, HypsoData = NULL, NLayers = 5,
HydroModel, CemaNeige = FALSE) {
SuiteGR <- paste0("GR", c("1A", "2M", "4J", "5J", "6J", "4H", "5H"))
HydroModel <- match.arg(arg = HydroModel, choices = SuiteGR)
if (is.null(ObsDF) && (is.null(DatesR) | is.null(Precip) | is.null(PotEvap))) {
stop("Missing input data")
}
if (!is.null(ObsDF)) {
if (ncol(ObsDF) >= 5) {
TempMean <- ObsDF[, 5L]
}
}
if (!is.null(Qobs)) {
Qobs <- Qobs
} else {
Qobs <- NA
}
if (!is.null(TempMean)) {
TempMean <- TempMean
} else {
TempMean <- NA
}
if (is.null(ObsDF)) {
ObsDF <- data.frame(DatesR = DatesR,
Precip = Precip,
PotEvap = PotEvap,
Qobs = Qobs,
TempMean = TempMean)
}
if (!is.null(ObsDF)) {
ObsDF <- data.frame(DatesR = ObsDF[, 1L],
Precip = ObsDF[, 2L],
PotEvap = ObsDF[, 3L],
Qobs = ObsDF[, 4L],
TempMean = TempMean)
}
if (! any(attributes(ObsDF$DatesR[1])$tzone %in% "UTC")) {
stop("Non convenient date format. Time zone must be defined as \"UTC\"")
}
if (! CemaNeige) {
TypeModel <- sprintf("RunModel_%s", HydroModel)
}
if (CemaNeige && grepl("J|H", HydroModel)) {
TypeModel <- sprintf("RunModel_CemaNeige%s", HydroModel)
}
if (CemaNeige && !grepl("J|H", HydroModel)) {
warning("CemaNeige can not be used with ", HydroModel)
TypeModel <- sprintf("RunModel_%s", HydroModel)
}
FUN_MOD <- get(TypeModel)
MOD_obs <- CreateInputsModel(FUN_MOD = FUN_MOD, DatesR = ObsDF$DatesR,
Precip = ObsDF$Precip, PotEvap = ObsDF$PotEvap, TempMean = ObsDF$TempMean,
ZInputs = ZInputs, HypsoData = HypsoData, NLayers = NLayers, verbose = FALSE)
PrepGR <- list(InputsModel = MOD_obs, Qobs = ObsDF$Qobs, TypeModel = TypeModel)
class(PrepGR) <- c("PrepGR", "GR", "airGRt")
71727374
return(PrepGR)
}