From 73f199a8e5efb86c7b8a59105f789beb1de922db Mon Sep 17 00:00:00 2001
From: Delaigue Olivier <olivier.delaigue@irstea.priv>
Date: Mon, 1 Apr 2019 11:21:44 +0200
Subject: [PATCH] v1.2.12.21 CLEAN: obs argument renamed into Obs in
 CreateRunOptions

---
 DESCRIPTION          |  2 +-
 NEWS.rmd             |  6 ++---
 R/CreateInputsCrit.R | 62 ++++++++++++++++++++++----------------------
 3 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 4eb1a9b2..4e0d3829 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.12.20
+Version: 1.2.12.21
 Date: 2019-04-01
 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 b818e661..17ebccf7 100644
--- a/NEWS.rmd
+++ b/NEWS.rmd
@@ -13,13 +13,13 @@ output:
 
 
 
-### 1.2.12.20 Release Notes (2019-04-01) 
+### 1.2.12.21 Release Notes (2019-04-01) 
 
 
 
 #### Deprecated and defunct
 
-- The <code>Qobs</code> argument is now deprecated in <code>CreateRunOptions()</code> and has been renamed <code>obs</code>.
+- The <code>Qobs</code> argument is now deprecated in <code>CreateRunOptions()</code> and has been renamed <code>Obs</code>.
 
 - The <code>FUN_CRIT</code> argument is now deprecated in <code>ErrorCrit()</code>. This function now gets this information from the <code>InputsCrit</code> argument.
 
@@ -31,7 +31,7 @@ output:
 
 #### New features
 
-- <code>CreateInputsCrit()</code> now can prepare an <code>InputsCrit</code> object in order to compute a single criterion (<code>Single</code> class), multiple criteria (<code>Multi</code> class) with the <code>ErrorCrit()</code> function. So it is now possible to set the following arguments as atomic (as before) or as list: <code>FUN_CRIT</code>, <code>obs</code>, <code>BoolCrit</code>, <code>transfo</code>, <code>weights</code>. If the list format is chosen, all the lists must have the same length.
+- <code>CreateInputsCrit()</code> now can prepare an <code>InputsCrit</code> object in order to compute a single criterion (<code>Single</code> class), multiple criteria (<code>Multi</code> class) with the <code>ErrorCrit()</code> function. So it is now possible to set the following arguments as atomic (as before) or as list: <code>FUN_CRIT</code>, <code>Obs</code>, <code>BoolCrit</code>, <code>transfo</code>, <code>weights</code>. If the list format is chosen, all the lists must have the same length.
 
 - <code>CreateInputsCrit()</code> now presents a <code>varObs</code> argument in order to allow to prepare an <code>InputsCrit</code> object in order run a criterion on other variable than observed discharges with the <code>ErrorCrit()</code> function (e.g. SCA, SWE).
 
