diff --git a/DESCRIPTION b/DESCRIPTION index 945d5c5b0aa4947eead8eea91fa1a7744700237f..f90d79b59d0ab8bb1cdcc3cebc6abcd1a57c355c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: airGR Type: Package Title: Suite of GR Hydrological Models for Precipitation-Runoff Modelling -Version: 1.2.14.11 +Version: 1.2.14.12 Date: 2019-04-17 Authors@R: c( person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")), diff --git a/NEWS.rmd b/NEWS.rmd index f73e72a6e1288a5c27ef4f5517b1fdd53bf10481..a977e3be09145c08fb353f4101b61da37e6e4470 100644 --- a/NEWS.rmd +++ b/NEWS.rmd @@ -14,7 +14,7 @@ output: -### 1.2.14.11 Release Notes (2019-04-17) +### 1.2.14.12 Release Notes (2019-04-17) #### New features diff --git a/R/ErrorCrit_KGE.R b/R/ErrorCrit_KGE.R index fcba7fd7b9d6116d7a0cfc1121c54c72c94447cb..008e64e9f2298cb70d612a6e099b1d385c1d62b3 100644 --- a/R/ErrorCrit_KGE.R +++ b/R/ErrorCrit_KGE.R @@ -7,25 +7,18 @@ ErrorCrit_KGE <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = T EC <- .ErrorCrit(InputsCrit = InputsCrit, Crit = "KGE", OutputsModel = OutputsModel, warnings = warnings) - if (!EC$CritCompute) { - CritValue <- NA - SubCritValues <- NA - SubCritNames <- NA - } else { + CritValue <- NA + SubCritValues <- rep(NA, 3) + SubCritNames <- c("r", "alpha", "beta") + SubCritPrint <- rep(NA, 3) + + if (EC$CritCompute) { ## Other variables preparation meanVarObs <- mean(EC$VarObs[!EC$TS_ignore]) meanVarSim <- mean(EC$VarSim[!EC$TS_ignore]) - iCrit <- 0 - SubCritPrint <- NULL - SubCritNames <- NULL - SubCritValues <- NULL - ## SubErrorCrit KGE rPearson - iCrit <- iCrit + 1 - SubCritPrint[iCrit] <- paste0(EC$CritName, " cor(sim, obs, \"pearson\") =") - SubCritValues[iCrit] <- NA - SubCritNames[iCrit] <- "r" + SubCritPrint[1L] <- paste0(EC$CritName, " cor(sim, obs, \"pearson\") =") Numer <- sum((EC$VarObs[!EC$TS_ignore] - meanVarObs) * (EC$VarSim[!EC$TS_ignore] - meanVarSim)) Deno1 <- sqrt(sum((EC$VarObs[!EC$TS_ignore] - meanVarObs) ^ 2)) @@ -41,14 +34,11 @@ ErrorCrit_KGE <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = T Crit <- Numer / (Deno1 * Deno2) } if (is.numeric(Crit) & is.finite(Crit)) { - SubCritValues[iCrit] <- Crit + SubCritValues[1L] <- Crit } ## SubErrorCrit KGE alpha - iCrit <- iCrit + 1 - SubCritPrint[iCrit] <- paste0(EC$CritName, " sd(sim)/sd(obs) =") - SubCritValues[iCrit] <- NA - SubCritNames[iCrit] <- "alpha" + SubCritPrint[2L] <- paste0(EC$CritName, " sd(sim)/sd(obs) =") Numer <- sd(EC$VarSim[!EC$TS_ignore]) Denom <- sd(EC$VarObs[!EC$TS_ignore]) @@ -59,14 +49,11 @@ ErrorCrit_KGE <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = T Crit <- Numer / Denom } if (is.numeric(Crit) & is.finite(Crit)) { - SubCritValues[iCrit] <- Crit + SubCritValues[2L] <- Crit } ## SubErrorCrit KGE beta - iCrit <- iCrit + 1 - SubCritPrint[iCrit] <- paste0(EC$CritName, " mean(sim)/mean(obs) =") - SubCritValues[iCrit] <- NA - SubCritNames[iCrit] <- "beta" + SubCritPrint[3L] <- paste0(EC$CritName, " mean(sim)/mean(obs) =") if (meanVarSim == 0 & meanVarObs == 0) { Crit <- 1 @@ -74,12 +61,12 @@ ErrorCrit_KGE <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = T Crit <- meanVarSim / meanVarObs } if (is.numeric(Crit) & is.finite(Crit)) { - SubCritValues[iCrit] <- Crit + SubCritValues[3L] <- Crit } ## ErrorCrit if (sum(is.na(SubCritValues)) == 0) { - CritValue <- (1 - sqrt((SubCritValues[1] - 1)^2 + (SubCritValues[2] - 1)^2 + (SubCritValues[3] - 1)^2)) + CritValue <- (1 - sqrt((SubCritValues[1L] - 1)^2 + (SubCritValues[2L] - 1)^2 + (SubCritValues[3L] - 1)^2)) } ## Verbose diff --git a/R/ErrorCrit_KGE2.R b/R/ErrorCrit_KGE2.R index e2f51e28a3376cd9641668950465a0ab4cf198af..a9313d90a5e4fe17ce020e4811b1aae1a536a8d0 100644 --- a/R/ErrorCrit_KGE2.R +++ b/R/ErrorCrit_KGE2.R @@ -7,23 +7,18 @@ ErrorCrit_KGE2 <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = EC <- .ErrorCrit(InputsCrit = InputsCrit, Crit = "KGE2", OutputsModel = OutputsModel, warnings = warnings) - if (!EC$CritCompute) { - CritValue <- NA - } else { + CritValue <- NA + SubCritValues <- rep(NA, 3) + SubCritNames <- c("r", "gamma", "beta") + SubCritPrint <- rep(NA, 3) + + if (EC$CritCompute) { ## Other variables preparation meanVarObs <- mean(EC$VarObs[!EC$TS_ignore]) meanVarSim <- mean(EC$VarSim[!EC$TS_ignore]) - iCrit <- 0 - SubCritPrint <- NULL - SubCritNames <- NULL - SubCritValues <- NULL - ## SubErrorCrit KGE rPearson - iCrit <- iCrit + 1 - SubCritPrint[iCrit] <- paste0(EC$CritName, " cor(sim, obs, \"pearson\") =") - SubCritValues[iCrit] <- NA - SubCritNames[iCrit] <- "r" + SubCritPrint[1L] <- paste0(EC$CritName, " cor(sim, obs, \"pearson\") =") Numer <- sum((EC$VarObs[!EC$TS_ignore] - meanVarObs) * (EC$VarSim[!EC$TS_ignore] - meanVarSim)) Deno1 <- sqrt(sum((EC$VarObs[!EC$TS_ignore] - meanVarObs)^2)) @@ -39,14 +34,11 @@ ErrorCrit_KGE2 <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = Crit <- Numer / (Deno1 * Deno2) } if (is.numeric(Crit) & is.finite(Crit)) { - SubCritValues[iCrit] <- Crit + SubCritValues[1L] <- Crit } ## SubErrorCrit KGE gamma - iCrit <- iCrit + 1 - SubCritPrint[iCrit] <- paste0(EC$CritName, " cv(sim)/cv(obs) =") - SubCritValues[iCrit] <- NA - SubCritNames[iCrit] <- "gamma" + SubCritPrint[2L] <- paste0(EC$CritName, " cv(sim)/cv(obs) =") if (meanVarSim == 0) { if (sd(EC$VarSim[!EC$TS_ignore]) == 0) { @@ -74,14 +66,11 @@ ErrorCrit_KGE2 <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = Crit <- CVsim / CVobs } if (is.numeric(Crit) & is.finite(Crit)) { - SubCritValues[iCrit] <- Crit + SubCritValues[2L] <- Crit } ## SubErrorCrit KGE beta - iCrit <- iCrit + 1 - SubCritPrint[iCrit] <- paste0(EC$CritName, " mean(sim)/mean(obs) =") - SubCritValues[iCrit] <- NA - SubCritNames[iCrit] <- "beta" + SubCritPrint[3L] <- paste0(EC$CritName, " mean(sim)/mean(obs) =") if (meanVarSim == 0 & meanVarObs == 0) { Crit <- 1 @@ -89,12 +78,12 @@ ErrorCrit_KGE2 <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = Crit <- meanVarSim / meanVarObs } if (is.numeric(Crit) & is.finite(Crit)) { - SubCritValues[iCrit] <- Crit + SubCritValues[3L] <- Crit } ## ErrorCrit if (sum(is.na(SubCritValues)) == 0) { - CritValue <- (1 - sqrt((SubCritValues[1] - 1)^2 + (SubCritValues[2] - 1)^2 + (SubCritValues[3] - 1)^2)) + CritValue <- (1 - sqrt((SubCritValues[1L] - 1)^2 + (SubCritValues[2L] - 1)^2 + (SubCritValues[3L] - 1)^2)) } ## Verbose diff --git a/R/ErrorCrit_NSE.R b/R/ErrorCrit_NSE.R index 899dcc6fe575124e2d769cb0337dd9c1a9a8bcd1..4a7a30587fcf770493b17967c0a95403e11532d8 100644 --- a/R/ErrorCrit_NSE.R +++ b/R/ErrorCrit_NSE.R @@ -7,9 +7,9 @@ ErrorCrit_NSE <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = T EC <- .ErrorCrit(InputsCrit = InputsCrit, Crit = "NSE", OutputsModel = OutputsModel, warnings = warnings) - if (!EC$CritCompute) { - CritValue <- NA - } else { + CritValue <- NA + + if (EC$CritCompute) { ## Other variables preparation meanVarObs <- mean(EC$VarObs[!EC$TS_ignore]) meanVarSim <- mean(EC$VarSim[!EC$TS_ignore]) diff --git a/R/ErrorCrit_RMSE.R b/R/ErrorCrit_RMSE.R index 424b07579f60e7fffd42cbd8d555390cf241c2e8..6cab33bc57147355c0603f6cfd86daf8904c1bee 100644 --- a/R/ErrorCrit_RMSE.R +++ b/R/ErrorCrit_RMSE.R @@ -7,9 +7,9 @@ ErrorCrit_RMSE <- function(InputsCrit, OutputsModel, warnings = TRUE, verbose = EC <- .ErrorCrit(InputsCrit = InputsCrit, Crit = "RMSE", OutputsModel = OutputsModel, warnings = warnings) - if (!EC$CritCompute) { - CritValue <- NA - } else { + CritValue <- NA + + if (EC$CritCompute) { ## ErrorCrit Numer <- sum((EC$VarSim - EC$VarObs)^2, na.rm = TRUE) Denom <- sum(!is.na(EC$VarObs))