From ef036bebf1e1b6ad088e55bb0da2b3181f744c40 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Thu, 24 Mar 2022 12:32:28 +0100 Subject: [PATCH 01/11] Added new param time_dims for more flexible temporal dimension consistency check --- NAMESPACE | 2 +- R/s2dv_cube.R | 22 +++++++++++++++------- man/s2dv_cube.Rd | 3 +++ src/CSTools.so | Bin 113352 -> 259624 bytes 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 34851f66..26042662 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -120,4 +120,4 @@ importFrom(utils,head) importFrom(utils,read.table) importFrom(utils,tail) importFrom(verification,verify) -useDynLib(CSTools, .registration = TRUE) +useDynLib(CSTools) diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index 89720119..7225393c 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -10,6 +10,7 @@ #'@param Variable a list of two elements: \code{varName} a character string indicating the abbreviation of a variable name and \code{level} a character string indicating the level (e.g., "2m"), if it is not required it could be set as NULL. #'@param Datasets a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1") #'@param Dates a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. +#'@param time_dims a vector of strings containing the names of the temporal dimensions found in \code{data}. #'@param when a time stamp of the date issued by the Load() call to obtain the data. #'@param source_files a vector of character strings with complete paths to all the found files involved in the Load() call. #' @@ -62,12 +63,12 @@ #'class(exp8) #'@export s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = NULL, - Dates = NULL, when = NULL, source_files = NULL) { + Dates = NULL, time_dims = NULL, when = NULL, source_files = NULL) { if (is.null(data) | !is.array(data) | is.null(names(dim(data)))) { stop("Parameter 'data' must be an array with named dimensions.") } - dims <- dim(data) + dims <- dim(data) # the above check stays if (is.null(lon)) { if (!any(c('lon', 'longitude') %in% names(dims))) { warning("Parameter 'lon' is not provided but data contains a ", @@ -116,7 +117,7 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = Variable <- list(Variable) } if (names(Variable)[1] != 'varName' | names(Variable)[2] != 'level') { - warning("The name of the first elment of parameter 'Variable' is ", + warning("The name of the first element of parameter 'Variable' is ", "expected to be 'varName' and the second 'level'.") } if (!is.character(Variable[[1]])) { @@ -161,10 +162,17 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = stop("The length of the elements in parameter 'Dates' must ", "be equal.") } - time_dims <- dims[names(dims) %in% c('sdate', 'time', 'ftime')] - if (prod(time_dims) != length(Dates[[1]])) { - stop("The length of the temporal dimension doesn't match ", - " with the length of elements in parameter 'Dates'.") + if (!is.null(time_dims)) { + time_dims <- dims[names(dims) %in% time_dims] + if (prod(time_dims) != length(Dates[[1]])) { + stop("The length of the temporal dimension doesn't match ", + " with the length of elements in parameter 'Dates'.") + } + } + else { + warning("Parameter 'time_dims' is not provided so the length ", + "of the temporal dimension may not match the length of ", + "the elements in parameter 'Dates'.") } } } diff --git a/man/s2dv_cube.Rd b/man/s2dv_cube.Rd index b0ce8966..3d125177 100644 --- a/man/s2dv_cube.Rd +++ b/man/s2dv_cube.Rd @@ -11,6 +11,7 @@ s2dv_cube( Variable = NULL, Datasets = NULL, Dates = NULL, + time_dims = NULL, when = NULL, source_files = NULL ) @@ -28,6 +29,8 @@ s2dv_cube( \item{Dates}{a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date.} +\item{time_dims}{a vector of strings containing the names of the temporal dimensions found in \code{data}.} + \item{when}{a time stamp of the date issued by the Load() call to obtain the data.} \item{source_files}{a vector of character strings with complete paths to all the found files involved in the Load() call.} diff --git a/src/CSTools.so b/src/CSTools.so index b5e81187254aa25073268fa773029085c71c0779..b7629601725e5c3340bc5a7a4c3cee09088c4d6d 100755 GIT binary patch literal 259624 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�GJ#=_maqv_&k)t-XnsM=bY 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 z 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 literal 113352 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 Date: Fri, 25 Mar 2022 11:05:40 +0100 Subject: [PATCH 02/11] Added time_dims checks and fixed a bug in Dates, lat and lon checks --- R/s2dv_cube.R | 56 +++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index 7225393c..967a0a80 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -68,24 +68,24 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = if (is.null(data) | !is.array(data) | is.null(names(dim(data)))) { stop("Parameter 'data' must be an array with named dimensions.") } - dims <- dim(data) # the above check stays + dims <- dim(data) if (is.null(lon)) { - if (!any(c('lon', 'longitude') %in% names(dims))) { - warning("Parameter 'lon' is not provided but data contains a ", - "longitudinal dimension.") - } else { - warning("Parameter 'lon' is not provided so the data is from an ", - "unknown location.") - } + if (any(c('lon', 'longitude') %in% names(dims))) { + warning("Parameter 'lon' is not provided but data contains a ", + "longitudinal dimension.") + } else { + warning("Parameter 'lon' is not provided so the data is from an ", + "unknown location.") + } } if (is.null(lat)) { - if (!any(c('lat', 'latitude') %in% names(dims))) { - warning("Parameter 'lat' is not provided but data contains a ", + if (any(c('lat', 'latitude') %in% names(dims))) { + warning("Parameter 'lat' is not provided but data contains a ", "latitudinal dimension.") - } else { - warning("Parameter 'lat' is not provided so the data is from an ", + } else { + warning("Parameter 'lat' is not provided so the data is from an ", "unknown location.") - } + } } if (is.null(Variable)) { warning("Parameter 'Variable' is not provided so the metadata ", @@ -96,13 +96,21 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = "of 's2dv_cube' object will be incomplete.") } if (is.null(Dates)) { - if (!any(c('time', 'ftime', 'sdate') %in% names(dims))) { - warning("Parameter 'Dates' is not provided but data contains a ", - "temporal dimension.") - } else { - warning("Parameter 'Dates' is not provided so the data is from an ", - "unknown time period.") - } + if (!is.null(time_dims)) { + if (any(time_dims) %in% names(dims)) { + warning("Parameter 'Dates' is not provided but data contains a ", + "temporal dimension.") + } else { + warning("Data does not contain any of the temporal dimensions ", + "in 'time_dims'.") + } + } else if (any(c('time', 'ftime', 'sdate') %in% names(dims))) { + warning("Parameter 'Dates' is not provided but data contains a ", + "temporal dimension.") + } else { + warning("Parameter 'Dates' is not provided so the data is from an ", + "unknown time period.") + } } if (is.null(when)) { warning("Parameter 'when' is not provided so the metadata ", @@ -170,15 +178,15 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = } } else { - warning("Parameter 'time_dims' is not provided so the length ", - "of the temporal dimension may not match the length of ", + warning("Parameter 'time_dims' is not provided, the length ", + "of the temporal dimensions may not match the length of ", "the elements in parameter 'Dates'.") } } } object <- list(data = data, lon = lon, lat = lat, Variable = Variable, - Datasets = Datasets, Dates = Dates, when = when, - source_files = source_files) + Datasets = Datasets, Dates = Dates, time_dims = time_dims, + when = when, source_files = source_files) class(object) <- 's2dv_cube' return(object) } -- GitLab From 3d0be6e121b4b2fbe28fa676f4730aa861e1b0c6 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Mon, 28 Mar 2022 12:08:10 +0200 Subject: [PATCH 03/11] Modified warning message for clarity --- R/s2dv_cube.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index 967a0a80..a38b9863 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -178,9 +178,9 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = } } else { - warning("Parameter 'time_dims' is not provided, the length ", - "of the temporal dimensions may not match the length of ", - "the elements in parameter 'Dates'.") + warning("Parameter 'time_dims' is not provided, cannot verify ", + "if the length of the temporal dimensions matches the ", + "length of the elements in parameter 'Dates'.") } } } -- GitLab From 6a7bd62ad6055df2350007a946969eb778bace02 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Wed, 30 Mar 2022 09:52:37 +0200 Subject: [PATCH 04/11] Format fixes, assume default time dimension names if time_dims not provided --- R/s2dv_cube.R | 97 +++++++++++++++++++++++++----------------------- man/s2dv_cube.Rd | 8 +++- 2 files changed, 58 insertions(+), 47 deletions(-) diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index a38b9863..f3705851 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -1,6 +1,12 @@ #'Creation of a 's2dv_cube' object #' -#'@description This function allows to create a 's2dv_cube' object by passing information through its parameters. This function will be needed if the data hasn't been loaded using CST_Load or has been transformed with other methods. A 's2dv_cube' object has many different components including metadata. This function will allow to create 's2dv_cube' objects even if not all elements are defined and for each expected missed parameter a warning message will be returned. +#'@description This function allows to create a 's2dv_cube' object by passing +#'information through its parameters. This function will be needed if the data +#'hasn't been loaded using CST_Load or has been transformed with other methods. +#'A 's2dv_cube' object has many different components including metadata. This +#'function will allow to create 's2dv_cube' objects even if not all elements +#'are defined and for each expected missed parameter a warning message will be +#'returned. #' #'@author Perez-Zanon Nuria, \email{nuria.perez@bsc.es} #' @@ -97,7 +103,7 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = } if (is.null(Dates)) { if (!is.null(time_dims)) { - if (any(time_dims) %in% names(dims)) { + if (any(time_dims %in% names(dims))) { warning("Parameter 'Dates' is not provided but data contains a ", "temporal dimension.") } else { @@ -113,11 +119,11 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = } } if (is.null(when)) { - warning("Parameter 'when' is not provided so the metadata ", + warning("Parameter 'when' is not provided so the metadata ", "of 's2dv_cube' object will be incomplete.") } if (is.null(source_files)) { - warning("Parameter 'source_files' is not provided so the metadata ", + warning("Parameter 'source_files' is not provided so the metadata ", "of 's2dv_cube' object will be incomplete.") } if (!is.null(Variable)) { @@ -135,54 +141,53 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = } # Dimensions comparison if (!is.null(lon)) { - if (any(names(dims) %in% c('lon', 'longitude'))) { - if (dims[(names(dims) %in% c('lon', 'longitude'))] != length(lon) & - dims[(names(dims) %in% c('lon', 'longitude'))] != 1) { - stop("Length of parameter 'lon' doesn't match the length of ", - "longitudinal dimension in parameter 'data'.") - } + if (any(names(dims) %in% c('lon', 'longitude'))) { + if (dims[(names(dims) %in% c('lon', 'longitude'))] != length(lon) & + dims[(names(dims) %in% c('lon', 'longitude'))] != 1) { + stop("Length of parameter 'lon' doesn't match the length of ", + "longitudinal dimension in parameter 'data'.") } + } } if (!is.null(lat)) { - if (any(names(dims) %in% c('lat', 'latitude'))) { - if (dims[(names(dims) %in% c('lat', 'latitude'))] != length(lat) & - dims[(names(dims) %in% c('lat', 'latitude'))] != 1) { - stop("Length of parameter 'lat' doesn't match the length of ", - "latitudinal dimension in parameter 'data'.") - } + if (any(names(dims) %in% c('lat', 'latitude'))) { + if (dims[(names(dims) %in% c('lat', 'latitude'))] != length(lat) & + dims[(names(dims) %in% c('lat', 'latitude'))] != 1) { + stop("Length of parameter 'lat' doesn't match the length of ", + "latitudinal dimension in parameter 'data'.") } + } } if (!is.null(Dates)) { - if (!is.list(Dates)) { - stop("Parameter 'Dates' must be a list.") - } else { - if (length(Dates) > 2) { - warning("Parameter 'Dates' is a list with more than 2 ", - "elements and only the first two will be used.") - Dates <- Dates[1 : 2] - } - if (names(Dates)[1] != 'start' | names(Dates)[2] != 'end') { - warning("The name of the first element of parameter 'Dates' ", - "is expected to be 'start' and the second 'end'.") - } - if (length(Dates[[1]]) != length(Dates[[2]]) & - length(Dates) == 2) { - stop("The length of the elements in parameter 'Dates' must ", - "be equal.") - } - if (!is.null(time_dims)) { - time_dims <- dims[names(dims) %in% time_dims] - if (prod(time_dims) != length(Dates[[1]])) { - stop("The length of the temporal dimension doesn't match ", - " with the length of elements in parameter 'Dates'.") - } - } - else { - warning("Parameter 'time_dims' is not provided, cannot verify ", - "if the length of the temporal dimensions matches the ", - "length of the elements in parameter 'Dates'.") - } - } + if (!is.list(Dates)) { + stop("Parameter 'Dates' must be a list.") + } else { + if (length(Dates) > 2) { + warning("Parameter 'Dates' is a list with more than 2 ", + "elements and only the first two will be used.") + Dates <- Dates[1 : 2] + } + if (names(Dates)[1] != 'start' | names(Dates)[2] != 'end') { + warning("The name of the first element of parameter 'Dates' ", + "is expected to be 'start' and the second 'end'.") + } + if (length(Dates[[1]]) != length(Dates[[2]]) & + length(Dates) == 2) { + stop("The length of the elements in parameter 'Dates' must ", + "be equal.") + } + if (!is.null(time_dims)) { + time_dims <- dims[names(dims) %in% time_dims] + } else { + warning("Parameter 'time_dims' is not provided, assigning 'sdate', ", + "'time' and 'ftime' as default time dimension names.") + time_dims <- dims[names(dims) %in% c('sdate', 'time', 'ftime')] + } + if (prod(time_dims) != length(Dates[[1]])) { + stop("The length of the temporal dimension doesn't match ", + "the length of elements in parameter 'Dates'.") + } + } } object <- list(data = data, lon = lon, lat = lat, Variable = Variable, Datasets = Datasets, Dates = Dates, time_dims = time_dims, diff --git a/man/s2dv_cube.Rd b/man/s2dv_cube.Rd index 3d125177..1ff8f1ac 100644 --- a/man/s2dv_cube.Rd +++ b/man/s2dv_cube.Rd @@ -39,7 +39,13 @@ s2dv_cube( The function returns an object of class 's2dv_cube'. } \description{ -This function allows to create a 's2dv_cube' object by passing information through its parameters. This function will be needed if the data hasn't been loaded using CST_Load or has been transformed with other methods. A 's2dv_cube' object has many different components including metadata. This function will allow to create 's2dv_cube' objects even if not all elements are defined and for each expected missed parameter a warning message will be returned. +This function allows to create a 's2dv_cube' object by passing +information through its parameters. This function will be needed if the data +hasn't been loaded using CST_Load or has been transformed with other methods. +A 's2dv_cube' object has many different components including metadata. This +function will allow to create 's2dv_cube' objects even if not all elements +are defined and for each expected missed parameter a warning message will be +returned. } \examples{ exp_original <- 1:100 -- GitLab From f56a50642e67b3bc197c29627e7535df1abac5f6 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Wed, 6 Apr 2022 11:22:06 +0200 Subject: [PATCH 05/11] Add option for parameter Dates to have one single element --- R/s2dv_cube.R | 21 +++++++++++++-------- man/s2dv_cube.Rd | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index f3705851..feee5e42 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -15,7 +15,7 @@ #'@param lat an array with one dimension containing the latitudes and attributes: dim, cdo_grid_name, first_lat, last_lat and projection. #'@param Variable a list of two elements: \code{varName} a character string indicating the abbreviation of a variable name and \code{level} a character string indicating the level (e.g., "2m"), if it is not required it could be set as NULL. #'@param Datasets a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1") -#'@param Dates a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. +#'@param Dates a named list of one to two elements: The first element, \code{start}, is an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date. The second element, \code{end} (optional), is an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. #'@param time_dims a vector of strings containing the names of the temporal dimensions found in \code{data}. #'@param when a time stamp of the date issued by the Load() call to obtain the data. #'@param source_files a vector of character strings with complete paths to all the found files involved in the Load() call. @@ -166,15 +166,20 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = warning("Parameter 'Dates' is a list with more than 2 ", "elements and only the first two will be used.") Dates <- Dates[1 : 2] - } - if (names(Dates)[1] != 'start' | names(Dates)[2] != 'end') { + } + if (names(Dates)[1] != 'start') { warning("The name of the first element of parameter 'Dates' ", - "is expected to be 'start' and the second 'end'.") + "is expected to be 'start'.") } - if (length(Dates[[1]]) != length(Dates[[2]]) & - length(Dates) == 2) { - stop("The length of the elements in parameter 'Dates' must ", - "be equal.") + if (length(Dates) == 2) { + if (names(Dates)[2] != 'end') { + warning("The name of the second element of parameter 'Dates' ", + "is expected to be 'end'.") + } + if (length(Dates[[1]]) != length(Dates[[2]])) { + stop("The length of the elements in parameter 'Dates' must ", + "be equal.") + } } if (!is.null(time_dims)) { time_dims <- dims[names(dims) %in% time_dims] diff --git a/man/s2dv_cube.Rd b/man/s2dv_cube.Rd index 1ff8f1ac..8ac06d78 100644 --- a/man/s2dv_cube.Rd +++ b/man/s2dv_cube.Rd @@ -27,7 +27,7 @@ s2dv_cube( \item{Datasets}{a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1")} -\item{Dates}{a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date.} +\item{Dates}{a named list of one to two elements: The first element, \code{start}, is an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date. The second element, \code{end} (optional), is an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date.} \item{time_dims}{a vector of strings containing the names of the temporal dimensions found in \code{data}.} -- GitLab From ef301d11161d87661dac34fc5f6afd121ca629a5 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Wed, 6 Apr 2022 12:24:23 +0200 Subject: [PATCH 06/11] Revert "Add option for parameter Dates to have one single element" This reverts commit f56a50642e67b3bc197c29627e7535df1abac5f6. --- R/s2dv_cube.R | 21 ++++++++------------- man/s2dv_cube.Rd | 2 +- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index feee5e42..f3705851 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -15,7 +15,7 @@ #'@param lat an array with one dimension containing the latitudes and attributes: dim, cdo_grid_name, first_lat, last_lat and projection. #'@param Variable a list of two elements: \code{varName} a character string indicating the abbreviation of a variable name and \code{level} a character string indicating the level (e.g., "2m"), if it is not required it could be set as NULL. #'@param Datasets a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1") -#'@param Dates a named list of one to two elements: The first element, \code{start}, is an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date. The second element, \code{end} (optional), is an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. +#'@param Dates a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. #'@param time_dims a vector of strings containing the names of the temporal dimensions found in \code{data}. #'@param when a time stamp of the date issued by the Load() call to obtain the data. #'@param source_files a vector of character strings with complete paths to all the found files involved in the Load() call. @@ -166,20 +166,15 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = warning("Parameter 'Dates' is a list with more than 2 ", "elements and only the first two will be used.") Dates <- Dates[1 : 2] - } - if (names(Dates)[1] != 'start') { + } + if (names(Dates)[1] != 'start' | names(Dates)[2] != 'end') { warning("The name of the first element of parameter 'Dates' ", - "is expected to be 'start'.") + "is expected to be 'start' and the second 'end'.") } - if (length(Dates) == 2) { - if (names(Dates)[2] != 'end') { - warning("The name of the second element of parameter 'Dates' ", - "is expected to be 'end'.") - } - if (length(Dates[[1]]) != length(Dates[[2]])) { - stop("The length of the elements in parameter 'Dates' must ", - "be equal.") - } + if (length(Dates[[1]]) != length(Dates[[2]]) & + length(Dates) == 2) { + stop("The length of the elements in parameter 'Dates' must ", + "be equal.") } if (!is.null(time_dims)) { time_dims <- dims[names(dims) %in% time_dims] diff --git a/man/s2dv_cube.Rd b/man/s2dv_cube.Rd index 8ac06d78..1ff8f1ac 100644 --- a/man/s2dv_cube.Rd +++ b/man/s2dv_cube.Rd @@ -27,7 +27,7 @@ s2dv_cube( \item{Datasets}{a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1")} -\item{Dates}{a named list of one to two elements: The first element, \code{start}, is an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date. The second element, \code{end} (optional), is an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date.} +\item{Dates}{a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date.} \item{time_dims}{a vector of strings containing the names of the temporal dimensions found in \code{data}.} -- GitLab From 9e8c33fef0859d09c58e2ae0ecb5078afa4cc951 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Fri, 22 Apr 2022 10:48:06 +0200 Subject: [PATCH 07/11] Add option for parameter Dates to have one single element --- R/s2dv_cube.R | 21 +++++++++++++-------- man/s2dv_cube.Rd | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index f3705851..feee5e42 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -15,7 +15,7 @@ #'@param lat an array with one dimension containing the latitudes and attributes: dim, cdo_grid_name, first_lat, last_lat and projection. #'@param Variable a list of two elements: \code{varName} a character string indicating the abbreviation of a variable name and \code{level} a character string indicating the level (e.g., "2m"), if it is not required it could be set as NULL. #'@param Datasets a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1") -#'@param Dates a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. +#'@param Dates a named list of one to two elements: The first element, \code{start}, is an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date. The second element, \code{end} (optional), is an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. #'@param time_dims a vector of strings containing the names of the temporal dimensions found in \code{data}. #'@param when a time stamp of the date issued by the Load() call to obtain the data. #'@param source_files a vector of character strings with complete paths to all the found files involved in the Load() call. @@ -166,15 +166,20 @@ s2dv_cube <- function(data, lon = NULL, lat = NULL, Variable = NULL, Datasets = warning("Parameter 'Dates' is a list with more than 2 ", "elements and only the first two will be used.") Dates <- Dates[1 : 2] - } - if (names(Dates)[1] != 'start' | names(Dates)[2] != 'end') { + } + if (names(Dates)[1] != 'start') { warning("The name of the first element of parameter 'Dates' ", - "is expected to be 'start' and the second 'end'.") + "is expected to be 'start'.") } - if (length(Dates[[1]]) != length(Dates[[2]]) & - length(Dates) == 2) { - stop("The length of the elements in parameter 'Dates' must ", - "be equal.") + if (length(Dates) == 2) { + if (names(Dates)[2] != 'end') { + warning("The name of the second element of parameter 'Dates' ", + "is expected to be 'end'.") + } + if (length(Dates[[1]]) != length(Dates[[2]])) { + stop("The length of the elements in parameter 'Dates' must ", + "be equal.") + } } if (!is.null(time_dims)) { time_dims <- dims[names(dims) %in% time_dims] diff --git a/man/s2dv_cube.Rd b/man/s2dv_cube.Rd index 1ff8f1ac..8ac06d78 100644 --- a/man/s2dv_cube.Rd +++ b/man/s2dv_cube.Rd @@ -27,7 +27,7 @@ s2dv_cube( \item{Datasets}{a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1")} -\item{Dates}{a named list of two elements: \code{start}, an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date, and \code{end}, an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date.} +\item{Dates}{a named list of one to two elements: The first element, \code{start}, is an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date. The second element, \code{end} (optional), is an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date.} \item{time_dims}{a vector of strings containing the names of the temporal dimensions found in \code{data}.} -- GitLab From f3947c91876643bbbc88f6b115ad507f1de0d3f5 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Fri, 22 Apr 2022 12:22:30 +0200 Subject: [PATCH 08/11] Add my name to the description file --- DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/DESCRIPTION b/DESCRIPTION index 52999f2a..7a84dcce 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -33,6 +33,7 @@ Authors@R: c( person("Francesc", "Roura-Adserias", , "francesc.roura@bsc.es", role = "ctb"), person("Silvia", "Terzago", , "s.terzago@isac.cnr.it", role = "ctb"), person("Danila", "Volpi", , "d.volpi@isac.cnr.it", role = "ctb"), + person("Victoria", "Agudetse", , "victoria.agudetse@bsc.es", role = "ctb") person("BSC-CNS", role = c("cph"))) Description: Exploits dynamical seasonal forecasts in order to provide information relevant to stakeholders at the seasonal timescale. The package -- GitLab From f9a70287099a10d439e51f947bf1c23d4dbb596a Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Fri, 22 Apr 2022 14:19:44 +0200 Subject: [PATCH 09/11] Comment line to run CSTools unit tests --- .Rbuildignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index fa596e70..ce0ce4c7 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -4,5 +4,5 @@ .*\.pdf$ ./.nc$ .*^(?!data)\.RData$ -.*\.gitlab-ci.yml$ +# .*\.gitlab-ci.yml$ ^tests$ -- GitLab From 09129b9475af321e5901ab2c77a00c6e86413916 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Fri, 22 Apr 2022 14:21:59 +0200 Subject: [PATCH 10/11] Add missing comma --- DESCRIPTION | 2 +- R/s2dv_cube.R | 36 +++++++++++++++++++++++++++--------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 7a84dcce..454397ae 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -33,7 +33,7 @@ Authors@R: c( person("Francesc", "Roura-Adserias", , "francesc.roura@bsc.es", role = "ctb"), person("Silvia", "Terzago", , "s.terzago@isac.cnr.it", role = "ctb"), person("Danila", "Volpi", , "d.volpi@isac.cnr.it", role = "ctb"), - person("Victoria", "Agudetse", , "victoria.agudetse@bsc.es", role = "ctb") + person("Victoria", "Agudetse", , "victoria.agudetse@bsc.es", role = "ctb"), person("BSC-CNS", role = c("cph"))) Description: Exploits dynamical seasonal forecasts in order to provide information relevant to stakeholders at the seasonal timescale. The package diff --git a/R/s2dv_cube.R b/R/s2dv_cube.R index feee5e42..5a208a3d 100644 --- a/R/s2dv_cube.R +++ b/R/s2dv_cube.R @@ -10,15 +10,33 @@ #' #'@author Perez-Zanon Nuria, \email{nuria.perez@bsc.es} #' -#'@param data an array with any number of named dimensions, typically an object output from CST_Load, with the following dimensions: dataset, member, sdate, ftime, lat and lon. -#'@param lon an array with one dimension containing the longitudes and attributes: dim, cdo_grid_name, data_across_gw, array_across_gw, first_lon, last_lon and projection. -#'@param lat an array with one dimension containing the latitudes and attributes: dim, cdo_grid_name, first_lat, last_lat and projection. -#'@param Variable a list of two elements: \code{varName} a character string indicating the abbreviation of a variable name and \code{level} a character string indicating the level (e.g., "2m"), if it is not required it could be set as NULL. -#'@param Datasets a named list with the dataset model with two elements: \code{InitiatlizationDates}, containing a list of the start dates for each member named with the names of each member, and \code{Members} containing a vector with the member names (e.g., "Member_1") -#'@param Dates a named list of one to two elements: The first element, \code{start}, is an array of dimensions (sdate, time) with the POSIX initial date of each forecast time of each starting date. The second element, \code{end} (optional), is an array of dimensions (sdate, time) with the POSIX final date of each forecast time of each starting date. -#'@param time_dims a vector of strings containing the names of the temporal dimensions found in \code{data}. -#'@param when a time stamp of the date issued by the Load() call to obtain the data. -#'@param source_files a vector of character strings with complete paths to all the found files involved in the Load() call. +#'@param data an array with any number of named dimensions, typically an object +#' output from CST_Load, with the following dimensions: dataset, member, sdate, +#'ftime, lat and lon. +#'@param lon an array with one dimension containing the longitudes and +#'attributes: dim, cdo_grid_name, data_across_gw, array_across_gw, first_lon, +#'last_lon and projection. +#'@param lat an array with one dimension containing the latitudes and +#'attributes: dim, cdo_grid_name, first_lat, last_lat and projection. +#'@param Variable a list of two elements: \code{varName} a character string +#'indicating the abbreviation of a variable name and \code{level} a character +#'string indicating the level (e.g., "2m"), if it is not required it could be +#' set as NULL. +#'@param Datasets a named list with the dataset model with two elements: +#'\code{InitiatlizationDates}, containing a list of the start dates for each +#'member named with the names of each member, and \code{Members} containing a +#'vector with the member names (e.g., "Member_1") +#'@param Dates a named list of one to two elements: The first element, +#'\code{start}, is an array of dimensions (sdate, time) with the POSIX initial +#'date of each forecast time of each starting date. The second element, +#'\code{end} (optional), is an array of dimensions (sdate, time) with the POSIX +# final date of each forecast time of each starting date. +#'@param time_dims a vector of strings containing the names of the temporal +#'dimensions found in \code{data}. +#'@param when a time stamp of the date issued by the Load() call to obtain the +#'data. +#'@param source_files a vector of character strings with complete paths to all +#'the found files involved in the Load() call. #' #'@return The function returns an object of class 's2dv_cube'. #' -- GitLab From 1eb21a42e959aeef373acb8a93e5354467eef903 Mon Sep 17 00:00:00 2001 From: Victoria Agudetse Roures Date: Fri, 22 Apr 2022 14:31:21 +0200 Subject: [PATCH 11/11] Comment correct line --- .Rbuildignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index ce0ce4c7..b2d8e5fc 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -4,5 +4,5 @@ .*\.pdf$ ./.nc$ .*^(?!data)\.RData$ -# .*\.gitlab-ci.yml$ -^tests$ +.*\.gitlab-ci.yml$ +#^tests$ -- GitLab