diff --git a/R/CreateInputsCrit.R b/R/CreateInputsCrit.R
index 8caf7530..6da2b1fd 100644
--- a/R/CreateInputsCrit.R
+++ b/R/CreateInputsCrit.R
@@ -2,7 +2,7 @@ CreateInputsCrit <- function(FUN_CRIT,
                              InputsModel,
                              RunOptions,
                              Qobs,              # deprecated
-                             obs,
+                             Obs,
                              varObs = "Q",
                              BoolCrit = NULL,
                              transfo = "",
@@ -19,14 +19,14 @@ CreateInputsCrit <- function(FUN_CRIT,
   ## ---------- check arguments
   
   if (!missing(Qobs)) {
-    if (missing(obs)) {
+    if (missing(Obs)) {
       if (warnings) {
-        warning("argument 'Qobs' is deprecated. Please use 'obs' and 'varObs' instead")
+        warning("argument 'Qobs' is deprecated. Please use 'Obs' and 'varObs' instead")
       }
-      obs <- Qobs
+      Obs <- Qobs
       # varObs <- "Qobs"
     } else {
-      warning("argument 'Qobs' is deprecated. The values set in 'obs' will be used instead")
+      warning("argument 'Qobs' is deprecated. The values set in 'Obs' will be used instead")
     }
   }
   if (!missing(Ind_zeroes) & warnings) {
@@ -47,29 +47,29 @@ CreateInputsCrit <- function(FUN_CRIT,
   LLL <- length(InputsModel$DatesR[RunOptions$IndPeriod_Run])
   
   
-  ## check 'obs' and definition of idLayer
-  vecObs <- unlist(obs)
+  ## check 'Obs' and definition of idLayer
+  vecObs <- unlist(Obs)
   if (length(vecObs) %% LLL != 0 | !is.numeric(vecObs)) {
-    stop(sprintf("'obs' must be a (list of) vector(s) of numeric values of length %i", LLL), call. = FALSE)
+    stop(sprintf("'Obs' must be a (list of) vector(s) of numeric values of length %i", LLL), call. = FALSE)
   }
-  if (!is.list(obs)) {
+  if (!is.list(Obs)) {
     idLayer <- list(1L)
-    obs <- list(obs)
+    Obs <- list(Obs)
   } else {
-    idLayer <- lapply(obs, function(i) {
+    idLayer <- lapply(Obs, function(i) {
         if (is.list(i)) {
           length(i)
         } else {
           1L
         }
       })
-    obs <- lapply(obs, function(x) rowMeans(as.data.frame(x)))
+    Obs <- lapply(Obs, function(x) rowMeans(as.data.frame(x)))
   }
 
   
   ## create list of arguments
   listArgs <- list(FUN_CRIT   = FUN_CRIT,
-                   obs        = obs,
+                   Obs        = Obs,
                    varObs     = varObs,
                    BoolCrit   = BoolCrit,
                    idLayer    = idLayer,
@@ -99,7 +99,7 @@ CreateInputsCrit <- function(FUN_CRIT,
   
   ## check 'varObs'
   if (missing(varObs)) {
-    listArgs$varObs <- as.list(rep("Q", times = length(listArgs$obs)))
+    listArgs$varObs <- as.list(rep("Q", times = length(listArgs$Obs)))
     # if (warnings) {
     #   warning("'varObs' automatically set to \"Q\"")
     # }
@@ -123,7 +123,7 @@ CreateInputsCrit <- function(FUN_CRIT,
   
   ## check 'transfo'
   if (missing(transfo)) {
-    listArgs$transfo <- as.list(rep("", times = length(listArgs$obs)))
+    listArgs$transfo <- as.list(rep("", times = length(listArgs$Obs)))
     # if (warnings) {
     #   warning("'transfo' automatically set to \"\"")
     # }
@@ -175,14 +175,14 @@ CreateInputsCrit <- function(FUN_CRIT,
       stop("calculating a composite criterion with the RMSE is not allowed since RMSE is not a dimensionless metric", call. = FALSE)
     }
     
-    ## check 'obs'
-    if (!is.vector(iListArgs2$obs) | length(iListArgs2$obs) != LLL | !is.numeric(iListArgs2$obs)) {
-      stop(sprintf("'obs' must be a (list of) vector(s) of numeric values of length %i", LLL), call. = FALSE)
+    ## check 'Obs'
+    if (!is.vector(iListArgs2$Obs) | length(iListArgs2$Obs) != LLL | !is.numeric(iListArgs2$Obs)) {
+      stop(sprintf("'Obs' must be a (list of) vector(s) of numeric values of length %i", LLL), call. = FALSE)
     }
     
     ## check 'BoolCrit'
     if (is.null(iListArgs2$BoolCrit)) {
-      iListArgs2$BoolCrit <- rep(TRUE, length(iListArgs2$obs))
+      iListArgs2$BoolCrit <- rep(TRUE, length(iListArgs2$Obs))
     }
     if (!is.logical(iListArgs2$BoolCrit)) {
       stop("'BoolCrit' must be a (list of) vector(s) of boolean", call. = FALSE)
@@ -196,28 +196,28 @@ CreateInputsCrit <- function(FUN_CRIT,
       stop(msgVarObs, call. = FALSE)
     }
     
-    ## check 'varObs' + 'obs'
+    ## check 'varObs' + 'Obs'
     if (any(iListArgs2$varObs %in% "SCA")) {
       idSCA <- which(iListArgs2$varObs == "SCA")
       if (length(idSCA) == 1L) {
-        vecSCA <- iListArgs2$obs
+        vecSCA <- iListArgs2$Obs
       } else {
-        vecSCA <- unlist(iListArgs2$obs[idSCA])
+        vecSCA <- unlist(iListArgs2$Obs[idSCA])
       }
       if (min(vecSCA, na.rm = TRUE) < 0 | max(vecSCA, na.rm = TRUE) > 1) {
-        stop("'obs' outside [0,1] for \"SCA\"", call. = FALSE)
+        stop("'Obs' outside [0,1] for \"SCA\"", call. = FALSE)
       }
     } 
     inPosVarObs <- c("Q", "SWE")
     if (any(iListArgs2$varObs %in% inPosVarObs)) {
       idQSS <- which(iListArgs2$varObs %in% inPosVarObs)
       if (length(idQSS) == 1L) {
-        vecQSS <- iListArgs2$obs
+        vecQSS <- iListArgs2$Obs
       } else {
-        vecQSS <- unlist(iListArgs2$obs[idQSS])
+        vecQSS <- unlist(iListArgs2$Obs[idQSS])
       }
       if (min(vecQSS, na.rm = TRUE) < 0) {
-        stop(sprintf("'obs' outside [0,Inf[ for \"%s\"", iListArgs2$varObs), call. = FALSE)
+        stop(sprintf("'Obs' outside [0,Inf[ for \"%s\"", iListArgs2$varObs), call. = FALSE)
       }
     }
     
@@ -239,13 +239,13 @@ CreateInputsCrit <- function(FUN_CRIT,
       if (!is.vector(iListArgs2$epsilon) | length(iListArgs2$epsilon) != 1 | !is.numeric(iListArgs2$epsilon) | any(iListArgs2$epsilon <= 0)) {
         stop("'epsilon' must be a single (list of) positive value(s)", call. = FALSE)
       }
-    } else if (iListArgs2$transfo %in% c("log", "inv") & any(iListArgs2$obs %in% 0) & warnings) {
-      warning("zeroes detected in obs: the corresponding time-steps will be excluded by the 'ErrorCrit*' functions as the epsilon argument was set to NULL", call. = FALSE)
+    } else if (iListArgs2$transfo %in% c("log", "inv") & any(iListArgs2$Obs %in% 0) & warnings) {
+      warning("zeroes detected in Obs: the corresponding time-steps will be excluded by the 'ErrorCrit*' functions as the epsilon argument was set to NULL", call. = FALSE)
     }
     
     ## check 'transfo' + 'FUN_CRIT'
     if (iListArgs2$transfo == "log" & warnings) {
-      warn_log_kge <- "we do not advise using the %s with a log transformation on obs (see the details section in the 'CreateInputsCrit' help)"
+      warn_log_kge <- "we do not advise using the %s with a log transformation on Obs (see the details section in the 'CreateInputsCrit' help)"
       if (identical(iListArgs2$FUN_CRIT, ErrorCrit_KGE)) {
         warning(sprintf(warn_log_kge, "KGE"), call. = FALSE)
       }
@@ -256,7 +256,7 @@ CreateInputsCrit <- function(FUN_CRIT,
 
     ## Create InputsCrit
     iInputsCrit <- list(FUN_CRIT   = iListArgs2$FUN_CRIT,
-                        obs        = iListArgs2$obs,
+                        Obs        = iListArgs2$Obs,
                         varObs     = iListArgs2$varObs,
                         BoolCrit   = iListArgs2$BoolCrit,
                         idLayer    = iListArgs2$idLayer,
@@ -286,7 +286,7 @@ CreateInputsCrit <- function(FUN_CRIT,
     for (iInCnVarObs in inCnVarObs) {
       if (any(listVarObs %in% iInCnVarObs)) {
         if (tabGroupLayer[tabGroupLayer$varObs %in% iInCnVarObs, "freq"] != nLayers) {
-          stop(sprintf("'obs' must contain %i vector(s) about %s", nLayers, iInCnVarObs))
+          stop(sprintf("'Obs' must contain %i vector(s) about %s", nLayers, iInCnVarObs))
         }
       }
     }
-- 
GitLab