From 4d187d9a12065364edec62d054d84e5b69ed4633 Mon Sep 17 00:00:00 2001 From: aho Date: Fri, 21 Feb 2020 17:54:02 +0100 Subject: [PATCH 01/24] Fix lat_reorder when selector is values(list()). --- R/SelectorChecker.R | 34 ++++++++++++++++++++++++++++------ R/Start.R | 9 ++++++--- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index 141cae2..a37fc83 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -52,7 +52,7 @@ SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, } } else if (is.numeric(selectors[[i]])) { if (is.numeric(var)) { - val <- selectors[[i]] + tol <- 0 if (!is.null(tolerance)) { if (!any(class(tolerance) %in% "numeric")) { @@ -60,24 +60,46 @@ SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, } tol <- tolerance } + + val <- selectors[[i]] + if (i == 1) { if (crescent_selectors) { val <- val - tol - selectors[[i]] <- which(var >= val)[1] + if (var[1] < var[2]) { + selectors[[i]] <- which(var >= val)[1] + } else if (var[1] > var[2]) { + selectors[[i]] <- rev(which(var >= val))[1] + } + } else { val <- val + tol - selectors[[i]] <- rev(which(var <= val))[1] + if (var[1] < var[2]) { + selectors[[i]] <- rev(which(var <= val))[1] + } else if (var[1] > var[2]) { + selectors[[i]] <- which(var <= val)[1] + } } } - else { + else if (i == 2) { if (crescent_selectors) { val <- val + tol - selectors[[i]] <- rev(which(var <= val))[1] + if (var[1] < var[2]) { + selectors[[i]] <- rev(which(var <= val))[1] + } else if (var[1] > var[2]) { + selectors[[i]] <- which(var <= val)[1] + } + } else { val <- val - tol - selectors[[i]] <- which(var >= val)[1] + if (var[1] < var[2]) { + selectors[[i]] <- which(var >= val)[1] + } else if (var[1] > var[2]) { + selectors[[i]] <- rev(which(var >= val))[1] + } } } + } else { stop("Numeric selectors provided but possible values in 'var' are not numeric.") } diff --git a/R/Start.R b/R/Start.R index c3422bb..e7de222 100644 --- a/R/Start.R +++ b/R/Start.R @@ -1955,9 +1955,12 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B if (!is.null(var_ordered) && !selectors_are_indices) { if (!is.null(dim_reorder_params[[inner_dim]])) { if (is.list(sub_array_of_selectors)) { - sub_array_reordered <- dim_reorder_params[[inner_dim]](unlist(sub_array_of_selectors)) - sub_array_unorder <- sort(sub_array_reordered$ix, index.return = TRUE)$ix - sub_array_of_selectors <- as.list(sub_array_reordered$x[sub_array_unorder]) + # HERE change to the same code as below (under 'else'). Not sure why originally + #it uses additional lines, which make reorder not work. + sub_array_of_selectors <- as.list(dim_reorder_params[[inner_dim]](unlist(sub_array_of_selectors))$x) + #sub_array_reordered <- dim_reorder_params[[inner_dim]](unlist(sub_array_of_selectors)) + #sub_array_unorder <- sort(sub_array_reordered$ix, index.return = TRUE)$ix + #sub_array_of_selectors <- as.list(sub_array_reordered$x[sub_array_unorder]) is_circular_dim <- attr(dim_reorder_params[[inner_dim]], 'circular') if (!is.null(is_circular_dim)) { if (is_circular_dim) { -- GitLab From d0a0e2f378e32116efe4f3cf905a8cdc4e2d9b22 Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 25 Feb 2020 15:04:07 +0100 Subject: [PATCH 02/24] Fix reordering when transform, also considering if return_vars is common or not --- R/Start.R | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/R/Start.R b/R/Start.R index e7de222..0a1a3ca 100644 --- a/R/Start.R +++ b/R/Start.R @@ -1408,21 +1408,32 @@ debug <- TRUE picked_vars_to_transform <- names(picked_vars[[i]])[picked_vars_to_transform] new_vars_to_transform <- picked_vars[[i]][picked_vars_to_transform] which_are_ordered <- which(!sapply(picked_vars_ordered[[i]][picked_vars_to_transform], is.null)) + +##NOTE: The following 'if' replaces the original with reordering vector if (length(which_are_ordered) > 0) { - new_vars_to_transform[which_are_ordered] <- picked_vars_ordered[[i]][which_are_ordered] + tmp <- which(!is.na(match(names(picked_vars_ordered[[i]]), names(which_are_ordered)))) + new_vars_to_transform[which_are_ordered] <- picked_vars_ordered[[i]][tmp] + } vars_to_transform <- c(vars_to_transform, new_vars_to_transform) } + +##NOTE: Above is non-common vars, here is common vars (ie, return_vars = NULL). picked_common_vars_to_transform <- which(names(picked_common_vars) %in% transform_vars) if (length(picked_common_vars_to_transform) > 0) { picked_common_vars_to_transform <- names(picked_common_vars)[picked_common_vars_to_transform] - new_vars_to_transform <- picked_common_vars[[i]][picked_common_vars_to_transform] - which_are_ordered <- which(!sapply(picked_common_vars_ordered[[i]][picked_common_vars_to_transform], is.null)) + + new_vars_to_transform <- picked_common_vars[picked_common_vars_to_transform] + which_are_ordered <- which(!sapply(picked_common_vars_ordered[picked_common_vars_to_transform], is.null)) + if (length(which_are_ordered) > 0) { - new_vars_to_transform[which_are_ordered] <- picked_common_vars_ordered[[i]][which_are_ordered] + + tmp <- which(!is.na(match(names(picked_common_vars_ordered), names(which_are_ordered)))) + new_vars_to_transform[which_are_ordered] <- picked_common_vars_ordered[tmp] } vars_to_transform <- c(vars_to_transform, new_vars_to_transform) } + # Transform the variables transformed_data <- do.call(transform, c(list(data_array = NULL, variables = vars_to_transform, @@ -2066,8 +2077,23 @@ print("-> SELECTORS REQUESTED BEFORE TRANSFORM.") } subset_vars_to_transform <- vars_to_transform if (!is.null(var_ordered)) { + +##NOTE: if var_ordered is common_vars, it doesn't have attributes and it is a vector. +## Turn it into array and add dimension name. + if (!is.array(var_ordered)) { + var_ordered <- as.array(var_ordered) + names(dim(var_ordered)) <- inner_dim + } + subset_vars_to_transform[[var_with_selectors_name]] <- Subset(var_ordered, inner_dim, sub_array_of_fri) } else { +##NOTE: It should be redundant because without reordering the var should remain array +## But just stay same with above... + if (!is.array(sub_array_of_values)) { + sub_array_of_values <- as.array(sub_array_of_values) + names(dim(sub_array_of_values)) <- inner_dim + } + subset_vars_to_transform[[var_with_selectors_name]] <- Subset(sub_array_of_values, inner_dim, sub_array_of_fri) } transformed_subset_var <- do.call(transform, c(list(data_array = NULL, -- GitLab From 8f83c20fb46ccbeb0267d29adc24834e74a94c3e Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 11 Mar 2020 09:04:15 +0100 Subject: [PATCH 03/24] Fix bugs for non-transform longitude reorder (CircularSort) --- R/SelectorChecker.R | 32 ++++++++++++++++++++++++++++++++ R/Start.R | 30 +++++++++++++++++++++--------- 2 files changed, 53 insertions(+), 9 deletions(-) diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index a37fc83..817610b 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -100,10 +100,34 @@ SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, } } + # Check if the selectors (i.e., lower/upper limits) out of range + if (!is.na(selectors[[i]])) { + if (i == 1) { + if (val < min(var)) { + warning(paste0("The lower boundary of selector of ", + attr(attr(selectors, "dim"), "names"), + " is out of range [", + min(var), ", ", max(var), "]. ", + "Check if the desired range is all included.")) + } + + } else if (i == 2) { + if (val > max(var)) { + warning(paste0("The upper boundary of selector of ", + attr(attr(selectors, "dim"), "names"), + " is out of range [", + min(var), ", ", max(var), "]. ", + "Check if the desired range is all included.")) + } + } + } + + } else { stop("Numeric selectors provided but possible values in 'var' are not numeric.") } } else if (any(c("POSIXct", "POSIXlt", "POSIXt", "Date") %in% class(selectors[[i]]))) { + # TODO: Here, change to as above (numeric part). if (any(c("POSIXct", "POSIXlt", "POSIXt", "Date") %in% class(var))) { val <- selectors[[i]] tol <- 0 @@ -136,6 +160,14 @@ SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, } } } + + # Check if any of the selectors are NA + if (any(is.na(selectors))) { + stop(paste0("The selectors of ", attr(attr(selectors, + "dim"), "names"), " are out of range [", range(var)[1], + ", ", range(var)[2], "].")) + } + # The checker is returning a list of two indices. ##selectors[[1]]:selectors[[2]] selectors diff --git a/R/Start.R b/R/Start.R index 0a1a3ca..577921c 100644 --- a/R/Start.R +++ b/R/Start.R @@ -1966,19 +1966,27 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B if (!is.null(var_ordered) && !selectors_are_indices) { if (!is.null(dim_reorder_params[[inner_dim]])) { if (is.list(sub_array_of_selectors)) { + +## NOTE: The check of 'goes_across_prime_meridian' is moved forward to here. + is_circular_dim <- attr(dim_reorder_params[[inner_dim]], "circular") + if (!is.null(is_circular_dim)) { + if (is_circular_dim) { + +# NOTE: Use CircularSort() to put the values in the assigned range, and get the order. +# For example, [-10, 20] in CircularSort(0, 360) is [350, 20]. The $ix list is [2, 1]. +# 'goes_across_prime_meridian' means the selector range across the border. For example, +# CircularSort(-180, 180) with selector [170, 190] -> goes_across_prime_meridian = TRUE. + tmp <- dim_reorder_params[[inner_dim]](unlist(sub_array_of_selectors))$ix + goes_across_prime_meridian <- tmp[1] > tmp[2] + } + } + # HERE change to the same code as below (under 'else'). Not sure why originally #it uses additional lines, which make reorder not work. sub_array_of_selectors <- as.list(dim_reorder_params[[inner_dim]](unlist(sub_array_of_selectors))$x) #sub_array_reordered <- dim_reorder_params[[inner_dim]](unlist(sub_array_of_selectors)) #sub_array_unorder <- sort(sub_array_reordered$ix, index.return = TRUE)$ix #sub_array_of_selectors <- as.list(sub_array_reordered$x[sub_array_unorder]) - is_circular_dim <- attr(dim_reorder_params[[inner_dim]], 'circular') - if (!is.null(is_circular_dim)) { - if (is_circular_dim) { - goes_across_prime_meridian <- abs(sub_array_of_selectors[[1]]) > abs(sub_array_of_selectors[[2]]) - ## TODO: if (bounds[1] > bounds[2]) goes_across_prime_meridian <- !goes_across_prime_meridian - } - } } else { sub_array_of_selectors <- dim_reorder_params[[inner_dim]](sub_array_of_selectors)$x } @@ -2052,6 +2060,9 @@ if (inner_dim %in% dims_to_check) { print("-> SELECTORS REQUESTED BEFORE TRANSFORM.") } } + +###NOTE: Here, the transform, is different from the below part of non-transform. +# search 'if (goes_across_prime_meridian' to find the lines below. if (goes_across_prime_meridian) { sub_array_of_fri <- 1:n #gap_width <- sub_array_of_indices[[1]] - sub_array_of_indices[[2]] - 1 @@ -2171,8 +2182,9 @@ print(str(tvi)) list(value = sub_array_of_sri))) } else { if (goes_across_prime_meridian) { - #sub_array_of_fri <- 1:n - sub_array_of_fri <- c(1:sub_array_of_indices[[2]], sub_array_of_indices[[1]]:n) + sub_array_of_fri <- c(1:min(unlist(sub_array_of_indices)), + max(unlist(sub_array_of_indices)):n) + } else if (is.list(sub_array_of_indices)) { sub_array_of_fri <- sub_array_of_indices[[1]]:sub_array_of_indices[[2]] } else { -- GitLab From ee6c43aeb605973a12be5651733d935a96493d78 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 11 Mar 2020 10:01:59 +0100 Subject: [PATCH 04/24] Fix the warning in SelectorChecker() for out-of-range selectors --- R/SelectorChecker.R | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index 817610b..1701ee0 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -103,21 +103,21 @@ SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, # Check if the selectors (i.e., lower/upper limits) out of range if (!is.na(selectors[[i]])) { if (i == 1) { - if (val < min(var)) { - warning(paste0("The lower boundary of selector of ", - attr(attr(selectors, "dim"), "names"), - " is out of range [", - min(var), ", ", max(var), "]. ", - "Check if the desired range is all included.")) + if (val < range(var)[1] | val > range(var)[2]) { + .warning(paste0("The lower boundary of selector of ", + attr(attr(selectors, "dim"), "names"), + " is out of range [", + min(var), ", ", max(var), "]. ", + "Check if the desired range is all included.")) } } else if (i == 2) { - if (val > max(var)) { - warning(paste0("The upper boundary of selector of ", - attr(attr(selectors, "dim"), "names"), - " is out of range [", - min(var), ", ", max(var), "]. ", - "Check if the desired range is all included.")) + if (val < range(var)[1] | val > range(var)[2]) { + .warning(paste0("The upper boundary of selector of ", + attr(attr(selectors, "dim"), "names"), + " is out of range [", + min(var), ", ", max(var), "]. ", + "Check if the desired range is all included.")) } } } -- GitLab From cc4c5401ed5c304283b49ff22c61a2bc757ac4ea Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 11 Mar 2020 13:36:28 +0100 Subject: [PATCH 05/24] Move the out-of-range warning from SelectorChecker() to Start() --- R/SelectorChecker.R | 22 ---------------------- R/Start.R | 46 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 22 deletions(-) diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index 1701ee0..a92e349 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -100,28 +100,6 @@ SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, } } - # Check if the selectors (i.e., lower/upper limits) out of range - if (!is.na(selectors[[i]])) { - if (i == 1) { - if (val < range(var)[1] | val > range(var)[2]) { - .warning(paste0("The lower boundary of selector of ", - attr(attr(selectors, "dim"), "names"), - " is out of range [", - min(var), ", ", max(var), "]. ", - "Check if the desired range is all included.")) - } - - } else if (i == 2) { - if (val < range(var)[1] | val > range(var)[2]) { - .warning(paste0("The upper boundary of selector of ", - attr(attr(selectors, "dim"), "names"), - " is out of range [", - min(var), ", ", max(var), "]. ", - "Check if the desired range is all included.")) - } - } - } - } else { stop("Numeric selectors provided but possible values in 'var' are not numeric.") diff --git a/R/Start.R b/R/Start.R index 577921c..ad5ea76 100644 --- a/R/Start.R +++ b/R/Start.R @@ -1987,6 +1987,24 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B #sub_array_reordered <- dim_reorder_params[[inner_dim]](unlist(sub_array_of_selectors)) #sub_array_unorder <- sort(sub_array_reordered$ix, index.return = TRUE)$ix #sub_array_of_selectors <- as.list(sub_array_reordered$x[sub_array_unorder]) + +# Add warning if the boundary is out of range + if (sub_array_of_selectors[1] < range(var_ordered)[1] | sub_array_of_selectors[1] > range(var_ordered)[2]) { + .warning(paste0("The lower boundary of selector of ", + inner_dim, + " is out of range [", + min(var_ordered), ", ", max(var_ordered), "]. ", + "Check if the desired range is all included.")) + } + if (sub_array_of_selectors[2] < range(var_ordered)[1] | sub_array_of_selectors[2] > range(var_ordered)[2]) { + .warning(paste0("The upper boundary of selector of ", + inner_dim, + " is out of range [", + min(var_ordered), ", ", max(var_ordered), "]. ", + "Check if the desired range is all included.")) + } + + } else { sub_array_of_selectors <- dim_reorder_params[[inner_dim]](sub_array_of_selectors)$x } @@ -1998,6 +2016,34 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B tolerance_params[[inner_dim]] }) } else { + +# Add warning if the boundary is out of range + if (is.list(sub_array_of_selectors)) { + print("HEREEEE") + print("sub_array_of_selectors") + print(str(sub_array_of_selectors)) + print("sub_array_of_values") + print(str(sub_array_of_values)) + if (sub_array_of_selectors[1] < + min(sub_array_of_values) | sub_array_of_selectors[1] > + max(sub_array_of_values)) { + .warning(paste0("The lower boundary of selector of ", + inner_dim, " is out of range [", + min(sub_array_of_values), ", ", + max(sub_array_of_values), "]. ", + "Check if the desired range is all included.")) + } + if (sub_array_of_selectors[2] < + min(sub_array_of_values) | sub_array_of_selectors[2] > + max(sub_array_of_values)) { + .warning(paste0("The upper boundary of selector of ", + inner_dim, " is out of range [", + min(sub_array_of_values), ", ", + max(sub_array_of_values), "]. ", + "Check if the desired range is all included.")) + } + } + sub_array_of_indices <- selector_checker(sub_array_of_selectors, sub_array_of_values, tolerance = if (aiat) { NULL -- GitLab From f09e29d8358b7a40f5baef3d57f230efe2922d7a Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 12 Mar 2020 17:35:07 +0100 Subject: [PATCH 06/24] Fix bugs for transform longitude reorder (CircularSort) and without reorder cases --- R/Start.R | 64 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/R/Start.R b/R/Start.R index ad5ea76..9b77868 100644 --- a/R/Start.R +++ b/R/Start.R @@ -2015,15 +2015,18 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B } else { tolerance_params[[inner_dim]] }) + + if (any(is.na(sub_array_of_indices))) { + + stop(paste0("The selectors of ", inner_dim, + " are out of range [", min(var_ordered), + ", ", max(var_ordered), "].")) + } + } else { # Add warning if the boundary is out of range if (is.list(sub_array_of_selectors)) { - print("HEREEEE") - print("sub_array_of_selectors") - print(str(sub_array_of_selectors)) - print("sub_array_of_values") - print(str(sub_array_of_values)) if (sub_array_of_selectors[1] < min(sub_array_of_values) | sub_array_of_selectors[1] > max(sub_array_of_values)) { @@ -2050,6 +2053,14 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B } else { tolerance_params[[inner_dim]] }) + + if (any(is.na(sub_array_of_indices))) { + + stop(paste0("The selectors of ", inner_dim, + " are out of range [", min(sub_array_of_values), + ", ", max(sub_array_of_values), "].")) + } + } ## This 'if' runs in both Start() and Compute(). In Start(), it doesn't have any effect (no chunk). ## In Compute(), it creates the indices for each chunk. For example, if 'sub_array_of_indices' @@ -2110,7 +2121,12 @@ print("-> SELECTORS REQUESTED BEFORE TRANSFORM.") ###NOTE: Here, the transform, is different from the below part of non-transform. # search 'if (goes_across_prime_meridian' to find the lines below. if (goes_across_prime_meridian) { - sub_array_of_fri <- 1:n +# NOTE: before changing, the return is already correct. sub_array_of_fri is defined +# again afterward. Not sure if here is redundant. + sub_array_of_fri <- c(1:min(unlist(sub_array_of_indices)), + max(unlist(sub_array_of_indices)):n) + + #gap_width <- sub_array_of_indices[[1]] - sub_array_of_indices[[2]] - 1 #sub_array_of_fri <- c((1:(sub_array_of_indices[[2]] + min(gap_width, beta))), # (sub_array_of_indices[[1]] - min(gap_width, beta)):n) @@ -2120,17 +2136,16 @@ print("-> SELECTORS REQUESTED BEFORE TRANSFORM.") } first_index <- min(unlist(sub_array_of_indices)) last_index <- max(unlist(sub_array_of_indices)) - if (first_index - beta <= 0 | last_index + beta > n) { - sub_array_of_fri <- 1:n - .warning(paste0("Adding the parameter transform_extra_cells = ", - transform_extra_cells, " to the transformed index excesses ", - "the border. Use the whole index instead.")) - } else { - sub_array_of_fri <- (first_index - beta):(last_index + beta) - } - #start_padding <- min(beta, first_index - 1) - #end_padding <- min(beta, n - last_index) - #sub_array_of_fri <- (first_index - start_padding):(last_index + end_padding) + + start_padding <- min(beta, first_index - 1) + end_padding <- min(beta, n - last_index) + sub_array_of_fri <- (first_index - start_padding):(last_index + end_padding) + if (start_padding != beta | end_padding != beta) { + .warning(paste0("Adding parameter transform_extra_cells = ", + transform_extra_cells, " to the transformed index excesses ", + "the border. The border index is used for transformation.")) + } + } subset_vars_to_transform <- vars_to_transform if (!is.null(var_ordered)) { @@ -2153,6 +2168,14 @@ print("-> SELECTORS REQUESTED BEFORE TRANSFORM.") subset_vars_to_transform[[var_with_selectors_name]] <- Subset(sub_array_of_values, inner_dim, sub_array_of_fri) } +## NOTE: Remove 'crop' from transform_params if no reorder. It causes error. +## But 'crop' has effect on reorder cases... need further investigation + if (is.null(dim_reorder_params[[inner_dim]])) { + if ('crop' %in% names(transform_params)) { + transform_params <- transform_params[-which(names(transform_params) == 'crop')] + } + } + transformed_subset_var <- do.call(transform, c(list(data_array = NULL, variables = subset_vars_to_transform, file_selectors = selectors_of_first_files_with_data[[i]]), @@ -2172,8 +2195,11 @@ print("-> SELECTORS REQUESTED BEFORE TRANSFORM.") NULL }) if (goes_across_prime_meridian) { - sub_array_of_sri <- c(1:sub_array_of_sri[[2]], sub_array_of_sri[[1]]:length(transformed_subset_var)) - #sub_array_of_sri <- c(sub_array_of_sri[[1]]:length(transformed_subset_var), 1:sub_array_of_sri[[2]]) + # Because sub_array_of_sri order is exchanged due to + # previous development, here [[1]] and [[2]] should exchange + sub_array_of_sri <- c(1:sub_array_of_sri[[1]], + sub_array_of_sri[[2]]:length(transformed_subset_var)) + } else if (is.list(sub_array_of_sri)) { sub_array_of_sri <- sub_array_of_sri[[1]]:sub_array_of_sri[[2]] } -- GitLab From 1d7154ae898c7eb959021ea2784611105b73f574 Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 17 Mar 2020 21:58:42 +0100 Subject: [PATCH 07/24] Bugfix for lon-unreorder-transform. If the selectors is out of transform grid range, return Error. --- R/Start.R | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/R/Start.R b/R/Start.R index 9b77868..8a34b07 100644 --- a/R/Start.R +++ b/R/Start.R @@ -2194,6 +2194,18 @@ print("-> SELECTORS REQUESTED BEFORE TRANSFORM.") } else { NULL }) + +# Check if selectors fall out of the range of the transform grid +# It may happen when original lon is [-180, 180] while want to regrid to +# [0, 360], and lon selector = [-20, -10]. + if (any(is.na(sub_array_of_sri))) { + stop(paste0("The selectors of ", + inner_dim, " are out of range of transform grid '", + transform_params$grid, "'. Use parameter '", + inner_dim, "_reorder' or change ", inner_dim, + " selectors.")) + } + if (goes_across_prime_meridian) { # Because sub_array_of_sri order is exchanged due to # previous development, here [[1]] and [[2]] should exchange -- GitLab From abd2e47231b4c05310fb20d8ee3aef8745248d18 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 18 Mar 2020 20:18:55 +0100 Subject: [PATCH 08/24] Add How-to-#11 about lat/lon convention --- inst/doc/faq.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/inst/doc/faq.md b/inst/doc/faq.md index 572bff8..1fc988d 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -14,6 +14,7 @@ This document intends to be the first reference for any doubts that you may have 8. [Define a path with multiple dependencies](#8-define-a-path-with-multiple-dependencies) 9. [Use CDORemap() in function](#9-use-cdoremap-in-function) 10. [The number of members depends on the start date](#10-the-number-of-members-depends-on-the-start-date) + 11. [Read latitude and longitude with the usage of parameter 'xxx_reorder'](#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx-reorder) 2. **Something goes wrong...** @@ -400,6 +401,31 @@ When trying to load both start dates at once using Start(), the order in which t The code to reproduce this behaviour could be found in the Use Cases section, [example 1.4](/inst/doc/usecase/ex1_4_variable_nmember.R). +### 11. Read latitude and longitude with the usage of parameter 'xxx_reorder' + +There are three ways to specify the dimension selectors: special keywords('all', 'first', 'last'), indices, or values (find more details in [pratical guide](inst/doc/practical_guide.md)). +The parameter 'xxx_reorder' is only effective when using values. + +There are two reorder functions in startR package, Sort() for latitude and CircularSort() for longitude. +Sort() is a wrapper function of base function sort(), rearranging the values from low to high (decreasing = TRUE, default) or +from high to low (decreasing = FALSE). For example, if you want to sort latitude from 90 to -90, use `latitude_reorder = Sort(decreasing = TRUE)`. +By this means, the result will always from big to small value no matter how the original order is. + +On the other hand, the concept of CircularSort() is different. It is used for a circular region, putting the out-of-region values back to the region. +It requires two input numbers defining the borders of the whole region, which are usually [0, 360] or [-180, 180]. For example, +`longitude_reorder = CircularSort(0, 360)` means that the left border is 0 and the right border is 360, so 360 will be put back to 0, 361 will be put back to 1, +and -1 will become 359. After circulating values, CircularSort() also sorts the values from small to big. It may cause the discontinous sub-region, +but the problem can be solved by assigning the borders correctly. + +The following chart helps you to decide how to use CircularSort() to get the desired region. +Note that this chart only provides the idea. The real numbers may slightly differ depending on the original/transform values. + +(Here needs to insert the chart) + +If parameter 'xxx_reorder' is not used, the situation will be more complicated and easier to get unexpected results. +The following chart shows some examples. We encourage to always use 'xxx_reorder' so you can ensure the results are in line with your expectation. + +(Here needs to insert the chart) ## Something goes wrong... -- GitLab From ba165f80a44d6f233a222eeeaccda4015f59fa48 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 18 Mar 2020 20:40:55 +0100 Subject: [PATCH 09/24] Remove the out-of-range error in SelectorChecker. It is in Start() now. --- R/SelectorChecker.R | 7 ------- 1 file changed, 7 deletions(-) diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index a92e349..14bae7e 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -139,13 +139,6 @@ SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, } } - # Check if any of the selectors are NA - if (any(is.na(selectors))) { - stop(paste0("The selectors of ", attr(attr(selectors, - "dim"), "names"), " are out of range [", range(var)[1], - ", ", range(var)[2], "].")) - } - # The checker is returning a list of two indices. ##selectors[[1]]:selectors[[2]] selectors -- GitLab From 7e99b6a2f46475c4ed0eee238667e82ed3e499f9 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 18 Mar 2020 21:05:46 +0100 Subject: [PATCH 10/24] Fix hyperlink for how-to-#11 --- inst/doc/faq.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inst/doc/faq.md b/inst/doc/faq.md index 1fc988d..331a99a 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -14,7 +14,7 @@ This document intends to be the first reference for any doubts that you may have 8. [Define a path with multiple dependencies](#8-define-a-path-with-multiple-dependencies) 9. [Use CDORemap() in function](#9-use-cdoremap-in-function) 10. [The number of members depends on the start date](#10-the-number-of-members-depends-on-the-start-date) - 11. [Read latitude and longitude with the usage of parameter 'xxx_reorder'](#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx-reorder) + 11. [Read latitude and longitude with the usage of parameter 'xxx_reorder'](#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx_reorder) 2. **Something goes wrong...** @@ -418,6 +418,7 @@ and -1 will become 359. After circulating values, CircularSort() also sorts the but the problem can be solved by assigning the borders correctly. The following chart helps you to decide how to use CircularSort() to get the desired region. +The first row represents `values(list(lon.min, lon.max))`. Note that this chart only provides the idea. The real numbers may slightly differ depending on the original/transform values. (Here needs to insert the chart) -- GitLab From 5cd342e2998699b00c636f6a8d0231ab9f47d82f Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 19 Mar 2020 10:21:54 +0100 Subject: [PATCH 11/24] Add usecase for latlon reorder functions. --- inst/doc/usecase.md | 5 + inst/doc/usecase/ex1_5_latlon_reorder.R | 170 ++++++++++++++++++++++++ 2 files changed, 175 insertions(+) create mode 100644 inst/doc/usecase/ex1_5_latlon_reorder.R diff --git a/inst/doc/usecase.md b/inst/doc/usecase.md index fcaa782..5edf112 100644 --- a/inst/doc/usecase.md +++ b/inst/doc/usecase.md @@ -22,6 +22,11 @@ In this document, you can link to the example scripts for various demands. For t 4. [Checking impact of start date order in the number of members](inst/doc/usecase/ex1_4_variable_nmember.R) Mixing start dates of different months can lead to load different number of members, check the code provided and the [FAQ 10](/inst/doc/faq.md). + 5. [Use reorder functions to get desired lat/lon region](inst/doc/usecase/ex1_5_latlon_reorder.R) + This script shows you how to use reorder function (`Sort()`, `CircularSort()`) to +get the desired longitude and latitude region. See [faq.md How-to-#11] (/inst/doc/faq.md#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx_reorder) +for more explanation. + 2. **Execute computation (use `Compute()`)** 1. [Function working on time dimension](inst/doc/usecase/ex2_1_timedim.R) diff --git a/inst/doc/usecase/ex1_5_latlon_reorder.R b/inst/doc/usecase/ex1_5_latlon_reorder.R new file mode 100644 index 0000000..c54314f --- /dev/null +++ b/inst/doc/usecase/ex1_5_latlon_reorder.R @@ -0,0 +1,170 @@ +#--------------------------------------------------------------------- +# This script shows you how to use reorder function (Sort, CircularSort) +# to get the desired longitude and latitude region. + +# Note that the information of the lon/lat system in the original file is +# provided in order to illustrate a clearer picture, but it doesn't affect +# the results as long as the reorder functions are used. + +# Also, whether transformation is used or not, the range results remain the same. + +# See faq.md How-to-#11 for more explanation. + +#--------------------------------------------------------------------- + +library(startR) + +#---------------------------- +# CASE 1: +# Original file: lon [0:360]; lat [90:-90] +# Desired region: lon [-10, 10] in [-180, 180] system; lat [-20, 20] from south to north +# transformation: No +#---------------------------- +# tips: +# 1. Use 'latitude_reorder = Sort()' to sort latitude from south to north. +# The default of the hidden parameter 'decreasing' is TRUE. +# 2. Use 'longitude_reorder = CircularSort(-180, 180). It helps put the longitude values +# in [-180:180] system, so you can get the continuous region across 0 degree. +# 3. With reorder functions, the original file range does not affect the results. +#---------------------------- + +path_exp <- paste0('/esarchive/exp/ecmwf/system5_m1/daily_mean/', + '$var$_f6h/$var$_$sdate$.nc') +var <- 'psl' +sdate <- '19821201' + +lons.min <- -10 +lons.max <- 10 +lats.min <- -20 +lats.max <- 20 + + +res <- Start(dat = path_exp, + var = var, + ensemble = 'first', + sdate = sdate, + time = indices(1), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# Check the longitude and latitude +as.vector(attr(res, 'Variables')$dat1$latitude) +# [1] -19.8126401 ...... [142] 19.8126401 +as.vector(attr(res, 'Variables')$dat1$longitude) +# [1] -10.0000000 ...... [73] 10.0000000 + + + +#---------------------------- +# CASE 2: +# Original file: lon [0:360]; lat [90:-90] +# Desired region: lon [-10, 10] in [-180, 180] system; lat [20, -20] from north to south +# transformation: Yes, to 'r360x181' +#---------------------------- +# tips: +# 1. Use 'latitude_reorder = Sort(decreasing = TRUE)' to sort latitude from north to south. +# 2. Use 'longitude_reorder = CircularSort(-180, 180). It helps put the longitude values +# in [-180:180] system, so you can get the continuous region across 0 degree. +# 3. With the usage of reorder functions, transformation does not affect the results. +# 4. With reorder functions, the original file range does not affect the results. +#---------------------------- + +path_exp <- paste0('/esarchive/exp/ecmwf/system5_m1/daily_mean/', + '$var$_f6h/$var$_$sdate$.nc') +var <- 'psl' +sdate <- '19821201' + +lons.min <- -10 +lons.max <- 10 +lats.min <- 20 +lats.max <- -20 + +res <- Start(dat = path_exp, + var = var, + ensemble = 'first', + sdate = sdate, + time = indices(1), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min, lons.max, + lats.min, lats.max)), + transform_vars = c('longitude', 'latitude'), + synonims = list(latitude=c('lat', 'latitude'), + longitude=c('lon', 'longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# Check the longitude and latitude +as.vector(attr(res, 'Variables')$dat1$latitude) +# [1] 20 ...... [41] -20 +as.vector(attr(res, 'Variables')$dat1$longitude) +# [1] -10 ...... [21] 10 + + + +#---------------------------- +# CASE 3: +# Original file: lon [-180:180]; lat [90:-90] +# Desired region: lon [300, 320] in [0, 360] system; lat [-10, -20] from north to south +# transformation: Yes, to 'r360x181' +#---------------------------- +# tips: +# 1. Use 'latitude_reorder = Sort(decreasing = TRUE)' to sort latitude from north to south. +# 2. Use 'longitude_reorder = CircularSort(0, 360). It helps put the longitude values +# in [-180:180] system, so you can get the continuous region across 0 degree. +# 3. With the usage of reorder functions, transformation does not affect the results. +# 4. With reorder functions, the original file range does not affect the results. +#---------------------------- + +path_exp <- paste0('/esarchive/recon/ecmwf/era5/original_files/', + 'reorder/daily_mean/$var$/$var$_$sdate$.nc') +var <- 'tas' +sdate <- '199212' + +lons.min <- 300 +lons.max <- 320 +lats.min <- -10 +lats.max <- -20 + +res <- Start(dat = path_exp, + var = var, + sdate = sdate, + time = indices(1), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min, lons.max, + lats.min, lats.max)), + transform_vars = c('longitude', 'latitude'), + synonims = list(latitude=c('lat', 'latitude'), + longitude=c('lon', 'longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# Check the longitude and latitude +as.vector(attr(res, 'Variables')$dat1$latitude) +# [1] -10 ...... [11] -20 +as.vector(attr(res, 'Variables')$dat1$longitude) +# [1] 300 ...... [21] 320 + -- GitLab From 9ecf69efda770e4fd799299de60135f5155bbe38 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 19 Mar 2020 10:35:13 +0100 Subject: [PATCH 12/24] Format fix --- inst/doc/usecase.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/doc/usecase.md b/inst/doc/usecase.md index 5edf112..1dac948 100644 --- a/inst/doc/usecase.md +++ b/inst/doc/usecase.md @@ -22,9 +22,9 @@ In this document, you can link to the example scripts for various demands. For t 4. [Checking impact of start date order in the number of members](inst/doc/usecase/ex1_4_variable_nmember.R) Mixing start dates of different months can lead to load different number of members, check the code provided and the [FAQ 10](/inst/doc/faq.md). - 5. [Use reorder functions to get desired lat/lon region](inst/doc/usecase/ex1_5_latlon_reorder.R) + 5. [Use reorder functions to get desired lat/lon region](inst/doc/usecase/ex1_5_latlon_reorder.R) This script shows you how to use reorder function (`Sort()`, `CircularSort()`) to -get the desired longitude and latitude region. See [faq.md How-to-#11] (/inst/doc/faq.md#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx_reorder) +get the desired longitude and latitude region. See [FAQ How-to-#11] (/inst/doc/faq.md#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx_reorder) for more explanation. -- GitLab From 825b8085e08c97c44ba3274cbc463b24233e12e2 Mon Sep 17 00:00:00 2001 From: nperez Date: Thu, 19 Mar 2020 11:03:18 +0100 Subject: [PATCH 13/24] Including tables for FAQ 11 --- inst/doc/faq.md | 5 +++-- inst/doc/figures/lon-2.PNG | Bin 0 -> 67070 bytes inst/doc/figures/lon-3.PNG | Bin 0 -> 126438 bytes 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 inst/doc/figures/lon-2.PNG create mode 100644 inst/doc/figures/lon-3.PNG diff --git a/inst/doc/faq.md b/inst/doc/faq.md index 331a99a..2b81782 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -404,7 +404,7 @@ The code to reproduce this behaviour could be found in the Use Cases section, [e ### 11. Read latitude and longitude with the usage of parameter 'xxx_reorder' There are three ways to specify the dimension selectors: special keywords('all', 'first', 'last'), indices, or values (find more details in [pratical guide](inst/doc/practical_guide.md)). -The parameter 'xxx_reorder' is only effective when using values. +The parameter 'xxx_reorder' is only effective when using **values**. There are two reorder functions in startR package, Sort() for latitude and CircularSort() for longitude. Sort() is a wrapper function of base function sort(), rearranging the values from low to high (decreasing = TRUE, default) or @@ -426,8 +426,9 @@ Note that this chart only provides the idea. The real numbers may slightly diffe If parameter 'xxx_reorder' is not used, the situation will be more complicated and easier to get unexpected results. The following chart shows some examples. We encourage to always use 'xxx_reorder' so you can ensure the results are in line with your expectation. -(Here needs to insert the chart) +`Sb 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%0ABm5$|jx|D@dCF32`vUSlsj&=+&4 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ⅅ7UIIoE{1CL=`wP`DpQ!Y1D7q0GBpo>9g{6T9J6- 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 Date: Thu, 19 Mar 2020 11:05:26 +0100 Subject: [PATCH 14/24] displaying tables in FAQ 11 --- inst/doc/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/doc/faq.md b/inst/doc/faq.md index 2b81782..830feea 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -426,9 +426,9 @@ Note that this chart only provides the idea. The real numbers may slightly diffe If parameter 'xxx_reorder' is not used, the situation will be more complicated and easier to get unexpected results. The following chart shows some examples. We encourage to always use 'xxx_reorder' so you can ensure the results are in line with your expectation. - - ## Something goes wrong... -- GitLab From 82c1dc05e4c0c52a6e16558411fb2e7834e6e322 Mon Sep 17 00:00:00 2001 From: nperez Date: Thu, 19 Mar 2020 11:07:04 +0100 Subject: [PATCH 15/24] adjusting Table size in FAQ 11 --- inst/doc/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/doc/faq.md b/inst/doc/faq.md index 830feea..4ddc5e9 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -426,7 +426,7 @@ Note that this chart only provides the idea. The real numbers may slightly diffe If parameter 'xxx_reorder' is not used, the situation will be more complicated and easier to get unexpected results. The following chart shows some examples. We encourage to always use 'xxx_reorder' so you can ensure the results are in line with your expectation. - + -- GitLab From d028f228216e33e5baa19c96b22b7db9ae9c19a2 Mon Sep 17 00:00:00 2001 From: nperez Date: Thu, 19 Mar 2020 11:34:45 +0100 Subject: [PATCH 16/24] correct position table in FAQ 11 --- inst/doc/faq.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/inst/doc/faq.md b/inst/doc/faq.md index 4ddc5e9..de39065 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -421,12 +421,11 @@ The following chart helps you to decide how to use CircularSort() to get the des The first row represents `values(list(lon.min, lon.max))`. Note that this chart only provides the idea. The real numbers may slightly differ depending on the original/transform values. -(Here needs to insert the chart) + If parameter 'xxx_reorder' is not used, the situation will be more complicated and easier to get unexpected results. The following chart shows some examples. We encourage to always use 'xxx_reorder' so you can ensure the results are in line with your expectation. - -- GitLab From 958900ec8b24b34b6364727248e80cd0385bbae4 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 19 Mar 2020 12:20:51 +0100 Subject: [PATCH 17/24] Split how-to-11 into 11 and 12. 11 for using reorder functions, 12 for not using reorder functions. --- inst/doc/faq.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/inst/doc/faq.md b/inst/doc/faq.md index de39065..ec228c8 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -14,7 +14,8 @@ This document intends to be the first reference for any doubts that you may have 8. [Define a path with multiple dependencies](#8-define-a-path-with-multiple-dependencies) 9. [Use CDORemap() in function](#9-use-cdoremap-in-function) 10. [The number of members depends on the start date](#10-the-number-of-members-depends-on-the-start-date) - 11. [Read latitude and longitude with the usage of parameter 'xxx_reorder'](#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx_reorder) + 11. [Select the longitude/latitude region](#11-select-the-longitudelatitude-region) + 12. [What will happen if reorder function is not used](#12-what-will-happen-if-reorder-function-is-not-used) 2. **Something goes wrong...** @@ -401,12 +402,12 @@ When trying to load both start dates at once using Start(), the order in which t The code to reproduce this behaviour could be found in the Use Cases section, [example 1.4](/inst/doc/usecase/ex1_4_variable_nmember.R). -### 11. Read latitude and longitude with the usage of parameter 'xxx_reorder' +### 11. Select the longitude/latitude region There are three ways to specify the dimension selectors: special keywords('all', 'first', 'last'), indices, or values (find more details in [pratical guide](inst/doc/practical_guide.md)). The parameter 'xxx_reorder' is only effective when using **values**. -There are two reorder functions in startR package, Sort() for latitude and CircularSort() for longitude. +There are two reorder functions in startR package, **Sort()** for latitude and **CircularSort()** for longitude. Sort() is a wrapper function of base function sort(), rearranging the values from low to high (decreasing = TRUE, default) or from high to low (decreasing = FALSE). For example, if you want to sort latitude from 90 to -90, use `latitude_reorder = Sort(decreasing = TRUE)`. By this means, the result will always from big to small value no matter how the original order is. @@ -418,17 +419,28 @@ and -1 will become 359. After circulating values, CircularSort() also sorts the but the problem can be solved by assigning the borders correctly. The following chart helps you to decide how to use CircularSort() to get the desired region. -The first row represents `values(list(lon.min, lon.max))`. +The first row represents the longitude border of the requested region, e.g., `values(list(lon.min, lon.max))`. Note that this chart only provides the idea. The real numbers may slightly differ depending on the original/transform values. -If parameter 'xxx_reorder' is not used, the situation will be more complicated and easier to get unexpected results. -The following chart shows some examples. We encourage to always use 'xxx_reorder' so you can ensure the results are in line with your expectation. +Find the usecases here [ex1_5_latlon_reorder.R](inst/doc/usecase/ex1_5_latlon_reorder.R) +### 12. What will happen if reorder function is not used + +The reorder functions (i.e., Sort() and CircularSort()) are always recommended to adopt in Start() so you can ensure the result is in line +with your expectation (find more details at [how-to-11](#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx_reorder) above). If the functions are not used, the situation will be more complicated and easier to +get unexpected results. + +Without reorder functions, the longitude and latitude selectors must be within the respective range in the original file, and the result order +will be the same order as how you request. If transformation is performed simultaneously, you need to consider the latitude/longitude range of +the transform grid too. The requested region values cannot fall out of both the original and the transformed region. + +The following chart shows some examples. + ## Something goes wrong... ### 1. No space left on device -- GitLab From 87d3f40858d3520006b0dfd7b6f82b33f611dee8 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 19 Mar 2020 12:23:06 +0100 Subject: [PATCH 18/24] Correct the hyperlink in how-to-12 --- inst/doc/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/doc/faq.md b/inst/doc/faq.md index ec228c8..08c5d98 100644 --- a/inst/doc/faq.md +++ b/inst/doc/faq.md @@ -429,7 +429,7 @@ Find the usecases here [ex1_5_latlon_reorder.R](inst/doc/usecase/ex1_5_latlon_re ### 12. What will happen if reorder function is not used The reorder functions (i.e., Sort() and CircularSort()) are always recommended to adopt in Start() so you can ensure the result is in line -with your expectation (find more details at [how-to-11](#11-read-latitude-and-longitude-with-the-usage-of-parameter-xxx_reorder) above). If the functions are not used, the situation will be more complicated and easier to +with your expectation (find more details at [how-to-11](#11-select-the-longitudelatitude-region) above). If the functions are not used, the situation will be more complicated and easier to get unexpected results. Without reorder functions, the longitude and latitude selectors must be within the respective range in the original file, and the result order -- GitLab From a075687e8c60390aafd51412c7b203fb1e75efbb Mon Sep 17 00:00:00 2001 From: nperez Date: Thu, 19 Mar 2020 17:03:11 +0100 Subject: [PATCH 19/24] new figures version --- inst/doc/figures/lon-2.PNG | Bin 67070 -> 41800 bytes inst/doc/figures/lon-3.PNG | Bin 126438 -> 87502 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/inst/doc/figures/lon-2.PNG b/inst/doc/figures/lon-2.PNG index 662df68568cc2df460aa04377bee9bacc85893e0..dd30152869e32275cf141c10b7506914064a3dbf 100644 GIT binary patch literal 41800 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 literal 126438 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%0ABm5$|jx|D@dCF32`vUSlsj&=+&4 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ⅅ7UIIoE{1CL=`wP`DpQ!Y1D7q0GBpo>9g{6T9J6- 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 Date: Thu, 19 Mar 2020 17:08:17 +0100 Subject: [PATCH 20/24] new figures version with out blue square --- inst/doc/figures/lon-2.PNG | Bin 41800 -> 40440 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/inst/doc/figures/lon-2.PNG b/inst/doc/figures/lon-2.PNG index dd30152869e32275cf141c10b7506914064a3dbf..570151241b7b54a7fba28166cd7e75b64f0a6017 100644 GIT binary patch delta 37595 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

yK2+lT|eLAxs&@ChHUlw_@UNdEIIm!;zQxH zW!<*n{~Mqy`)`2m;@`*QG|No_BvA4b z&tcL$sPpjf&&(6+l)%585NObPD z_o;vJk8tEa)y@jzRf9fiLE}+E9pcxSrpAeO&S|;on$0Ok&5qk1WUcj(*fdG6$wtoozM0A)x<@)<_BNOUt7@E3zwFh zT7?GC?Salf-4qzz*!i#4bg8tj#K?{2IiA~ms^lb@*rFLe9I0DYGd`OMmgr@ZTzpRn z+a=ztj!4LjW;xoksez^szda8R%q-T;3C6ied;RTh{JomlKk7GBh7u=f>D}YcYmv9!BGajr7e5Q|s%G#oZ*iQ@5!B%~paIgDHOw9dWL{Wb{NUJlx7u;8Vc`H(+vsezY~MA9i02co3=OCEqHv0Bjt`6hXO{&!va~fP$dN0 zQ09+2{&?1h1nQK8aJ`4C=iIMNqpB_6cES?aNW%@=jxd zd;oVVdyw?_QOr5tD^4AWIB%!z;}=qUJ3r$kLS~aGGA~bV;y40Ek(CdTNuwfIkLyW z>-or@XNCo9*d=RGyW7X98A@c60Iw9(>y|5OAM~2?C(GUv0j~P3>=!-NB}trJS%{Cy2143W{BF^Q_J0+@(!X4P$NnG0 z*`_vU3c6S%)m8%6RL#RTomk8Wp8~X7EYh#i;%Xybz1U4L1!OTh`AtCl!V|J@tNP!g zz5nPTAF_}@!~-^afF-;g-Q@_rBK5A%-y+iZS+m89hUmk$mU*{?7Mz&i8w|-~Zj`KG(U= zx&FD&eZ8*hZ8FXA<-(7){{UxQuu`G_2F{4z+Y##bc%BS0aI>Ay_q7vT&*>9PsLUS1{A6|O0$C|YwiDh5Koo$+@C*??9n)z=<-bx%�h7PeECk7TPIPB)Bee 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

AH7K(%sCQK?@FH8l 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 -- GitLab From a3ccfae97fc2b1fe559c4dee2e8256d8fd146111 Mon Sep 17 00:00:00 2001 From: aho Date: Fri, 20 Mar 2020 18:24:55 +0100 Subject: [PATCH 21/24] Bugfix for longitude selectors across border case. The indices were chosen one more in SelectorCheckor. Fix in Start after calling SelectorCheckor. --- R/Start.R | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/R/Start.R b/R/Start.R index 8a34b07..0076e9a 100644 --- a/R/Start.R +++ b/R/Start.R @@ -2009,6 +2009,10 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B sub_array_of_selectors <- dim_reorder_params[[inner_dim]](sub_array_of_selectors)$x } } + +# NOTE: The ideal solution for selecting indices in goes_across_prime_meridian case +# is modified SelectorCheckor.R. But now SelectorCheckor doesn't know the info of +#goes_across_prime_meridian, so I do the adjustion after calling SelectorCheckor(). sub_array_of_indices <- selector_checker(sub_array_of_selectors, var_ordered, tolerance = if (aiat) { NULL @@ -2016,6 +2020,21 @@ print("-> THE INNER DIMENSION DOES NOT GO ACROSS ANY FILE DIMENSION OR IT DOES B tolerance_params[[inner_dim]] }) + if (goes_across_prime_meridian & sub_array_of_indices[[1]] < sub_array_of_indices[[2]]) { + if (!(sub_array_of_selectors[[1]] %in% var_ordered)){ + sub_array_of_indices[[1]] <- sub_array_of_indices[[1]] - 1 + } + + if (!(sub_array_of_selectors[[2]] %in% var_ordered)){ + sub_array_of_indices[[2]] <- sub_array_of_indices[[2]] + 1 + } + } + +#NOTE: the possible case? + if (goes_across_prime_meridian & sub_array_of_indices[[1]] > sub_array_of_indices[[2]]) { + .stop("The case is goes_across_prime_meridian but no adjustion for the indices!") + } + if (any(is.na(sub_array_of_indices))) { stop(paste0("The selectors of ", inner_dim, -- GitLab From 3f3d65dfb50aa6c45cd812da60952ff936031c5f Mon Sep 17 00:00:00 2001 From: aho Date: Fri, 20 Mar 2020 18:33:12 +0100 Subject: [PATCH 22/24] Create tests folder and include the unit tests. --- tests/testthat.R | 5 + tests/testthat/test-Start-reorder-lat.R | 872 +++++++++++++++ ...st-Start-reorder-lon-transform_-180to180.R | 919 ++++++++++++++++ .../test-Start-reorder-lon-transform_0to360.R | 999 ++++++++++++++++++ .../test-Start-reorder-lon_-180to180.R | 774 ++++++++++++++ .../testthat/test-Start-reorder-lon_0to360.R | 622 +++++++++++ tests/testthat/test-Start-reorder-retrieve.R | 157 +++ 7 files changed, 4348 insertions(+) create mode 100644 tests/testthat.R create mode 100644 tests/testthat/test-Start-reorder-lat.R create mode 100644 tests/testthat/test-Start-reorder-lon-transform_-180to180.R create mode 100644 tests/testthat/test-Start-reorder-lon-transform_0to360.R create mode 100644 tests/testthat/test-Start-reorder-lon_-180to180.R create mode 100644 tests/testthat/test-Start-reorder-lon_0to360.R create mode 100644 tests/testthat/test-Start-reorder-retrieve.R diff --git a/tests/testthat.R b/tests/testthat.R new file mode 100644 index 0000000..d424073 --- /dev/null +++ b/tests/testthat.R @@ -0,0 +1,5 @@ +library(testthat) +library(startR) + +test_check("startR") + diff --git a/tests/testthat/test-Start-reorder-lat.R b/tests/testthat/test-Start-reorder-lat.R new file mode 100644 index 0000000..f53a9ec --- /dev/null +++ b/tests/testthat/test-Start-reorder-lat.R @@ -0,0 +1,872 @@ +context("Start() lat Reorder test") + +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] +#3 resolution 1-1 2-<1 3->1 +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-YES +#8 transform_crop 1-T 2-F 3-region + +############################################## +path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$.nc' + +## Origin longitude in file: [0:360] + +############################################## +test_that("1-1-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.25761, 19.81264), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 35 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(40, 45), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 19 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) + +}) + +############################################## +test_that("1-2-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 20 +lats.max <- 10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.25761, 19.81264), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 35 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +}) + +############################################## +test_that("1-3-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -10 +lats.max <- -20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-19.81264, -10.25761), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 35 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-4-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -20 +lats.max <- -10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-19.81264, -10.25761), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 35 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + +############################################## +test_that("2-1-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(9.976578, 20.093670), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(40, 45), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 19 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) + +}) + +############################################## +test_that("2-2-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 20 +lats.max <- 10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(9.976578, 20.093670), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("2-3-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -10 +lats.max <- -20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-20.093670, -9.976578), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("2-4-2-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -20 +lats.max <- -10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-20.093670, -9.976578), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-2-3-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = NULL, + longitude = NULL, + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$common$latitude)), + c(10.25761, 19.81264), + tolerance = 0.0001 + ) + expect_equal( + attr(res, 'Variables')$dat1$latitude, + NULL + ) + expect_equal( + (attr(res, 'Variables')$common$latitude)[1] < (attr(res, 'Variables')$common$latitude)[2], + TRUE + ) + expect_equal( + class(attr(res, 'Variables')$common$latitude), + 'array' + ) +}) + +############################################## +test_that("2-1-2-3-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = NULL, + longitude = NULL, + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$common$latitude)), + c(9.976578, 20.093670), + tolerance = 0.0001 + ) + expect_equal( + attr(res, 'Variables')$dat1$latitude, + NULL + ) + expect_equal( + (attr(res, 'Variables')$common$latitude)[1] < (attr(res, 'Variables')$common$latitude)[2], + TRUE + ) + expect_equal( + class(attr(res, 'Variables')$common$latitude), + 'array' + ) +}) +############################################## +############################################## +test_that("1-1-2-2-2-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.25761, 19.81264), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 35 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(40, 45), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 19 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) + +}) +############################################## +test_that("1-2-2-2-2-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 20 +lats.max <- 10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.25761, 19.81264), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 35 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-2-2-2-3-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.25761, 19.81264), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 35 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("2-1-2-2-2-3-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(9.976578, 20.093670), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + + +############################################## +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] +#3 resolution 1-1 2-<1 3->1 +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-YES +#8 transform_crop 1-T 2-F 3-region + + +############################################## +test_that("1-1-2-2-1-1-2-3", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + +############################################## +test_that("1-1-2-2-3-1-2-3", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-2-2-3-2-2-3", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-2-2-3-1-2-1", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = T), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + +############################################## +test_that("1-3. Selector type: indices(list)", { + +}) +############################################## +test_that("1-4. Selector type: indices(vector)", { + +}) +############################################## +test_that("1-4. Selector type: indices(vector)", { + +}) + diff --git a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R new file mode 100644 index 0000000..1b8a96b --- /dev/null +++ b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R @@ -0,0 +1,919 @@ +context("Start() lon Reorder transform -180to180 test") +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] 5-[-10, 10] 6-[10, -10] 7-[300, 350] 8-[170, 190] +#3 resolution 1-1 2-<1 3->1 +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-'r360x181' +#8 transform_crop 1-T 2-F 3-region 4-x + +############################################## +# 3-2 +## Origin longitude in file: [-179.71875:180] +path_exp <- '/esarchive/recon/ecmwf/era5/original_files/reorder/daily_mean/$var$/$var$_$sdate$.nc' +variable <- 'tas' +sdate <- '199212' + +############################################## +test_that("1-1-2-2-1-1-2-4", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) + +############################################## +test_that("1-2-2-2-1-1-2-4", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) + +############################################## +test_that("1-5-2-2-1-1-2-4", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) + +############################################## +test_that("1-6-2-2-1-1-2-4", { +lons.min <- 10 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-1-1-2-4", { +lons.min <- 170 +lons.max <- 190 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(170, 180), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-2-2-3", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-2-2-2-2-2-2-3", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-2-2-3", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[341:342], + c(340, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-2-2-3", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(340, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +test_that("1-5-2-2-2-2-2-3", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-6-2-2-2-2-2-3", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(20, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 331 + ) +}) +############################################## +test_that("1-7-2-2-2-2-2-3", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-2-2-2-3", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-3-2-3", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-2-2-2-2-3-2-3", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[191:192], + c(10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-3-2-3", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[161:162], + c(-20, -10), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-3-2-3", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-20, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) + +############################################## +test_that("1-5-2-2-2-3-2-3", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-6-2-2-2-3-2-3", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 331 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[171:172], + c(-10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-7-2-2-2-3-2-3", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-30, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-2-3-2-3", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360.R b/tests/testthat/test-Start-reorder-lon-transform_0to360.R new file mode 100644 index 0000000..5ef5576 --- /dev/null +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360.R @@ -0,0 +1,999 @@ +context("Start() lon Reorder transform 0to360 test") +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] 5-[-10, 10] 6-[10, -10] 7-[300, 350] 8-[350, 370] +#3 resolution 1-1 2-<1 3->1 +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-'r360x181' +#8 transform_crop 1-T 2-F 3-region 4-x + +############################################## +# 3-2 +## Origin longitude in file: [0:360] +path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$.nc' +variable <- 'psl' +sdate <- '19821201' + +############################################## +test_that("1-1-2-2-1-1-2-4", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) + +############################################## +test_that("1-2-2-2-1-1-2-4", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +test_that("1-5-2-2-1-1-2-4", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) + +############################################## +test_that("1-6-2-2-1-1-2-4", { +lons.min <- 10 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +test_that("1-7-2-2-1-1-2-4", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-1-1-2-4", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(350, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 10 + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-2-2-3", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-2-2-2-2-2-2-3", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-2-2-3", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[341:342], + c(340, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-2-2-3", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(340, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +test_that("1-5-2-2-2-2-2-3", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-6-2-2-2-2-2-3", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(20, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 331 + ) +}) +############################################## +test_that("1-7-2-2-2-2-2-3", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-2-2-2-3", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-3-2-3", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-2-2-2-2-3-2-3", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[191:192], + c(10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-3-2-3", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[161:162], + c(-20, -10), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-3-2-3", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-20, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) + +############################################## +test_that("1-5-2-2-2-3-2-3", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-6-2-2-2-3-2-3", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 331 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[171:172], + c(-10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-7-2-2-2-3-2-3", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-30, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-2-3-2-3", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) diff --git a/tests/testthat/test-Start-reorder-lon_-180to180.R b/tests/testthat/test-Start-reorder-lon_-180to180.R new file mode 100644 index 0000000..38cd6b8 --- /dev/null +++ b/tests/testthat/test-Start-reorder-lon_-180to180.R @@ -0,0 +1,774 @@ +context("Start() lon Reorder non-transform -180to180 test") +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] 5-[-10, 10] 6-[10, -10] 7-[300, 350] 8-[170, 190] +#3 resolution 1-1 2-<1 3->1 +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-YES +#8 transform_crop 1-T 2-F 3-region 4-x + +############################################## +# 3-2 + +## Origin longitude in file: [-179.71875:180] +path_exp <- '/esarchive/recon/ecmwf/era5/original_files/reorder/daily_mean/$var$/$var$_$sdate$.nc' +variable <- 'tas' +sdate <- '199212' + +############################################## +test_that("1-1-2-2-1-1-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10.12500, 19.96875), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 36 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) + +############################################## +test_that("1-2-2-2-1-1-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10.12500, 19.96875), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) +}) + +############################################## +test_that("1-3-2-2-1-1-1-x", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-19.96875, -10.12500), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) +}) + +############################################## +test_that("1-4-2-2-1-1-1-x", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-19.96875, -10.12500), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-5-2-2-1-1-1-x", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-9.84375,9.84375), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + +}) + +############################################## +test_that("1-6-2-2-1-1-1-x", { +lons.min <- 10 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c( -9.84375, 9.84375), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) +}) + +############################################## +test_that("1-8-2-2-1-1-1-x", { +lons.min <- 170 +lons.max <- 190 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(170.1562, 180), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-2-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10.12500, 19.96875), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 36 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-1-2-2-2-3-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10.12500, 19.96875), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 36 + ) +}) +############################################## +test_that("1-2-2-2-2-2-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + 1244 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[36:37], + c(9.84375, 20.25000), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-2-2-2-2-3-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + 1244 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[676:677], + c(9.84375, 20.25000), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-3-2-2-2-2-1-x", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + 1244 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[1209:1210], + c(339.7500, 350.1562), + tolerance = 0.0001 + ) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359.7222), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-3-1-x", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + 1244 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[569:570], + c(-20.25000, -9.84375), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-2-1-x", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(340.0312, 349.8750), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-4-2-2-2-3-1-x", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-19.96875, -10.12500), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-5-2-2-2-2-1-x", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359.7188), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 71 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[36:37], + c(9.84375, 350.15625), + tolerance = 0.0001 + ) +}) + +############################################## +test_that("1-5-2-2-2-3-1-x", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-9.84375, 9.84375), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-6-2-2-2-2-1-x", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(20.2500, 349.8750), + tolerance = 0.001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 1173 + ) +}) + +############################################## +test_that("1-6-2-2-2-3-1-x", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179.7188), + tolerance = 0.001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 1173 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[605:606], + c(-10.12500, 20.25000), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-7-2-2-2-2-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330.1875, 349.8750), + tolerance = 0.0001 + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 71 + ) + +}) +############################################## +test_that("1-7-2-2-2-3-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-29.8125, -10.1250), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 71 + ) + +}) + +############################################## +test_that("1-8-2-2-2-2-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + 71, + tolerance = 0.0001 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[36:37], + c(9.84375, 350.15625), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-8-2-2-2-3-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + 71, + tolerance = 0.0001 + ) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-9.84375, 9.84375), + tolerance = 0.0001 + ) +}) diff --git a/tests/testthat/test-Start-reorder-lon_0to360.R b/tests/testthat/test-Start-reorder-lon_0to360.R new file mode 100644 index 0000000..67d0e90 --- /dev/null +++ b/tests/testthat/test-Start-reorder-lon_0to360.R @@ -0,0 +1,622 @@ +context("Start() lon Reorder non-transform 0to360 test") +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] 5-[-10, 10] 6-[10, -10] 7-[300, 350] 8-[350, 370] +#3 resolution 1-1 2-<1 3->1 +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-YES +#8 transform_crop 1-T 2-F 3-region 4-x + +############################################## +# 3-2 +path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$.nc' + +## Origin longitude in file: [0:359.722222222222] + +############################################## +test_that("1-1-2-2-1-1-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 37 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) + +############################################## +test_that("1-2-2-2-1-1-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) +}) +############################################## +test_that("1-5-2-2-1-1-1-x", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + +}) + +############################################## +test_that("1-6-2-2-1-1-1-x", { +lons.min <- 10 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) +}) + +############################################## +test_that("1-7-2-2-1-1-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-8-2-2-1-1-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(350, 359.7222222), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-2-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 37 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-1-2-2-2-3-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 37 + ) +}) +############################################## +test_that("1-2-2-2-2-2-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(1261) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[37:38], + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-2-2-2-2-3-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(1261) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[685:686], + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-3-2-2-2-2-1-x", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(1261) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[1225:1226], + c(340, 350), + tolerance = 0.0001 + ) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359.7222), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-3-1-x", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(1261) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[577:578], + c(-20, -10), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-2-1-x", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(340, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-4-2-2-2-3-1-x", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-20, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-5-2-2-2-2-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-5-2-2-2-3-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-30, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-6-2-2-2-2-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(73), + tolerance = 0.0001 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[37:38], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-6-2-2-2-3-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(73), + tolerance = 0.0001 + ) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) +}) diff --git a/tests/testthat/test-Start-reorder-retrieve.R b/tests/testthat/test-Start-reorder-retrieve.R new file mode 100644 index 0000000..47412f5 --- /dev/null +++ b/tests/testthat/test-Start-reorder-retrieve.R @@ -0,0 +1,157 @@ +context("Start() lon Reorder non-transform retrieve test") + + +############################################## +test_that("original range 0to360", { + +## Origin longitude in file: [0:359.722222222222] +path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$.nc' + +lons.min <- -2 +lons.max <- 2 +lats.min <- 10 +lats.max <- 12 + + +res <- Start(dat = path_exp, + var = 'psl', + member = indices(1), + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = T) + + +res1 <- Start(dat = path_exp, + var = 'psl', + member = indices(1), + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = T) + + +res2 <- Start(dat = path_exp, + var = 'psl', + member = indices(1), + sdate = '19821201', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = T) + + expect_equal( + res1[1,1,1,1,1,1:7,], + res[1,1,1,1,1,7:1,] + ) + expect_equal( + res1[1,1,1,1,1,1,8:15], + res2[1,1,1,1,1,1,1:8] + ) + expect_equal( + res1[1,1,1,1,1,1,1:7], + res2[1,1,1,1,1,1,9:15] + ) + +}) + + +############################################## +test_that("original range -180to180", { + +## Origin longitude in file: [0:359.722222222222] +path_exp <- '/esarchive/recon/ecmwf/era5/original_files/reorder/daily_mean/$var$/$var$_$sdate$.nc' +variable <- 'tas' +sdate <- '199212' + +lons.min <- -2 +lons.max <- 2 +lats.min <- 10 +lats.max <- 12 + + +res <- Start(dat = path_exp, + var = variable, + sdate = '199212', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = T) + +res1 <- Start(dat = path_exp, + var = variable, + sdate = '199212', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = T) + + +res2 <- Start(dat = path_exp, + var = variable, + sdate = '199212', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = T) + + expect_equal( + res1[1,1,1,1,1:7,], + res[1,1,1,1,7:1,] + ) + expect_equal( + res1[1,1,1,1,1,8:15], + res2[1,1,1,1,1,1:8] + ) + expect_equal( + res1[1,1,1,1,1,1:7], + res2[1,1,1,1,1,9:15] + ) + +}) + -- GitLab From dd2c9389c4b90af4ddc5cc2a8507d75509692401 Mon Sep 17 00:00:00 2001 From: nperez Date: Fri, 20 Mar 2020 20:52:15 +0100 Subject: [PATCH 23/24] test for files with coarse resolution --- tests/testthat/test-Start-reorder-latCoarse.R | 874 ++++++++++++++ ...Start-reorder-lon-transform_0to360Coarse.R | 1003 +++++++++++++++++ .../test-Start-reorder-lon0to360Coarse.R | 622 ++++++++++ 3 files changed, 2499 insertions(+) create mode 100644 tests/testthat/test-Start-reorder-latCoarse.R create mode 100644 tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R create mode 100644 tests/testthat/test-Start-reorder-lon0to360Coarse.R diff --git a/tests/testthat/test-Start-reorder-latCoarse.R b/tests/testthat/test-Start-reorder-latCoarse.R new file mode 100644 index 0000000..bc6f480 --- /dev/null +++ b/tests/testthat/test-Start-reorder-latCoarse.R @@ -0,0 +1,874 @@ +context("Start() lat Reorder test") + +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] +#3 resolution 1-1 2-<1 3->1 4-> mixed +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-YES +#8 transform_crop 1-T 2-F 3-region + + +## mixed resolution indicates lower than 1 degree resolution for longitude and higer for latitude. +############################################## +#path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$.nc' +path_exp <- '/esarchive/exp/ncar/cesm-dple/monthly_mean/$var$/$var$_$sdate$.nc' +## Origin longitude in file: [0:358.75] step 1.25 degrees #288 values +## latitude: -90 o 90 {-90, -89.05759 ...} #192 values +############################################## +test_that("1-1-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path = path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.83770, 19.31937), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 10 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(40, 45), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 5 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) + +}) + +############################################## +test_that("1-2-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 20 +lats.max <- 10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.83770, 19.31937), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 10 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +}) + +############################################## +test_that("1-3-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -10 +lats.max <- -20 + +res <- Start(dat = list(list(path = path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-19.31937, -10.83770), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 10 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-4-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -20 +lats.max <- -10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-19.31937, -10.83770), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 10 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + +############################################## +test_that("2-1-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(9.895288, 20.261780), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(40, 45), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 5 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) + +}) + +############################################## +test_that("2-2-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 20 +lats.max <- 10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(9.895288, 20.261780), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("2-3-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -10 +lats.max <- -20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-20.261780, -9.895288), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("2-4-4-2-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- -20 +lats.max <- -10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(-20.261780, -9.895288), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-4-3-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = NULL, + longitude = NULL, + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$common$latitude)), + c(10.83770, 19.31937), + tolerance = 0.0001 + ) + expect_equal( + attr(res, 'Variables')$dat1$latitude, + NULL + ) + expect_equal( + (attr(res, 'Variables')$common$latitude)[1] < (attr(res, 'Variables')$common$latitude)[2], + TRUE + ) + expect_equal( + class(attr(res, 'Variables')$common$latitude), + 'array' + ) +}) + +############################################## +test_that("2-1-4-3-1-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = NULL, + longitude = NULL, + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$common$latitude)), + c(9.895288, 20.261780), + tolerance = 0.0001 + ) + expect_equal( + attr(res, 'Variables')$dat1$latitude, + NULL + ) + expect_equal( + (attr(res, 'Variables')$common$latitude)[1] < (attr(res, 'Variables')$common$latitude)[2], + TRUE + ) + expect_equal( + class(attr(res, 'Variables')$common$latitude), + 'array' + ) +}) +############################################## +############################################## +test_that("1-1-4-2-2-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.83770, 19.31937), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 10 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(40, 45), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 5 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) + +}) +############################################## +test_that("1-2-4-2-2-1-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 20 +lats.max <- 10 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.83770, 19.31937), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 10 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-4-2-2-3-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10.83770, 19.31937), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 10 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("2-1-4-2-2-3-1-x", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(9.895288, 20.261780), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + + +############################################## +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] +#3 resolution 1-1 2-<1 3->1 4 -> mixed4 -> mixed4 -> mixed4 -> mixed +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-YES +#8 transform_crop 1-T 2-F 3-region + + +############################################## +test_that("1-1-4-2-1-1-2-3", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + +############################################## +test_that("1-1-4-2-3-1-2-3", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-4-2-3-2-2-3", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) +############################################## +test_that("1-1-4-2-3-1-2-1", { +lons.min <- 40 +lons.max <- 45 +lats.min <- 10 +lats.max <- 20 + +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(decreasing = T), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = T), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) +# lat + expect_equal( + range((attr(res, 'Variables')$dat1$latitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$latitude)[1] < (attr(res, 'Variables')$dat1$latitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$latitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$latitude), + 'array' + ) +}) + +############################################## +test_that("1-3. Selector type: indices(list)", { + +}) +############################################## +test_that("1-4. Selector type: indices(vector)", { + +}) +############################################## +test_that("1-4. Selector type: indices(vector)", { + +}) + diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R new file mode 100644 index 0000000..262673b --- /dev/null +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R @@ -0,0 +1,1003 @@ +context("Start() lon Reorder transform 0to360 test") +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] 5-[-10, 10] 6-[10, -10] 7-[300, 350] 8-[350, 370] +#3 resolution 1-1 2-<1 3->1 4 -> mixed +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-'r360x181' +#8 transform_crop 1-T 2-F 3-region 4-x + +############################################## +# 3-2 +## Origin longitude in file: [0:360] +path_exp <- '/esarchive/exp/ncar/cesm-dple/monthly_mean/$var$/$var$_$sdate$.nc' + +## Origin longitude in file: [0:358.75] step 1.25 degrees #288 values +## latitude: -90 o 90 {-90, -89.05759 ...} #192 values + +variable <- 'psl' +sdate <- '20001101' + +############################################## +test_that("1-1-2-2-1-1-2-4", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) + +############################################## +test_that("1-2-2-2-1-1-2-4", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +test_that("1-5-2-2-1-1-2-4", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) + +############################################## +test_that("1-6-2-2-1-1-2-4", { +lons.min <- 10 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +test_that("1-7-2-2-1-1-2-4", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-1-1-2-4", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con'), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(350, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 10 + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-2-2-3", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-2-2-2-2-2-2-3", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-2-2-3", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[341:342], + c(340, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-2-2-3", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(340, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) +############################################## +test_that("1-5-2-2-2-2-2-3", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-6-2-2-2-2-2-3", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(20, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 331 + ) +}) +############################################## +test_that("1-7-2-2-2-2-2-3", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-2-2-2-3", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(0, 360), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 359), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[11:12], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-2-2-2-3-2-3", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-2-2-2-2-3-2-3", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[191:192], + c(10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-2-2-2-3-2-3", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 351 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[161:162], + c(-20, -10), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-2-2-2-3-2-3", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-20, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 11 + ) +}) + +############################################## +test_that("1-5-2-2-2-3-2-3", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-6-2-2-2-3-2-3", { +lons.min <- 20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-180, 179), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 331 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[171:172], + c(-10, 20), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-7-2-2-2-3-2-3", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-30, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) +############################################## +test_that("1-8-2-2-2-3-2-3", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = variable, + member = indices(1), + sdate = sdate, + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude = values(list(lons.min, lons.max)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid ='r360x181', + method = 'con', + crop = c(lons.min,lons.max, + lats.min,lats.max)), + transform_vars = c('longitude', 'latitude'), + transform_extra_cells = 2, + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 21 + ) +}) diff --git a/tests/testthat/test-Start-reorder-lon0to360Coarse.R b/tests/testthat/test-Start-reorder-lon0to360Coarse.R new file mode 100644 index 0000000..461042a --- /dev/null +++ b/tests/testthat/test-Start-reorder-lon0to360Coarse.R @@ -0,0 +1,622 @@ +context("Start() lon Reorder non-transform 0to360 test") +#1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix +#2 selector range 1-[10, 20] 2-[20, 10] 3-[-10, -20] 4-[-20, -10] 5-[-10, 10] 6-[10, -10] 7-[300, 350] 8-[350, 370] +#3 resolution 1-1 2-<1 3->1 4-> mixed +#4 returns_var 1-NULL 2-'dat' +#5 lat_reorder/Sort() 1-No 2-Yes,decreasing = F 3-Yes,decreasing = T +#6 lon_reorder/CircularSort() 1-No 2-Yes,(0, 360) 3-Yes,(-180, 180) +#7 transform 1-NO 2-YES +#8 transform_crop 1-T 2-F 3-region 4-x + +############################################## +# 3-2 +path_exp <- '/esarchive/exp/ncar/cesm-dple/monthly_mean/$var$/$var$_$sdate$.nc' + +## Origin longitude in file: [0:358.75] step 1.25 degrees #288 values +## latitude: -90 o 90 {-90, -89.05759 ...} #192 values +############################################## +test_that("1-1-4-2-1-1-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + +# lon + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 9 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) + +############################################## +test_that("1-2-4-2-1-1-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) +}) +############################################## +test_that("1-5-4-2-1-1-1-x", { +lons.min <- -10 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + +}) + +############################################## +test_that("1-6-4-2-1-1-1-x", { +lons.min <- 10 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + FALSE + ) +}) + +############################################## +test_that("1-7-4-2-1-1-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-8-4-2-1-1-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(3:4), + latitude = values(c(lats.min:lats.max)), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(350, 358.75), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +############################################## +############################################## +test_that("1-1-4-2-2-2-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 9 + ) + expect_equal( + class(attr(res, 'Variables')$dat1$longitude), + 'array' + ) +}) +############################################## +test_that("1-1-4-2-2-3-1-x", { +lons.min <- 10 +lons.max <- 20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) + expect_equal( + length(attr(res, 'Variables')$dat1$longitude), + 9 + ) +}) +############################################## +test_that("1-2-4-2-2-2-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(281) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[9:10], + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-2-4-2-2-3-1-x", { +lons.min <- 20 +lons.max <- 10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(281) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[153:154], + c(10, 20), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-3-4-2-2-2-1-x", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(281) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[273:274], + c(340, 350), + tolerance = 0.0001 + ) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(0, 358.75), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-3-4-2-2-3-1-x", { +lons.min <- -10 +lons.max <- -20 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(281) + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[129:130], + c(-20, -10), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-4-4-2-2-2-1-x", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(340, 350), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) +############################################## +test_that("1-4-4-2-2-3-1-x", { +lons.min <- -20 +lons.max <- -10 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-20, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-5-4-2-2-2-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(330, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-5-4-2-2-3-1-x", { +lons.min <- 330 +lons.max <- 350 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-30, -10), + tolerance = 0.0001 + ) + expect_equal( + (attr(res, 'Variables')$dat1$longitude)[1] < (attr(res, 'Variables')$dat1$longitude)[2], + TRUE + ) +}) + +############################################## +test_that("1-6-4-2-2-2-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(0, 360), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(17), + tolerance = 0.0001 + ) + expect_equal( + as.vector((attr(res, 'Variables')$dat1$longitude))[9:10], + c(10, 350), + tolerance = 0.0001 + ) +}) +############################################## +test_that("1-6-4-2-2-3-1-x", { +lons.min <- 350 +lons.max <- 370 +lats.min <- 10 +lats.max <- 20 +res <- Start(dat = list(list(path=path_exp)), + var = 'psl', + member = 'all', + sdate = '20001101', + time = indices(4), + latitude = values(list(lats.min, lats.max)), + latitude_reorder = Sort(), + longitude_reorder = CircularSort(-180, 180), + longitude = values(list(lons.min, lons.max)), + synonims = list(latitude=c('lat','latitude'), + longitude=c('lon','longitude'), + member=c('ensemble','realization')), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = NULL), + retrieve = F) + expect_equal( + length((attr(res, 'Variables')$dat1$longitude)), + c(17), + tolerance = 0.0001 + ) + expect_equal( + range((attr(res, 'Variables')$dat1$longitude)), + c(-10, 10), + tolerance = 0.0001 + ) +}) -- GitLab From bbd9e0a41949950c0566f3c5984da676d7c9ac96 Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 23 Mar 2020 10:15:51 +0100 Subject: [PATCH 24/24] Update NEWS.md for v1.0.0 --- NEWS.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index e50ff10..1352407 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,8 @@ -# startR v0.1.5 (Release date:) +# startR v1.0.0 (Release date: 2020-03-23) - Bugfixes of lat and lon assigned by 'values' in Start(). In v0.1.4 it is incorrect when assigned from big to small values. +- Compatiblity break: Develop longitude and latitude reorder convention. +The reordering functions (i.e., Sort() and CircularSort()) are well-functioning now. + # startR v0.1.4 (Release date: 2020-02-10) - Bugfixes of transform in Start(). Change the default value of param 'extra_cells' to 2. (issue37) - Bugfixes of chunk function in Utils.R (issue23) -- GitLab