From f198736c4897c5799056c3684918bcc02507d20b Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 13 Jul 2020 22:42:19 +0200 Subject: [PATCH 01/60] Roxygen2 for Sort() --- R/Sort.R | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/R/Sort.R b/R/Sort.R index 825272b..fc0e146 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -1,3 +1,22 @@ +#'Sort the coordinate variable values in a call to the function startR::Start +#' +#'The reorder function intended for use as parameter \code{_reorder} +#'in a call to the function \code{Start()}. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \dots of that function. +#'The applied reordering consists of an increasing sort of the coordinate variable values. + +#'@param obs Vector of binary observations (1 or 0). +#'@param pred Vector of probablistic predictions with values in the range [0,1]. +#'@param thresholds Values used to bin the forecasts. By default the bins are +#' {[0,0.1), [0.1, 0.2), ... [0.9, 1]}. +#'@param exp Matrix of predictions with values in the range [0,1] for the +#' .BrierScore function +#' +#'@return Both BrierScore and .Brier score provide the same outputs: +#'@examples + + +#'@rdname Sort +#'@export Sort <- function(...) { params <- list(...) f <- "function(x) { @@ -14,6 +33,8 @@ Sort <- function(...) { r } +#'@rdname Sort +#'@export CircularSort <- function(start, end, ...) { params <- list(...) f <- "function (x) { -- GitLab From 5b221aab873a17c118f00f4e147e6b048cb196fc Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 14 Jul 2020 17:20:18 +0200 Subject: [PATCH 02/60] Write Roxygen2 document for Sort.R --- NAMESPACE | 6 +++-- R/Sort.R | 51 ++++++++++++++++++++++++++++++--------- man/Sort.Rd | 69 +++++++++++++++++++++++++++++++++++++---------------- 3 files changed, 93 insertions(+), 33 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 1898794..3859378 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,2 +1,4 @@ -exportPattern("^[^\\.]") -import(stats, utils, abind, bigmemory, future, parallel) +# Generated by roxygen2: do not edit by hand + +export(CircularSort) +export(Sort) diff --git a/R/Sort.R b/R/Sort.R index fc0e146..d90c5c0 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -1,20 +1,49 @@ #'Sort the coordinate variable values in a call to the function startR::Start #' #'The reorder function intended for use as parameter \code{_reorder} -#'in a call to the function \code{Start()}. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \dots of that function. -#'The applied reordering consists of an increasing sort of the coordinate variable values. +#'in a call to the function \code{Start()}. This function complies with the +#'input/output interface required by \code{Start()} defined in the documentation +#'for the parameter \dots of that function.\cr +#'The coordinate applied to \code{Sort()} consists of an increasing or decreasing +#'sort of the values. It is useful for adjusting the latitude order.\cr +#'The coordinate applied to \code{CircularSort()} consists of a circular sort of +#'values, where any values beyond the limits specified in the parameters +#'\code{start} and \code{end} is applied a modulus to fall in the specified +#'range. This is useful for circular coordinates such as the Earth longitudes. -#'@param obs Vector of binary observations (1 or 0). -#'@param pred Vector of probablistic predictions with values in the range [0,1]. -#'@param thresholds Values used to bin the forecasts. By default the bins are -#' {[0,0.1), [0.1, 0.2), ... [0.9, 1]}. -#'@param exp Matrix of predictions with values in the range [0,1] for the -#' .BrierScore function +#'@param start A numeric indicating the lower bound of the circular range. +#'@param end A numeric indicating the upper bound of the circular range. +#'@param {\dots} Additional parameters to adjust the reorderig (sent internally +#' to the function \code{sort()}). #' -#'@return Both BrierScore and .Brier score provide the same outputs: +#'@return +#'A list of 2 containing: +#'\item{$x}{ +#' The reordered values. +#'} +#'\item{$ix}{ +#' The permutation indices of $x in the original coordinate. +#'} #'@examples - - +#' # Used in Start(): +#' path <- paste0('/esarchive/exp/ecmwf/system5_m1/daily_mean/', +#' '$var$_f6h/$var$_$sdate$.nc') +#' res <- Start(dat = path, +#' var = 'psl', +#' ensemble = 'first', +#' sdate = '19821201', +#' time = indices(1), +#' latitude = values(list(-10, 10)), +#' latitude_reorder = Sort(decreasing = TRUE), +#' longitude = values(list(-10, 10)), +#' 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) +#' #'@rdname Sort #'@export Sort <- function(...) { diff --git a/man/Sort.Rd b/man/Sort.Rd index c32a6e2..249d1ee 100644 --- a/man/Sort.Rd +++ b/man/Sort.Rd @@ -1,33 +1,62 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Sort.R \name{Sort} +\alias{CircularSort} \alias{Sort} -\title{Sort Dimension Reorder for 'startR'} -\description{ -This is a reorder function intended for use as parameter \code{_reorder} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \dots of that function. -\cr\cr -The applied reordering consists of an increasing sort of the coordinate variable values. -} +\title{Sort the coordinate variable values in a call to the function startR::Start} \usage{ Sort(...) + +CircularSort(start, end, ...) } \arguments{ - \item{\dots}{ -Additional parameters to adjust the reorderig (sent internally to the function \code{sort()}). - } +\item{start}{A numeric indicating the lower bound of the circular range.} + +\item{end}{A numeric indicating the upper bound of the circular range.} + +\item{{\dots}}{Additional parameters to adjust the reorderig (sent internally +to the function \code{sort()}).} } \value{ -List with the reordered values in the component \code{$x} and the permutation indices in the component \code{$ix}. See details in the documentation of the parameter \dots of the function \code{Start()}. +A list of 2 containing: +\item{$x}{ + The reordered values. } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code +\item{$ix}{ + The permutation indices of $x in the original coordinate. } -\seealso{ -\code{\link[startR]{CircularSort}} +} +\description{ +The reorder function intended for use as parameter \code{_reorder} +in a call to the function \code{Start()}. This function complies with the +input/output interface required by \code{Start()} defined in the documentation +for the parameter \dots of that function.\cr +The coordinate applied to \code{Sort()} consists of an increasing or decreasing +sort of the values. It is useful for adjusting the latitude order.\cr +The coordinate applied to \code{CircularSort()} consists of a circular sort of +values, where any values beyond the limits specified in the parameters +\code{start} and \code{end} is applied a modulus to fall in the specified +range. This is useful for circular coordinates such as the Earth longitudes. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use Sort(). +# Used in Start(): +path <- paste0('/esarchive/exp/ecmwf/system5_m1/daily_mean/', + '$var$_f6h/$var$_$sdate$.nc') +res <- Start(dat = path, + var = 'psl', + ensemble = 'first', + sdate = '19821201', + time = indices(1), + latitude = values(list(-10, 10)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(-10, 10)), + 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) + } -\keyword{IO} -\keyword{array} -\keyword{manip} + -- GitLab From 3a70ae23fedf4a6de1df70071ee44ae79b36a10a Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 16 Jul 2020 11:12:45 +0200 Subject: [PATCH 03/60] Roxygen2 for Step.R --- NAMESPACE | 1 + R/Step.R | 56 ++++++++++++++++++++++++++++++++++++++++ man/Step.Rd | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 man/Step.Rd diff --git a/NAMESPACE b/NAMESPACE index 3859378..07ed7af 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,3 +2,4 @@ export(CircularSort) export(Sort) +export(Step) diff --git a/R/Step.R b/R/Step.R index 32c9273..2d453fe 100644 --- a/R/Step.R +++ b/R/Step.R @@ -1,3 +1,59 @@ +#'Define the operation applied on declared data. +#' +#'The step of the startR workflow after declaring data by Start() call. It +#'identifies the operation (i.e., function) and the target and output +#'dimensions of data array for the function. Ideally, it expects the dimension +#'name to be in the same order as the one requested in the Start() call. +#'If a different order is specified, startR will reorder the subset dimension +#'to the expected order for this function./cr +#' +#'@param fun A function in R format defining the operation to be applied to the +#' data declared by a Start() call. It should only work on the essential +#' dimensions rather than all the data dimensions. Since the function will be +#' called numerous times through all the non-essential dimensions, it is +#' recommended to keep them as light as possible. +#'@param target_dims A vector for single input array or a list of vectors for +#' multiple input arrays indicating the names of the dimensions 'fun' to be +#' applied along. +#'@param output_dims A vector for single returned array or a list of vectors +#' for multiple returned arrays indicating the dimension names of the function +#' output. +#'@param use_libraries A vector of character string indicating the R library +#' names to be used in 'fun'. The default value is NULL. +#'@param use_attributes One or more lists of vectors of character string +#' indicating the data attributes to be used in 'fun'. The list name should be +#' consistent with the list name of 'data' in AddStep(). The default value is +#' NULL. +#'@return A closure that contains all the objects assigned. It serves as the +#' input of Addstep(). +#'@examples +#' +#' repos <- '/esarchive/exp/ecmwf/system5_m1/monthly_mean/$var$_f6h/$var$_$sdate$.nc' +#' data <- Start(dat = repos, +#' var = 'tas', +#' sdate = c('20170101', '20180101'), +#' ensemble = indices(1:20), +#' time = 'all', +#' latitude = 'all', +#' longitude = indices(1:40), +#' return_vars = list(latitude = 'dat', longitude = 'dat', time = 'sdate'), +#' retrieve = FALSE) +#' fun <- function(x) { +#' lat = attributes(x)$Variables$dat1$latitude +#' weight = sqrt(cos(lat * pi / 180)) +#' corrected = Apply(list(x), target_dims = "latitude", +#' fun = function(x) {x * weight}) +#' } +#' +#' +#' step <- Step(fun = fun, +#' target_dims = 'latitude', +#' output_dims = 'latitude', +#' use_libraries = c('multiApply'), +#' use_attributes = list(data = "Variables")) +#' wf <- AddStep(data, step) +#' +#'@export Step <- function(fun, target_dims, output_dims, use_libraries = NULL, use_attributes = NULL) { # Check fun diff --git a/man/Step.Rd b/man/Step.Rd new file mode 100644 index 0000000..b099cef --- /dev/null +++ b/man/Step.Rd @@ -0,0 +1,73 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Step.R +\name{Step} +\alias{Step} +\title{Define the operation applied on declared data.} +\usage{ +Step(fun, target_dims, output_dims, use_libraries = NULL, + use_attributes = NULL) +} +\arguments{ +\item{fun}{A function in R format defining the operation to be applied to the +data declared by a Start() call. It should only work on the essential +dimensions rather than all the data dimensions. Since the function will be +called numerous times through all the non-essential dimensions, it is +recommended to keep them as light as possible.} + +\item{target_dims}{A vector for single input array or a list of vectors for +multiple input arrays indicating the names of the dimensions 'fun' to be +applied along.} + +\item{output_dims}{A vector for single returned array or a list of vectors +for multiple returned arrays indicating the dimension names of the function +output.} + +\item{use_libraries}{A vector of character string indicating the R library +names to be used in 'fun'. The default value is NULL.} + +\item{use_attributes}{One or more lists of vectors of character string +indicating the data attributes to be used in 'fun'. The list name should be +consistent with the list name of 'data' in AddStep(). The default value is +NULL.} +} +\value{ +A closure that contains all the objects assigned. It serves as the + input of Addstep(). +} +\description{ +The step of the startR workflow after declaring data by Start() call. It +identifies the operation (i.e., function) and the target and output +dimensions of data array for the function. Ideally, it expects the dimension +name to be in the same order as the one requested in the Start() call. +If a different order is specified, startR will reorder the subset dimension +to the expected order for this function./cr +} +\examples{ + + repos <- '/esarchive/exp/ecmwf/system5_m1/monthly_mean/$var$_f6h/$var$_$sdate$.nc' + data <- Start(dat = repos, + var = 'tas', + sdate = c('20170101', '20180101'), + ensemble = indices(1:20), + time = 'all', + latitude = 'all', + longitude = indices(1:40), + return_vars = list(latitude = 'dat', longitude = 'dat', time = 'sdate'), + retrieve = FALSE) + fun <- function(x) { + lat = attributes(x)$Variables$dat1$latitude + weight = sqrt(cos(lat * pi / 180)) + corrected = Apply(list(x), target_dims = "latitude", + fun = function(x) {x * weight}) + } + + + step <- Step(fun = fun, + target_dims = 'latitude', + output_dims = 'latitude', + use_libraries = c('multiApply'), + use_attributes = list(data = "Variables")) + wf <- AddStep(data, step) + +} + -- GitLab From e8b3847603887efdac5fdff0c215da94fd601511 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 16 Jul 2020 12:51:35 +0200 Subject: [PATCH 04/60] Add sample_data from s2dv --- .../exp/monthly_mean/tos/tos_19851101.nc | Bin 0 -> 147016 bytes .../exp/monthly_mean/tos/tos_19901101.nc | Bin 0 -> 147016 bytes .../exp/monthly_mean/tos/tos_19951101.nc | Bin 0 -> 147016 bytes .../exp/monthly_mean/tos/tos_20001101.nc | Bin 0 -> 147016 bytes .../exp/monthly_mean/tos/tos_20051101.nc | Bin 0 -> 147016 bytes .../obs/monthly_mean/tos/tos_198511.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198512.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198601.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198602.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198603.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198604.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198605.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198606.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198607.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198608.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198609.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198610.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198611.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198612.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198701.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198702.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198703.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198704.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198705.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198706.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198707.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198708.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198709.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198710.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198711.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198712.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198801.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198802.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198803.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198804.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198805.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198806.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198807.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198808.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198809.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198810.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198811.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198812.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198901.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198902.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198903.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198904.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198905.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198906.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198907.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198908.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198909.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198910.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198911.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_198912.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199001.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199002.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199003.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199004.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199005.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199006.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199007.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199008.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199009.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199010.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199011.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199012.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199101.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199102.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199103.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199104.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199105.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199106.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199107.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199108.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199109.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199110.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199111.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199112.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199201.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199202.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199203.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199204.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199205.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199206.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199207.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199208.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199209.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199210.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199211.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199212.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199301.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199302.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199303.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199304.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199305.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199306.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199307.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199308.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199309.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199310.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199311.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199312.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199401.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199402.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199403.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199404.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199405.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199406.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199407.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199408.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199409.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199410.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199411.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199412.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199501.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199502.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199503.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199504.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199505.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199506.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199507.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199508.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199509.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199510.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199511.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199512.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199601.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199602.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199603.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199604.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199605.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199606.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199607.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199608.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199609.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199610.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199611.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199612.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199701.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199702.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199703.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199704.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199705.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199706.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199707.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199708.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199709.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199710.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199711.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199712.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199801.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199802.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199803.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199804.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199805.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199806.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199807.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199808.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199809.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199810.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199811.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199812.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199901.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199902.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199903.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199904.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199905.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199906.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199907.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199908.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199909.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199910.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199911.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_199912.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200001.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200002.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200003.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200004.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200005.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200006.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200007.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200008.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200009.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200010.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200011.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200012.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200101.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200102.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200103.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200104.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200105.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200106.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200107.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200108.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200109.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200110.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200111.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200112.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200201.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200202.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200203.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200204.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200205.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200206.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200207.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200208.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200209.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200210.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200211.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200212.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200301.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200302.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200303.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200304.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200305.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200306.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200307.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200308.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200309.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200310.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200311.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200312.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200401.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200402.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200403.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200404.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200405.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200406.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200407.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200408.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200409.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200410.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200411.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200412.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200501.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200502.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200503.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200504.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200505.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200506.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200507.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200508.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200509.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200510.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200511.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200512.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200601.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200602.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200603.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200604.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200605.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200606.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200607.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200608.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200609.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200610.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200611.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200612.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200701.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200702.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200703.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200704.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200705.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200706.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200707.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200708.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200709.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200710.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200711.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200712.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200801.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200802.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200803.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200804.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200805.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200806.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200807.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200808.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200809.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200810.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200811.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200812.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200901.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200902.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200903.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200904.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200905.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200906.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200907.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200908.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200909.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200910.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200911.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_200912.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201001.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201002.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201003.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201004.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201005.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201006.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201007.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201008.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201009.nc | Bin 0 -> 4516 bytes .../obs/monthly_mean/tos/tos_201010.nc | Bin 0 -> 4516 bytes 305 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 inst/sample_data/exp/monthly_mean/tos/tos_19851101.nc create mode 100644 inst/sample_data/exp/monthly_mean/tos/tos_19901101.nc create mode 100644 inst/sample_data/exp/monthly_mean/tos/tos_19951101.nc create mode 100644 inst/sample_data/exp/monthly_mean/tos/tos_20001101.nc create mode 100644 inst/sample_data/exp/monthly_mean/tos/tos_20051101.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198511.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198512.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198601.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198602.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198603.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198604.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198605.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198606.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198607.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198608.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198609.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198610.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198611.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198612.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198701.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198702.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198703.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198704.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198705.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198706.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198707.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198708.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198709.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198710.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198711.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198712.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198801.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198802.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198803.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198804.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198805.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198806.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198807.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198808.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198809.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198810.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198811.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198812.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198901.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198902.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198903.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198904.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198905.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198906.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198907.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198908.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198909.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198910.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198911.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_198912.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199001.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199002.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199003.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199004.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199005.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199006.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199007.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199008.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199009.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199010.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199011.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199012.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199101.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199102.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199103.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199104.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199105.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199106.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199107.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199108.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199109.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199110.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199111.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199112.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199201.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199202.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199203.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199204.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199205.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199206.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199207.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199208.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199209.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199210.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199211.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199212.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199301.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199302.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199303.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199304.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199305.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199306.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199307.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199308.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199309.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199310.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199311.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199312.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199401.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199402.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199403.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199404.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199405.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199406.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199407.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199408.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199409.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199410.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199411.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199412.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199501.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199502.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199503.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199504.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199505.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199506.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199507.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199508.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199509.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199510.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199511.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199512.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199601.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199602.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199603.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199604.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199605.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199606.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199607.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199608.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199609.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199610.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199611.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199612.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199701.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199702.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199703.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199704.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199705.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199706.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199707.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199708.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199709.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199710.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199711.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199712.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199801.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199802.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199803.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199804.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199805.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199806.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199807.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199808.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199809.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199810.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199811.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199812.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199901.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199902.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199903.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199904.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199905.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199906.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199907.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199908.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199909.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199910.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199911.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_199912.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200001.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200002.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200003.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200004.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200005.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200006.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200007.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200008.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200009.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200010.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200011.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200012.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200101.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200102.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200103.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200104.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200105.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200106.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200107.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200108.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200109.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200110.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200111.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200112.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200201.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200202.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200203.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200204.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200205.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200206.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200207.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200208.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200209.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200210.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200211.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200212.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200301.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200302.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200303.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200304.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200305.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200306.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200307.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200308.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200309.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200310.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200311.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200312.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200401.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200402.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200403.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200404.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200405.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200406.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200407.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200408.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200409.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200410.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200411.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200412.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200501.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200502.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200503.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200504.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200505.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200506.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200507.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200508.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200509.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200510.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200511.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200512.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200601.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200602.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200603.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200604.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200605.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200606.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200607.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200608.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200609.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200610.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200611.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200612.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200701.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200702.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200703.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200704.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200705.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200706.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200707.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200708.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200709.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200710.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200711.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200712.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200801.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200802.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200803.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200804.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200805.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200806.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200807.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200808.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200809.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200810.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200811.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200812.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200901.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200902.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200903.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200904.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200905.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200906.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200907.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200908.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200909.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200910.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200911.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_200912.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201001.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201002.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201003.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201004.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201005.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201006.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201007.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201008.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201009.nc create mode 100644 inst/sample_data/obs/monthly_mean/tos/tos_201010.nc diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_19851101.nc b/inst/sample_data/exp/monthly_mean/tos/tos_19851101.nc new file mode 100644 index 0000000000000000000000000000000000000000..b33e028f9781f4521649ec817034f4984630ed11 GIT binary patch literal 147016 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 B*)jkC literal 0 HcmV?d00001 diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_19901101.nc b/inst/sample_data/exp/monthly_mean/tos/tos_19901101.nc new file mode 100644 index 0000000000000000000000000000000000000000..02dbce274480da92d31fdb29d84e984c8b517e69 GIT binary patch literal 147016 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∨X9{Vy@@&kM%M4*XLwqh3d@Mfn%>G9pUQd; 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 GM*jmxnnFeZ literal 0 HcmV?d00001 diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_19951101.nc b/inst/sample_data/exp/monthly_mean/tos/tos_19951101.nc new file mode 100644 index 0000000000000000000000000000000000000000..96b936163ce5c1c9dd3957f28c488a5d2338444d GIT binary patch literal 147016 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

X1bC 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ÀKGv9F& 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 PWl^8Hfz>E5l^XUR&*!&c literal 0 HcmV?d00001 diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_20001101.nc b/inst/sample_data/exp/monthly_mean/tos/tos_20001101.nc new file mode 100644 index 0000000000000000000000000000000000000000..7e89318da4285ca33a6040e4d4e6b86bcde5e9e5 GIT binary patch literal 147016 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_20051101.nc b/inst/sample_data/exp/monthly_mean/tos/tos_20051101.nc new file mode 100644 index 0000000000000000000000000000000000000000..c9406385a9b5ee561dc44d13cd7876abcc65d607 GIT binary patch literal 147016 zcmd43b(|FUw)Trdu;3n;Ai-UNGw`4Z1c%@ZF!*3I5L|*xRkces5?q5MNPyrTBv`Nz z+}&LR_d7uL$=UbZ_s#z2d@g%;TBp0Z>i4Wi)~Z&`+VSJXi&vRTaxRIuBCkY?q5nSNx39c&3bY76L6`c z-aVosVj{z8M#Myf)$0=zIiPDq=g6=@kprT8^z9Q?vRJudrNatzkBRA5v3T*$eY->! z8yXeyO|dSK#rqBD+cUCrOmy+iU3wIZd%qOw+h2sK{UYEAAEl?*|4%c8%Lv zMdJPwR=j)PsL0}dq9XbX?8KiHk1o}PUDBg#kIo!}zI}@K=o1}NJUSw(U+>5cUD$QS zqu4dQi$@Ob$E%{)2|UmzrhD%p9ik#5`V^1p8{MIF_r3!M^d9o=cBv92%9boyqGYi? zo&OgI-u?2qWk-f;`F2uC!mc;~JI`$R;?9rfaoog*U##B?v-qeO{b|9?F8 zaiHU0inxVKjfh*sarfgeny{Wq$KB4-r*q#9efvfBiR#xOru%@%h%O!a42Q7ufin}EIN)5SskMASNguME4+7NE`P6o zaoZ91FRrG=ZCk47n20`IA_lO@9G$pl-f!RE|K?qN{69ROcwnC%G4CqZ`@c=qC9>Oq z$jImpefn}_-@j*~h`~MLUJ|$8;h|84*L```Uf`{>_a z^Y7c4@~{0A84(@BXa2Ws{h9~(7q_i5+043JC;d=ixcPoPas7YW&cAr ziHv#&kbwibB*uz!2~zkkR0U&d_}x}ihu9=&_Fi0D1=Js=YESp25l zkIv&dRaB2?_CmJ~gZ}mOJB-xjv;U8WX{^9S!KfF))`tq%Q$gJ?WOvetH6CTNY{8ZLwxn+*`%AAo|)}Xbr_K%l!V4$p-1!c~kDKo(x8Alh$ zH7iW6yR+qbwNS2&wd5LZ$~C5}T)(!KySpv-;JxznSR>E)OY-#oNbdW^<$jV+?p?>^ zw)@H%NGkXAFXV2JQ?6%z1zOIKE43lttZNE(o5vTl7NYsq5;?ePkl zT#9|9z@0`4Hcz9#vnKLiOe=S`B68I4rogZw3T6z+t~6balAYy>cVG6y-U@w^N}>Ae zWk>Sdpdku&_)Qa4OcT?TR%l`ig|eoSUHycDy>ckvpoo99Q7lW_i=U zR3Otbg%W!dh;1e_Sr=J>-{lzbu^g+n%TXhTtZKR0&)MW(QCh*+PZb=qN5L|=6)c)j zfuXD9|Mm;H>aLPE?*;{M#Zc$)4Y;(x`rH= z_?&sQW!7a4CD|z>hexs7dMWn79L2s^rq~l>75n>a#qRn+v0J`V>@O#|j8g2LKNP#Q ziDIusD)#OT8TBi&hN~;~GPnN;KBlpqy=%$Hl~hJ`@X(X{9jnL~JzU0!%HU(Lj5Kd} ze6ftz8D;F7SOJ?qfoU)3Ne3H` zWPWr}#*`j1MrQpRJ|^=1VKVN_kXf{V%*0_b&&89mG86bHE2H#g8D(0^ES*o*!ya-R zNhf0=YbrPOedArlp53X~jpM<`WW_#zquApM6#K_!#qP}y9&#&oM<4L<4ftrpeO_~o z%bk@nzI1|*D&XVfKf{L`EY<)QsS?X5KNtQe&4uqgIyw9ScN72%9+LZZWqA{&mFL87@>EJB_wFZh z|3=+98^!e`Ip?pEoBi)DHx7JVRv=5PT=|B{H>axtJ5MTb(WOA%2l9JX$hyzEnYEjm zKUG1;W(Bj%R^a3m?k|OBCd$9tO+EZXj*c%BSXf7ahihav9>XyoCg+O+3Z;3WP>0kC zwcISbWq#QM&neh&nI@JSrim%WDm3MkLRs#}E?0y1e5=5v)3WShGVbq_@7LtAqyCgD z9W`d3MUA)x{<0`|VxU3^^2i?!KAb-(^n8axFMV*yCkiEeC40hg*=?uFo?1`Av_s@g zSxo+?zskOKRRQP6@bD5@OAR^f=5j1AC`a2evTCoB^=(u6=U-NEaRvqb)PTVG0&0Bk!x9!AEyF6J?P#>Jyo#&o@lMpiFXBLwm&W$Mu17RKFnC(x2ryoLHVaC*>4)UA<9e2G;Zv>i_6m zyw?ALKUhbOgfcEHk@+=svu$dbM_04P;H~H{WaR%Ie8kGkHe1%2dhiDvA8^LAKNWj)H~djavA?E)R|+e>?ym`@lzS#a_r0 z{vYYABjaS;MUPeC`wp|XaNE!K9(xJgKa^1^vy9^VWtdOkiv2S8_mKG_gUpT9Wo}~a z<^Drf_zAe8fvm5b;Nf#Qx)qf5@@u_ldzlk+Jsb+FvVH93Y~VBM5s4fEQ?gXJinOs+&9QM;=sGyt6R=kdDerVOm} z#+#}AeubV&p_pt6rT3LPq}(1Q62RVXEUS7qKSAUpq4+1+NKvlhdtujSv*b8~)G;Ojo% zWS*?9v*c*nO^#8Ay4|SH$j-RVtgz<>-pPa1x@{yE)E3d?ClYZgP%aBob)XoH!MGe<(as4vb__ z?BOu5fu`E{8Q7?y*zG?mcK2MxZhouSs}b-B@A1W5aFSB7mk#_h9=T9eW~pT|7E$w7 z{DD>kYqQW-=C9n|BBMxZ8MTvxmz=WD^j6UpGH=b7x$>0E)7NDs+KSg`f{w}~Ykng+ zS{{{S$4_!(-6!j}igGmCB!|zGmhrAO?$=mL#JbQP@^K>1 zvodm;rT72!N)P~Kjt=k za`htkK<9n|?goRGbF=;#KDJbc1L3zU@I~JmGA6Kn9_)wm9Pvjj@N!}mZ%Uhqiw0*ri z)91)z{vgl98giBYNS@z2%hPR}+?(PlaI}|P(ZkU-kqSKNpkTKk9{e)}N>!F43!Jrj zu7dYRgOOYcF5in^02?<-C>SWA!1`Nq&&n!CXn}%-e^GGLXR_CSiq6U+SF)4}RjjAb z%Fh*Y;nUl3Y3)|95kCFnFE#O_-3rYvU+N=srp>}M@fzFCA-?jd-H+>~n z@|@tq1MgN*fVB`@1P=CqkEb0K3cH}tREI)~yC~FVx9scj(Q{2@e;&(wE(hm^JV%zw zzx1N)C0pQx+xWsFvijtLuW!pSwieskLsoItchAZ4T_?9V9ihOcE()}buRzB~XtewC zZMz`n+j;VAJFCEpV+v+(hCjjM_|wVR>Y^O(^RlYek~tq8{V)Dl45pLG5&te)>l-;e z_2hgwO0JXF<#_PT2Yd_$AIassn-%`(E6mE&@IZ%XoVg&5;M~(OSl!doo^tr_GCGBwnr9pYay= z;E5-T75m#1E<3=(1o#83wPg(W7z}@$;&yX%7W{H25%?$vf2798Wd6@|*1p#=9-dc;8eq`f!(jW+C2vL*-z_J z$t{LMptElMC}-XRa;8WsN6lh#6h#ZHA0SVmyz->IEf0RgQ;1{N zsk%JLD}$Xf@)QFX-3!UvDTTb&F?r_{L_cASviWT9-wYjPs$bjA&`EA~aUFfiiA$hBlKh-ZK zN1rUR^8Y~%{5y}dmDz!8s^gDxL?n~59yn>VL(U`X<*?8gaem}#J6V4mm2>Jdxqs!@ zem;o|p|Gr!m(fvhfDs8!;11jSL1(e9;?>DBfsNE$fu5u04M43A}j3> zQ|s=@k%Rho@rB$M@Ek8D$di~X=_Oh2(~@$p!;3H3M=kQoGlk=Jm-SvGkGyB6a|}&+ z2TR_O+|G0!-}wW6zJxrdW96BEcc=jOkHf2GxJ9meQ}##bt^5fT=u%pajBwaq)^5kt zthuuaUO>adA4<-YNcN|<6)d!0?!!CK*$>f4mt>c?r%;Yoa;TtOsZ51F|5%|P?khCv z6<&tVx;03_wmUVkWClF;VTERGP^c7t=lMc*(r;uZnjmXe9`I30zFQB;r#_Y|Z7uLY zjb4pTiXEk3sIlxV73BK`yxyv-(6plpHO?ygK~6l-ZP~ranTuqSUGsnfYkGo@i}DBW z${sdaftr=5YeQr;ij<>MQ8~JvB%5vvk5I?@E|IVH5Cy(+pyvk5e=xrMtE$VtBp#aX z5Pk?hy>7n(tI~s!EDBVeBX7Zc_{Be|Z=Gc&yCt*J?Z5FzWtq)>l;yMKaCDNh;ypP> zkZXPQEm_*(5BO*=>ueJ_*Cdhq+;(}gua)E5(=yLS$k@Z$9?Du8KKE}t(m_U(qtxK4 zGS=k9r%aI9Ya=z9+-pEP@PYQqMty!TN!CPa?Wk(#8}#1C;BDt_8S&wa)t%smD0n2B zVh_O;2e;ruPAhgjk8jQlK58m<=L>GPM`wX2>aJTyrcZkooBt&w=@w<75rlfX7ZDtHS|V*?*Qr_Gs12E-Ug0+Nu%j;Rswj z6OJH*I5tO)4Cs^%6XeV?RnEeX;N;Bjag?g8tW(Y8KDj`i>Id->QSub5K{kb-@W3V6 zsc#oed2YcUdydL`;x;;tb%A4!HJk*51o8)qht}TD& zqzcwerQlL@MBQEr9BT|`bwg*7)0U5x?V<*kn5f`0G<{ie&nqzs=9?h*5xnm52k_89 zFu)qWPoJS8+5bmmu<3qO=$jM@^ z?~oCVu@7H(uZMgu;Hj5zTbc*p!!L6^+9q&E!AT8d|1zBI#m6MvrI6z;I&LvIOCozs zaq@tb^kfRiZZH>JHdmg-eZhxA_Uxhx450o#pThpf`_*N?MlF}4P#0OBqT45g$v3&D z0+nVe@OgLnU;E{MZpr`sK(g>la^5S6cSE~4opO z^EZ5Sl{uQs*TFHYb6n0sJ>?v|Sgt|UfNTSmgYid})9xcywQk4u7$o{Bv%34F{4A7EzF_jvUy@W&x;!zWkMfsdZx zW7d2AIPv^H(^*q2dx&!^=nMMLBbD|E3(9;GpZ_`1pRZCLNVW zWa!RO^7Ia&xA1v6E67vgl02EY-@G`_FOxT0X?a`hmp3p1%~cMq^;+I!$H?B-$kqP5 zyoJcS;?XG{{Q{W{Yd&&~|7fhFJEr1&*$#_{E9=U+$ z>jIbLm*dm#WmQNd%auevAHB(Zx8%R}nfzaMmj6gY`F}bq-=h3@2C}i|?G*SC98D%$ z3!_hxCoAip?9l7d-zPPVk`JE6XxZ$fb zq%1sgjoaw0EAY(iLFlYv;N&OzBEf&gBh%7=g`{vsn2bqiw9zlv<`npjzC1pMY`Qae z$6LkTkoDyvS@p>+YQB_}e3`6F8)c=K2X1c3nhtJ8=9MD>S~iqcj;cA)#rWiY=+W*m z_>yLLJv2eZedsazw86*nBn1mCYeUVb1i z{Zns0L*C-k^$@UtCW{}O;C=BcoO4d9=4&KmNS992rmnXt8- zU+j@9(H=R_EdRpCBmBuS`d2@p1q!!io9I9Oa*aOU47_$B@WJ~0mk((uu!UI+~6Z2`1p$3ZtxL;NAkcUF7QF#bsl~6Pjr^Mu#C_7yiTupJ(-*v zoCK4D@f~2I5BL~JKM`&j|A-uL8~%f1QZ}w{K2qk^A7wtoN9D*xPjHE>2A9w>JJ4Ju z=v{Hyd4?Qv7u*pm$Hx3%WEiJ=%38|W&OwduK<}?9TBgkJTMsB$GZ;)p`lc>3)r(P&@7Ia|rIzE!n@_*x&&lA@hho={{LTCL(k2Jdi$u7tnzCzAV_`YAcWaV5hbGZJ-A6;Zd zKVu#RubHER9FNdb%`VGTa*!PBBR=2*-r2uU&hOZdbF-iWM$6HQ9_b3!&>HG)4E1(6 zTFYjAzSCLcK@Gu3AL_UhjP+P5vua#j=J^3d!3TenWD+>v`}-#hxni zpXsdOBV>dnB0FfwdrX(no$c=34PJ5JQ@AbymOlaO1Iptw`^ucXhzs*OLmJ5J$K1fo zn=+R#lld$a-VE(!cILR%!8;C-BTs2LKIF zO`f9BaxeN+?tx?>KCWl&fMf6{r{S3I!NlDb@}_Dn&s$!9vXwkNQ=!cU%S8_4>5pD( z?U5&ad<9GGm1}yGe9O@5ThT%t)+?C4qyn=Fflo5H$@Bz=vc}g9QSfKxmsXyWooYM% z!&CI1z2q>}=-qT@Hfs&f!5e+SP4ij!k@)oT+9|YXsY3m>kXPMTaQ6=iJm{p*BWnMj z^bMCRA+Jp#`}H2#lh4C7@a>LV_{}r&7stnpOC?v1FTu$nnOn%4i~K^*BPaepz5KD@ zuU-^>oy@medWD*GmHoz&Js$5r0bHNz1|PDYetIMSHZr+|ygK`7K7OPHzOPmi zIor^m8wHCxKXT(?R$LEef!w>)NZ#XF}qeFi_V=+9#`WrP*X0?JcCNE>HWtNdH6WQ+# znaNM1Pu9a%1@HpBW$YaW?+nAE*H!FtyvNOAXs#nu0n&|I6@EO95{hf&K>$^JTknDj6Br4f@r^1;I!8-Y{yX<4m9F~A7m7z_Jz5b z3HVB8h<=iHqRc59WcDy+wwOxJfo_NbJNs>LG83Mm4y|Ng1;B#&Le`bZvUcOoUorod z1po3C_2%P*%wW(@Uww$IcLkc2e&MTna{pde?g?Gwj!G>zJmr4il{W!es}{YH{+r0I z=%I(cmZxuhc?SL>SGHyHOv00Nx+M3Tet7PFat-e*-QPA$zDxNPrvVRI)&yBR;W=L*+)9?JX$C%bz%8M@PT(IaTWeqB3H59 ztd&t{53+=+rtG44j~O-P9}Tu@R8VMj8obU}g;IVcdl7!UKU~soHMff@m|>SZ^LNYt z!%o>NZYU5$$N!mER;LPNv}ffAP}5s-XgUwTS$~dHh64 zxss3zCMFNwK0pC)AqC1t%R9&=Xa6y*Y4|q$y38P&=3jjgGU_GZ<|%!57kaETb0?ms za@Cn3$GX8E@bR@AA6s%>VWxEL7xHu_yY%4uFC>vcK4HWR1t0iqn_ByhN2=jN*gr#( zF=Jbn8A;|enxpBbQ$zZn0Uvz7OmF#)S!I3KpFC?GYZERyMqL;WM_hggkNDt`GKzi3 z{R5Yo&4Nd^{frO!4NT+*A6vmkMs9EC^=PjfOTou_@G*nF2=D(-bk-0&d1k&tZgPaq zZ1bSJ%qsT4qu?r-j-R3{`%OGGM@~QdHj^D z3gDr`ANUh6(XKiBEC;olp6oU*hq>gbAoH|a=J|tipJGPw?iG3*f#6Du>wT|KMZ zt;vA%-InJI`dOLQgOMZj49O@De<#nHUf|;bIoL8eU+YpLlzZY1bRqLu z7vY|z#T6=^fSOFdFKKgyYT>2nCxkX0#^Zmd;N>I=yh^3eRXq3^`ih>S3RS5r`)71k z>jmUwL0Mbxf{$qVa|{JL%xHcZ03RJ>?&=S>kyUm27~aV!|DuBU^Tv3b9~A1bUZKJ_ z(QD*Z5xiHOhvZkyz+xJCmYn6aUGVT_6d$dm*{KF)+z2#zjVqIAq%E{lB zxss_@6=+gg{`0*RNRkr%An#oWf25?Jl$9RK{Kt5aZ3>h?XAM0qXGc8ba5Qj(Ofr{| zHT?@8aNfquvhJ+l`RsC*Eh;A-(N!|H9OOsueF%B)^V)L${;k~0>1}mP2|n;M$6hh7 zF%~_w3VfisZ084jpyQh3#YZ%PGqTI*npS4b{j6DPasR8}V<78tFtd-lWle?GjFUXR zR>r08WvuMMOz%GU<73wRRq)Xle6aq}u(8|Vl(psH5Av?f1Hs2!@PQ|}jP|;50DQ2n z2Xp&W!T(HWee)f7h4a!4BDZ22BfgcsvNUf=jG0GNv=~j4f!gTLyL1+ypG&xmjd)ltaD`1L-3|M_A3xK zNBE|>f(b7v*cv_lCpu&SpXco@M~(Ts&r=1H{mdLlJG}5*IWM7g?vq!I$1^mBi{3E5 z5URmS6lJOXxn8X?#S)JFi#@_KrVREb?JomHA8t}z~Trz*m zFJmzoYJb*Ny6*T9hs>`k$~v4#j;#}AFq38+Ey>>(m62+WVwbW0ueWACt1EpGyvMKL zXY&O5?yJdu;gd}#!AS`)6QEC+oF4mV8Fga733=Fw*nh?&-+;?ZUGYcLWK?aAZwKG) z;Eiz^;gKJ~$0fEC&h5iCy`uM-a6I~VB=wN*xstWM@>h;icC^-RndLXhbk&x5kUBIC zzp`PNtlH!eMT^NQTuoN#^D;aCL~S^Y*W4j@K{6yief0Uv^fs<3ciOyiZJH+6u8){$ zoFjLK4$PqJmS;>pd2GBrxbswKE%*J&a{pXk&VCEzZgoWN{ybKd{_rr)Q^?y)zK>!Q zD8u~j10QR>jshQ7l65>4^8n2KJz=h@2KjDPdM0K6Aoog##u}(VztwVw<5z36QDDMq z1zt02TLzz4ceR}7g9?2#PN5O>FJgAl^PnHO;7bL5qR)P2HgktQ&h7XPt@MJt7e8OE zw}J~(((gihKU^f=rB(DD$=^!G)s&Pnf5-a}n%WKcn@#;WM`auD?NMksbBr#s@F<-Rx++QeE-y0W-@Az&xytg$g#^W$FPyIsLj>|_#;iM zf`i!30_3_A(kUSP$e9TF!$!zen*1ur>}C_Nak-uXunth}|s2pL%4R$!wwyc4IX z;DqNq{%GHdk(ZpL^g zxb*;@1rK9T_rIPjS8C1^sml5eu2PR+P8ZJshPR-xe1Z#ihmi>y_T&6PoF-!K78=NaO0-nf;hFYiK7T$NkPYSK= zrqC`j-`Eo*!bM~+KO*~+2xcS`%bM32d@z4?_d5NK-EtM?`0ghQJcf=NFWIePnS1Oh z|6P2@H1gh+^kAmUQ>ZsN)*Iey{yf?Kin2Gd&P$AwXKgrIDJc668Nsf()T&kV2-#*Q zeZ$>kBSY|ct#Zk_R8xUw%ntY;a;{hn_Qg>JR*nNBN9C_d4%q5Bvk5B|%mF?QvyWO| zl=s)R)Pa(mkC9E*Ml#971OJ8(GKU&qAzL*$+tKql_B%b$Kjfkp;mkkd13q@k(Nl7@ z8O5x`Z}OZkBWDrxcBd_@o8R#p_}bBNSaR{c@CCeQm~hn1eAHL!><+ZtRO<2%;Hf|F z$vJ68Cj4z%a-aC=u2}yP zeBj-8EaLWk@KK)E=7c}~e2wk$3Su#?+V52F_|WikSdv#QxRf4)Lgw%uhFcBy%r$)pLAb{-v_MfoEG9=9L-== zNY+*Q6U^*2mU)8NtlXJpCv)IKSn~;{!y)+nmE>8A!xRd9M!$sK&AH^VpW%hF4O6h) zFXY|J`M8QK{n1Pw6U@GQ- z9w&h|Xm0XQGAJvG?M{10*09^u;qu@FU)?f|fSaW-1 zB!wHEpxs(i;|rX_uV1I1-U6I_MfSTKoGeCXefQp*T+am;fYFBYz)3XzqfXJk=AQ+&Q+%wUc>< zA(_Ajy}#18<$9YF+%T^dNGrFQL+)d6&B2@WP4EjPnB{mhn|z*gOGgFdTIZIlD;j-W z2JkUo-npy;*AB8ydL-0IzYFcK2u^Fb6D@v5fg!c%E3n2Ep_LA@&N(O7zYJ}Cd6gVF z7cwJwSN>;2YY%d)s;p=HdfP$@C8r-U zvV($q50XE9ENkd&8IMxPH?Rh4x(qs|HZ=tOd8!9`Zy_^W=g5?qFFXzgLTIf&<}w3z zOrfgyk4ta)8}RmBM%i(*nYHfAbN?IgQ68>xDi8?b2VcuNG)InK&*LAi$T2pztfp;c z-GS$_)T8$pPj=$9U<;0Yh2I*_`G)pgxyB}yFDsrYS7Qa&)`X+LN3-H`{jg5Xk%#0c zl|)uej{RRcYf?V4+>hkiwiWNlT=pQiVm7nbBj>Ph^1a8$wJmbe!*I`UNAB23-YY%j zsveS~6W%jCzl_yM$beWo|C;la%gIRwm()>ew@cIlH;19e7=bjo7{B7F};Deel5)2gH20p0!Q9RxaZQA!P zGmfjdeT}SZwv7DG(T6MHk2##bPSzE^UFN`TGK-?OOM{!I4P_ph!F&%HaZF3V~&kgE(hC|yeK@~^=|F1Z_@k-P0axuXsA6g(o% z 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198512.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198512.nc new file mode 100644 index 0000000000000000000000000000000000000000..76de8ba1d418b0235c66b9915f986aff3caa5609 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198603.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198603.nc new file mode 100644 index 0000000000000000000000000000000000000000..49ded88a4645dc746367fc4c99ba7aaff49a3f2d GIT binary patch literal 4516 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 Sa+87nd%6>SHxBbVkNz9;F*Pdy literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198605.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198605.nc new file mode 100644 index 0000000000000000000000000000000000000000..ecd488715a1231fefddf9bfdf22ac2cb666677fb GIT binary patch literal 4516 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 S;xC&R?=hJFR1eJW_5TedkuaqI literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198606.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198606.nc new file mode 100644 index 0000000000000000000000000000000000000000..641325a609c4eff2ccc03006c3ba94b44298832e GIT binary patch literal 4516 zcmcH+ZHQb~b&}1R%_Q4|G?<_$_lLwR%)B>WJG(oWb~k79Np?48!X}a0>7DoP%sl%( z#&_S$W)p=_kjd^QO=dr4!B%X+Qk7~%tMvmVQiGBjXe(G+Dh8@h6l*|fQ4l=my_wDI zx|>AM$J{yZ-h1x(zUQ0=!w1%dLLnMq9340|nT}mFyoxSxg3mS_T_*QhOId@^*9cKX;|D7Y?ynT9kxB;7Pux@Rk+e{Y!+A2N|Nm79Ys;4rCJjED?+MW|*zH!seD>(J>aSGE^$kQjA6Q6?5Eo?8uTae1zo- zRi>Dt8WFY>R^CLa`YH>qD3Gxt^vBeaV+qx^xLwKPF;ymXG>K6#G_0{ zwR?0etvsvjo6Z&!D@=HwOjkz1@;LclvL(-ObYHs zD4bZuE_3a1q319R6w9V~Bc5&i!z(P6%B1`|=DX){*}PvAT5Hf+efh3rTUWQrP%J-e z?~h0_lWc_!Y07n7izNDz3P#p){njAYx>qdD;;Bq5nMn1p)4gZd^S@Oz+_7af##I& zdPc{FhSbsh+2O-kb<|G>++;zLHMAhh0_I5J(uq*06A75j1Wo5ZLFd{2GoG+@ z$B|-Bc!EpT&ZZ&_yU08wXgSiugrp%ObCU5YH%w0XGYpPZc0~y@qfr%XOvAv74ta=P zE(xUU7n7{;*d7=g8qW6kl2h7ZVQ%Zpz{5@z6_OrW2yLjLjV$4n99<$`?lEqf&IE1y z+}hNkniR+<%iNWM5mhA&6&Irpg^Vy?sipdrXlkic6FrQ0w+b5;H6K%{CWDREERR!E z;f}He*Rj|r41*G0!eNF)YIhV_&GIBFYUwVqOekTNuXt?2@Jh_ae1V~5ng$kM-!$ab zP*)l2T)}azz^|ds5iGf;zZD8&g+lAvn()i3A8+THm3d-f0^?QJ6sikK(W$BqSGAzF ztFFKhaJ7<(;ohnlO1V@Hw;dMJHSZiQOFbwvMc2?V5dBH8?bjToe>jNwV!F?ETHSX43AKw-xO-T;Zo()Y;`EFVYtglkw1TAnUi zh8+%K#E)@IXpHW~CnY=Nw-A27j0m@gF?1BY8ucTPWt%~MqAkdWY;I0Ubl0AEe}62B z#M3#s>!aP}2XDFM|CNj?_SJG~OGJDM7@K$HVMCq)jbZ zR==CrlxglQMqh*_Qt5Owk?QMHf*9=>g)w@gT(*hYfLL$5H`t=Sb7}9;vc7Z7&qZ?cOb_+FwBL>S#MZg1=cu2eou-^C&iQoifzw&B4L|ud zX>8F&(G^1G1eYGJZQy5&W^N9xJ4KwZ7shcu6nfxogzbHLtFOP8ob6{;ld*k&rF`8j z`E1AaN++2rX=0;HLfF`58r7HaEA36$GYJUr_LelwhT$7F;}JDfp(Yg?^x zM)I$}wu8{oxWfU&|4o>JG=n~~f+dR4maTW16i7K~6m9>b!}fBzfggK>*}@~-t}1tP zx{w;alRb8>ty*X!l^H2~8iaely+#YTung_#VPZsJ#?}+7Ew+<1FI+2G_$d_3%!ZDm(#Gmv+F^(>Pvv zAErATn7+OqW+GpQnTbW1+4X&xdGHv_JbVgfMn4MEZ$1xGZ;ZiI@pZWJ`b%)-)i1+r z=O3Z|+~1+z{SmnG#%Z{`phNw~9O{?1Kpp0wF0VrUvuEMTpXcH7&lRYD`d3hY^tUiS z|4W$LvI`cz@gg+3&qHHd1saF`1dT7f0*%kqp;37Y8pTd%Jn$?m#BRde_x=F&*M1KR zw-d1NlnISfXM9~7*LK6=$2wqf-w$B%p$}kj@4L`=e>*guc^eu>Ps74rkj~ZuG|B*t z?1Qjyy#x#A-h$cn--NlBpMd#KJqnA@9E8QWB+Pf0VJ?3IW>KHn{B5Xza1!c2yAHE^ z@yx3a!MwTy=3YApv+^hKWY2T(!TL%}ORp5em>)*tmHgy01 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198607.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198607.nc new file mode 100644 index 0000000000000000000000000000000000000000..666a46eaa69ef4b8667f446563daa7d327e6a27b GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198609.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198609.nc new file mode 100644 index 0000000000000000000000000000000000000000..8a607590bd2c73f8420fb5e56038cf85813be743 GIT binary patch literal 4516 zcmcH+TWlN0k$%hc^CPv>^tDOq)+)$5zC?)((nuNk8B20a#ZKxJ?CNeQUVIPs_DGq@ zM;#!ADLIyCOQa1n2;idmY0|`LK8m0P;-o-<^zqY=28QEAUquTPZ4ekS+5kmo?ns$Z zCEEqs1DA8VvpesdnS;T-t3sg=jWCWiI5wJ&J#KhqUEl;u!VxF^^k_c%LXd%`VnO|Xh^rQz5tuB4SD+gfPPJ}}1kbv1r&~*N*be`=w=?Pm$zDERQ0?#dLBt3#n2vY10PjJaP z*_5SWk24PmT8{KEA!*3StTJBVhRG>^hQYB)t|($=G%A9PXc&0W0S~vAiUKM7#Uv*@ zwi`wU26NrM|)fRkP+r9wNSqjEiIKwqMH%#c45P!=I>N0$pF!wjo}nkxTS2tbu2av zgP?>L_Ao;twOfiTXL%A8wR9I)CX_H6D|>9h@QTdFe1V~5ng$kM-!$abP*(}-T)}az zz^|coLs)W69~BB?g+lAvn()i3A8*gLD)Yp|1jehbDO4Afai^j>T-AcwuDSw4z}1Q> zhI_kaD5YX4+;Lb)*SvMOB=w-ojJt-8f#^>Hv|n?SqG$P1b!i6q(7yl_hyTb~s9l7O zDnm+y9Z`-c7{gWDF?ETHSX43AKw*ak-T;Zo()Y*{;I!1kHW7*fyS6^jfdG?NSj))tbRMODbw6p zjNS-Kq|)hVBGucg1Tng17)I!ga@j^|17bb#o&ZIC=K^m3qP}y)&qZ?cOb_+Fgx`Ys#MZg1=c%6}OiRus=X^SM*t4!|8-DU_(b%kuaaRbL z7hHO{ww9kXTDdv2>Ive6y)cebq0rV35O((I?Y{m_a(13sPR36BQu(&D<+B~vE204S zERylbV2xz#4~4cpMfldY1Ib7JB>CvOV-H!grDhzh$<)h;R+IDhPZzXkVv~>Dy*GyX+nc`f)adWlGXb zU*S69`S7jg0B2aAajY8Lk$M*47R!)S8uJzE9SFM^f6qc+f*TAy?{a&bwvqg+uiQi1 z(YS*F#Q%+$f;59Zvw|gx(YCF3niNQRX^h+cM~Cg@bpt>4XlHvL?d_^?H?Iq+;XB!5 z=gO*uHc*+7!lyxd@3z+n3#S5T91ft#0%(66z|wpG-TeWS zt#jpj{rQz#Fu!t$1@r#-0DkS15BuA&wcg*_*WWtV|MAO=Hp1ywui}`;@%#3m*r5TZ zfBG=4{i(f<^Otb^0ZzaE1g?FG@4KM(-bSc>V!`C*?J)VdU&5sG2~7Sx4^#FxVe0ya zaAw!@F!jbeFm>^ZF!k;QnEK-=Or5+4ljr{lldE2XnHwI|zw;cN`_@IMUq1%*!rM?+ z9)_9FFW}s^olt+L1ofHKQ2*^#s2_2me*gDj`ZGN9LK^DT4`4Qb1I~Ro4UL{_(0JzW z&^Y!GG+uZNn!Rs8bNw_lM_z+w>Sxe+bHvbJSgkOT@<=;T_+Zkv+dK{XMe;%4|B3*tJnqPV!W?xmH zaqsica0j7T*#Q?GnT1An2Q-c|n0xO$%ymBrbLr<`_Wq|~_VTCD9RCqC5+#_sS%M59J4xHtKFg;v^nYZTQ>;s>{nO|>*GnWc*_WCuL z*}4^`&ZB)_c^{@8{|F}C`=Hj(p|)-x)V}v1)V^{PYLC1OwL%HsUx!-H15n%bJM>op MYXABx)c&&m-wxF;sQ>@~ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198610.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198610.nc new file mode 100644 index 0000000000000000000000000000000000000000..e45169dab65c5408cfbb29e762608a3ab8a8751a GIT binary patch literal 4516 zcmcH+ZEPGz_0rhHzBB|?ZBvRsBh-&Ly4$_I^XKsco9BGkisO*8Tq=T&@$T5S^?qD; z_RcXuijhEPJ5Frp>@W#0=SW$S=bRDKCol1%w%=vykt*W|f z2<2-wpHd8=<~{cjq5D$R4YQ5t?FH8<3dhHDlIBGJV{jy{DG8cJ_T)_IyWTXtBd+O3 zBe?<_ELcqIWLi(UqbHs0VabHnk!FtW35VN)#fMqE$WW@f?e8e1%QVw{W>qd%tRTwAD)&7Hy+9#dt~K$Do`rjGV?9o2NCuS#y` zEs-_QbgDZhg;xxbw(IygYdUKS?x?;iX=JsY?oKVCIC^w@wROW~p0IgdM-#?8t@BJb zi%VgVDPl;3srq<94fr`O=PEi$`o+|kdUKBdS8W~=1{>njOzXg3TI)`?casxSjZWOc zV~rl&PAlKe2c~nx)Fu<|km=?q*cd1OOSa@WbQJm_rX^U--{|daUH0E7*IBh_mCLl? zUX0?26`VZRCxwy4I8bbd0*-h#@Q-dXRePgJ<%B_Nk zk$`SY#!|_y&aOr-c&q5HVjjZmXs|?&noK0R*w{3Kz6@nB%y*OoFxgTwBnf`%{dLl>%++typHT5vd0_I5J(TPZ;83|a`1Wo7fqx0s<33l-CDWupI zo#K);vMET@nP5H=v|Z_ALei0uHO+XDn--`183otQdm@LK(JTr!tYh58`+VG<&k3X) z6qAhb*+CfY>(8_Wl2h7ZQSKPb#KUe86_P$$2yLjNjcnoPTtgyX?lW##?i8T|ZVl>C zO$z0cdG1NUh^i8Wf`>teLdIC2RK0#Bt6D0>WE&&iwZeu)E!e3PQz4=@8^bB8a6{Q~ z&$ZbJ=m#ZQ-@{Ca)NUxUmE}oP)Y7Z7Oe#?}R`A)B>F1b(`2r)$vP>+#foaICk(NBx zxpCLCL%&9vhp^;Y0V)#33We5nbP<%-Al}YaEA!OU6o#vzD^wSh3Ad=aT-C$cu6hDP zz|(UoMtiMhDEVAI+HhD%&$@9qFO9IwOn9b&ff!6ebWn4YoNotGwdf}KFt`8|haY5Y z)Go$Glp!U?PALy57{k+!YZ($3v8ZCKfx=D-ya5uEW#E%REFZ`DlxNy5TAuD%nhk_8 z62v&>Ge-B~LCKB3l~Q4YZo$JX%pI@Z(%QWkO|>b}4cbunY|;qHVWHdVx(41KXGbk}45?@E3T`2t zWMAMCb-+joE=qWDP|}X}xYpCtg_8cKd@<~oaJ2Vy#I+9WD8h&z)uL<%(ze$vYurq1 z$~3nYqbtUe?VX+RWP4Ya62|E66EI9~l*?MF4M=oo9U+SP&N}YchQ4z+$Vsjz>vv^m zeWx4tok+il_|;p$kRkQT^ibbR_{8UWAJIou&Cg7h1Q)k6+ zSR#=Qen^q(8Mma6Vd{pJw6wtLq`uuZD1ZCWPk65LzsR&h-%H*F)$X z3!$u@E8G*z*D~RJ?KlhPz3U--U?zaQHCSEmt?uisp6k8-bg&Of&)pBDXV-E3vNkAo zXh7-t?;*aswhpB$k3i|_w-Ejv*ZzXIU%~8e&cW=v5twWJG|b)m4Vare2Xikq!~F6g zIDgL{;QaBAVE$)un7<}q{?8x6`N$!d|L$EdcLmQJI0Q@g&A`%k%CP*@7%ZzrSbDMq zOM_p5#l26%^7$Mrr+xrSubqaa_ZDF3v3p_3`8q64ya-Ew#I?s?hw?YyfJ-G4R-Zft zt3N#stKZJT>UtkkUOfbrJcG*2Z=sU?B&`1WWmtLXJt%*w8J5rf4OTDAz{nBJ0hRCn3o7qlgvy^@hRe}WxO_(kTyC9*$`9jEIr0;zJm5fOU=b?MJPVaCyHL67 zBe?X|n^1lZ#|OxB@ddc7y#wW+zXdBTZ$o+Q_fS6iA(YFLaOoEcl>0sht5*kMqT;%6r?)^7mzU@_*d+HgOU4IlxZ{LkRLZ7`@K_6X*(mNwCyXUh|dfkT7U;hcE RAHM*zya{Gc1I(To|2NppHgW&} literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198611.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198611.nc new file mode 100644 index 0000000000000000000000000000000000000000..4db38d7b6cc9385a09c03067b860c201b3566514 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198701.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198701.nc new file mode 100644 index 0000000000000000000000000000000000000000..a35b7107648ac08ea59f33112d4ff218cb1400c7 GIT binary patch literal 4516 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 O$zGUz`6(#xYx)l+t2Leg literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198702.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198702.nc new file mode 100644 index 0000000000000000000000000000000000000000..3417ed85ee0af6875b2f86b5e1abdff7ed1ca9f3 GIT binary patch literal 4516 zcmcH+TWlOxb(1)Wvu+Yp1zL!Nu25-gv^%r2yM8SX**#9;q;VW&jSHf%xt_W9PCJif z?(A+%h2(-N?>cVcM|NAGLP>c@NEG<0>QEq*$44P*e~=LH5fC7OfVP05MuNaOGrP{( z*olQ;w0F z`IODeiXqg3=RP8IU#hxcb`iY}aGjEHd^{&K}-)AWwGww1Ab zksU8uOzUAbD8G=DlJX)6$tlDwFOfatVq=?)w<0lubCx9WgCyoLfZ^BLUr* zjHQyjJ-w}5@KVuL#WaM;(O`*wHJM2CvWaO1gIP*o_;gSbz+_7af##I&x=xM`4yq>) zXNQhu)ssOw;1&y$tf_}t7BEK&k4{7)JCT6ZNYHftK0411pY?@fAm7u1GJ)?Eb&?{R z9b@CE2|CxVyS9yVDAD4%Z9f>x3nrS!yfw$9;7k_7yzUFTAUy6DJ;6E;pGJyZ(K45; zl}%Ba&J^>JpzTT@6OxXMtZBwe+_X65&nUQd!4rARjAlu&Q5^#>KIr52LS7){pqONZ z&pKgra46dqNKR>sMY&@z6A!y3R7m=0A+({6HnN4EcMXYrxzD&|xn)8J+*;J3niR?> z3*3`}5mhA$MGvD6g^aO4snzK1qL$t&%cK%z6GfkuO+U{Z%oiA1mStk`4NOCBjkFiA&P}?W z9r`u0a|BDS6`&$ftWaoOM;AeP4dU&wMrAIS%NVbQu25Z2rreV1a#as&yXpxH0Z-4X z81BuQp%n6kXv<+CJ?qxtf;7T1Gv%2E24XM?(Lv2o^1dBN)vlZ5!{7o?9Nx&#EkqD7Bf^`)7&?JojRz6PvW*}gYYFl}hg;JU-PNh}^(Ep+yr)aSMu%bi zN~y5pZqdUn%$;o9(&oJwPjxBLHQG@4tkVd|VWHdTx(42#WJfJ`0;y;53T_~sWDjtO zI$)#(7bUznC~0>(uJ!l#qNM*RUkv*t9O?eXE z=#8;tx~C_eO!xLGVT|rL38VBzxoi)$0f}y{J48|6xr!TJ(|3*rImz|p>Rs7d-|2>Z zC(>^teyc5D$dGzvdZ_Ou{9eo_j=?=6NBtCG8gi~X7tp!Go}ER<43cky#$AS(@`R8% z!KIIDZTzg+$jy;$A0bZI3*(rHME3m(VQZh>?Cb9&XX}}bWNgK+mv3)VKF9U^JPLr% z8W}$tu91ubk;wjs3E%j3Ao<9jBp-cuY-Y#i{`I`yZSZNyu&Cg7h1Qoy#1k6+SR#=L zen^q(8Mm(vKnBYnzfvW3EKK17X+V53KejxWP1X9(Sf_8_B=@$^qJr z#vKYF{_nvQq?`1a6)sVXHf?>6MS+x)=9CkBbU1#_F!5uLb~g9X-u4pra)yvPzLP!f z*<7{AZYncU1T<*xR(p*oeme=P$tC2oyOGV1Ok~e$8K+r@ZzEgddk0o&EX+CDvL1)F zB{BAYnGp00^vs0tNCTd_7S6{T^M_eDKXWaF`nN(jITJ$jR0u5=Lg$ST7OsWR8xEmt zoGacN%&%m_`IQqaoDWBWD*;+qe`!q@%`%O8IQmd{^?2auk^=_zFKM3`=+M#|^gQvEqp#J+aQ2+e*p!VvAp!NX` zE`IhCP&XH#{?0>C|M8asU2D%h3HAH_1aZeizK2 zS%GsMqfqHM1haoxfVuKDcygD3>b@zc9{d+n5`!@N{2z(NCZh%Sd=h3a55Vm8rGEq3 C0W!V- literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198703.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198703.nc new file mode 100644 index 0000000000000000000000000000000000000000..e8b326779fcc85bb4ab0998e974925925dbb1b4d GIT binary patch literal 4516 zcmcH+TWlOxb<;Sty>9AC1X6z5%R`L~yED7qwb#3qh|RH6CynhWYtl9Zmg|{o?~r+{ z=FYBT3RNnoyms996>olus8kR_YDJ28KSWa0QV^A>5D!&I%@0WYC509eAaKsiti3jN z5+oSy-81)|d(Zoxa|Q+u?1)4nG@>|m;%GG;d(!aAy1)rO_uyzTxmRCm!FiKsSRp!c z7tY&o?1X`X2qJgjcnD0x;+|jw+~e$^?Fn~+Yl2mTD-FkHNu@_gv5unWm2#@8Il53j zWAQ0P7i!6MJ}op)s+w+e61_HX?252GJSS;R^zVcN@uZTVX{5PmNY8Pn=^b%R-y18I z*`cz@l07V$&2?vUsRZjvB)fCW)?8t8OR)GTi&q#b6{{=8;`*jJ;vGA-W($*JdVdy*`=dNj0rXky30ey1m+(?l4zayriKCV{WqNR4&+`?mx z9^FnW&no$*v&GaV6W%7%%~7y1PX3o{$#du^^g}Gg>h4BoZ|kxDMz`M3pdpiK!QB{z z6D!*#uALNm0mDGCY>GGH*}y-#$x`WDx=zj3PRj6pQD|*LYwP8klC59e3PZ8{u)RGZ zsaz`4pefgNE!LGuDHvHB_1lJA{a&#oOQv&)R2Yc~ibU>t7^jp?I4c}5O!F8w%OXYs zIx!hbb!B=oja=|j(N)DXgvn87iLBa{NMzXfG=u&;B`|#2C<$P)rG!9p%6FY3qy7Er z$Y6fpU|t>Z(*ZYGkYo)l$g+SrQn+*?64`|W%rHUI`47^0Hh9VtwvK#{3d#hYTh>U5 ze141_OO4aH7R|9Nq(g}o&+YihSWz%hKjv;YCIx4*9OQLRSS8_duj~reF?bXyc1EYT zWQ}af(y%9)hXgH0dYF(jWMob=Ug3txDSt-6u}ZEeVrDcdf{khzc=3J@x0i|nDf`7F zFFe)(qx}QyrQE^QKlS^OahwUtOV=N~Nol5$}3o!=mQzR4St+(Y|8M8%*K3yp=Fu|7GK{qmFg4(XS0z<&n ziYkVCy=Ew-Vkz2iSV-4gKU|V}P-Z4wL&re$Cjr{8IZDy9e5qPAgM8>;0E)wFc?-3R zu`y*>iLs-~BMQdwwC$L>#6>Ks7;B)gBLZ)L#ANCFwz{sq_b1pxrZbMz^LPcfkWR9X za)~-%r1%#lxHu?jcRHTTW-}=1f65obehEi9+Z|7KClg8#@yC);b{o>B*DR~wOl->fcs{z`9N-M=Gmaet?@2$7aJOYhDvgB-^$vvHh~Kl;m*56NFSy*Eq-`Ys9T)e| zb~Nrl0P(*SQ;=rRXI8L8F0qNHdigDSR5V_jY@YD1JK$v(6>p(;Q|qBok>}E8{c^@J(cEd~d@ljfJ^DTQ=j+ zwj@UTmkB{nU(e|P9th!)%fb9uI6uLH`KK-iP`ePoiPHfzjs(zT0kp3Kuyi?q?oa?_ zc&>b}Kfjm{<`)mMVBU8*fDfGZVP74F>wV$AzVKY%l?x@>2-V|>B`Swap8VgX`6tR_rDD*d#}Sv?+;<6{Y6;*!fsgl=EJaZ zYCo(Djlt@-2I1UU3(kM&O*p^vB-CE+f!Z67!ujT3LhTPvLhbrjq4t+vsQui9+WpsH z^_iF8+!IHj_O*{d?fC0(zU2eHuC;-GLhV8`)c*8tsJ&|#YJ(co#`Z(4eLt-J_IX(S z{J&uJkB>pE@;+F7^}DcIoq^TFv#{{1S72c|3k#hyaPImWu=?i|EM#?99MWL1?*Ujm za03=Q6j&@Df~5!d!1A+4Vd>-$EWLgfmQH^I&Rl&Os_(oC)k`nJ%=53U+kT`Qs@GnI z*`Iy~=3co9^TQQ5^WNj=lY?k~59U5M1W!lbgxOXdX7}Ad-~9q+Uf4x6wi&-!Uw`2# Nn0aXmX8!u|e*@lPFo6I7 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198704.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198704.nc new file mode 100644 index 0000000000000000000000000000000000000000..1350ac5523ef18ad442d0be883fde4baf32563db GIT binary patch literal 4516 zcmcH+TWlOxb=^3`*(5bmLkg*iZqw4(((cSY{aBRL?r|QDVmoAwL)D_q-I;6er1MzK zon6PR1VJFyFC^Qk*Al9zRLVmosURdDs34^jsUN5nm7ql_4^s)mS4k0~jSzx!W_CAg zV<$m^(cV3C@45H9?>T2+;BZSQ6rvHvu?5F=)3GNEucQl{;PX)&Z6^2XOKmuB^$e?q z4(-JG4jfxxU=Ts*E*wX|G%W53Ho!g325nEc<6IN0EL>?gHj67=N|JRHJg=BhRn5_b z@|49V6nxb=7@LfNW&QZhP4Z2 zrkJ7}5w;Xo-bAYU1`DnjCu2qEkEsR65~^)+yOhUcs!Zr;5@X!Z(7ukX8n*OQ$*rO( zaypt$b@EcU>N%1|F5cVI9ZM;;7T#QKO?Q|pEMC;mgb_F1b+(5^ zr7+195hTJ?ZM>xV{A`DF6`dr#ax$;pn&bafn^Qt(Lwt(G)A-B8dornBa$>UCi5qyV z*`u3jxMZEqM+dg?@;nSl!*|>`guP-{{s;GiZ&;l;CcJ z!ikmaBG;Z2dJe-tv22Pr;@QMMyv|aoOsY=J)}EBL`$eI(39XHnZ%MX(b;}IJ^27Gd zh$J(~?j}vSu4|D*cT&N~TC3kCfPPJ}{Rk$_oC&~*MGI?oQB^@Ob>-;;tef#;Sq zk|LWOWn;-aoomw^%R)MoXz^UjtD^ad9B%yt7P3llh z3gnYT?n=RksuG5hi&2L{MwqWuqkbi7S}Ns4CnMhV!iGi7->H<70ir(3;}li6sqDDx zSZo*uKnXYYFhe4>n~H2?c@h=1bQ>%aN|@zK9-B100<$q+U}%}9fyLK14Y@VcR>V3t z?zmRq*U;7>EV-tS3Wc#kp>=Id_~q4)x2J2Bd2(_R<5kxbstd}5Q&t_WYC&yRU4bFs zY6TU;yQu1N zVHm$sD(sk3a&ZfD#%s5Q(1Q!P-O{b#q-rjDM^grc`V84VT)tipS)A5)RMEqDh%WU^(-Q7wMqg#eygx)BZZKpOMmX4+}rwCJ%bKNjd}}mz>SDqb zLgoaQ9IoUj+haV`|P`!@)i`}BHWe>*vw&uk=PGk(2%yXx}Uj_Var z0DRWS_*k$;GWLZ+?N1QC_U%COkv~a3`tI1wj`jWPd4E#pQ<7m(!S9NAPb?OV#qq~t zv5fyiid4_Ii6xIyStMR|^@2*~l&(LqR{zhOkUY zy6Kx-M?4?C*&N^u>obm)fjz0G5$>`KNu@DYrrv?DYw^1qeF<(b^qkA>3ED>T-*t62 zZAaq{1Q7qXV+zs?`pgQJC`RkHzSpEc%1L9w_CGpoFQ*&$u}3@W`)F@lnY%e%NDbe~ z9`|mpT4)=U87X`kwD(SXjWB*Y3A4^6;Iplk&5%rJd!vlgEWo#tt?_*aR%tBEIoh%w zhqfg#+Fu|9J$+s00(iIvPpk&>vD*9z7R*nt22lHc0LRY-&^Qr5lLgSe9>C&i0NtYj zl(loEkNfkh*f&%n&DpM%+t zU4vQWFED%XPcWN*9Om}zgSj87VeVTgn0vb&=35dlHxq){*)PD%zjnal z`*B#DKLF?ZFTm1`Ff8qT85S>n2n(m5fu(QcVd=sHu=L`CuypY_EUml)OLzYr79VMa z^Ly`yr4Ju~K=uBe zusnJS&i`y5RG)tns*kt9%8^xH*Xn!MU}gUSSUG+lRDW^-sz2TX)yWB{-t%c#e&cyq z{_N*&_QJx!gRqeNEiByg3M{XF5vrH}jPt+3VyFrW&n95u zE4yJ~@awR!@+(+8^$wi>)MZ$F_bFJqZypv`z6tYM8fIR<0<+&n`(AjxVf*RJkHXAD z6EJh_^Dz6?gD@{%gSo;FVLI|1m>&Kv%wBy2z7~BOW*&YQW}@xr!_VOP_ld^s$HhUY L{B#Rc{?Yeuq^>b_ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198705.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198705.nc new file mode 100644 index 0000000000000000000000000000000000000000..69f03bc768c505c8b6fbf5ec054222bf8aea73e7 GIT binary patch literal 4516 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 PZ(W9`=O2Zq>o@)lju0~7 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198707.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198707.nc new file mode 100644 index 0000000000000000000000000000000000000000..6cdf8a3224c910d6c179f04274ec622f1144c4f3 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198708.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198708.nc new file mode 100644 index 0000000000000000000000000000000000000000..26eed7ee00fd4318221c94e0e3fdbc50a2ff75a8 GIT binary patch literal 4516 zcmcH+ZEPGz^_)13b7>kRss^PZ9R#JZxZAzGvwilVB0JAXlPI=BE;uwqT*kX&-;(_} zcJ|J3Dj>h=v)d$>k2`}JJ|s%iLMdq@kl+Udq5>+ke?S6>N~B5!LV%PCC~82I_jdO# zXJaQpg4NBvoq03wd)|8s!#g@+u^5dwj@3BUS*|l>`ej4l1fO@|=(4!qT$JrS}}xL^4w1e-IuCvnB7EgJ-ALqI6j_}G$;CZ!H%S+q-YvjTQsHbdNcHnxX$nH zFP7QvvcHZJ|0gcghoZOqFQ^O=3=(I@;HDRMU~ZD!E;< zM8QDQsqTanUL{1@uHzT2nSw32qx!C-QP2kZv#EZ?(c>$tts5@$gw0DjnlRyMeMkFQ zQVNSqkw79$)hEkpz|V0xSJ6q*uVg0FTXX!sYI8ssY=qA+trveetv}Z@Ku*lGJ8>D0 zwR?0Wt$e!_n9dQ?OH6o&OqWK%;yC$VvL(-S2}z%#p&Q6S3GDBw$4en$CZK&a>@Dec>3$cb}k4;Cp4A zq{!#@v+>LXo$JzF+eSK+Xz^UfmHkD*MDv)p=$I6o$#R(2ePNe`$NjP=*w*d)kYaay znoHKsrYucoiup*;cBPLANk>N34C57UTAcD{99+BPi6Ul3vm)4-j)9jP@^O2qD3Eec zO!C5KTVZTyINu#ePHBt9xnnRB54#mqNcw0Yw4shRvV~uC4T*fY&$wl|(}WJVwW&ij zDU?r^xF-c8s!ANn9!4DsnP7oZt@@RYv{WkTZbrPDg$;{Zuv4jILPT>mfm2lBrm~Zs zYqL=p1|{Cw!%T_PZYr{zsTh3yr110*KPz$d%0eC*-Vo@u*idAevhwkwR0 zAjUDFF}fEINwza+A%cJz5#AKW&>r+^GKfHykAi%ETaXVq+?tW-uB}>se=3Q@`??iu zbQs33lnUGJmOb3U+{x&cHt)rFrdx?G(uTrkiAG2c3*B!8!(?Z2KS5t^;3k2L%y-#oU^|zC={mgPQw&Rz|x1lMY<9dD( z1;A&KjE{zEB;#N#w($_*qi+Y2kNipU(Ras6c5Lon%6p5!XC%X-g5MQde=3zsY4~HQ zR4(`-MXG1q!ji|SEE2D-rmygwWWsNmjpq@r##RMEAP4Ph_c49jEN7RkBVj+zMzBmt zy6G!iM?4?D*&N^u>obmy;rn_XL%6{*6>Pv8gX%sx}Owl%yf7RuC zX*(KsIE47W4pWeB(q~q}H-$Y*Vo&5%rNU8{`KEW~$`t?_+5R%tBE1=_L{ zhqfg#Ha<-VdItNBhj2#(_g)R>62Cn@J z$DbnHb(p>M9L#=u6U@GF2G@QAv)|kT)n9i&^_>Bj+x!a5rS6A0_x&*ULI=zr9EJIp ze-HEjdaCkzYam`CV}CEe7?M zW&>Rt+y4QLFPwyh`+o)tJN^m_-99WNF2Ta8YtXo~1{&EsG>o4>z{!7N8b(gzkd!EHh%*aJ~ocLvQWQp0M4EN5}ez11kV1T3THlpyf1Ep#ydx$ ze(j4;&;JO{9sVVpsxCmSfHJ+Y8Rp;n>6YzJJ@hb~xO5RtY&YTLrmT(w!QK@n16j5=1=|*=AQT?R4cDR^+WeS_52m6_NJkldj_fp*FyF1 ZA*dE#hU$^KVD8{mm^<zX5iwH=6(e literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198709.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198709.nc new file mode 100644 index 0000000000000000000000000000000000000000..ae48057db0ef574116ca25c7d37db0e80ca7db88 GIT binary patch literal 4516 zcmcH+ZHya7)t8Uv;v@t_)wCjkp#+*!>|L+z`>;`~JKiNtLM|7@>7}$mW^Q-xyv=@? zowYCS2f80E@m-Ug)0};3TD2-_1yTZ{sH%X16a$41L_CQZL$2%O;aQ5@YC_uEU|IA7?#`z{3Yhidlg4h}y_kv~G+!t(^`<(4}eBn)SU9hU~r0F_LQ~Hz)+g0-Ya$Z$+ z*AU9XHlI=qp_V=OA))(H)eWhU$u;eI9Rv9XlXe-8&#?TWno|qtGCFqZ-CD#_JV{@l6j>lA)Hqa#IgsG!_T}L$?>8q04 zWlIzdG@a^>OW{>Rr0qI>$*L7?!5!6iC5@t%8|Y8v6i1J*uC{Kt%o8>*>uAD+r}dp2 zU`Z(~GDQN3Fjb$Zr~yC6EEFWHjk&{61zM2@xHjm}=xWB-kA1Cc=^CN;sm z1cei;IAyM%5JnNhK(QT)H{#jBKfcUT*?hK5&CyTD=zdXXtwL+%SroTf|ZWwwZ-Jek~vX<(%3c2>ZVj9!3`BWx~#1us$_kE00$|jr@_nMY9#;uA- zkbrJNCNk;%zWz=wc&X^BVj9BaXs}dHO{Y@*Y`n%`s6Yt}pG}kmFxgT)37XFDr1NagNnbby@;xFb6Zl?5 zCn*YrqiifQPUpIH*S3)kC0ab!_0yvz!9@F*x8#@%iNQK5mhA)6%V5hg-ozOsm1!0jL0nLaEp6Y6u}qH=U!o0#&oYgW92UBju4~}^33jjLjwAH~UcnWl zlk5vzq7E1-!9@u#4ocdaO=`JZKT7(a@+Gie!jaAOCbeEIrGybbrp4J!NSj@>tZ_ZD zDbw6ojQ#{mXZ!k+>1=<$62|D-LoiBjl*=|!8<6VNdP5ZTor}1AOZv{yASbz=T)Znc z*LS*M---0s5x>P2Fl0!*GCkDy5`GKj6UX45QKWu~Fp-?g&INRCuxEY6F@xkA(b#N= zNlyq_6kPhawvL}PqudHW5q9?J?Y{m-a(13sNybk6a{0Ej<#Sxm zFQEYVERpd`;Tp*}7>jK^PWb5Cf#f59l6>^tv6>y*`F3T+^jN~SdY zu~aG_{E#BmGj3tY<5U)jS9jZ2_)aq6x6IaO5w68n1wkMO?d$Y0ecP;Lmt7-aKh8$5 zOi8-wt6WDsAHUWd;0)_Cj;`U`vX3C#Vw;jmW3fuT17VlqZ(Zz5aD!1>Hj;nM zyr6%8SE zd?$NsTV1u-1}ZaB1T<*x&Gs5`{B{ynn@h-NLzK;sOl;#~8K+r@Uq`ma_f1%(u`m~D z%W@prmc-clA|dD*?3)hZ-UuGP63)k>`EeG`zj7sn`gcP(F&#qla0o3HLg#7-%U43^ z?F*rd&Q)#?=9dfM{PIB-&IhlA@N?4v9BjjAeK6WL7@Zru`dYvUPF?ynj$d{TiX9qo z>f76K{p|>c`(CcWsqa-0{sh;4h4@FI{yK;HpH!%ScnW5=J^?fOpJC?J?JzsG8)ko2 zfhS`EW}mqTv-7XO><2ji)Z;L_@DG@AE`8jBZq=!u&fYp!wF0K-X65 zE@=HY2MgIdVWAht_E%sb^*$`@H~_8RJq|7YPiQsXfz}&u!onvuL+e|wLF?|n!u-y+ zp?Ui>G*cI$_4-a&ICc`6nTyce{T-M;+XeH4%ehaM&&p`8qm!O$` z5ax|jFt>j<%)R&kG=6acW{YxxdzUZJ_~1dDsXn-RhaAhIh^@S9!|SY!;^n_ z3(lOr3Uh_CXxH~(_N7N*_JL<%rgbwT~M64XCG0rfrmp#EhG T>ee@4CS}3Q9e2RYj_v;jLEtV2 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198710.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198710.nc new file mode 100644 index 0000000000000000000000000000000000000000..bb0abfda43cbd65d2bc77f98da84153ae38c0690 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198712.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198712.nc new file mode 100644 index 0000000000000000000000000000000000000000..15d907deec341f54c8e971b70c5ca1534e5f03b4 GIT binary patch literal 4516 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 bSDO%@Pb(pQW*5RgLG|o@jP=Vf|3Kp3s*yIo literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198801.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198801.nc new file mode 100644 index 0000000000000000000000000000000000000000..199cc711b929a3e53801059190b338a39447a934 GIT binary patch literal 4516 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 QRco)o)Q?_-spZ}O0VUNm^#A|> literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198802.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198802.nc new file mode 100644 index 0000000000000000000000000000000000000000..f2d9893e8b7708683a43a25a891531c5590c1f28 GIT binary patch literal 4516 zcmcH+ZEPGzb(1)aeQ6R9rJ<=PQxu4;-0j|{KaLdHeNLK$*bX@>32CEaygT+S*^lea z-Z^d+V;U~nG-Wi5`!z%p&_3pU7o&h|OJ@W#0=SXp?|bRCvZyVVryEckvgt7*Dx z2=ytOPpXE{ik|x|q5D$P4YP~rZ3NdT3&+QElIBGJ9@rC0sBxMq8w#fMU2lrs5!d#M z(L#ysFIg@f?e8Y?V#Vw{W>r9Y+>Tw7?4&7IO19@AvfK$Do`rjGV?9nEy4uSsqf zEs;0SbecORg;x%dw(Ix>YbtLG?r6R%Y2*`qy}j|I>gbWx)z%G{dBWyJ9ZeYZ65S_z zSxgFxOc6yQOw-3pTENe7IoHrh(l4jRwA*w1ziM+t7;K17u|x)c*+g$P6DKF8TAjFp z$67tQnpVDD3{2;U$z>+IOQy@CU}>EEFWHjk&{61zXp%MDjm}=xWB-kAbtY4Sdr=A} zR&t75KOu}fhJk836mP_{g@0t3rPA4SZ__;|Wc_|oXstqP<>lLwZCu?lL$QLey*nbQ zY^tX&8)?c7LysnVQYuE)QvFsT*SJ?K!4m0gJe5uN5xF=;BKLiaQ_3cs<@cDDb(mWv z5hVfLsEnqPJ>5O6T<}uSRmC)f$~i6+$cMo8l!XVx@+4=hY~HGTXS`^Aed+z^OhWwf-_kP^SUqWqVTw1@&xPLeF!Ob zMJBmqt!zrtbS9XO1Z`LPn2>a2WKA(%=BC9de@4Kyi=HT8W;Dx!jp!J7u>l{q7YhO@ z2gM{OeAWpg1B1D)Kypf3EW#awnRwVOqe9Y03!x2lw2>|Rf@?_R%YDWz%bg^2z^z3c zs!5@IvdBFt7*SOtQ1US9P{=3?lxo(mWL-cdz z?zuJ_hCxsx%{|PNNbQy)D_NdIMJ>H1%cL4%VXNsGS(M3>RgLr$oUYRE+Cox_PU8TC9PPk>w<(eMWcFhwQ z0-j#bFx(q8LoF7Hk(R?kde*JOMQMa(X2LTK48&j(qJx^F7JNI9s$Dn9hrtD)IJ}v& zQM)J`Rfp6lJER^_F@~oc*D@q7Vo}9d1C<>VcmpIR%fKi5v3wlhlb&h2XnDG5S+*~X zks!t~p)tA_J0#m1v=BkS3<+-nW9R^SH5No5%hiK?v?a&~9BxfXbXR8r>u(H+cXz4S z=rD|5DOI-LEqSXE=!vpqy1P4;O!xGtVT`UDh7o$BT-HHtKs=MkgedAeo4CD8`p%IcC%K+%-j%!S zJKeDFMEY&Suh{~I45?S9hx%T^Z^C@y7~C`R)K3wnF6Xjy0i8SSSzmI@Ao7}y#!s5{+^noQN}RA4#xboZo39~k?b925{hj1&J+qRGt@!2gZEDEpxSn4? z0q|KO<2S-JlCfV=wmd=j`nLngNB$)F=(}SzJ2v(&=lzhurzFFog5MR1-grC~PvDQm zj1W+l6H4u$87u89r1kRR&#(etj{>s4Bnr98sR3}lvEn?W$GOWyA*$4voFC7rjhr!GeO%({#Y_AQeK)9PVmv;_<6&`k3HJi*hhQY%iPNwLhATV z_Sm|*YRU#GGg1UJXz$(j8WH?<5>|st$Y(=6n;{vcqglpj7UJ8;*7&{=t27qoJZ)Ky zL)(%VTP_lUp8oFX5bmkNgV)3P;rjdu7S6wUJ%svCLpVMiLi1no(^Dt1J>93>-+la=lb7$E!YUv?|d7oA`R8iYf!Cp zLiN;>6gxDa`al(`&T*)26Hwjpcc>1(4Ao zyKchbD@mwrejOIC{tFhL{SeOo`5$oRI)}5H?uRqmK7#X?6j&^L0B3f-31{by!PyrO zPH%#<<^Y_{?SuIa1J3PGVgA_{Vg8*dnBVmh%pKhhGjBf*Gu02F^0TYAY#)CWX4XVt z=JE!Zef1j5#dpH&U$#MYYY8fEpMlxZoABJ)r(os_mtlsTg6g4zP`UI7RDSZSPmW8w TTGoDt`}(2s;%}hxw~PM)SNtum literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198803.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198803.nc new file mode 100644 index 0000000000000000000000000000000000000000..a1f6aba8e3c0db429a4b39da4fcccfe478ce71ec GIT binary patch literal 4516 zcmcH+ZEPGzb<-roIp+hEKuQJ8sE{_Mce}TDK7Sm7+Idczq_G|4tfWB8WxPA*Te=^o zoxOA1NF)+%eg0?@+uXS-NT^i>f2dj{K=cny0VzVF6%wFUDngd{DoBM?0-?f>^4{*< z`zD+=k}33PVn4{a05IiX-@P%07nwKnxv_+t!T->^QY(?aa&#< zE0)>uvd#1!ruSzv{n>PirILCk%Ur`3E_Vb=jIu<9p;GatVk}{K>GX1OxZBzH=- z$eU<7%^R1(uS7`4bAzHim3IVpwZM}!@_K(?Uox$_Mr>oX4bx-3aCpf;6UKeL=Ug94 zNMVyH;z)#PMxm^Q{9KQ74V@%|N_t$oF~|R_HfMy%hWQlJGx*Euec4QsoS1HR;yNB{ z_vl7i1x_h6ohv5SnD7>vu8o4#aq_=pOP)hVp&#OD)^s;Idqa=?H@Y>LObPDCDV$i@ zEpg)!VdgOmRL7-wBc5&iV{0tco$c;xx#tntxL*`n8_-&R`G#bhSGU4YtT1eEjYvA1 z?rq3MnsU=L;;G)WijlQizYWMW?-kRT-knXRv)%nfE=iHdg8<`{vI%GTBbIHS=5|@c zNkA_yTG)hCq$A_ApB#wd;zkXL%A8we(voQ)-NjmjgCw1x4m!zQEA3Z3~NUXc}^>(ow=X zSMYo%@~g6S7)!1lqLdg`D73C?h_Jkd@pisZnI|VFFLd@tvq zc5ybQ4y$o?N{t{d zVT@x!V{|X>k?d&LLWBV`Ec^+Kp%duUL>PfA*9h{lwjdvLxjiM(T?cinzX>GX)1_jg z!!UlORM~N_?Bf>Z6&km+c`r_3_->$9@S%cYh|KXY`~RMf_?(J2h7~MPqqx43(Y&*39$&8+fP}Fy}a7S15ougq+@_gC4E4S8n zdQsnr^tTYdRtp$0q+XdG>U#;l6Z45{a^K8TKSh{^oNLa7bZ)X|YuUBJ(>a|`}AgCe=|AT&#Wh7JASQvJDc*ko*xuZ z0DM--__=6}WE@bG-47AI@$EqJkv~a3`tI1sj?MjRdEaUBDao*?;CF@ImrN#-I{sKP znGJtPk?I+@vE*?oi^Qv==_`CEneba?_tz0_##RMECl!%;uZhOtaZ zy6GESM?4?9-W=cz>obl`Lm%lrk8r1BNh*!`3iS?zU5(${>Pv8gW#)bEPS7@z|F$c8 zX*(KsD1!LE9aE5D(Pvh)L^0a5^*);dDKD)FH~i>ugS=_s#~$r$?xVdO74GLvAq{*d zd+gg-HDw!>87V>m`_e=Xt1h9Dr(94628J0o6_)rmuEFb^jd9y!{85-BE+t&prjS z_dNl#(?5sVw@<)a^)ZUxb;D<)M1?cQF0JE~2sVc;Tan`wQ;N N!}Ry>fa#U;zX3BXD|P?? literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198804.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198804.nc new file mode 100644 index 0000000000000000000000000000000000000000..98fc7e4fce903e07a7ad17bccea3246483071636 GIT binary patch literal 4516 zcmcH+ZEPGz_1q+leMuUS3MnAUghXu&cf0rHuLB{w&v8B!e<)`XB2^sY-LY@e{Wx~^ z?qV86sZ{Cga}f5WJ`<@RA+O+_RMYJ`9ap;ie$N~=o1d%Jg+ zv$2y1!RqE_XWqQ;H}AcL!J)QLC`2QSV;znT)3K)vub>ND;PW0F?I!mcTkW`B?-^Dd z9NLWQO*q!U;69u}ci`9qreSeUutDx|w$Jv2JIOV{io%tKW3#x@tt8p5oag1!s;W7< zP`+UClA;SW?>a|?=1Eo4jZUJs2^_m9Y!C4yt%?4fFcgg|F5zbd*Jl43&yB6k}0+#Twy`9cdcFKd^kG z$P`l)Bf^%#nlO>7zRHFxCdpV4`eSO&v4m<{+%8NYnko}In#7niG_^Sc zqEeV-iU<;6sy10reSWsXxr$DbUNJeL-kjtARhz>?XTyA&#k=sAj`ya!V&ueRs}oo8 zSgS|Z(#o^)zUgdHT4BQ5WV$j6mdDBek}Y`-9ff{~q*%k<=3tlR^s+fi_IqEFdrzT>t9yT$}U?4*Y44+Mu1TfiBLZCI}yUvl( zfdO@7cV=*3Mji3f0XJEYWDPCIvVb{KxP%c3Z9oEMJwX%xPQquqk9oq@k?%o4nZR=k z8cC7KjI%?@3BqgF9LqvFlxPvJ?c#V&FwsDBm!V0)nJff(-4j+`xZEqag6-OU5Gi(s zOI)&6HU(+eQ_MqxmLok(NE$LSrx`DD!{n4d!{AtXSL84=8b!fIH4MDyfQQHPIf0b@ zVv-Ra+XbTogPBfWa!Ok)%x#?+i0l+mA?cxo(1se?$P!-8(IxWb9^PQ1TIm98_G_) zj>Se`5R`E93^OEByP?QxmM2kBOSj1~p@i8)!DA)E%P|}C1%{Ss8d!XN(~w(3?Rl(o zla6ZzehqCH#*%CLpimeq6k6BTgkN6$czd{BnMHty)q>itx&lMM z)p9C^d!uG3`CLBSf-IzK-ayVvJt#9%uAyTf`ilVU*BmA1S-w>5nn6DFF95~iI~fbL zi?DHJSc$NM%3%d#c-nSMUE(GdRg5)I*qFc@ATe3`KG~1u;{Y$YhUK8;>7u3Cz92^Y z7{`Rh=w93}*X#J;Nqa9U8!iiudfFs{ZIKK*e~Ho^>sz#UGbO_MEs$6nB9i7sitN1n~6=C z=GJ2LL|7u#-5pJ&dU})~M%RtND7{fG>!3Cu))nsxK-70OVSAVLouhtEa$MQGE4SBo zIziuw^w$%=W(ycFq+XdG>U#;k1@nomb63w&KShwboGb8rI=48ppaJdbqcqA2aH?In?$U;)K00j+3F#UBAb z-EBA4#G_PQJDG21k8ML z5X#SQgz^tRPq9M-%9nOP`Ij1$Ul@b(<^52;em~6IRf6){&qMiXT>s|FFniI1*;n3z zO86X9Hopdy-9LlM!bf3lcNFHH`W>A5;0c(!vIFK$T!XobkyZ?r@8uNA14=ApW0CsgBG;!(vcUTcKz#6d;2WZ{`Mr)&U_aZ z|NJ;S_Ue6b`r|6p&b4)1`)>%*}4i`QYX_!`U~nSuEyKMV6`kVl6^ysyB#H4Y2gx550M`eFX1 zMVNo_UYIW&hlS%kaC+NzSa|N&P+j*ZEPV4hICcC@sFYrSxorg~fBRQW+s{043TC@r zg4t*P0hKSEhEwc&FgNx-nCY-#=F=&t{PY3%;-{{|tokm@MjwHhPs}3z6{4~FIQw2G WKXVbvXSYK6J8kIGDJZ}Cjei43JvV>= literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198805.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198805.nc new file mode 100644 index 0000000000000000000000000000000000000000..31ac9c2480b6b76cb9caa382c7a43484c5ec5078 GIT binary patch literal 4516 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 SUx(_&ZE&*puW<6d@qYsW7Bb)f literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198806.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198806.nc new file mode 100644 index 0000000000000000000000000000000000000000..ca06142f7d7dcadd3a547811e2f72ea2c15ec44e GIT binary patch literal 4516 zcmcH+TWlOxbyGXUS?8s;5RfR`R8_F6-I;yZYkT>?<~VK=VmrzP_d%rPdgj_Y?L3yb zv+I~p$wi3G+9C1U@jASOf=V9{pgaTt)GAWpqd@vWq)3RWvH%f85e-5r5CP(xncdCW z*h!FJw0FMQC>mE{G!1RZ8PapyX?jOo>kp3R z3hZFPWbqV>_oci0(#Zr%#Nyp)W^1mnxg}V1ltqgSm5S6AV^Mw09Py4FX&A%buzI1$ z6jKxN%1|Hs06U8%rs+7T#EGO?Q|pES}fUgb_EMI^N5o zQkZ0l2ohncHc?Q0ezwE8icXSVF*&Z@n&bafn}>zYhWRv$cjGS|?@f2d$%)BkC$8hM zW{+;9m1pIB)7fHbjS26N>Dnk*9Vh=ww&Xc<6#5~OVs&?;vp4kEf1_KhX3!dwX~EqH zg%c~-d9FPn^el#fV%ZdL#IuQic#WmH(p|j`_dFqM_lrVn16u1Z-;!+o>J}M_<%jK^ z5lN<#Jx!W&UDqOso}_}2wOYRo$kp!^i?euFI+jd#^%1!kMI!e+j8n=coMnd$(;VYw zK}1MECn6)sL{F-xnG0Sjx~iClFgfZh)~6<7u^u))&0ruy2@IchN&=W{DIw6D@?Gc1 z=)izFvM)1uAft}>>42LoNV0|&WLdx*DO@@c3T;LLW-UR}`3LAc+jra(wvK#{2+9PW zThK^~Oy(#XOODgIHqEgtq(g}o&ux17XihLuKjyAFCIx4*5ae}FSb5=cuiy&SvF`{{ z>|q+w4o4+&b1^e`c5$jF>#yvPlcQ~nHtW940u!^~(D1sl~c@S+1AZqMfg zQud2UMtH0PMh6BnoxbFhwpf_kIy3OFQ$&TNhZaH`YG@-%csWOx$d`MJo2D~GXrEh? zI#iPa`DC8EQZS;bgrVSK)S-|O<}1~xUx}KQN-@#Nh1!dAHst#ARpth^7 zzz}e?oQmOIuNg`{mk&1`7Sc6u9?nZWC^M6;p<^KWlK}1493|&jzEo|RK|b^^0L9_o zGZtzWVMmo=CBlv<4=WhM)3#&k5*M+kVyuC}4hy^i5|gFxlY>}34)H11upG2JU9>bi z5X6Wd0d{D2u2?j*+0A@pk0k3g2G1^LmYARn-~IW5s$9dWF`Q6!$~ zRIt%u7{5{~?4VO{aSL-MYPYn0FUFFcN_dqv6h3P-LULH>*1N90_b1pxrZbMzGk68p zkxsG?a)~-%r1%#lxHu?jcULst*VluR{-=Bq?3ZwK^>s(%-SL zri)2e2$>aJdbrlgj~lhz9NP2|^@2Sobl`gYW1%fpEKJNGgrlBJ~c0U5&rD(U;%`L(jV0o}_Ig z|6P~vrR`|k!2sg_R!l*fL7!Q{62)lU*1Js#q^vY1ZU3Xg_OiNxAA7X3zK`~{6}g+$ zh1Bq!?6G@e)k0gS%t+zWpuKn6YlQLJNtksm0iP|kY=&e)TN`DZW&ysHY>n^jSf#Nr zXKBk?9NLz|*!eUe=;=?*1aPPZ53dCCvD*9?3+5kP383~u04HVwXdDip$pUC!4`6;J zfbRYP%G$ZYJN@~kOfbK6hz0Zhl>qLY@nL@**4F!L`}%9=`mbN!MH`{?_0QwjhvP9Q zUARnxVuuEDUJIcjuvUEd-UT&p_quKBydg6)N|?36=JCICJtrnE$l}6=M|6es&ZV z(|>@aAO97qyM6=JJvX5GsT5S7x(wBi{R*lJRj3|UVd-~EaQ3YiV6nObDlb0>)%(8; zOFw!Is!x8+*R{Ixb6Ae=f#t`(3(Ln2!1BTSVELXIsLJ=k(i_KM>B)1j^u2#Tb$ke_ zPk#ccefPoARR#-_S7GtF-EcPkFIax|Td;iY2%Nop2^PP75f;AsE?7AKI4tyk2rAht zu)riN&0K)R8!=dX{drh;buXN*%){vycfgsiytT^qb0@wDbLw+2xAz%1_4Z!)%&9-Y zsr<80Zrua3EuVx_dkSzme-X;p9)R*2V^IFUZ=v+dk3i`c=b-e%3Y1<^klr8BN1LH^ cu?VF6r=G`l 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 WyaT5G`Ae97{vu5O^)$?c-uyRimN1wA literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198808.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198808.nc new file mode 100644 index 0000000000000000000000000000000000000000..23e814d610f40483c1a6282fa3eb64251dbdc044 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198811.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198811.nc new file mode 100644 index 0000000000000000000000000000000000000000..492254baa2786a59c090df6147d73dd543c3ff9d GIT binary patch literal 4516 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 TY+CybzF&oj3y;9W)%*SpC2ch` literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198902.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198902.nc new file mode 100644 index 0000000000000000000000000000000000000000..0a627e00ed9f156af677d07a63ff4c6b9d8a9f67 GIT binary patch literal 4516 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 R-iGqI??d^5gt?CW{{g`0IWPbK literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198905.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198905.nc new file mode 100644 index 0000000000000000000000000000000000000000..856b1f010ee9c800a71fcdec1fe5f487c01c6809 GIT binary patch literal 4516 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 RRj9qT18N^V31{wq;@`}JG&KMK literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198906.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198906.nc new file mode 100644 index 0000000000000000000000000000000000000000..d7d405d2c073320b48b778766ebbcd19f8f8a090 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198908.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198908.nc new file mode 100644 index 0000000000000000000000000000000000000000..12473a600848372c65bbefd696b89a83a81d583c GIT binary patch literal 4516 zcmcH+TWlOxbrL&`vq=bTTGF3{3k}6qcW3r#ueYMId)&N;<0u;?R1Ml*&s=+l&SN!q zb{#iDGJ@c>^YA0yb)}+$5Q2{uHHa#d3ZW1xDz)^77KulxQVF#ZAQ1@_sX`#mnc3Z} zjhzGuMtk?nz31NZzUQ2Qp?w<^MWGSF(Sc)&9d^{&U~JXiDGpCg~k+A>D4VdX-F zsg|fjg(HPMY9Uo)jRjAPk+Gum$F!nr3(c{)Qy#@*noJsK5_8Pd(Y~&unU3@|$?cLQ z3I>`^b4R7{Dk0K#9lvNz7Hq*C&37e@LZUz0AJ3|e9$8;)-Ef&FY+lmQgi$ZidpgTv zQdne)C=y|sK33KOevZqzhE9@xB{izun&bafo0Gy|!+eq@GWg3Svbju(oS15N;u;=n z_vm_B`F1HVog*ezneYyou8xA0aq_=ln{4PxoMCU61`Yx+PXJnH1cM zQaG`)Q{wtl!YE)EsJ27#Mm*d2M^;%Xol9q1?s-Z!?iYpDI<(eaz9re_)vYiTD+t>= zBa+Ic`r0(*hM`B3eJK?qYo&hckZay6mSBl=E}qJz`-xnfB9Z$(#wleJ&IwfGQ zQtXLLaLL-)l%?s6Gam`suJkb>>Bz{MWW2&ni&OrLfNPgLQN+w>RsmOt8|r8yTlhuSkjR(&j9ZpFLFj;6 zn>tjJLiuEgdr~l>sz#vfVbr0JQ5GoGs$a>5mTD#0!-#jYuwhXPcB++Bh-l76af&M3 zRCdgBZFU5PK#jEaFjFG6n~JPuc@h=1^ja*FYJ`oJeKukGMdo0>z|gWR6N_(P8gi@B zRl+(q=6ZJMS7p;MmRu`9DG{ttXkAAaL3s`0?M$OGPfSc;yc)VnbwM3>E1JtSJ*@4T zColv&y{KWhH*1DkDwZN`hlTX4n}H&X(k;@^!N9nr2i>j6#FF{>HbVCkx9hWFyc=nBJ2*NO}8v- z+)8Z9G`AO{FUpeX-riU;-PfmvG1_qiM(B-l*%oR8;+aGyL{Z<_!W~%Aca8)($@OIG zuH0GQ>4tqL((fdGtrjq3NWC&W)b|p8JLVI|;GR*Seu^*+Iai$v=-g({rm|xO$+tmc zn<2(MA!I>t>El`_KW#R0v$Ej}#0h(098-$&v3C%*_vy{P{&sSk@ok6r7lrfjA%BSk=i_TFi)5y5XKVKupgd^R_-8In=9w8}WmLVPFL8sE2KmBzwc zpe?I$Xj>9v$9D)p&p_`~2=_JM(d*&-L}Px6h4Uw`hfu#9!m+6knny!uu@E{pLRh*U zLhnEbW#e4={$PGJAI`5HX5oC`dI%q!3gAE!Hr59k`vw~425x*15P<3L{~4xVxQ^q^ z=AhW20n;y55T9+X!}Mhjre8S;(?99PwYLzr7pkxQ1*-38FthU*%)~x|nem^(%$2)g z_Pf{MTxKVn%RUIR&%F(^;!&7=We1$w{4&gbvlC{Xy$@!h%P@aW3Fhy56BZWlf%*4e zgZa<>2U|Lw;z@t`Wn<<-2?SZ9BRMpg?i)?)Sq|>>c5_Y`k6mM zefM*)RQfX1hJO$B&aXoKN;fQb4ngf-Ce&WCq4vPHVd?T_Si1jdSiJlpT>4fT>c2tW z&p!aQ{6$zgdlu&2{{t*2FTldoEJ*D$M?K2h2XZ3uewMF#V?|q57FgsFvS_>Ld3-wUC19GYV7> Zy#dv8CRC@cz|8(dn0fdb%slbEe*?ZuEH(fD literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198909.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198909.nc new file mode 100644 index 0000000000000000000000000000000000000000..726319166e6ba58e1d6b905b90a5fd029a6c25d1 GIT binary patch literal 4516 zcmcH+TZ|i5)tl$WNt%d6q%A4El&WNfJ>yyL%N9brIomV|`$*%kAt=SYp1Hf8W**ku zv7IHV8VYE=nmCW*lo__yB^)8XQl6W!l^qY?%9;9dLZ%O>$kZlJKPII!sgglqB1e_x(azRdv@8 z%I9rfRt%vQJog!)`%={nvy13$2G=PG$H#M$=0tx3?2Btkf~Jv;c~knXH%;$|Tlb?Q z`64@5w3yb%v{bq`l}`4u?u6ExW{&O&hueb1$636@P^nl`F%~zL%@OZ9v6eA{4NDhF zOtC~MCLAg3oP|`46&5@(NyduNA5-(LEmX(mPBDkaRM~ByNz6%8NBg>tYC6(aCASNf z$Qo!m)y+xal|rQLI)2`o&f0=Is_#k~SuHh?N~9D=kFKt^Zn(@7HZSOC!kDM^og83s zDJ(KY42dvRpDd~YKgZ=^{@7Cb(4; zF%r;?$yl%0k>F~WKBKHvVb{KcyuBXS&sy)MuMjEkJ5Se_(@+l2J$^DC=>Wz zQ70)fnImi>nWJ-^x@+4=hY~HG>v;7@UNF%-<}EoU1!uAt=5=4#1>teO=n1yx@xw^5 zD_Z7~wX-Qo)0tvE60}|EV?xrAku}YDiJKOu{22w;E_fo3nb9l>Hm+mf#fN;{UdRii z92Ap`@Yx<19~#bd1(H+RVo~lG%*4ZP2^Eq)S_o~Zqm69g=Uqc0U+yz*S#Fuo0k<}F zs3wK-$pZJJU_@1kLeayhLm^`mMi+KZ2EcTV7|c6vMdveZ(tg7YoxP) zb#Bu2?9i`~^`lsFtpF8?VueEMI=TqTYY=az8kM#u7>L0nLk1n7(*lI)p!trEYk?`BW*!GV2PN(8iEF7;KT7(a^2M-U!qJoJjcdJHLJ1>&LW{C{khZ5~S>sM( zQ>MAQ82vHU-P6|>@9ydESHc)wI|k$QM!9SgwE>A=cDWBtd zejWwDXNio*!Zng{FcR5zobZir2a=EcN%GNm$7*(L?qAOP!v>$042ueWS7-x?L_DG4 zk0lc6;D;2co^cCH9;dQMygHk{!grDhzh$<49pPGRRS*Pn(7tvb)3?n^cG)u;_Ty|6 z%ao*>zRGpP^U>SQ0nV^Kv3m_wvqg6 zuI{AmXx!lt;{PU0LAptwS>Y1JXw%laEDEHoG^d>4qr>sDhKV10w6nR7_I8%Imo!4l5zwH$_u6Yj@!LsQO)epyjg4%EWFnhdWt?UqejV8w-#25G#=@MX zEz5CeTM}d2ON5|ju*0K&F+a}2`P0`!sJ|S-$Bgz`-VLtPeK!4K~gV-u%mpv=L@5AA*^0-@@_R z=AhW2fw=c^?Y-tY%zUQvz^gxT%$FgsC(*>5T^ z=fvU6#tt|$^eoI>IstQ^y9RSVdk)TYL}Bjo4`BBDufXi1--7CW4?=Z~g!8ASq57-8 zLsk1SRI??R-}xMz-@ORucbHK9i2>C=JO5-B3T7g!;`d!Q#Vj!Q#-TVDXbrL;cpTp?*w(+O_RaU;8f9KYa!2ulrCh z<)Hr2hv4GE`>^o4-$PA%2kO7r28)kWp|%)<+A}D}10F2oUxI~^r{KaLpM;BV{s!uo z-hkSPC!rR97#3n*f%%!EPq_otH)vP>isbH^G=xK--X%wQ&9Q9+feCJpz_6Gs6Y-X$0StFd=Dz@ X0#xjIsE8lK><%9)e|-aHKeYYdB9Ja8 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198910.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198910.nc new file mode 100644 index 0000000000000000000000000000000000000000..37c8f2be634449f786d644d0ed722896d9258cbf GIT binary patch literal 4516 zcmcH+ZERat)m_^)aa%gEi6TC#3mT)5?Dza)JBiJTlASF5ph-$x(g73R&3iZTTi=KE z?z7XZKPVEK6F2RWCUF4`A@Q||jkQH%j4#o#l@Cq)8%%|vRiFvB0;@D>Xb3URdCzv8 zkhDdDCtsg;@45GU-*e7`{(*IoNQ6cd$9f#?mg`KIe#sCx!RHnnZ5H<%OKmvc;G1?G z9od5O%{bOW|6T-kU+w1tk8|S)UW#LKFb(p4fDM_}o;QPg_s_L#G zlm~1+sTe{ndhY!~_ob>EW(U#R46aiaj*sUg&58caFc8<21WhBG3a0d3Z;IX#x8Vl| z3njL%WHGIaX_;&~lTD^sXF^M7nWKBc;kID$VHPhlR4Ud`jKz%=bHuw&tZ9s3!}5hP zQ!G)A2}cTh%tEThDhr+%Cu7CvkEsRM7OG=&r!tYC6(aCAW)~ z$Qx)n)g6<-@Rqa_qakFKq@Zn(@7HZSUE!kDLZ9qD0l zDJ(KY42dvRA1|o^KgZ=B z;)#`T;pOfjcKWDBAHEPh+Kj~k^4RdDy0+7@&l%2jdH6b zVkDp&ld)uHcUN~S7ra$;S1}J^b~IQbqjn||-E3@%L0^tC80I@l0+?(mA<&%iUB}RH zU!OX3cdmbLP8|x;0k>F~WKBKHvVb{KcyuBX*@y(JdV;3&x6^rc_Yq$>2C^LylnH#V zq>~W2+(9;)9HVn>x@+4=hY~HGTleh2f?%R?%v*L$3eIFH%a1(2lsh{Z@op40ENa0{rJM{AjoBDZQH86@ zj(e`nhM*smXmbxUB~rVp$ZD1+QBg~;$+A<4vayoSCQZM<9LyIOS(asD@eNEvZjH1R zvCfUVo*nu%vT+bgt`(pnQLIpCT}Kx|c@5(2XuUE|PEKOD8oEMtL78yNs>@Y9tnI2N zFa$ikpklN)YKBrQ6r(MNh4ieehl|n(%glsl8W@PdBt!=_M=AJrAXS@gk`IFmKymn1 z&PMHG?4UBJ#Mp>(NWmDMa$L)hxQIm+V+|B`K;R9Km@EUI?8EZ0pHF(G?V{!Bo@LqI zFh+tH$9%@phc|A^x{x3ervb%nFw%MjN)?Zc!lRr8(gQA03XLH%$E4qn(X?w70Fyy}Ti$ zj_+iT?Q5$R*+gYVihu^~z0qDHir-GcYH$hpY^rB7Bok?GmT{Ve_zh%heBX>!8Vhrt zwyeaVZApx6Unc}Ty*q@E4(8``;r#r57S4Mwh47AJ0qkwS`g(7DUvK?f@0H8JMyQ;*43%#?PC!zLf4VEsPgQZu`K&|Hs zP&;=A)T+Hu+qDf&ogaaP@@ug0wb!8bn{UGD=q^}z<7coK{}?RZ^>bW*6c(zVfm3H+ zgoOv6hoyV=!Qy8}VDZEmSordv;pDT2;p7J{z=`j2m?^y3wEgT;-7srZV0QQroR}Gg zlW*Jtv+@{J4}S})hf*+G{5zbSc^j$;6RKScF!T67VEQjTQ2FKGpz`GBaJW!;?vF6t i{vMcq-vOw+Iswydk3i*x!!Z5%XJGol-7vlQ`o95yU^&GA literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198911.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198911.nc new file mode 100644 index 0000000000000000000000000000000000000000..bc830d23b9d23c9aba2a35dd13fdda2554fcb8c0 GIT binary patch literal 4516 zcmcH+ZERat)#(RK-Ijt@u}KqfnP5vQ`#nE9&W8~w*>OM8HBD8Av`A&<=Dq9qZSTW+ z@7bwWO=_8#>v)COX}n1=#1ABXtW&Eo#>Op6`3kd63@Q6AFcBg>h}fwbih#S=}pY0ulUu3|Ftgz4ohK#5Z}m z*&>IwBfbsSMo5n%2yMW%4-DPpo?vP2aW-yw!pU(}u##|G-L{w_4N3{tm-oCvN|sey z6ViPqpOZ8p7aaQ@p?a>YYI;BM+Xl8(5|)SOT*8U}M__MMkz#~~w&Zo!vz;-R;1$$f5XZb zB__^z|W+$tB|pwQJ>urg2nmtrY$7$}TGL{V5f-Wct5L-yYor?foUl2R7j ziBLYVqE+DPy+X@k9!RD|2}d%!?bp|2+rGOchHCkF zdt*!zsl-s1rCih0NPH+EVQQ_kZyk2+i^UYC45VU-)W8U_i%}|a&%;Eea>7}5uWlIA z+$f3&DQHLBNFqKoIMgi#Zx!8DtV38GH5MC@uzW)JuX*s+f1tF%P#F z@&Y;g%_Ji{)(4Yg=}f<`Ih8FI=9b2EJZzWHAlE|=p$}E`ktw{qt+^p&EF}N5&@x&%^->< zTs1c5*d{v!X^_I5Jxq6z+f_r>@;s@ERyrM#aVgAZiXNNOy*#t9USMV!hK|kGcMXL# z)LXzlm$Mx+h-+x`1h!nmCxyb;q0qaQD*X29=iA9vXP%pz!*tbDiTZ*xYnNo3%WBZu zWk+BNIBH(TY;X4rsgN&(yABK2F|HmixLVL=W*uF_MD&q>?Drfg@0q?N}9WLANj}U&sObBNdbLb#OHR@*|%e0bwsw>IIEN+xt3|F5rJRFN6 z^TB=z2OWm_>$(y6qRPm~5Ni6L`bBVF!Zk3Gj4DYbCIuNkt%TVPXgkpH ztadH6snT3ujiCsO4-5`Q;{!uOQjnt?55XioQ7zj_V?ZpaBm)x7ogLc#6?5mLUz2Rd z?c9|cn>+1b?nM5ZNM2_I3c#?kf-Lak@+xu6`{*=bcF2kmR-xbPm zEEbI^_{Udhush@EJTOOyjNV0m{vBGE43BP4_ejDLNoKz6_deFY^7}K}ST7K!9 z2s zc4=(PS=zFihQ1{=c7Bft^cx*K6~MhMcz8L$r(5`O7T{l94xoB5fVoov)DH*HU;(t= z31DG4fX@B^x~+4?TYUUdCcrNpWC1?99KhR8`EaxiTkl6(`$k*mM&Eg>KpUa*{C22Z zcpfU}e*u-t94c?-D0gT<<%!pz@}mi){RP*nh^tWf`O8pw@t27I11cBag=)`}aOUr~ zL3Q`*Q2kOFs^3wd`sWQW|6~km<0+_}e-vuBeE{=MJqz=HdkJcHUxZrv^Dv)IK=uCH zVd1e7Ed1~fQ2*dG)E{^N>KisdJ+vFXdH&bXxakdO?D{0s=kJ1g=6$Gt?jkH)j=;jU zTcLik0QK?-So~`o7LPp)&7lj>?0FEHw{mFK-iL>G*P!{_BhdWT@1c2Q4wkNb7tSp) zXnc48>Mvb@r8nM&CE0*x={4Wh=IPHs^W`rMrV z;~G3P*?_YPcR{TbgKGK_sOI{icJ?5gedaJ!uk=FosjowI>k^##_>~}z=YNIpmEid& dpN7f{7~}JQ4DiQqfy&PcaORFL!kO{6{tepqH@W}- literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198912.nc b/inst/sample_data/obs/monthly_mean/tos/tos_198912.nc new file mode 100644 index 0000000000000000000000000000000000000000..0d976ff9072ffef4e3f37ac19299ac1007289f03 GIT binary patch literal 4516 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 KpNCTW%l`%~YBUG{ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199002.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199002.nc new file mode 100644 index 0000000000000000000000000000000000000000..67e83255caddeef2c91a35d493c88f10e3208a1a GIT binary patch literal 4516 zcmcH+TWlOxb)7hkvuOw@g;W&ErBrFG?#}GXuccCLj^oBrY)4t+K2&LQJ#+0HGLO~V z*>y}>$$*2`8@Kf%y9E*n6a~Qtf<^*~R;dU|1*oC{Q9eMaQ0P|`e$w($`jLurW_CAg zV<$#}(cV3C@45H9?>T3nf1o843egDT*otF^>DZHoSI`Ac@cAT;Hj{hxr8bIlC|qecHj68rN|No*d0sxPs+yw< zMqwhDt^1im|A^W{!Brjx>znZ&-WV$vAR>#Tzf^D*^#?w3q6ZrpjbA=8}V%7A6{drR65n&aL;jByI&Mq8_-&R`Hp1kSGUMeEI({F zM$(<6bR`vxtkwE$K(2nTSe(UE=~yzI>LGG5ibU>t7^jp?ILi(gra8vV zf{2iSPDDnMiLTDBW-fTC=&E8G!sMv4SdW^B#k$z|G=shjB`|z;QWC&qO9_GIl<(Sy zNBa8I;RBie!HhcWrvq-XAjuk9kYxdLq;Tm(D6|a;n6(5==O3o??7#_6*gEn(Dku|p zZb2g{GMP~}mK>*ZZJJ|QNQV+Fo@==>niEXakGZRkNx_*c1bN*PR$jQ=E4YH~KX4Q& zwuh&1!dAHst#ARpth^7 zzz}e?oQmOIuNg`{mk&1`7Sc6uAI?iXC^M6;p<^KWlK}1493|&jzEo|RK|b^^0L9@) z84I#6>Ks7;B)gBLZ)L#ANCFO zgBbB+91|L&d+~^52mKbp511k0PGSrlMz2Qw2xOUBkdHP6d7sVAX^HOIAMfstMUi-C zyMm1l!}yg_VTYW8i(8m8QM;w}doh-5SHi2bq3~Iw5t73~x88O2y+6U8Fr9Ivp1~`) zj&zcJg-g@{BgMZc!NoyIJ5o_h@LeeBf65oZehEjarz0Bgh{u#5;>Y4)wh3ud4a@3x z5}Pv3-NopNutch}Gnz1dkMb_^NFo^3P zu9rgr@L46})4>|a*c%G%ewOgHZwHc({7LfBcgIF{tnXjT`$3&gONK=SzboS1u~;+~ z#~+Ku(*6%AQa$4)mOM^nk$AP$eTDBN6MoC=K8J8CwkimGIcQ(AkLlZHJ-h553i@$2 zgk?(7P2b=;;`#9H<^X3{pK-MGeKzEX8h>A-FTo9lo^`oBN!v*N zEtl`3?P%Qo0OJ1+OhKAKpIN~Y#c18udrb;_yK<$+PPRs<*I1)gU1<<}3!2I<9 zx(5R&Yv&60`}510V1D^93+BDo1GsO-hrM-JTkoyy>#d#Zz4^}=ZG_UPOHkVVB9y{k zg3{a{p!Cg`D0XN-Y40qQ@)x1BZxl-GJd_T91SQ9TQu|{t_r_T$ef9fL-q{P~Jy)Ro z_ys6G{S1_=6L9*W%W(RwpToif%dqg>1z2Fm;q(VRu<&pe7Q9=q@U0m*UAhS66IWq* z>W{Ge*tcQj{EuK|&nzqt{|%NuwFFCFJ_Rd3{uiwLY7kcT4ZzBC-++}bz7NaKr(x;Z zhp;mHJy_{`2P)^vaOToeQ2oaZsJ=D})r)zk-gpRJetZ|a{J?przW)WNF7`lmcnef6 z{23~HK7f^*??Sa$fXb~mp!(|Xd|j)b`w*)7n^0Z;4pe@52&&z`fhzwyR3E(vmDk^f zN_P$_X9ZM0{ZpvC@G(@J`{B&TWmw!7fyK`*!Hc(k3uopYgi5;xFMa+!SbY8nEdJ~k zEMC!I@wFH%KDPji?>z#`XUAdb((hsE>PcA2JOc|qd=tv2?t%H4b1?Ulw{F}1m<#jU zF2Vfk%TQjLh11u54doyF6-rx=!Q8cXp`85_EZk^;`SvlG@9Kq;n1#7tOe2k}IQ~Mk P?l9hlxmO}k3O)L77{)d) literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199003.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199003.nc new file mode 100644 index 0000000000000000000000000000000000000000..c7aceb1386659e99fd3401f1cc4f71d46de02c4e GIT binary patch literal 4516 zcmcH+TWlOxbsam6y>1#R0*ye5ZULpX*qzyzU(2I*kCVn${Akv7QmNH)J#+0HGLL2M z>^dfeMik`rLy8~u`lBshtq>||Q2K$YRwXFnB}4^ZsA|-jhlE6=CWu!{5OB`S?q+T5 z#7HpOyJzk__n!AX=M3~8YY2rxG{QIgDrO|YVHrQz5tu5>C%)|T_Ud|FjCM;FSM zEk3R2Le0C*7lr0YRnv`jqSp$JT@<#5=OoRE{#|e^8dqX84eiSr(sSGydPiK-t7EwW z8!VVC-pS%U>5iUsvXdoZ@s2dJHCNc&5-d8xqD6*EMXHLisJ>;6c*l;^jNxzCyijC{ zDT)zcOJPlzNLAlv!4;EatO)%vHRo7DwJmNJCh(Xl6FQp2m^3uBuVbr*Ej?9oD{qRd zj;2$c2`SuSfV3Rj%b7D-OK@BD97!V^@9Bxfl8UW`cUD`|9p(y)=QT88#Eo~J?PgIa zOfp3Ti7-{0ET}#|+u>YACrPiEoKSDi@&BsLDWS6=KEvW2_)EvT(;X>tVzSr<TY!Qjvo7ObW2tYT46FHxErBx zVg)-dMaSSpoHb=TZ;Mpo_@h1L$VwqL$2+3M9TG8D@X+uadK zrjuQDnsQy&B8je~f|0dZza7X`?-h%)cq$!Brc*scE=G~aJrCoQvI%F|V}@ytbF&~K zB%l+Kkz}H)v#Xv9UMjk(n1(Pp>MYiyCStKJHZjAXFGC3opH@l&m~1H_(46vJ`|wC# zpE`Ur(?5_=hy8TGO%^0sLkqGjV2%_nod|{YA_23Kpy~Xl=sY`m))Tgld`}9>1fE;a zNQz8mjEyHJ=v=erSQgTuM2qJdu8idb6V+qxrejiYCJRAc_k@)fF82zqU~NZFBE|Ob zG?%QNO+gy=6!Vav<+F+!wKhy3@PHBsUxvet;4?9IvNP1`?w4sJJvV@m&bcuYq$GB-a(}ec9)u}@@ zDUeU*xhn-Ds!A9NE=C;+8DYLswfdE)XsHwv?TmO=3mXIw`2 zSIemw?$w&1sTg^dcl0TPp??~_3+A1C;>b)3GwkzRH+EDmx(Fn<5q1*1d`re;p51Y;eQqSNO+(tUd z9^w*pz)0~gN^o&d(vDOV6MPp+`k(SeuwTNF>gkBaJK`}Vi1_h%nC(K^RL!#b?Zl=` zb7wKSA}o>W?2IN-U0q5Lqm9EbLT{AITBr?(b;LUY6!o1o-0@9)=ZK$^99P!v%I^A3 zC+ItoeiQMlwSWOb>XqrCzL)U(F`w8vcl9jwQ-rC=x#gTs=MH=J7Hq>$z7-mG>tf0k zLS_Y*9YxLytg zz-N<;j|FQaV{a&Q;BmrNz8y$D@+Zkh-yJ*IvATaN@54HukqnCpepkf1W3gx~jz1QQ zrTrgLqAkCj6E;@EpQMY*i5Wa?rkdAJezZc6MnS3i@$2gk?(7 zP2b@<;`#8c<^X3{pK&zwe>8Ot;eN}IR2s8I>KzEX8Go?Wm*56N&$`^6qHQGqp34Vm zI~un?fcW2nDM&NuGb>o47_Hj+K9d3|D~&1J|LCy2tZv}P9__5|qrJ^V?q+o%HGC&~ z+_$r8p?y?lr0{9b-re>ZVf=OyW|d38XI~|oA(>E1t&Gzwz&DYt@x2wRG#2J8ZP|)L z+maXuULXWLy`AR+c&q|PH-hy)_W`adMoF8Z~WP31f_@m0Hse{htla@D5XAt z(x<;cu|or9|Naz|KKVnK{gZ%F%T>g^0;Q3Ap~MDZ_EiT;M;?Ir@NZ!L-fJ-5GXV1s zehud3S74#xGqCW|Td?rgL$K(478Y)nU}58Tuz3ILusHHzSp57Ou<*!BFkg5QR!U!o zm5;v(t51%=%0I5dO5#hfa(Eq867S?_`18Wnn!`d%i zfpSj=tS#(;HRlwp9eDzlj=lp+=`(Pl@0;+<_g{pyw@2W@^Z$aS=WoJN`5G+!3@BI7@<6Xr69%e6% JLTT@t{|0nCHBtZo literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199004.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199004.nc new file mode 100644 index 0000000000000000000000000000000000000000..9478dcc90050ee38325457acd6d1dac8f2a18e79 GIT binary patch literal 4516 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 UG4St&ZHT)M>Q^UWKK+;f0M=wP3;+NC literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199006.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199006.nc new file mode 100644 index 0000000000000000000000000000000000000000..9845437870880dde73a334f82c73835bce56c491 GIT binary patch literal 4516 zcmcH+ZEPGz^^!QTb52N+k`#UbQ(6@}-0j}^&R++jHqS|uD7J&oBp?+o)Lue#KP^9Ikb zLUd#U&YN+pfxcY`BCByc45ndmPq04jakk6$ggeSL!AioFhGVm&(xIeSOWyMe8CBIB zT_}%Pd|c6mT5z35h2}|B(~VZ5*9?wb61IouB+ZHbI@l3UDhZlK8uNzq9Cw1=5!Y~e zIA3JDizZ8Uuw-|py*rcYWNnFLdxqJXD{O8F79V8s5<{h8RmE6bUouC$W5;U7@HZ@8 zC^5wprI@g#utrRzsxPzPicvCFjQ*IKcPydW7PpHdcubXTI-0~7H8ixZW2=TOJymk6 zV2YfMrc<2}Dcn+kv>e;Zn-e)pa9i~pNh6o+?oK2+6kCg~thS~*%oP?dXlTNio9sB$ z#o|(!WQrIPVX8J-RDFK7!?}u1l3pn_qTZh4|5cm)LTCMaf+gGWmq~VI+SBC3RJ{|I z@mRe_SJKL}3cl%VF}}ovcgb{V6fBOD|0P@U96Ad95bI!7ccZgc^w@u+TPieY$Yerr zH%8&aigtl(2Zf%)FieVeV6w43W zyCaec?>~kPY07n7i?wy86pXCJ`mI2&daqcLCDWNiDwFOeRTC76-19I_DVuPX+hLgI zK5iC8j0ALIGL~xV?C7lLf|rV}DyAV!jyg+pt8IxyCmWey(3_kH<_ioh(=@R7`lcbb zMw$v(=SCgZ3j7*b+m9vJ^ih#0Rw%TttqH%p`tkO7SeeJi$1z@YO`*D=j5#IM;i?wY zcGVRa0*eW_L@x=0%epCuY0Im}keU02`xqwHbR8A0k< zyn@R}C)uaDL>(|v{EHG?9F(*@9mfRUiIV=Od@<~oaHPB2LfUlA zvij}Brc85ZF*;+cE#1)(Z%cP}DnX2{8Gu20qg=M0+JHoRvOPdi-&w=$T-0|C`Z>vQ zW$muqUEk>heJ9dyAbzzLFknc%GCkDy5`H7*6IFrl1F&iQoiuxD-2HvHrp z(%7JjF;@tg6I^<@*1!)LVQ!AB`W$h>UKq!bNaTIj5!UzV)xQ2ta@L<&PR4rtQu#Jk z<+B~v%cB7JERyl_!5Ycf6Nzkkgz(|F1Ib7JB>CvOVw>pJWgeicr{ghh3_O2e#>ln3gH@TRS@`c(7t*f)3?oXc4_Gk z`f=8eWlGXbU*S69`RJ|Y0B2aAajfdwntmMNM$3>?8gnJ;9SFM^zq!_z;08m_x!fM3 zZ6yEdE1PLM8n-Wi_`e=gkY>~=ZYWj=U1}9{K_5{%zJJG@WCTK?5VzQ&9fyPF%l^?{7l+`voY!{5u@4;M&``7K6!$uEV5t5hl-VgUPeaF!{arf$r@^tL2Sf8i%E-TE9%w|ohvd+&$oz8}HVuRjY@4Od|D=%3)^8~4D;3kP8C zzVk5q&7*Mg+8H?c<})z!kE1aA+t*|3=Jwo= zJdeO!`6$f4dmo(M@<}-LEaKj7ffGM|2WA?#!py73$^JFlPygy1Oh0MBw3mkC<{3DV z+5*R)ejSeeMuW*~7hw9*XW+#4Pr%fM-^0{88zv9Lq5PLEP`-2t%0Iga<*R>%@(&L~ j`K1p+`KLor{)G$W%in?W&-X+5`b{`C^CTSm-Y@?Rc9u6X literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199007.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199007.nc new file mode 100644 index 0000000000000000000000000000000000000000..b9b4e28fca8708eaaa07fce76b124fcecc73cfc1 GIT binary patch literal 4516 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 Zk~#&YnWIoTb_L40uS40o1?8{){@*E0GuHqB literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199009.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199009.nc new file mode 100644 index 0000000000000000000000000000000000000000..3876010a8465b22a2122cb20ebfef0f97d5b9eb1 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199101.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199101.nc new file mode 100644 index 0000000000000000000000000000000000000000..baab0d4e3b2377332f202f8c27d31b2065aecdab GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199103.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199103.nc new file mode 100644 index 0000000000000000000000000000000000000000..20ca5a54f4e3b5eab5a9fb9eb37f2c0df8140f8d GIT binary patch literal 4516 zcmcH+ZEPGz^_cCQ6+u<0mJn1CY6WT(5d?_$cJIz- zV<$#})y=(~c{A^O-g^tf$J;`o5REX7y*Ro|$DTI4k}hz9&qr`{n%rwFb>h6;Gpsr~ zv>)f)IQGKu2!hZa94EjuEba+5%stLVY)`mTTobG;TxmEqiz^u=$&M5}ub5R;&C!K& z!QwNDF4UsyJSj9!s+w-}61{G4?6R;uJSS;R^gjg0qj4oh)6l+xAw9>PrFX=&U!N$H z*r}4q;u#hn$fgIfsT51Z;^{22HCNc&5-d8-qGg6kMH-5+sJ>;6c*l-3jp1+DyijI} zDasLHOJPl#NLAlv!4*?vtO)%vwcuDnwJmO!Ch?dm6FQp2m@+i9uVbr*Ej?9ot7wY6 zj;2$cNh#cNfV3RjE10u+OK@BD97!V|9~g+ol8UW`cUD`|9p(y)7d13t#Eoap_p_)J zCYd6FM3|~gl~kXf?QpK5lcZNpPOA6k_r}Sm~3_8HXdvB z=uTRBR?#<|EoQcuaFF$@&Trg$TsE&RhW)1E=G~aJrCoQvI%GTMS;(CStKZHaW{+C`SnlpKeM5m~1H_(46vJ@7Vaz zkUDlOH$0M4$NY4_O%^0sLkqGjV2%_nod|_GkbqfF&~*M0I?s-s_k^t@-?M@;f#;Sq zk|LLzVCRyPbgol#EDPySqQ!G|N4FfMaFh1Rt-;g?rG-kzyf=9!rpj8|P#s4ghePFZ!hss*)Obp?ii zs})oX_eRZ7iiKjh<*<;hxpBBC^`Oj5yM~T|=uZN)Uvrd#XZccfY6khxzW@}6_i`3$ z7hx01s1jjkmB$o};aS@;b%~2uR58{-VP^#10Ex-c_sJU3GyMEo3j$#btK;3AB!UKOs|5C z4#W7BQemf@l8alIGgZH(jeBt}*{g&%X+z<&MI$7Kg>Jj+>U)2RoiLqAq@KeoxQ%p@ z9pw^rz)0~gN^o&d(sU|{3BC^{{ZIKK*e~Ho4Wy&-bUda65q~ZoX1kC!)wHaBKd~v( zJXnmr2uq|gnP?)_*QW$Ax_1o5>5Xz(7qtPgbUYoPsPAmzPHyTu$Nik-xUzXycGq`0 zLEnk=+lgPZ1q>KcuS^g1y@c<ooT3V%il# z<^`7?uC?>?Mm;x&+8!rP*bC#h7z%y(ZG^3TdZVv@kesb&wv(|Hzg51ThJ3c;dIb~! zpG`7;K3F3e2ScF)PY}NT?LhL8KS@6N?%2tWjs07BAJ+M-WLQ-2yCU8ni$!B`{IOUp z>;I4<)iZ8l$>UTOiC1UCSNKjc;kV3z7ZL8oRt14C2kmS1F@4)?XO|To-hr^2@rRmy32rd-yvyxr+D7v4xp9cL zqj84=i2q%ff;59Zvw|gx(T1%bGAWSq(wMgWj}F_*>jr-8(ay#`+S^&?ZeABs!*{aB zLp!S$+DBzZ3ZDk;-EFTC#&0KKHn;?Q_SLf)k_mM+%Q(#fd^_11-@CC&V`0wImaRCn zEs1g9Dk10@%v=oM@j5)S9?Z|x=TER;{^j)mYTpmw)WrZAX98%l0NQ^EU~xTw?#Tek z`nl4>{`^KRnBO?fg8ATj06%@vhl34RUmvXR8?2uj{A>3O+6a}iPeX;j1C^)01{LL- zP>H-wu|osq?tTF(kMtls3Y7!zK_%G^mGL`JIeZi5ewv24dlD87w8291Rap4?4On=x z3l^5&fQ9!iz#{(u7JqpQmcH@=EJZtD@mIft#Xq#cQrBCscy|>RvrDk>+{3VX_V=*z zr*)|Q_*+noti$SaC0K2L8J7R`aj2$4P<{MasM-cp#W+-tj=<{YUW1kLEL5kjLiO3x zu=dUeaQWVOxUwI|o|mBZ6A86jRjB>rI@JEW0#`l-P`mRw)Gj1p?FZk6wVs!t`sNbU zitj@$GXhsWanRSbHufT(6>w$WH=uSX54GsKP#f6`wZpez?KeMzwF}>YwLgwRZ88CC z*S-X6ql<9)-Met)gO&c?W3@uOL#tf1?C@p1?J-ksEqy{=DvH7Xgpy2Ho(99Dpb1O|2KQ$ BH1+@h literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199104.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199104.nc new file mode 100644 index 0000000000000000000000000000000000000000..62fc8584e18e29b458262ce15695bad0d6cbcf3e GIT binary patch literal 4516 zcmcH+ZEPGz^_)0~bBUV}LIP?9Q$WF1?{@FYXZt|N<~eQ>#c>pe1k{S_cz4dXWIs+j zd*`_M6CqV+pA%|d>N65iDN=-rK#q zoQ<6X3061vcIM5z?|JVn3=Ox1LLnMq92;?LH644x@QS*?2|hb>r37)?W4@`m&rcZ%K-*Z%zR ze32b0nk=4X@%~IteIB1nX(TCS-2{A`DF6`dr#QgU3qJ;(p6HYbJ7M)(wq_uwxR@5}V0$%)BUC$8bK zR*$Zym1h-v)7fHjl?m^X>FOw087Kcsw&Xc<6#5~OVhwkrv)A?5f1_JZ-Jo?QQ-Zq@ z3MW>y3tT%T^el#fV%ZdL#IuEec$KA6nN(lXJ*Q;-eo<(xLu>8j+mdZu-4a8w{II<{ zBFRj$w?$K~>slnyn^Z8eR_eD7xyHR>aTZTyV#!RZpUA~161nGLoKiO7EIVwN<_T^V zMT7)&A~KRp^rm}Tx!|RutBPp|lcUaJ{c0i>>t*9p3}1!aIAtW@|YQol3=4623~Z~!|jE< zK+1kG8517sg3-aDv2I^-N?R<P{PeU%#cX!mLh9eoHMD62ORnjoLSd{>XkA+qetGrd?M%HgPfku^yy}`lbwQbMN~*(EEvW6P zD=-9HEw5s@H)@7b$QQybhlO;_TZao$56aAhYv>q={v<&AHAl&NmM>L@W{?m43qWyr zbId~RBJ8*_qD0s+<)nf!JY_qkE^!fyD#jWp?5MySATe3`J~@Qt<1n9e4a-5x(?!d$ zgF%e=F^&n1(Y^SDWC#2f!Vj1c;Z9%-9Y(K4{Rm`Z^&mgq66Aw6H>V`Jt1I5u7mFhC zbhm{h}nw4v}>r4f?DLbuj+^}U~C51P(6QXj)B zxQ29+eTGZa0VBn~D8a=+NqbUJOz^!Z>3_->!F~xxs=p^1?}^8hAmUHN!|X1kO*Jj6 z-%f1GGD*z@rlM{5$+u2p zyDlbNA!Jr?>ET*CKW)@=bExfe#0h(09A`tJdwz?swNG#K^>>o9^~_o_w&GXI*V&NI zc3dxy0^qYk#?J?9B;!CRwBupI*S{S|KJq8YN8cUm*|D*IHSZ7Wd`dDbD)?Oy?~BEv zu{i!%ESB+qNRjFpH?ib#DvQLcqv0!jCz?NjH6+>xk#Wx0(Z-VSUEYHnb;o24SaVNGgrl67>#*U5Ve_>`QQip=VugPtZ1! zf5Xyl+K$E@3LyS(#T29&^qCbbQH(Zhz1O5b%1UFx_CGpoFRL5)u}3=_`)F@RiMv@{ zNDbe~9(&hUEwqKoj1)c%+IzRXMi{@HgxTN{@Yzz&W=JNqwOPh#7U0{-*7&{+t27qo zENxkhL)(%VJDw&4Jp<{p0UWNwqszhkM1B4+3+9h32T;2bz}(pY8bU$W@p<*9YekQ!u-{1hZ#mVD|AC%wA2y>{o6;}d7EZlel z7Ak*$8Y@EWu^+?2wV%Mk>EFRZ=p@XAH^AJNcEQ}2Z^FWxUx(VuKZm(TZJ0N6Ft414 zdG$4z-}oBLm2bfOLw|(}KllJt-~Sj?-!}vEkEGz-li!ER(z8%`VK0;~z0|b*%)LK@ znQSLi+CB-D7vF_*`|g8Tb_1sOeiWutZ$ag$5jcO}B+SIm!OYMXVEUo=pnRo=XrOPp Y0!Z)8aUI{UA?^Vj!%%*X!*rYbZ!>^79RL6T literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199105.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199105.nc new file mode 100644 index 0000000000000000000000000000000000000000..bf19f6f11cfff03601a0f07976a3ee8e4db41038 GIT binary patch literal 4516 zcmcH+ZERat)mhRtbz3@MWBWnT6-*0&W9-@;UryCnxv{j*GUuR=DnNvvG-xU z`|LCwf*_>2NmdkljWcx<)7Xc~v_jWWpn#wfAT*5$Q7G^Or0xeQ6VtQ_ApyTQ=e=jw z2}xTdc=Gjm_nv#t_dVx47~b0!i9~2bakS&uW;*ta;gxiO6MXK#(P?t8vDAt44$rVc zbYut4x8rDs;ZX#U+i*MxreSeUuwm|THfnpqo#vWgW#LN0u~|~-RZ^_0;CaQYs%nld zlw%g3Rdk^iUFQoz^Q5ZjMmN#h4vt+Gwuk2=&58c)us5Dm5;To$Ef~^s+&OwjT*t-9 zLW%7!nJn4Mk^|YyKsKFbJ&9x{%WTaRHn#+ePq28Ip;EDiVl1w&nckB^ z*6PvCwDPQ?Z#rAdt~22+GF=}9Yvbg9$(B5ajzT}gGOXclboQnm`)_p1ga!?n%n9zs zD4bZyE^_Trq31CS6w9V~Bc3h%qw6e{&ZhgD?s-&(_lrVn6IvTD-;iwM>XsRb<%jL9 z5lLlJeJz@DUDskgeJKSaYps5pkZas4mSo9vHj&Dv2Z&sPB9VI@#wleJ&hmQ=(>%=0 zl8BLjPE5v9J$=1>tz7U@(N)DXgvn87i2=1Ik?3Pna}0)Zl)&)WPDuchEhPk+Q@-mS zpBNfa$47F*qd9flPY2v&L6SAJAj<;gNa50nNMs8VFvA2*=kKNSY~-jXY#sR?5|jx% zx1^C2x!fc>oSLF@otk4=NQV+Fo@@K*WI-^|IOeW7CIx4*6y$YJSViG-ujC5WHF5|k zc1LHqWUXvU(y(WkhXgH0dYF(jWMs}UUgn0$DSt-6v5KxJU}iMRf=y@`c<~_*w-*Zn zDf`7FCp^{#6GOwfZeMarTP(_Lof&x8DWgKtLkpn|HMEf>yn>@kQKlS^Ob7Wubxm#rQFlah)M*|%c~!6kA;;0E)wZ z<}B1M#wL|9CB_aZ4=EVKbGBpZ5*M+kVyuC}4hp;h5|gFxll@pe4)9smupG2JU9>D4 z4PwNPaZG58?#0I?+vm3se!z?gcLrnV0D3j8HI=rQgdvQ3`twh&oL*cVdBP54~Zlmk!dw-feXgX6!J%?9t z1L-9DG?%CYMv8w?f{TNaX3}v?@O>!hf65obehEi1dkMc2^NFo?1gd6MIAJO@oWLQ-2yCT`2NW>FK z{INtL>;I4<)iZ8l$>UTOiC1UCSNKjc;kV4LrxCVetAfCngZ8!hn7(Z`vP;)k(2uh* zEK`zh`X<*A&quE}2ROs}jH7M%L+Qs5?z9X^r7>To-hr@d@pm@+65L?ud6(NWw2kDy z?b4mJ9gRC2K>Xi^DM&NuGb>o47;V`4Zj%BjFO3=7|LCy2yl&vf9_?)GqrIJF?&ftN zHGC&~+`YMKk*!o_r0{9b-dpW8qWJA3%m$Z$&(<)TA(_awW*MhhfbSq%kY)1`UcG8c_LG0V)^nLii1+TznoXzc>$--_1bf%9(KQo3QX@9M5*Z!t3wB!j;{y zc>5i&xW|RXKYtFE#_ofq%j2;0l`p~415d$Hegu~6&%)9N--5+~AH%}0ehby*m!Nv^ z0jOR0KGZ&S1*$K;1J$peh2_0pgxZJ4pq73TYIlu5^{soM`kMu)9y$)o&Lya2uRv{g z308CuPJKs#`irNber6Qv?l+axI;@=k0Gv9Wg4)R= zP#;Uc%GHm;YTLZ8>+118!0NLetUmL5Sl!bO^>;gvjsx}TIjFP!uyWx?P#?Yw^i0hdE9V5PusyJRtPWKz3boh|q5jJIVRiB^P*W~K?KAg4_1a&d`s&N5)6=m0_A^lZ z+TY>S+q>b3wppm1J_gm-%5d_NDm#Q*VumH+G$v9n}=x30T@O3MXIN3JVnu3#C87i5E_yFRMu7GE~m~8s9yHQJh~3eD%Fi^ds^( Sk3PJ3KUCg)15SMG$iD%D>NaHn literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199106.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199106.nc new file mode 100644 index 0000000000000000000000000000000000000000..3673714620de75a9c6d17ecceb6bdfe73ee24393 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199110.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199110.nc new file mode 100644 index 0000000000000000000000000000000000000000..c252045cbf91864dfa17c4a9dece2a450b8ef726 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199112.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199112.nc new file mode 100644 index 0000000000000000000000000000000000000000..cc561d40324b436e76c9afe5b269eca203b12692 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199201.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199201.nc new file mode 100644 index 0000000000000000000000000000000000000000..862670b5bf4032897471b6e80f23f0c5eb574c83 GIT binary patch literal 4516 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 JVeTIv_&0b4E_na| literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199203.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199203.nc new file mode 100644 index 0000000000000000000000000000000000000000..660c648cf0a266765ca55f54bddf93580736ff9c GIT binary patch literal 4516 zcmcH+TWlOxbrU1dzCAj?nE`>Y{yEFUpW0wzXj`MID+aYTb5-M%4XRf`I&SRN7 zyN)SB7NPRSaT-52D#}NZTG5XRr7cpRs8R&tr>GLIkAf=IqU8exXj3VbiV)(QncdCW z*olQ;w0FlI&pK^9mVN)f`c;RltX(KE z#T2E8u%)oZOr)xBu;7YuGFF8Cn3{Jiq1qO=i(`09l?fe9VvHLa+SjpF!Zxm7Sl zPDj(J&X^Q#DL`6|?d8p>oF%xedXA)#i>K3xSW>aI@aAf3y2D&y@q&gXjJWac^Svx8 zg-ND}AQ7f&<3-iyXFHs$=p^Ztl4I(FnHUnQ)6t*GIwHIQd_)CC{Ow&<~L$tGOGUy{X6k8{Mi*rUZ8*6i%#Y z7r6GM&~q3Die*#05zhwx;dPcuWm3I$_dF@9_lrVn6IvTD-;-?Z>XsOa<%jLoh$J(~ zTIi6bT-UWoq9>_fWUbY26LPhC#o{cU%EXeHRGL(cQ6zHD!#JgE!ddRHVVbA7Sricx z(22-MGSSoB)5rxc6f-DP|BZW&RLZKZF<#<^$tiz^!LbUi$YW+SN`j4O7Xq=yzl8)|4HOL%!lm&liUjGLx2Nob#2gE~}` z0{LWtyHYTss)V8FV$`9K5#}pZuV0C(mP#qn$%uEYuwha2cPgc1fT+#JaEdD2Rd(EU zEH(@SpoHstm?4qcT}3vsJc){0x^=Id_~q4)x2LL=d2(_R<5kxbstd}5Q&JtSYC&yRU4bFs zYIzmIy;d`nLcS1gI4q=V-aTB9dQfI2Ttmk|^d|w@uQ^KIvwW#qHG_QUUjT~3kFyqP z7h$8ykP=}hmD38w@RaSCy2M2+su*jauoD7rfW&0!`{WpwkK=sOH7o}$PZur227?&! zV;mD2qkC~cvZHC(Zwyy8L!^b+PyfH>{P;Qw4v}>rxB9FLbuU%^}RpNj+o9EQqSTQ+(0_X zzQQHyfRW-~l;Gl^q+O{fCiotd^grc`V84VTmF|khyW%k=i1<_SFx!H(sk&wLdx=e% z=Kf;zL|7u#-5pJ&dU})~Mw^CVgx)BZwNV=o>xy>;DC#@wxT9+}rwCJ(bKNurRMeR{30zn`3qXEu_t5x-u(oi+Jv$My0k z06uGEJQJ*ujD4Zd?#BsV{dOSv$e$!1eRphT$J+k&yg#k;Dao*?;CDs5Hx`S=;`n2+ zSjPV$MXG1q#FEFUEE2EQny>JkWWsNm-PaH{VXK0`mxJ~-`k20LHnPjXp`agULs+IH z-SkbaBc2c6Z4PjT^%=*uflsEMLb%g1B$dWoiFyaZuEp=E_a(T&&~q-gCukeVzy0PO z+K$E@2q6BqVG7a=`pgQJC`N0x?l38ka?+Tv{f`dY%jpJw?9tBJKHA$_;%-hCQp0z$ zN5|%>g<7c0Na53+~PfInMA(>EHy^PZ=z&Dev@x2|ZG#2I@ZCQ^) z+maZ&pC<%8ecjUmJY0n*R)hJe>ilsQ%%4~dpmsfgbc^>{`_V(nBP3kf_dL+0QXP(u&)NI>wVRIebsY)w;z3uHbVLA5h#D-11MYVP)Mod#{RL*N128*$ z9cCwAf!TjthD*<0fJ<+@1#^$R4|Dtf4s+>6m~&r;x$LuW>7Q@IrR@@CKb3}sckjSr zlLkw#TCjNQcd*#?9a#L_K3HgDu%rrDdguqR)bR)`4ZjadqcgDhGU7g5fTi!9gQcdg z!pe6agXM`kaP@&-LFG?_Pg+6`E~^BP?F{X1~w=2^JXasifKya6kJeG{&{b_V8Ox&`wW9)|hLF_{1M z>o8xr1q-)-0*gNyf`!6fSoq_gVZm&Lxv_SbJ^MUd%)S6KFTGi}ecAaNT-^H^xcIXd zVfOpKfw^y$rFx>zE literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199204.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199204.nc new file mode 100644 index 0000000000000000000000000000000000000000..163125ca72d1db522d17ea1a7b44d90ed2c1f4f2 GIT binary patch literal 4516 zcmcH+TWlOxbra{|Y?7vpLPBW?7pVmsc4zkG*P^O6$4QgOkC2VhLMxWLGuPfp=dsM4 zUE2iFL?$iCP|tNQH_^;Gg6o_VnkQ9FH#&*lc5v*Husu8{X-@RFz`Px4(St1tiN;6w?h0QI&qN6NYVyIN4p%{zmE9QuI>`2oX{)XiX zC8n676cM%*R?bAK`YH>q7$ajv=#Qy+#}cY-al4qqW2#K(XcA-0(9ph)ts1uURLQM^ zDY816PIYopxTOGTIkuNKr?Qsdw(2>OMmFBpmx!elTMMtPwx&DG6&5dOXu^ma@1E>s zQ7KF^MFfd3RU0d+K0n*xTtz2IuawNGx99kO)#g#5vtd5P;$8Sl$9vOVJ>s}oo8 zSgS|Z(#o?6zUgc+vBHGwWV$j6mdDBek}Y`-9ff{~q*%k<=b@KVuL#WaM;QD?C}H4%&Tu-p`bfea-ue6~{(z+_7af##I&I!8ta z2Go%QnZd&ub;M5x++;zLHMAhh0_I5J(uq)LGZHZC37XD7K zBPlYOz=R*!sTAk6|CdHF{IcT zp5T(TvMEZ#9%mjBv>fSSLeh|tImLL18z!gx83xBHxFV04(I^Qvs$t+o2Rz(f$P1+G z7n6+eSO<&_3}!lg$ti8IFt>GP;9;kP3P}$wgf`UBMwamMjxLce_ZT-#XM)f^w-$A% zCI#}z0(YfgL{$kx(Z#4kAtTIJs#(7hbuE=rqLUHtMq$IE=I>NW$pF!q<#38B+){ST zbu2algP??)dzc}S+AT#^vpk84TDnb^2_?*OMUPDwUY^;QFEF%B)4<~En}*yPYA;}& z8*^MM@M~!EFqT}?M}@*zq0qXvCj9d1$J?oTWuBOrz5dBGj_G^xk_bgwkcFiCk`WJxW@ShnA zwTrOh%CHh)$CO7EjNvKUF?ETHSX43AKw(D(-T;Zo()Y;`EFVLB!Zj=hEl(FM%?<}K z;>S29G)DL0lad|sTL?d3hJ`zhF*Jl;jrtMDGW8%o-V)>kHaDjvx~n7J+Z&4_@$OCq z8y$x6E2YAYI7Jt?FlVfOOB?s%M6y!}FVlv?XN5*c4h!9C*VXs_7<OCvr~^ide^G*qgOYZoqL|=&P}2XDFM|CNj#OV)G~N}DDM7@ah=C(_?U{F*Ibz>s=ndZ_Ou{7%d#w$5EWOZ^mK>T<3)=hL~vp3Ozu@RM(y#tvPK zyF$pU;L^jjO?=X*=jPCc$A}a5!Z=QcLU+B1u(eNb^!0a=v-QksGPdGZ%D1y2pY6C_ z9tFT>nT($g)=0+wP-xc^gs*=)kbLA%l8?SS*0N(`|4QEbbv`8-78U%ii1)@~(O4XR zEEY@qKcq)!y(GzLQM&Ewk%e2-~n#LEy_l`&xZW-!`k+rDHhg$JsEJ zDM>edjq8Z#!?&6PoMC;&v0-p;>J-AAmLaJ$W=qsN5Oz6!PqQz<4Thd|xjjzXNdApW zduTfvcQAnXzYSB6X3%F=utYK1u=PHZ0x2tvaohjsu)VBq;Kv^AZ0w`G?IrGJbs;r; zCwuH$TeZ+uDl<~}G-&U7dyO!DI|;MFCE&BQp3RUywBHF};YI-6 zLjjcabHxw)^QBBMUm9Y;y#Gc3KXKZJ{S8=O@2~Icub=CG_kk*Hgy}8s!StRpFdb)5 zzLbOV_x?h$Lj%gMRH6KvMJQi=5Xx^Kfa&&=FunT>ly6>x@`bmcymSxDT=^wbHf)B9 z(gBsdyP>uxk*$;jOXZL@A@Bqx7zW|jN`eEj8|A4ud zPQl!(m*Ct(e}MVfAHdw3HJH0mhU!m$2lKB~VE)U`!u(U;hWR%-VE(mjFhBHFm^*R? z&h5Ag^Ov571^o=1?|lhsH;TD8GN@->Tm=Gynhq literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199205.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199205.nc new file mode 100644 index 0000000000000000000000000000000000000000..c2f0b7484727707f2d5af55c303b863147518e00 GIT binary patch literal 4516 zcmcH+3v63g)m>AXx+?`X*u?i%Kxu^io*l>eSO_JYq)kdbrHyC;Hf!rj`sNL3qvY|>$LW6aiRK!3XQnd{M1EgvlXq^xggb)%EbOH&10CCQHcH(47 zTO@e$^?CQ6d(Z!#a~=%u-4qIiXoPWW#<9(G?402hb%7In-h`vm}mNF@hSJ$}fV@2qXsd>i|s%>$*ID^Mj*{!2VjI5!deH~jhZ0V_zTLn{O zbTpmn%t+yu0;J{GUf!%^EWvHnb0m#Sd|;qEmQ-vl{Cc%}n`&#i!(3tUf`%rHxbfbj z{VXblNv4P(5vFR{qU!Ur9nMvBlJrW68TIBI|F7B{7CM{Y6&6q8FBR`kCHqO6M7tB$ z@mRY@H`2n3RcI-|B@|v4jqMlh$LCd-RSHMJ@((|=HCi5Xp>1r za5qBX#EN!-Ye$5h!7xxPo8palw($?Iu~bj0XT?27Wb=MeXl+1i{pFjIZC%|GL$Um@ zy*(m{RH9u|uIpN)yDy<&WUbb319Gi<#o{d9lZqu$Jp&YpF^WX)c^IdZO*qT!HB9pm zH;W=d0y+^HNp$!1_O)}tOGQ@|(-0;{oy7*!?pUmk%~Ti+r73~ovz?LvCR<7fG^c#m zH90jjq)v{chsVp=cn_6iPkZ9)iEhJlf@vfd%`LRmwQE5ustIO zkz!Z4%q44QQ~(vXo^VZ6i*lT-c-gJTt3k;lwvlmwg7Fz}*79&Rt> z1yc5lNm_Vp4@?aWr@MT~DQ&SZw{>RVVW)%&Ne?ZAHq_8Ymhke9E|D+y7&lF)OlY55 zn>tjJ0{LWtyHYTss)V8FV$`9K5#}qkT)(=TS}LXPE=Igtg$;|Ezf&nC0z_*zgHu#t zMcJ(DSZor8K?yJKVTMF%D~haVc@h=1beCCnD`7TM^jO*O^32A3fuUuZ1{Po6H00J$ zX94S6)^V-Cuc0jySaMAt6$)d8LhIU^@XMVlGUN~*(EEvW6P zD=-9HEw5s@w`zt`$QQzGhlO;_mBR(82W2Mb8af7|KMBx&%~A56 z1u^2sI3_ek_u>PRjruKwA21Wb&0!3UqgSJT1hRB9$fw(ae8}czMWVa*#QXbWQ6%2m zrC_7OFn*;}*nX$z;uhv)o42%eFAgQTl<+ETD16pvgyb+UuXkO2?`PRQ)0si)X}p5# zNGI7xxI`T=Qv8b&TpW}%*%QSC--nXEUcLzSOE`K4lF@iF9#evdKNJtM+mNapm$| zxxK#A3HnZ?-$DGATfl%J^~&^6-%I!%m``k-yLyKDDZ(`6TyxH+bBjG&inie=-zJSa zb&+$0kQu?Hhie`DsL{;Lp-uM@C+vlB%!Wd5{3XKnKE2h~-%8H*GwaFNj$bR^j+T73 z<9c}%0H0Mdemqzs83#k5o%a*I`RzdRkv~a3`tI1sj;;M`dB0od70Ixu;CDs5KNgF| z;`n2+Sjzt)MXG1q#FEFUEE2EImap)gWWsNmosS^gjI9a+Uk=*W?qmA4Sobl`!*A<(5aABXkW?BoCF&gryBdG@a$kZQ3_as=J4f3{ z{yQ$;P2179!vVzqZJ2^IgFdr@C5q9Ot?w}@kTTN9+5Sg|?PYWWKlW&6Yai|HEO9rZ z3#s8d+2fv#RSRvUG9!gggZAETuMx&?CteLaBM(*exR2GBSVK$8W~z7fE} z^#Hn~0hG;i#e4nv<#aH=JkEmo;Pn9Rp7r5i3pUpWoBIZv=LTQfU7(Fny>uR`KOTYV z%g;geiJ#G+*r5T{3&)`P93&r>sO)r`y5oSJcIlGiTD`IeV)VIGgo2m zw z^*;o)4}S;hm;V9v9g|S|#4OZuUw~7Gk3)SV3$<@vg4)l|Lw)*Ts1N)IYDXW1Q@M9Q zz4si{_q_yXesCC0&y7Rlt8a$Ju?#f6_$_GscpL^kBXwx#x7s{}Z z{W2`RD+DLUkHd-NE;#YjHJE?)hp>2D!rVji=mT1N1gg(hkj6Fi%X^4cFfM#(<^8E0 TP`wyMe_n#>t8ax9?~nfn#acO= literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199206.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199206.nc new file mode 100644 index 0000000000000000000000000000000000000000..36bc94b327a8913d70f6e199ad5c6672c9cd5d9e GIT binary patch literal 4516 zcmcH+TWlOxbrUCzvuTwcjnqV$vjqb zXV-Bnr1S%AY)6ULj@Jq;Laj>qC?%nxKuZZhQHiL;BZ&S`DvTf%;ZcZ0ktkBdIWxP? z+SrMaV6=D7+3WaEdakSvrY&!O+;gxiO6MXK*(Q0z9vDAw54W41u zw?lX0d<%{i=-Y=Nv>wL;U>X+p1nc7-XZvhVxFcK>tSnq+ zh4Pri#}r+tMb|kZG*7CUZnP7vF^jwMvv;&v&I$5ffn(Im!*p`m>pTQzLysgheo zQ{;3so$BPJaLd7_<=9@q9M4&T+p6bC8o79PcOurI*jjjXwKd&guCRDfLlZ{ac*n6W z7L~#zQ$&ymQ?-$j>hrT5&Q)}h^vcP+dTWmVS8W~?Ive2QES|<+Cf=1vcaam5%}!jw zW6d62O)JkT`lhqR*fJBYk?Ha%SQ;n)OSa@WbQJm_(!m<;MrW_;vHwOl|5l(u>rBQ4 zcOw)|tYjCtc2wv&3-UR7YZY26FW-`EVhMI!e+j8n=coaOor(;Vhz zNkm9MCn6)sL}y25GZ(y6bX748VRF=2tXoaQVx25M&Y(9-2@Ibtlmsx@QbM3P<-7KS zgT1}#!9Cf&eOdLOpANXmf+TBbL6!x~k;0`Dq0mMoVAc~fo&N-#XM2u$!q$=RVL_R| zb4waYkt( z*d89^k~Om_Ny8px9ul-1>0v_BkdZmgc$pg}r~DZP$11v_fSJ)K3pS`>;6-~qL@yQu zQud2UR(Pxp27CLm?Y`ucwpf_kIy3OFQ$~fPhZaH`YG@-%cm+q7$d`MJo2D~H+dj7@ zb*Lr<^2s81rC>x=2}8-ns6!zm%vWl$ekJN!D&<5wBi@a|hDFWCRLaR>%`k5?;h%hD2&N6Y|QWq%*K3yp=Fu|7GK{qft!rz-FRy;QJzlTOV`F0&uezpCT~J1yvg&YE3u?RS z3Jd{PE2tRmjhdkp3&n8LVIf`f=Ha5$gEBMf8af7|KMA(|nxhmv%a^KEGsuVj1)wnWB;)mm5wgzcaiLV@>{NmnZ8->o^hUXCGqnM+bUYnwQQx_^w|7b3Iq2sk$CZnB zWo><@6ZD-(e*^JbYyks?)GO0NeJ|~A#e8Dx+|_f`Pti_Y&SmF(I=8{uSh5X2`POON zsf$rp2$>UHdbqZMA2aH?IkfH};)K00j^m-wUB5=y+^0AC`rFCbd}bvXoA;N?x3wXk z?YLe61;A&Cj1LEEBx6q~wCxevuYWs`eB@7(kG?xrvtt8)Iq#3@d|WatD)?Oy?~28u zu{i!%ESB+qNRjFpH?ib#DvQLcwc#s#Czw8QJq?|NHZU3Xg_Hw#`AA5w^z$4t&GIw*j zkQ%;|J?>duwa_LiGgA082zRZ$Mi{@HgxTN{@Yz()W=JNqd9jSsEZE;bw#N4@Sf#Nr z=Llu_9@>_~*!C=K(9_d#Jb?XmcxWM*57+09uwee^LIAb%0US9VK;uvVO%_1=ZviYW z1kl|ZKv_Rm`j9`rlnv&W4zOU}vk<_0kNdEv0qg5Mb-bSXxt<$sj}jtOzJ3iV-}n+# zUf7QBKcPXfLj%`836*m@5uSv~_bsUW_y|;9e;+C@y@Pn~;h8W@bo~V;$DHJEJw3{1ZH1WbMOt1txurgmvC(r*{7yCO_N-lPy? dhoSPVi%@y(JXEf}43$3}gA)f{gA-?e^KZLnI3551 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199207.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199207.nc new file mode 100644 index 0000000000000000000000000000000000000000..52775d687f1858012fb8ad3213ac4be611c44237 GIT binary patch literal 4516 zcmcH+X>1%i8mUzqiAqQ%APNYnf{2v+Pxw)ZaI^}c5-K1erHD$U6%yY!v%6Uv zI|&ku_U$+C`tECB;6O_#6rvHvu^GoU)3GNEucQl{;Bz02Hj{hxr8b$DOs^;iI`Mkv^ z6Vp6=puaW;Miqhdw5UMobcZR2cmH$M$^#Nf+0P}ouYT#YklQdp~McA zOcw8E@!o8@H=D|^L@b`pGFx+n%`L&ABP?2GC{&~_7>nv_=D6?Jk%lt-1FILxOff|{ zB5WzFF%z-s>nylpoRk%zKc*HOOQ^QR?a~-tQ)NO&l^ElOhWd4E)v%?fN^TWRk=Idm zsxu~qTMjlY$My>5RNfNYRy{}3$j5to6S0h9YvGN>)^vxt!s0~@RTy#O-6wlkR0@++ z5kVwO)y7MzPtSHZSJ6n)D<{X)+f)3%N^@N3Y=}>>cp87%cuzLnLq<$C8*v?rHCuEe zsXVLbtIigaYgBlbMAv%3YCrj3k|oQbq0kPI46Bbju9c^4<3CkR-Fo zW=XlOYmr1Isi0@AmTv=e^|)ej7Efhk$!w~ZJTXR|$UP7Jl(GqD`2&V&j&idkBE+B* zk&$E~)17Iifz=TR!sTAc6|8grQN-94p5&4> zlPO8Vo?sp#v>fSSLeh|sImLLH8z!gx83xBHx}t!Y(I^WxqM_qO`#n5fEC|Hx7n7Xu zSSO7159GRh&M9rNFt>GP;AN+b0!a@wggVqvN0#skjxLcd_ZT-#XOgykYE9x$O$zvv zMea($2&)o?l8au4Oh%Y5RHJ?+YEmlYL>D94^}>cl%|EG>lfg!PHilCa;g+!Du4A!b z7yu>QIKvEy*lr23p5}>Fl+taGOekSCR`S@S;T4#T`2t$i)`VYPeSbSutIU&=ljyIyrchl_CY-YBa8(OxyXp#b0aq)i z=z>; zOc_!l?5J{FK_8y79aERMh(#5B4HR}nU<61^mcC66Vfi@BCtbsGQ1cXMSvDB>i0|W= z&=|$V$0a-Hw-CO=3<-AvedsV+HR^jH%hjCxSd)|Y+uWRzXs*t9Pfsk0$h*4~Y;+j< zuapWq7G})zuS4l(evqmCBhk1FuaP_S}&K@gL zdbrlgPa3t{9BTOtQNmsr$8;!k?;8l4`}BHWe(jzi{p>QVp;!( z7^$9d6H6YavPiVr>bAmn;t9WHc07l0Gqx%Sd_L%0vyJK7W<9-h4h8)<8^SUrDbhCx zN4y`t)g0gq>obm)fnBLn2sD_eP#tq5Pi^3s^F{f`dY%j*Vy?9s{kIXc@`=5AgWQp0!B$L@_q z3vHz`BZZHH&faaW5yo#PVb-Yxbhg&A8KMboYm{-C1^ca}YkY6VDvgCXPe<17p>Bzd z9WT-bJ$>EN0X$HHM{Wf3(c1iR7R*0)BY@hs12{e%K;uXNO%_1=W&n#f0_YwLpsd|1 zebAp@$p!N(hgmT1yAi;>(?0C0!`gaZ?Ob2&UfOlP3NtUifM?&s@ea(seF^3wmtpRc7h&$nF0*mJ!f{J?(mjCuG zs0_CIvR0pZ4XQ6b0V}%%tn57tD;;C7(sC85Hy(lN^a-dwupg@GCa8YtU8tTPf@*9# zRL=eomb?foU%UpD{zX{XCt>B`y-?|Eh2^(;Vd?r$VJZJ1SlahB_{#aGVfntNpn7%` zDj&HC%crlv(leih3oqRd3vaf;;?sjL`}6UJ?$5X6;q32lJo!sF_x)kGaJ(PRJ!8ZC z(pEV0iB35CqkV8;*S#?Rg-bC1)#qS7`Wnn$y8^TA7hvWO*I?#7wAJ<9F!K)D@%@u9 a+c5>RJ0HXKzrgJ2%P{+^2Vid7iGKqE?k%VQ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199208.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199208.nc new file mode 100644 index 0000000000000000000000000000000000000000..e171509cafda23324a3a351ae9d28132444b5453 GIT binary patch literal 4516 zcmcH+TWlOxb<;S+*(6N~g+PnStrQX)c4zkG*M78ij^o53j-zZyQWUYhp1Jl;Gmq`u z*>y~WWQj^%Z<^Rnz3T$4#0OD9N@@5gZBPY~Dj_OJg;e+eh15v>NF`8d5e+Y;oHMh# zSsObE5{&llnS0N@=Y7vP1N{SQLZJ|iFpjl2Hkgh*W_Sf%-~^xhaI~7-t1q?Uyu~xD z8alKI=NoaXh5kVVp?h%b0n@O!Cs;rCI2*J*;f``mu%d9K;n*y$bSg>Kmh-%PT2(bi z7s}TxKCb9O&AZMMLi41m=|(%z+X#+b6t;)wB+ZHb$6z2DS7I~`tD)D>e;`%KN6X#rQH4-X+uJQLr>l{+DdYbLc4aL!_J4-Hpy()nosSZvL%6gVvZ# z2<}EGoLIrmbM1uCvls@7WmCKn&nEuiWtK{%Q@7l6Le}mVh1M#xR$jg>+4|KjG8D@X z+q)x@OedQ)<+`p#5?x6JBWtOCtB|YTD;8(*R63SSr+O$7V-$(p^Ds^+n{bvLFii6Z zHwz*{0y+^HNhZ2FyPCP+rJ}2fX$X^}&SE`kA{OgnBNGhzGL*pZ*+@wMlPx6#np3`O zKQP?arykgy=^xCf2mExvO%^0sLkqGjV2%_nod|{2Apx_Npy~W}I?r~W^n|S=-$Q~j zf#()9k|L8i%#I{S=v=GjSQgTuM2qLvynZ+*n5Z9fmmHIVGg%1ox+ko>aJg4-1#8=V z2r0IQ$GK$9Yzoq_$C!r%Ek}BokThguPB32NhRG>^hQYD&uE=3#G>U=^YZ!RZJ`cC& za{?**#Uvv<)&|3U{h4-Oa!Ok)%x#?+c-SeTLefJEp$#>(ktMvGqf6w=J;qJb87H*Q ztw|lKNr8Ma&s`}PQB}fFa53so$O!Y5YSgbpO-rSiXlKN`Uf8gx`8$S29G)DJgr(}Em7QzphA>oc;4DCm+M*Rq6nOcw^ZVK`~o0}67-PIQF?v6!~ zcxStUjSj>3l~Q5*oPvv6m@`_trS*GpB-yTnmuN%bvrHo-hk1FW>*{-dlbDb{GR>XE=!&pJsYr0*Q|bCToA z#$CC)zS9Z%PNd&L{2DD_z>s=ndZ_Ou{ASE2w$5EWOZ^mKYH}_+=hL~vo^=J=@RM(i z#wJ~ixkAXS;L^jj7JkyG<>t_uW5fx2VH}g8(7jg?HuvfEzWz>fHlJBZ#%BC-`8L<( zvmMvVp#bz2^@2Bl(-2MRK{{~D!nn9mg!4k!2-PYSo3Z$$w#%%wi!}hYefggLcv%Zh^widaY z)rHjXo$Rq~b=5-asmw^>)1bX~+iQgJ+ew&pE&-qQwQPoDLK_-ooMr*Og=~%Q8?j1b zVb0Q);RlkF#L@_+kLHivb*+44`o^fF=u|{pSGY z7X#?-4WO)@D}36YU(N*c%lla{?_CVwj!7T()?sbEx3;ghcCPpRNQ^eZ)P=v{xY9f* zc4)xVi&t^|CXQ<`^->0=Ui}cJF8v0kE?&U38;IWqrOR(Y=}!;9^wt7Q@4ODvPnt0O zV;9QBDJcJn!|Ao(fb#2)K>439!|5F_LHWZuD4+NUrssbOrN6F$nRj1-nfIQDIqkDB zd-YwI?VpC(qwm1X=e_{5H}f$2!XIIFVF%3JSBBa5pM}}hH{k56e}UP_w_*0>ML2ik zw=g&PJE(kOD^w1~pz_KMsJwjzDj)nD;lofh(oh}jgvxi`g86UV3+Fz18s@fs1uDA$ z=AZu(p8KV*Yc=#3R1f_Ks=xm=EJS|+3+!1~c<_r*{a_5Lrz%k0eiW*YJPK9!I8z4AjibLkqKNqia39xA}h&wc`D z&R>AjH}}HR8+O8(>{BrFnRzI``7bD6KL+J*?t|&)9)wc=B`9sb3Z-Kohf>cQP}=_* bl=^z1^w33ID?n-2O_=U!hthlKr%dACmSHuw literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199209.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199209.nc new file mode 100644 index 0000000000000000000000000000000000000000..fab6f90bccd8b6fdd1686e05ec695caa7e6a4cb0 GIT binary patch literal 4516 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 T9}U5|^80Y^Q*Xez%HY2NfLt?W literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199211.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199211.nc new file mode 100644 index 0000000000000000000000000000000000000000..abb419ff004dc5e54d80f9cec91d69724d3dade8 GIT binary patch literal 4516 zcmcH+du$tb*=f@ybyo`7U`U1Xn>0ql>^q-eKBY$^qWHkefCDls0Sh(Qq&XhQYYI+yp+XA*#6qbkgT$&U9n_yQ|kzzCrb>wu{vzmfRXPZK{Ol}pjcujWW8mdH})>YK6ZOOXjda}#Sydg3g zs!q1Eu5gOMrfFMV&X~)Xf?Kj@yEHONe}7z2BufpyS?u11*s5kTN0>aXq6#C9(sQtn zMO|T#Dk6x4$?9}L_UTzR=Q0|}^@@qCd~J&VS84VOjg9d+rgY;krSzq`eIq7Xjkt!z zS}nSsRGyjlRcDFWRVuteqN}}NrJwvS$&%&JP-usUqOhjD(c0^p?7tDt_Yc%)gUX!X zPK5l46|6j09~4>!{XjA;ayX*dLO;ApRmnz>`Sy9xZ3Gzk);hS>UcM&UX6zOjvgP~j zjUh>-60MSQO;aQB-h_m%wNk!y&@}^#DNISGVu@6;p8_jJuE;$P9hK4vXPI5PVN7wO zAR@$|9dRRxcyCW{D;10?idD=*m>o41>zCuPSTD=YF&Io!2E%+uNdS{AB?OvNzUvyF z7#x(xhtoqNX?fgF2i#ymlGW89%L3*|;n0mxXcHnZ8VQ>2-$D1;@Ig;l8j{^7C=+;2 zK_w>A=}9(~$kM$|)izDULx~pewf%51Czxnnb5>k)1!ry{$m^ak^TOd?!4Yid@IJ)Y z6`tiTYb8@~b!&!sh|siM4-=A#gp4`Hi(EH2<({8iztxmp@vY0D(c7-Ue4BBq{}_V4a1(LZJ%0; zI8>7Y{@grwT)_yd6o!I>PKQiJm@m|F{falFl#1~#MzouS4U3w8QYt2bjpi(iQxxH< zu+xrhvT+y!DZG4!=`LcsD#%)zCst8PXPIPN3bSm%W3#%KV;1HM^en^BvH1F`A+v@$ z^H}GmZO07k8rn35CD-t`LSd{>s9j4HetGr%?NFmK&(6-GyK1ULbwQf3i?YpSHK^^f zBhUpLH7BFDH*1EJ&*j4{mxb#XS1;#XEhsZHj;^62`jcSWuQ^iAGkvZ)Rh?|;2LSou zm9&Y{McAY?CPmmjX}^R%JZIU4=Hen2RrEEG*j|AV;9|1$ZL$Z;$0(n5bkj!7Q=FyP zNZ=#Bk7GV#6c_Jv*>1mu@EvAMI5X%&qiEHr?}04caPr9(Cm*!9G3TPWb}D^+u_z+% z>5{O~Vd%fEE3rLx!NDWUo^C{GGcKkQT~c_3G~_<3BtmqUNY@Hi-}=++Uc=5J_B4jz z8r-?;L)=9f&{O?M_B9zxN`iZ{{z8{SuC3e|J>rR$@}%@l#5e-2k`AWzA~W zVw*C}_1Wl+uz0ekCmK)o_DX?|ZXAaRdZS#n8FOzU)~$30ThwJh#NSTzmRrDpAoa@hP~S`YTQQ$l8h5k|^;5Ld;B(bIAJ28pY${l~pL`oQ zZq~$%BZQj~-1Ts+ogdU2xjEE!fGA-vjN@=9^p@WsZ0*yVef{#tkfaoXR56>TKEy--##umf7}Ygd4F_LE!U2=UQz{-!^OMW#?GX zkFzl>Q!YjNI^l@-!&iF)oMC;&(KhssttnvNfPbh3Gl&UO~L zlhK5$;ydZ%w)I5|bx@gcg^z>I-e|88#&0KKG^qr1IvUvw(S$ZHmvNc}`|YG_eBXjq z8VhrVj;!88-4YwyzCj!G4D=ih;I0PTdnuStHRkuTVE&0q0aQ-}aQbin^}PW!SOBfp z0+_!PKxcOV-NwDbJN^0DbTB_V%7Xd8r2yV}*oOm6*jOKEoEvD|8+cvu2|?-E(@;9K z7fMgx38f#s0i{3xlYEB;l%BZ8Wi{I?bWLp}2s_`=(^LjB+{)K7Uw` z^v4c3_T=ASG5HgyUOoj&54XXwUq1u&k>kFs^~yP@pL{>m&s3m3coFK)?ST6EH=usv zKE(GJEdA=IP~R{H_1;&Z{>53SM{b9u-@hBGQy+#}_9mz)4?%rmGt`IQ1GNwAfZES5 zLhan&p|<~3s3kuFwFBE=ap8AxZ2K#)XbV_;_(iC_a0QNP`{BswU2vrS9F+cjYFYR5 zyRX3f3$H`vgD2t0_LFe**#l6ieIClOJy8DGA*eht3P-=U70MSLgYs8BD0e&$rORj& ivQ_K&{vV)pb`0$m#`V__PD1Ho2Rz#KHF)&CpZx~}J2p80 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199212.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199212.nc new file mode 100644 index 0000000000000000000000000000000000000000..ef63154cbab4c96fab80dc3d1a4246a1a1baaa2f GIT binary patch literal 4516 zcmcH+YiwIr*;ª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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199302.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199302.nc new file mode 100644 index 0000000000000000000000000000000000000000..0d1ec9a79178355c3f1a31ce32d236afc027eef3 GIT binary patch literal 4516 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 H$3OoK5Dzpk literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199303.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199303.nc new file mode 100644 index 0000000000000000000000000000000000000000..9219ec2dc59ae7a69b5f4aba0a9d27166a23c23e GIT binary patch literal 4516 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 Jn11`>zX2}(Ht_%e literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199304.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199304.nc new file mode 100644 index 0000000000000000000000000000000000000000..badd5d25b1878efef1ec56af2f6e5b1601296c66 GIT binary patch literal 4516 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 ZJ`I)g7jbPrRG#}NRQ_-p7VrPXe*j^#H_ZS5 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199306.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199306.nc new file mode 100644 index 0000000000000000000000000000000000000000..a0da9f884f770d4eb7b5fedbac9f937cdd5c64b5 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199308.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199308.nc new file mode 100644 index 0000000000000000000000000000000000000000..7fb6d7659879b5439f72bf037830a6c9f1270f47 GIT binary patch literal 4516 zcmcH+TWlOxb(1)avrd|#xFk_axhl}wVs~br_S*1abDXE*IL#(*fxvP-bJsg$9;>;t z>o^e*)Jj=94{ze^T8jD++DJiB0#z#&^`}^>)FM%Y1W1*jsuBr=KnN8ns>D|~XJ&V^ zHg@6<813CV_nvdl`<`DVGh0QI&qGK#tW~fx8sThmu%hm{Y>`2QPKEl$C zGE+=ZjtE-{Yr;gT`U)Ga$dj=m^vBeKV+qx^xLumSW2#K(Xc8lDXlP%@Rt;Nvs^nJD z6geGDr#cf-xa9z7Iks0Yr*oFzw(2>OMlL=ukc?#%TMMtQwx&DG6&5dQXu^ma?>m`c zQ7KF^MFfd3Rm+!DpP%h;uA-BqS58i-59j!Q)#gQ^vr#_H;%WR1q90>1a$>UGi7R-l z-J`2%Hebf#g@29s&Q z-3WyfE7?V^oe+8s!$7fYiZ|lf#y`BwQmMgIlbWrakd6CAp|uLFmA4;Cwt02S48`)p zc5OtGgUS9jO}VaXkwkw|!N^*w-zwyq_lm_?JT(|gHquFqB9VI@#wleJ&T@MU(;Vk! zNkm9MCn6)sM1Nm@I~TlEbX748VRF=2Y(P!KV*PAln!#|E5*R*Rlmsx@QbM3L<-6WP zW5dJhq21Y${aN*ppANXmf+TBbL6!x~k;0`Dq0mMoU^Wsoo&PeOXS+{&!q$=R5kZ;2 zb4waYk)#<;<}1!aIB&$3YZykWUu5D+ME}N*GEmMjZ+nVZKtW`ju#Csgx7FjCeN-8x}PmQz<6{Kyx*LOH|>3 zvU%6B*dZ7JCEUVchD2%)6j{mgBr0m@wpb>VFq)M*|%c~!6ryG@dYHAAORo4`%3(BNZRvoTtL2XxE zfg#{(1r@`+Su>Pkp%`vEETn5bI9!x^P-Z4wL&re$7XjF>IZDB^e5pD$gM8>;0E)wZ zXD!q&!j3AVN`xIzUQ{rKr)|g7C2nF-#aIJ{9Ts>4BqmGWCkL>69OP53VL51dx@d!J ze-I;njAKG$bT6KlY@gpk_yIF2+)0d~gXq<$AAu~}2=b$CK|XAAb6TRidg7T(EQ-YY zdKGMR7{;%Z3OnGGTts0`zHv*N_hLNRtAv+mL*cVbBP54~Zl&w$dq2X#J;Nqa9=~NUGd_PM1-||JUU&4_ZNJr!8cuWZ*emov#Ymhe8vaJ3v zu_@C$T8#b(OQibxqKQ<0zY@gghC?t$Z2+whZbgT@wJ zOu9nIoZ!;Ky$*iTXyoS5x|fI(_QE*MghG#hjB|UR-t6liC1?AYm1Jy(FPCp?Q$E{q zy#fk=&k`BG8SIgaL!r>N;{leET9gRB@%=o_<)akJ&pPBonSrQSRZG>`g?bRS$iXx^JjwDI2_C-3ugP%U@qPX zW_MpO%f`9VPJg|a4c3bXS+E|u6U@(@@#mrD+}Iy#;0-m-4gCvzJUDy%2XOY*Z`udN z4h@9e$FZXU`y-tFSrX2^^*Wq=o8jI+5cV=u77I}MAPSYg-G`Z{KY^JaKLs`8J#zx(%}*U543rzXr4ad>hVf{S0Pni!k#R;(p;tsP>(L>ef-X#J>a8yPra} z_+6+TdmrYuy#trhJy3mPCsbd)4%Hinp?d8gR8!YrZv7Zkt=FM?YY65G2jOz&>rmVA zG}QR#p!Ql6YSkY>?UUa_?ZXVzhkp(A#5~lly$V;}ybANI6E0~tp|)=?TzNkMwf!&n zy4Jf-K>gTmsQ>vMEbMv(7P{}l!j?4DKYI%5r*1-h*89IVRqNmmhI;fH{s%!I^e?9$Kc|x{s43LkHN+5_u%|{--7eQ zFTjPrY=^mgC!E_k1haqdg4r8sn7Ob6D)}y`gchN4-hs;KE~w-{vX{fCB^^% literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199309.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199309.nc new file mode 100644 index 0000000000000000000000000000000000000000..29cfbd04f3aacd4df13deaa26ed417981845ab5d GIT binary patch literal 4516 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 jHw&eKb5J_+HzP2a`McVKRto?`Qr4P&7G? literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199310.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199310.nc new file mode 100644 index 0000000000000000000000000000000000000000..276cae67d9684e0c9ca116ff92b73701bc48d697 GIT binary patch literal 4516 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 X^zD~68UJcpdky)FL+L!y*>m7Oi)A;G literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199405.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199405.nc new file mode 100644 index 0000000000000000000000000000000000000000..6d67749c277d63a3a2b9c3dc0bb6b65fbbc4bbf6 GIT binary patch literal 4516 zcmcH+X>1%h1)qDY|;2uRgZkWeY0@O?A8&f3_C zkzllMzj@bpUjzO7T0)@^jWCW@99vDt9y7d>E^va+P8@9}_ZmxWIN#_QR((5k2hO+Q zXodcR2tpfh><81ZxF=XY_c%Lfd%_*%nqXz&O2e^PT*)X&)?V7_aw~;|7O@1jVm#lhPD(8={fEMz2n}-OT&c{J5(}R zJj3GMJ!$;KSt1rs_b^*?h0QI&qC+fNW++soAsCD5E9SWG*pVe=_y?9Rl$m0Razxlt zSa}n%>Z>fcVw98>p+BY;980LS#qClaucF_YnU62y{5(f8`)wM6{yfUkqN=w2)Pq0*+s6M z5PA;XK(TD{H=@}@KfFRysh(6<9hdUu8+X&qVuXi;*XC&qF_@Y{FS?pJAHExLFbrV$g}m zNHWox>1?KgK}Dg8X$X^}&SKqaA{Ogp`3VMnSxR8|Y@;NA$(9lV%_-k?3=Z}6se^m7 z{Rgw^pq~!7$$}(nXhD_*%#p&S8==r9L}1nvG~K_S?z6ooJz?ue_o$#u;JGD@xX5OQ z*|B7v?zL%-Wg#9)w0N)OmEnS5qH)b#c1;S-WGTq&p0J9-~(vXlj!FZV)Ca3%v2FEJ8qJWvvC<`{Eq2opSJUm`32*m6cldSMq zI}G*pXFGh(DQ&SZw{>RVWv7e+Ne?xII@C}{mhcLWE|D(x7&lF4oVI;xP2x~Z3iy*n z?n=Q3s}hEii(ZFJMwl4k5d%krm&-~W3fT# z2PM38h8YsE-4tXs%@eCArMpBjp@dn!;hFTcI#kDAca43BSDh{`P3SGLMgsqrd8!LUlnIbIPj2RV}FPsw>b1T&N3PcMZ!y%~PQDu!Dh*_&$ya zjZs`YB-sJKh439_K)7S*Lx<6-QQreuw(jJ^O-|ltb8|wXx!U7hU9l)4&vYo*=rHtO zDHV3eDYM43E4C^Kd_L%0vyJK7W;MOE4+Q-<8^AIpDbm*n zN4y`t*&N^u>obm){yS5TBHV5nl1gK)OuYl`F5lm^)R*7^L(jR~9;0K#|As5O=r}63 zKY;kZ6;qIA&}UY#L_XTk^=^|KDJP9F+yCgWy_{~~#~z(*oTIaCW$xy5AvJs_ee7Oa zw9pnRGgA0C=rxq~S+Kv6bdB%Zuu5ZL&e4&Td#GDt zW5=_!K~HaHGJyN)@W|C*eylzpVZr>e-2>rY5?5>0hIN7 zrMvw3m25D-a+n44-m3w8aMFjp4On0At)J_y-|KyMcqbi%%6I+-m6uwf^5d^S*aE#UhSPQ2AavRDO96RIdLJD%VV0+l_<6^u!-w`h{7TzWg>!zw$Ip|2_;e z(O<#L^_?(VI0v(D{sv~xo`6~RTQK|i3o!fD@5AgP7hxv*YnXoSLr@+0IaG(g3-it? zm{T^%Pnd1eR|L8ZM`nyj-^|$xI{9PHSzHN?_UL|xz9uG-Zofx{W8?jpM%<$UWHof zGAx{b8x{_H8LD@`g?w?CKa+>WkDP|Z`}<-3CkD(%1XLgYDO4Y+LiM39z?pwM1JxhJ z;oO^h;Owpl%s*d)>NoF%Ii7(h^A(tT_Fv0%KRve@W;VYIGpGLvv&RAE_Ph*F?s@>G z2H%6J*It0xmJygc9)jt`_hEX{gsBUkh03?5pz`v)i02)&&3%L~7%%<_Di;$_x%4>N R`YEVfM*F?j22-7f{|zs=Hn;!) literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199406.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199406.nc new file mode 100644 index 0000000000000000000000000000000000000000..7403604ba89425bfa2b662206921879b9ebcd3bc GIT binary patch literal 4516 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 U6Uy@+!Q5jVFn7-dm^(iDZ}Y}8vH$=8 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199409.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199409.nc new file mode 100644 index 0000000000000000000000000000000000000000..2138f105ed5bc5b7b785f1d200e0421fb3e0c67b GIT binary patch literal 4516 zcmcH+TWlOxb)7iG*(42ADMhHX7bvOS?#}GXPbji;oTp+tWL>wRC7Zi5*WPL7vCN%a zXGv)zK=s;blFef`{Qy-&jYOriNt6$S5LK#HAX>FTl_&%u6cEsYgqrk&f)Ent%99zINEba+5%stMw*`9DGxh7aqxYBTJ7FT+dB2^Jk=(IP{oA`Qh@R9}GOx?@M0#_%`HpC~fL z6vc?JrLeLlQq>okaK$7UD?)!v%{i7(ZHwE5EFM#3LPwJrlZJ-&b!^qJrKd`6% z(R8YlmBK9si~U$M3D(rRnE!(3tUyoM%>xbdF-eJm=4 zNv4P(5vFRB1=Z(gJDjWNBuHsLI@*)Yus zZWcs@1au-Yl1%jW^tN)rOGQ@|(-0;{oyGdqL@d_JvLyyXX-Z)DtfnM@$(9lV;gs*X zM#qMR)X`1p;caPk)K3T8WI>WOv>?j@=1AeviBM<-5-{rtn$F)#=h>$Hp0IV~yGu|e z@Z5q%Ql!)4Y$BPZa~+yvSxAQxEuL$8bv!4SXdH9r9g~7HSqSpFC#<}1xmR!n>)f;p zDRzaYxn!+u3evErn1=){M|zl$G-PC!7%y_e=aQU>7j+th8o()5?;>HCGzDSq*s!SiJC$NGSZH8bL{Ww7 z%1*kD#YSNmlyGwoGbB>GuE=7RCs9#Lx5+Z0gju%Wv1!B0F&py*hL&j>SbTlckXu6? zd8~7jj%x*e4Xqf#l56@)p)gh`w63iQzr6bKcA#FFr>CbeUUf~Ox}Z!sMb+V|7Swjt z6&M1pmQyj@8#P18=kno}!$P{|^}~6o2W4i;HFOL_9|@NInxo`A%a^J{GsuVj1)w7os= zZ9$CqF^&n1(Y?4&vaNm#;Rno!aHlYacA!_Iegv{~J;=vff_%v4W=W#EI^%tPu_zMn z=~A%KVHm$sDr~z`aB&NBChNDfaW5v4T}pVKHWWS!G(vJ%a~8XnWB;wR!^b_>#`nwHgX zBsOK5n~TvKVTn{vPc)J0?Nx#pT|Nq9^hUXC6;E&Q12LDAznPq^XBLyOb$y|HYa8;} zj_c)60DR`jxI36583#k5b&t_{{o8@$BY%>7^xd(P9UJ=>^1fT=CCRX;;CDs5FBXf& z;`n2+*ns~-id4_Ii6xIyStMQ^4PW6q$%NlB>%NO{IkqYYd^u=etB>j1W-+^Tjs*QU z8^JOq>83An9r1kldUJpn)@K}T!=FqYK)BX2B$dWYk$MMOoxi@m*_Yr3L(jO}o}z6e z|FTQ#X*(KsIDq)S3R93~&}UXKMKRj2^_?aKQbrn6w*S##dl}upk3HJi*hhOiirmfU zLTdO<_PBFt)j}(&%t+zWpuM-+YlQLJNtg{T0iTuiY=&e)tD0q;uwcENY>n@$u}WiM z&d`>HYiL^%W8L$#K+j;$!2oWq!<|s&#sYlrl>lnz12}mwfX2=Mnk<0!)d1$N z1kl|YKv_Rm_>_-dN(cC*9W1~HuLN+zK_3n_V10hDzHhL8Zt&WpmuMr*oV|?W?>OFU z42m5ZF!SOAI683tZGixw=O{W!$+a~!Ez}7>t`^lmtgkX zuVJq57|fmdB^6*zSFeQ;cR}TEIjB7SC#dW#LFN0;LFLJfP+9Xj9R0+1pi+7e@oR8m+Z-JK z$?u`s{bi^g{s&Z#oQCT2E1-JyA*f#dBh(&x7HY%Cq59nC;p9_oaQy9W!m-hJp!&#Z zIC(w-)kB~5b*-)Y4b=AB0kvP9h1z?M!>M~-fm2&JocdxMYCk*&wR`V}TH+}4Rcf8uP{n0fMIKtkC!v|l3BfI|$M_)J# zhhN(O&xC&fhhD!3hmU^Rix$JqE{oWf;&OQj`d%g{2`C}-5<|33k guR?k66HvaZ2IZ%sP%ga!v$rjS^5rLB_6tA#4;{2JBLDyZ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199410.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199410.nc new file mode 100644 index 0000000000000000000000000000000000000000..dd05f395983011be0ac3b2cd908de9c2de342390 GIT binary patch literal 4516 zcmcH+TWlOxb)84!Y#M?@XpyRvTPd`**qzy@*IprEbDT6u<2Yn3r>L!#>zQlsH1k;I z&hEwu6_F}f+i{&uZEqw5BA~QY%Bws+Do{nFL=~!3!AE!n5&|j~sL+RyDCHyKoSEIt z+So~uU^REo+vm)!z<|mC;0myj!u(%&81G9Z}1GO zfezh`^DQ{m!{A;7p>;SO2Gg*(C)gnOINNJ`!X4+DU}fP-!?9Uh=~0rbtKfOXtg32` zE|g;yuPC}ui>~ve&^)PXy3tMawt!=oh3(-vNpqrq7wnG4l^9J!n+k^X9Cwo55x3z- zBZU&%S29_=hsFD{X?zka5sRm@%+_3Cb4#%3FpHKMDivue#-jR)IpQ5V(lUm>VfjLt zDW)h#ge`?NW+GL6l?7Lfld&T7$JByj3Dvf^T^hqxV{A`DF6`dr#a&k<)HOK#}Hiw1IhWI3lr}4?6A7j1~lkHAi#bfOr zT}vy^D*C3gMP-Ev?~v)rC|DjR|4X*yIdl~IArgeQ7%T;0xjC$GAXzl zp?G2?yU4X8LeFCyD3(nDM?Bm3hgX;?l}+_FsM*>P*|=a7TWio-efgGTn|HU&P%J-g z?~F(?o6NLn%5`0fBr-__Lu$UO)?nBQ3k_&M@ayaEhPk+Q@-my zFg!4z9@v!|+?!Jm`00R~EJ(737Gzn#94TBn5ejWY0%jvY)A^lrp6xp730p_DhXiE; z&n;;rL@qbNMw4T7u2XX?3+Ygz#d94OM+$<8<}r8KF)28cr68|+!YT@vdnH$}u3d+a zVt2U0C2MC>l7>COJS1p2(!+$LAtQ5=@iI3|PWdwoj#YF;0W+gf7Hn9&(EzP8k)F9$E-(sG*H4;T0TRB46$?ZkkSo&_1^| zb*Lr<^2s81rC>x=2}8-nphF=e%vY*azY+~Cm2#q+5$|SU!=mQzRLaQ!(VUIp6jivX z?6~V#>;Mdc5^n8bhD2&N6VFdHj*tYUZtW@Em<$TCd>i?44Qa%-rw zh;?q)M*|%c~!6#~YQoQmJ6L>Y74zL78yMs>4++sO_pN zFa%t!pklN)Ylc!R6vJ(Yg>=oEhl^4V%FKjo=opCpBtZK$M=5xgFIA^zkPrO}Kymnf z&O+@XY(yDSBJ7ZISiu;cv>j8IxQIm+V+|B`P~Z)am@Ivt?8EZ0pI2PNa?tX0&$4W9 z5F>t!V?JYaFCLO?kKaQ00W&1r35=or=+&qnfh^Yu@{zV6AF#PODbZbB@!sB86p8nA zE7<5Tj9)1gw$CZKxP>|6ja%Bh7o*8;CA>@<3ZE4kAvsLTt6f*$`{V3k(-}kRIlO|a zNGI8+xI`T=Qv8b&TpW}%or+?9&!D9LDPIKpB^;@~bTppEjv|Qo(Ri5MfwZZXW%XN$ zO_}EQVq_vLk?QG*CQ_M<62$2G129Z)l*=|#(Tb(x=>SE2XA8GyS>HMA=Oo9Kt-Eq( zeWw%jok)KJ@oTk!0YmDQ=|_Dp;kRNwv32h1dFrPK(~xt;IiJpL_G~QKhM#;JH15{L zge!#13oboe+rW<+jocjSc$7F{FO1_vDD;8fA#Cr{n|=N5V$oO} z9~O&c{Rb&hJ>w>pJWgeicy%^?h3_O2e#>n83c~f+sUYy>pndH=rf-|o?9w$9^y6#@ z%ao*>zQ%RL^WmGl0nV^K&_`exbkY>%n}qF@Kx|^Uq!np!QM#$4>;%I2b^a1<-ycfW_+p zboT^MHqMnk;?FPSg87C0ESUFS58#6*eAwTFjrIPFXNzXsDCX_)@PV=(>a z49pyP0%l(RI-I=kEtpw)1!msD_oxmhcbI+YPl}EJ5x07}WmsB-DQXGSohO4Ne`q47Fchh1wMp=D+bdn7%?g@v!)1@jjU!5m+Lx%++!b0@wB(}jPuZ2wGm1!iC02eZc>g=dmyVeZV|VfN$_ z%v^sH?V5qvB@5=}J^?cy`vc4eT4J0plJ#%m4rY literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199411.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199411.nc new file mode 100644 index 0000000000000000000000000000000000000000..fec2f500965ff1feae08240f584ec100bed22a27 GIT binary patch literal 4516 zcmcH+TWlOxb)5%sHVFw*l}2q+U7y~ z$VQxRz_A+o_alg`!m$@j!{VM`{oLbhzwHUPz%{`t!j*<&v!v3cq}k4*=asUmsyVt) zK56lBMHgzxbv`aMPpX=3bP&A_;Mf&mdw5RLoany~_QaD)f~JvmMMHXyJ3;S=Tl1sg zVwoK%n=IMIl0Df@d{QixNOoqKt+~SHmSFKA7OyZ=D%Mbp#q}j~#5;DZX^ddQ;)M!R zOi_smTMBE`M5_8S3$7@Tv10Vc)S_bv)wZ}@9>rs-OzCJ6qhM%gU&mGrTY9SGR>>53 z9Zjb?qf)q)5NSEKS2QQ`mf*JPIg&;`+0&CrCKX$YuB^7EJIoapFKKAPn49c6wu{B3 zFv%1#B*Ij!P*wwew!^uKPLf_FJ*wWGTb;O!$67tQ zl2)Eo3QT8<@g*j_OQuVsU~!!MFWHjk&{61zSTe~P{zh-F=(7JtxddGcv}m2ngy3$B z;)#{*64#y*dLH9Iv1|%B;@QGKy2MnOY-U%Tnyo!0>lch-YXw@%FW;7Iqaa$VPAsqVCbp|x1Q705L%7E7{ZCYwlSGd)BuL7~V!4+E9b31|5|hG~v) zvn*mHpc9j^bgH|nyOj&xD!QwfhcG+pEYYK;5{Yg$I>DeXM;Q$B9VG!wwv-TPPWi55 zaHy|O9o(Jk-=9+lgLJ@67A9Fk3$rX>jubAPh(y*R0kfW<>HLFqp6x#730p_DhXrK< z&n;^tL@qbXM$)5nu3d913+Ygz#dB>h4;KX!jbrYjV^VM?%VA#kgjEtQ_sXtdJ9i&O ziXG8$E?Fy^vNY^5<{?4Lksc-_4H=mej90i}a>}1kaIBImikKOVieN(;#$CM6!|kP_ zK*~We$qA3`grUCvTt^@|r7afaw$2PZ>{L)8>7j+th8o()5?;~KCGzDSsP9-rBX?CFyh@PY*^HSok}GgA{w(%oT3W1 zlr6Z9#Rj1tlxTAgGbB>GrO0xYCs9#Lx5+Z4MA>NBW8;QbWH#mtj4abMu=ob1A-6`_ zOIYU$j%$T}jjSEOl4}O2NE9m+TG!S@P+o(0J6^BMt8RWy@0#F>@ z%vq>ij14OTN{k&=o=`A`Cv3;mB`#u7#aIJ{9TIp0BqqziCkL>69OUD!VL51dx@TFo zKa7ze#xb8Ux)+Z~wl8QQf`Azi?ij|Xqq7eJ|lRVLq{S?&^8!rwCJ*bIG}Y&K>rwE!#$reCsqe z>SD|lLgodR9@-DR{T==HZ|n4 z9oH+O0Qg%Z7^xd(N9UJ?X@_s<)6Ov(3!S9OXu0$f9 zNaDj1iEQv7MXG1q#FEFUEE2EwhOh9QWWsNm&1Vs=#!dx6AP4Ph^)Y?hEN7RU17SbT z2Cz&?y6G!iM?4?B)f?ap>obnF{;iqg2sc@Vq|%tLQ0qY0#rS)gZ3%8L^t{XMG1^A* zuexv#ZAatwhY1x&5%rFeY1?yEX1!NTjTo%tkPJR z^R#6t4sArCH zZ`_3H#TTJ^?HP(48c_Y#9}zbL)o*UV@p-6TS_jqFW}*7x37o$Q)$?sI`PUa)T=aBPp1^FALKT;dpu&rcYgk>FvLVso(t_rXFN4 z^YZ6l=F+QByZ&RS4IhHqeec1{4IQ4D#I-lhLGA2^q4wC{p!W1npe8rL%$1Wc!#)Ew zZxU+V9dPFUufmzb{{%ms1%K5Mn7?rr{PAt@g-7SXKl?B6FMSvMbH4_E>lrxn&R<|| z%!b*)d6@tHZ(x3_5B|*cKv(~>+rhuE1N@hC@Jr{wzZ?VqttY|1b`g9z0`qU)0Ke-M z@bfp3?$^M7{0R6P{s6TF7iOP*1ZF?|C-93o@Q04V>}v+hZTmUQ9lZv#KidMc7k5DI zN*BytMH#+cfw|`jFn8`vn0x41IQ_~yaH{rEICbtrQ2oaznzldr?h7#e!C%1ir`~{5 zAE?6V9WTN3nM*MBdK{*{Sb*tYsc`z*6_`4I8K%B0VDi1IP7E~`k3X^-k0+YLE{tW|hKB52s literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199412.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199412.nc new file mode 100644 index 0000000000000000000000000000000000000000..96b8d65b77966891ef5066dc724cd67e6eb9c611 GIT binary patch literal 4516 zcmcH+YiwIr*=^D_bym7cVFhi_BQ&u@vhVdPPb5h8rA<>cNmqxKNd@oZ-V^(__hH?0 zZ8vm+fTlT4S`oX8CshOSgCc%_L?__KCP7gpgb)J(V-%RGN*f>$gRQ(&Aq3xdukAWn z(iRCUAAdggJLh}9E{q@C77B%Eg>iM@+GRR+*6<3tzzu#Lz}01PulcA8_nn?$HPE5^ zao>%r1I8y2gtp_F0MoFzC)hamIGeOR;m&hSu%d9K;n*y$3@Ay~oAbQSVFZeZWre8nko}In#7nlG_Ccx3_fJf1_NC(gH2o;IbgN8=-h& z1v}5R(?ZW+94MAe0Y^OB_=h)`Dm9WCYEZMa)3T9Z6kA)++Whey$u@Jh$WSalZtsmq zawIv}rYYBTEs_{aDi~Vp_1l76GqG5l#Zx1(r&HW z2npy!WF(mw92jipf>}kmiggI9qt0T(Y9baJWOEA)#?n;5u-;J-z+y`Uf%a7I`le^b z#?G8?5I_;MOZnB`r8d^|g0c)gi=|(8D0|}Uo0!{ZHq5JH>8Bf?cvOOlK5_oPw zBO%i1S#~@*NB6ok$Fh(P6p6Gn1{#nIf0b@ zW|9^j>xG%I@pPXrIh8FI=C;lZyzCTFA?cxo(1se?$P!-8(IxWb9^V>79F%bD3^OEByRFD(mM2kBOSi=`p@i97!DA)E%P|}41xA)>8rXb&(~w(3U3u(t z^Nwo;ehuxI!j^0Ls8AR?6k6BTgx_BMcstwZ%%xHZ!&TQ5>I+KNDXI=vwV=1FuD}p* zwVaC4-s~AlK9>)-T^7Q=J6hBdd#6d~>Q&Ft%gDB}c<%{6Fgex`NAC33NV@eS5$Kzpk57MSumeubhHdUIt zi!m5siPXSAG?5w{RDu}on1&hpN40DhHLX~GygxwE+}Xk%S~qvj_%+FKWh+G=wvQ1foP}{MhC=Up4PpD7-kj_2CTIJd&17uHZcWh>rp$*`&5dqsRG7K_H>_+_!! zi2p^3)X%tyEss-MBwk%jU*Ug}3EyS*JddygClv&~9CWVT$MkNqnO%CPf_a=xVVjba z>06{D-VfiN4RDA38P~S)2UBMe?zRj`tua%i(Sfk*@jb1v1P>T`#^rXFj*;JE_e`;nSeA_d08Y@!d(7O)deSosDXSWJ0@IZJc%izLRW?|GTkEV`I+Hk&QUC zEs3$`ON5}$=)htC4>sV@8^Qi~V}Ftb`zLP%Q2TlS=NAKL91Wn!0%*S#!2FE>x`zTN z8}|zD@%LBK!T!n-7VJlF1n`54J{)br#`Dp}xzWbG(YJY?4#HCR1eAYy6v|(H8I~UU zEi4__Pq9M_%HMh$%D2uz`TGSZzw{3%|NW!5c0u{4*P(oQ2FkA(P%%FMmGd4{YGY9O z@-JX{_Y^GKIavPdE3h)H!O9O9tekonR-T@Qm7AB~-0r7frC4Xc0nEYwE-4b_`B z;n_drjSQhFRu0j39Zm54@8S3x72y2UVSbKd5>H}e@ z4|}k7{V%Zg{C=qR?1kzhJ+S)CTd?-{PhjoLF{ozVfLiAy)H<%CP9K5V`@R9yeLJAG z{Xw|!mA9bw#^<2+v)@5YufqA!Td=aa7gqMa2IXtVTDGrzT7l*JJ_XA!{2W$JZ-aC4 z5-k7m`b>Cw=C0C_|+q5uE@ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199501.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199501.nc new file mode 100644 index 0000000000000000000000000000000000000000..1df698f356bb97e046322e82f10c6d8c0763c40c GIT binary patch literal 4516 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 M*NOYkkK11V5B9b)mH+?% literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199503.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199503.nc new file mode 100644 index 0000000000000000000000000000000000000000..af092db4eb97c58e7b6ef61c7707668f51d722f6 GIT binary patch literal 4516 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 W&K?cdehHPcKZMGK4ye3!*M9(#H$6@O literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199505.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199505.nc new file mode 100644 index 0000000000000000000000000000000000000000..e6715046dda95f9b8bedf7172d2dc4d791f3becd GIT binary patch literal 4516 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 R0ZKnwh0?!%0#}ay{NMfyHmCpq literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199506.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199506.nc new file mode 100644 index 0000000000000000000000000000000000000000..3db86fea49924a69ca4e45805146c264992fb9ab GIT binary patch literal 4516 zcmcH+YiwIr*=^?X_9wx?{R$TeYp2r z+YJ+1#mjZlm*d8%5aQ1s@MA!!7!#X>S~dwLF;Pvx#yUhQA@KvDZ4!fmG{N`XYr9TJ z+9JV~kH33f-}`l8Y~Q9(C`2QSqXWk_)3Ij_ub>N@;PXKoT_*RMOIwHmYo>Vp6=p}sJ;MhfBdw5UMobZ1D_C@1LjHaQjIYWAmJ4f%h*ZGsFT!9@b zm@J-R@uA^<{3Tf;7VjTsw&n_(TY^O=S+vMds7O;V7S-3xao@2cEoJxzRxcEpVv1r! z*iu+CCSujsS#U*`log>rrsf<=sJ6xJ!VF$hWkN@l7+FI@{W`X4*wRxaxALaQ=%_l? znUTUR2Ah^+dpUD1V+n4no+D{w;zL9Iv6NzK;f=-CbceaZ;&}~K7;)pN6N4-&g-NQ2 zAQGl(*@EiRvmMS=G?Mg+$r<(b6#uW%JR)>9&gWRXAAiGW$Cz)#WV;d9u~@rBH$(<63?vowtkv>ufUX%=EY9M6=!V06Lxe6yp2$59{gko^XPJG5X-;#qAR@$| z6OoZ*VjwlpP6dOCLKV{xCP$schSWqXHo#`)7>uSVf#K6lNdS{AB?OvNzU!Ts9353B z_NK=Urqu~Q9dMHcN!HMUEDM+;g-bU=p)H8OY$Ry9{|UO!_MY&Bts~u|f--^U7Bu1_ zot|RT$r-xWr8$;`cqq~0y-hDos;1x zt-!9KE#p{nO@AvC#tMbnwKd_FSKr?rZ&c<|sf7NjYYNo`W!5RG4p+6HwyUl{7jU(l zitgU58A?8v54T+w(lu{g&PzQgGqbLtqa*s0VB4=bO3t%^P^{1(D@m~r9Gq7NNLt44hfWa);JPqjJusLjneiRS8w4-Uqnh&13}GUL_5=&l-sk9p>fr!qvBamhCs48N{B(5L|~l$@XxG zGN7mUff57`a@yY)#RNZqocFO`ZW`UVD+z(+eKV3OV_mu;h}73+`p2V2y4w)PIJ>N_X>oaDH&6)ShwcRE4e ziTFE-UaJKR2vV<15B0sYzXS7$t#en;P(MXG4L;Z0^YPr_%$9;}_{q0{W4kV9T_I#f zaOvS%CqH2{a&u_Y=ZO;b!Z=QbLifCdu)R-j_Vst-v;EF`JhtzzU$Ci9h=8*hr7f^J{5;Oy_fwVNt>FiuhnG7LCR6$6~Qz z|A!cDy*Kz4VL+{Wu%PG9@X} zHwZ_(AHLNb;0)_Cj!k19?t2{J4$F{K8Z$-e9cXv;{{5}K1P>T`#^v@b9V7lXU%8)- zqjJXri2vI#1!)F-W(7;+qfK2uV3H$cq%mvzA04)r(GC3Aqm#{ZbhfL=-Ha}zhVP`0 z2R0Thw3W(?6h00*d$+wt7{8r_*`yNC+1kivh$ghHRmN!+?01r`@x2?XG#2Iz9a+1F zx+OMtK1Cb!jHFHma9;x+SqbLTjrpT2m_N1>KixUU-)!Uil%J_HMot-$<^Jy3c322_p@!udaFaQ@U~sJ?Ims$YK|&i{Qk zoWJ=BoV$1qs*8Vv>gByqed04vJ^n0IvkyXb*F2ni{#B@UzYo>&=itKSIjHSE3roNJ zD%9`mgnI8TsOJ`;{>>WH?R`-H*~?JBJOTCH9xQ$KEvWtZ2e9~|pF+K}1WVtpKz)AJ zm$m-(mti?_FDxIv2+QssSWdqH%iFu4{@huprw_o=8()L^Jr6>?rbGR^e}a1KVOV5egFUf literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199507.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199507.nc new file mode 100644 index 0000000000000000000000000000000000000000..2c6858670c71a14a62dd3c807506fe27421b8673 GIT binary patch literal 4516 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 aW4OK-%2ytO^1^kPdu$Bmb{&AZboD=x<1di_ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199509.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199509.nc new file mode 100644 index 0000000000000000000000000000000000000000..b4061e9023d0a8fdce05a0e2156d23290a5b81b1 GIT binary patch literal 4516 zcmcH+TWlOxbrU;{vuQ{}DoO=`ivq1Jc4zkGC#`C895;^QIL!v95mA@xnQQORd93En zuHy!QL84i2NxdZAwWx@oJj73fQeG{DM+jD_IAd46uHKyE|5ckqLT4j z_w7m#4yV<9emdYL3zDp%1z8p_M+%otghCsTfLTk>bpC^Mp6xp730p_L2LxpT&&_Kj zMLK8;Y!Ec@h=1bQ>%aN|=r3JvL={S!QFtz|b;H1BEr)e( z!f~y@ub~YiSaMB&DHO&Eh1Rt-;g?rG-j3BO^VHN7#;dL=R2P&itx&lMM z)v_vvd%b2Txoj@nbXZ8&ym2@u^`Oj5x`vK{=p(_hUvreKXZcdKX$JYwzW@}6OKA(W zi?D;rh!SB3ltT)}@U-oiy2ME=su*jau>AsWfW&0!`(zK6kG*`#H7o}$PZzC^4F@se z$2cZ5M)%@=$#(lKgdZ>?!kxqz+KXO|`Vq*|wIDy(6yyUoH>V}Kt3BS+6N@78t_}qo z9ft8MrNZ_&c^9`ZXQFmX>-SJR$>U)2JJ#0GTNIi{La24q! z`zV*F14fE}QG$zul6Iz|nBcon(*Kk%g8dSXRBvZA-WiW6LBx;6!|XPsO*Jg5-%M=E zG`AL`JHisFuC8bz)!nTGG1{^ZM(K@m*(PcOVx95MV2S$9#@g;>ednm3lN?tz?#k`; zolekqBK=n4*JuF)hSV$5Lwzr;Z^3+G>)h2d)KAe$P0khPd^)$-vmtLAe)6r+xKkIC zt`IUKxb$$Yl^-=~xjD4%QR0NXFpil}=pDaD*xaYr`}$kS*?eX-8JpKv%D1I1pY6C_ z76rg(nT&^nIg+tI6xw=()@$DmBp>;c8fg20!9_BH#MzHL^sOZ!OBkFyah zQ<84_8rKoehi^0oh+%!kv2O5PsbdJYScat1m?=>2Kw?{4%ZxWUjfF1IIX8_B=^ z{N1!2jXM}X{NIErNHgd&E104ft=sw@lL9FtjY-@8=&-$vZs5lr?X2&ky=?{VW^^Gn zd?$O{v$krXjZ|i&@M+NA+wC>N`0XUjI+uXY##%N*GNDb4GEP{q-b%K{_sv+Pu`p+7 z%gQyhEs3%98?-=Af7eU^hiY*DVt|j;@FOh1Kd~4*!#MXh9IxVgHynR{2OR&-V>s?bd_9g2LGf%HiobaTW?Oc`?E7(i)`HpB&q3+P z*P!&JUqR{mvrzi}RVcmi8kF9?0Hv$cLBJa_42J zeC%GRd};|Q&wL#!f4mIU!>>a1BacGW*a6kVMX0#ngZaS)IQgSRDF4faivA?bpZ*dZV;->_ieo$au2=nhyIKZfrLR8Q`K%GEPaS$YNOy$lO&&q4LYC8$31 z9ym2H1@pf>1eLKtsQ%+6Sm=EQD$XKQrr(13D-Xf^u@Athi$8%=+r9di98SD>5l(#ib$I%TAHdv;hY??bFQm`F zQ!i|T6V?To^ZpK{OFx6sx%;7H{~Bh$c@2u6ABEz;FceSkfMVBqC_c~*#m6o{ap)Wr WPhN)NlQzt5-wwsU^up}UEB^-FFgi#8 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199510.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199510.nc new file mode 100644 index 0000000000000000000000000000000000000000..2092f6b576a7c8875bb9d21441b1c3e9da2e3d7b GIT binary patch literal 4516 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 Z3)`Xe;>VlT{|Kd*lQ8qyoiMYb{BH&NI!FKj literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199601.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199601.nc new file mode 100644 index 0000000000000000000000000000000000000000..612124d3bd6b3fb053a45b4a22b357c22bb3a458 GIT binary patch literal 4516 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 K?mbZ6dg9-UA}k94 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199603.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199603.nc new file mode 100644 index 0000000000000000000000000000000000000000..3add04541705c40f13c8224d8aecf29590608c7d GIT binary patch literal 4516 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 R{5SaiI?P-ig4)KR{{ZtOFslFn literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199604.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199604.nc new file mode 100644 index 0000000000000000000000000000000000000000..4e167e86833d23ee115e4fe2f102ae180ed90bc9 GIT binary patch literal 4516 zcmcH+ZEPGzbsam2eMtyEN?Qd9h7z@Ld$)UEKHDb|**qsrLTpF5C=FG_b-X+FZMz@G z&fYmrkcdEV_BjQA)Mp_o5g|nRLDW(NRVApRwgj~*Rj3d@N~x@rKdm6;Lo^@(;=SFw z%h}k8kzjRmZ)e`j`=0mS!qCAsMNw!(aJ1v-vRr4v^h<`o2|gdj(P?qNvDAt44&Suv zXk{nPci?D;p~DE2EjS(o%e1*K*bw(QJM8$v8|S)UW#LKFbyz~ps42Fu;QPg_rs=LB z)U!69R1KjOJ@-+e`%=>lvzzGc0M{uC$H#M$=0txR9E>H@I8Bx91ylO2H%0G=>v;Y| zp~Q}qESAWyWIP+kUlLyuJz3`Ho^ZG=SZtKV$_$l?HWXtqW6d1#t`lt*>S)5Km&lyyV=*Z# zGDQ@LFijsXX#qdSVW8R$#T)T#;U8IJsdP5o*L2TgvVOlPv^Jo%{_-u!Hm+`&p;$rKZjMMQ zo9b=RlpBT~P4=c#jI7oAZ9uMZuULX5(%E<_o9-uaaf(Fl`xvK`O*qRRG%f2Sw@M;P z0=iKdO(lCXy{%mEQqfh#G=#~~VDWw}8ISj}u_*?FIZ9yo?4Tro$(9lV%_-k?kBklu zY9j}7Lx*$PNRSS=#lj?O>S2}z%#p&Q6N<7G30U<6P3QO0d3NB8FB}8;9v74ee6OUF z6uI09b}}_a=Q?%Qwvi4cT0GbG(usm#qH)YybxaD*WGT$+zOakJ<9^8#Y~O+7NU=LI z$t7!LQ?S4RW$-752Fr+jIuzfX8lUmwN%T=ZbrNtg$;{Zuv0CkLPTRWhEr7Grn2Ln zYqJp;0yWay!%T_PZYr{#-Wy1m!h|w{!K%JUKau@oMNQ)dh9JEo&~<^su&Tp1=_B z^n!-r-l!RBu~3Y(92U~EZXPa5BP=r$o@rnp29ppS)Eu?o+ksS_x=B6^E&#>h-*Yx< z7iA~ZVKvH*s}HFd!&8oH84?$MH z5aXE87~PBeBs&ze5JA8U3vU8r=qP$M7DOP+)r0&*OOOvb+?tZ;u6>EVzIY6YXS!8v zbQs33lqx&omOR|T-0}J?ZQP5Ksctp0N*fBFH5wr~EOhH#*TDPZ>_N*NL+Uxag6l{p z*{8Wg9WYXYixOTOl(Z)u!vx=plK!WBQS6s+r2BhfiJnAU4I}4tqL((fRC%@#0ZNWC&W)b|p87v>Yk;GU7Eeu^-4IoF&E=-g({){El`lKV#N&v(k2oIAJf0znz?|XV#Ok6~9)#T@Cph*YgV~ z06wc^{A{>JG7c!p?$d;?e>;$T`@Vg?>7mvr{3H&kY z_vwcesh)8QOCG1PNW3~5zQT8s3BP4_KZ&p%TNMO>9JH_1$MkKpo?Z40hy6Gk#xf=8 zrf+Z^@qFZFbAU6f&p6tK?o6LUxXU&rmBxITdI!R;#^2HGOK^i}!87;V`4E{g&wFU<)j_~>x_ykX+U9_?)GqrIJF?&S?3b$lm# z+_kZ4%62LJwo`usEt=Z~y}P=6+b*q>$2lLChaDMqH3+DqXA-wl|00$bdzCKXjH&8z}@TV^Z2Vh#c0@H1ugz0;}3YBNB zK;=g-QS8uw%CjGZ%5(1{RH1U^9jN@_6in~g1JjXzK;_coP*m_7a^%r5>DF5L47%)U4Zv!`#s>{kxK?6tqa><_j<^`{c5-JgQ_ z>u@3(Ws|1?IlC6BcgNV6pGVu-N@3EL^u?;o8?>;S*nm`Oa=w zcN3Qs023zdi*^FCT=ZN3X%0u?^<3ufp8G$D!6W47FdKgE`p?b5AR%1LA+1hPiJ) z4|5+RVgC0V7WcNp{LdX&_{jHQe&%(!U`3(27htyQDX4t^7fsvG?Ee?cEMA3bssPnL zufT=Ry$Q3QZ-eQ(3oxDg8B{;GA08i_hMAtDFr#K+dh9Gzp5B8r-XJ=w$E7nZ^IxLx NGEjLzfy#~OzX5xYG;II? literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199605.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199605.nc new file mode 100644 index 0000000000000000000000000000000000000000..ab7cee08e887439ff5535deeb9869c2c96a9d81f GIT binary patch literal 4516 zcmcH+TWlOxbyMfzY!U)$OCs^Qs-o70-I;y*u@GYS*v><-oo0<&P|D_d=B{^=d93En zuH#l%0RbC(8|ZG6HI!BmsVGt*rAUaqB z1PMla_sqTL-t)faoPm+C4WUqoMi@sIj;*F+&l+Ay7dXM^y*Ro}?zNV>alX+rtR_0N z9p~F{biv3$1flzI><81ZxF^^M_c%Lfd&13gO|Y_XrQz5tuJkEM)>H7jVn$UpM;FRd z7N1jep%z`|gwQ;xYP!)&^tORxmxb-&IZ1P(zZu4&aV196(3XNBJ;$A=cf@UceX3Am zhe{@k_pwAQ6T@EuU*hQuvo%-P+!8E0$)aV3N<~_Vv8cXkj(Eq8w2k3!Sh-MUiYdww zVM}4nm`GJ$W5E@9GFF8Cm|Acwq1qO=OEY*(l?fe9V&n}C?d#a8VM|Yy+$x$Pr=#gq zXGRLQ93U;n_6p{F&Jx^KJx9{W#RmubVrj+J!t1N8=?-&+#fuu6FyhAhP7ScA6egJ> zf<&0AaSe}kdUQRl zJgexN&K7g4On8q>S4Y9hIQd_)CC{Ow&<~L`Yq=Ypy{^ap8{JY(gEpDW3+_fJoLI>& za_ywha~KASWmCKn&kp|KRhCL+QUh)GoRrP`MWMA0t+ki$NVau#%M8Wx!}i{YBs0nW z4o$hPYmr2MQo+btsoy%}TK9^@Sv-}AB{Qi(A{V1bsV|8 zMnDO-_b@{uwcCoUWqA@6wRGDo6H1uPlsq%@Yu-LwlzLERW?e(aK=da8+OIiE!Lxj+x;2A*=wASe!*{b5Y8PQs z%D56?N0rAFjNy6PF?ETHSX43AKw(D&-T;Zo()YwHaF)bx~nHXFc6C(@xERK8y$x6 zE2Y8?IVBgjFel%#vNGEcTV~_$#G@-uH0MS=>&Zz z(%(q@+AUzfka}f$sP85G4$LRE&Rso6{S;xEa;`e()49u@O(om#lW&v8c3sT6Ldcxp z(!;fl{FKqm&7loX5GU+~ahwi?-g6CMXP@5c>+dFK=b5!+?8L8@Z%0c$+i|@D3V_cF z89yDYk&Hv3(9UCoZ+<(FeB@7(kG?zBvtw)jYTh5#`MhLURPehZJ`jsVV{!a3>i6k~ z6sewZ6H6YavPitTTfV|~k_o?McD{hH3tJTgz8ti#)5r8}vzA?Y#)E#GjboXTbkoKlW&6Yai|HE^{}h3#s8d*<;uG zs)e>tnUTV$L3{7D*9haclQ3Ic0zO-s*$l~qwzkVS%>w*JvNgVM!zzu1IY(PoU#3;gRdXe7ZS5#)A3r>jBhW4PgFs0F5I7G+6-cTLCOy51@M>fUb zpMYxWeyBQKP<>-BRQ0!@$__yFv9Ck*f(6y_*I;Q3&;9UMP|NRz+Q17?ul)h)TgRdH z*)34BufVe(c^&Fg|Ae|R2la(TsB8P7{_qv3y}S#aJ+%w>{vK*KKL+RX7vS93MQA+H zfQDy6<8ureFWwK08;?Tcryszv1sa#epmF3$IKMOi=O*5S`metQjeS3Z#)n>l<+-%EuzaEmmQUV<<%d2A%MU&Wjd#8VjfDkhZ0>>c%iE!`D-8|fOVIe>6*zw*2j^eA z1+~mKp?2*!)Wrd4{G$%bkG&7-(>I}ZbuZMC6{vlx3bn`$s4e^m>c^jgbBh(IU$_c& z{Sm1BaSxo`ya}qmJqBn0_2m_|U;5|?SlatMEd4wS)#t9kGjD$fs^4CKGavs7oVgW- z>cU^)?8V)%c={b!{LB~O%!@xpAHGX8f^lhc0AG0!{q&9I+Mn_LI#hn}RjB;E56
  • 4nt$3`6OrejYSUQrh~!DkzeHj{hxr8b<1L?Y2GPj&n`0l5nNr*etH3l_cxTdtM=Vp6=puSsz_Clh_VApfInjR)?2N{h7)?W)^M>>scbeW2*ZS>| ze39)bnk=4XiC89vzXZO-yEDwzTw!xdu;?(0mKZ7(sVl~!`l>nN9Xrx6hQDFuLWwD+ zC`E)Vg*9d(Reg;GSB#UfBJ{`9ykiN~wzyp!!(*yU=x7pS+|bazj;$KD^i;{Mf+=!3 znof1bq;N|C(sFDsZ%*ed!EM!ZB#m6WuP+@-E4CJ1Uu{iym@6z^(9nbtH=dsAWlg6s(Ms|0P@U96Ad95J|JTyV2R}dhEZ^EmbpUjmfm&ZiK># z73~7oo)UTv!$7fYiZ|lf#6P^sQmIU;x8a_rWbJ-YXsttQ?d4mNtzX>|L$Um@y)z=o zOtPm*Q?Bb;B+-*pFtS$aw+^}by<%||Pi11sOsbE_#V8WF=V6>uHsLI{(=g40+$@R+ z3Ft&*B$?<*_cU|COGQ@|(-0;{oyGdpL@d_B#-;InwCl_(Zz^&y|7_X^LHwxWPqs8#&C)%+*Eel zbu6|I20;lo_Ao;twVR5pWqA@6wR9US6H1tk6+Jd-czI@HzQE8jO#_RsZyIuIsI7o? zZrpLLz^|cALs)W69~BB?g+lAvn()i3A8$u$m3eY<6600Z6sil#gi}%-u4+MTS6zW2 z;A(jl!@XWJltR7`ZaOTaYu-Fuka|#NCR{_uK=da8+OIiE-m`qE+BAcF=wASe!+&Ni z)GoqClp!U;4k(W+7{k-HW9kwYv8ZCKfx`9+ya5uErSFqHSU&dhN!PF(v^-t34BH*V zh#%va&=}o|k4d)6Zz24E84~UU#?W5$YSfQFmaPT(NK=px*xa0!=&sIqZ*MG$#M500 zHaZOBS4xHLaf&W(Va|B%me%jZ!DN>bUZD+z&nk_O92UB@uB-3;arT($j3M=Oo9Kjk|JZ zeWw%jok+ix_%&LlS;LU&(5*xaYr`}*6-*?eX#8JqE|<=a}9&vsld zj{@McLdH)8Yb0ZTDAaL?@U?FTl8^jJ^3iw4dUmYuU(Ne|oli@KMFqbr;=Qq0G#1An zqkf-$NRjFpH?ib#DvQLct?ny)Cz)Hf!0Xb13M?*$|c~ zNjH6+>xk#WH=6^TVSUEYGWh<~5rkVULsDtXm8f?h>`MIhMqh#(3_a&^dxEx+{2MN8 zr|oFm!2sfaJEkDbpwFyeiDI;F>w8TKq?|M+Z2zOf_Hw#`AA7X3zK`~{mAISJh1Bq! z>~Zhn?*uu5ZL&e4|D zIJ7N^(Q%d#^z^4^0=TmV_g@R<2W#^~ESP`hS^%||0ysVsKx2OZO%_1=&jBo43!u9z zfU}A2c|5^Yan(<+O9oE+SYy0|Z=lZWd>l1+T*Dv9?*gPn9Xh8Yg z$8l^x+|QwWejLi*+79IlX()g1gShrKj<;YI{s^fBG!UdW&%Kr@e6UH(!IwjWAS11x{W% z50wv(!iiV

    lc>DkpMKxiAHli=&9Y2$jxf;KXw;LuKee91%Em=7+Gj|12zh^*gZi z_M1>0+5y$4AAsuVZBR8XLG{FIP(6AWs`tDXmL7fw7SAD_TojgGzYa^!U&TG2@O7>J z>%ORvsAwd-N1e)=a+ebRzz#~ZM8^(ri! zJp_xD^Kk0$04#t0O;{csg;P(?!Qyfr7LNQC77n+-!j9LV^83HQ!pvn@x_lWH|Fr~* zPka;>zVRp=hcX<0Jg7zk>OtFTwnGJK)%{EAYh|XW-b2b1-}NyD)dp zJRJMbB{)9vBFw$-*D(9LXJB^Jgz_KGLiwfpkj`cF+gEV3L;2NnQ2z00DF5IADE~4G UsAvK-p-CV>K%un!U_(w%tRuptqJ9* z$)^=fM2e36DWSSDqH1~{(dz-*DhtcSbCTvn|1KB_$CM~d0~-pubZw_X?}+RA-ho1i z?JgNCmSXW}CW^l}zQp=7%u*d;aZ|AHI185EqFd69NNyGlk<-w0 z5qnY!r|ct5+j0v=C1(n5MO<6b$i)T*Qqi(}^p1tka{b zY2}(l&vcfUUS`5OWV$>Gmd45dk}Y`-9ff`frCH0}=4bujwN$@V$hGbji?LWT6HR2214J%Lk;q*a1Ce+%nr4#~218j&VEFV<62N3j34!L6@A~$R4-G~3 z?#vGF%0~8j>3|!|PqMn|XIa1;DI7Wx2&_i}Ml(Uv`S;Ozw)2Q9EDibY7nBKHr=*e; z+3W!}k(i`&-KuSxNQV+Fo?G+6fr4P7bcjtbj*cY7U zl6A5vN!^-aE)q0t>0&}sk&#hhyv%ijQ~nHsZ5AC-z|5$Z1shi}@WMkbZZ8%DQuc~T zR=BJe#)pQpeV*i$wpfr`8q@KxT}FkZixxr~s%RrqxCL92$d|i}8-_hiXpdWmI#iQ< z`DBqhQZS;b1fk?$)S-|e<|);#U-71vN;%%ghTaXw4>ZiYnYxHt*Ob z+Y7^>1lxOl%#n&?pxi!#T#5$L^ z9n<$~VEq`DT*E^Jf>@!@x|S-u^6JIgW6jDuJw1)_s;LUq1!c-EM{FKZ{n{RJ1crd4 z79tq#t(u_}3&mi^VIdvk=Ha5${4z7;=o$v1H}TP4%~1-j=}FbC>f}T30#F?OGi#!D zA$C9+Q$lRNa!|n-u2{CANnFIDim?U?+b8e_NKBTVPj+MZ*u$qC-L%p2bkQO0%G(ItK7xR;Y`N4D?Eo%Nlz z-*+PYF5=g20eyzlE7L=LFX1;~KCv|JXgTVq2-B2v**TBSZT74$S-O{en>6m$#FQh1 z%n2@CTKQk%6sIq&{VNA03vP({%jUqn)jNw70v=ot!45itl8P zZL6ym*g$1Q3XcZuz0+PJh~G}aXmRoRY-naPBoo-!F5@)w@m*wVeDA?3jfFW!TbAR{ zwj{>puM&cu!PGGyjx^!EtNwhVIe(P-^G{y&q53T!=8ySM-{(Vv`Ov!V!{SvRI-@?6 z&2y!`z4N-ItRrL4Vd|6 z0@wfSUQ2p{DsJ-I`)V_Tb zYHw_X6C)!~d-)R7e)T-mUi&_rc+Z!hcD@YN^RGZPb_ME(z6hm9l)5-wMZJ&p^_hw-310RC9u_vJZ>LsYxvT*us15kfF4fUUl!ouaZ!#vv$i`za8 zixm!wxTn#NBR>m`@hi~K{sfJkDOmhz70&$jlB>5|2MEWe+btWVBv31!ossQEPU~uFmK0Uf!_y>+Wm0mjpyLZ zsWY%p{TH0>|2fn*&BFYa*P(j+bldi)j5otc>neQV^)Dw>}Q^YYR^}o`oYY<0j6d%j{pDw literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199608.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199608.nc new file mode 100644 index 0000000000000000000000000000000000000000..2ece9ccec87b42278b193cafe64ed93df318ae8e GIT binary patch literal 4516 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 CkuQ7z literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199703.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199703.nc new file mode 100644 index 0000000000000000000000000000000000000000..00e18accc10dbddf2ba4a950a96cf18e4087591d GIT binary patch literal 4516 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 Wy+ZWfKAwIY@vlPpdGz(=+5Z4{DmZ-r literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199705.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199705.nc new file mode 100644 index 0000000000000000000000000000000000000000..60eb4ac01c99bfcf2d0f7c90a7573f6d91bf759a GIT binary patch literal 4516 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 UKST8wZHRXdJaKXmp7;{{8yoO5uK)l5 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199707.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199707.nc new file mode 100644 index 0000000000000000000000000000000000000000..ef972a3b521439f024646263bbd9cc6d475a15b6 GIT binary patch literal 4516 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 WJkkO)TO%;@-87W<<)OUe^1lJ@9xhG* literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199708.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199708.nc new file mode 100644 index 0000000000000000000000000000000000000000..3b0069bf8b6cbe2b2b8aaf8b3258cbee2a724e5f GIT binary patch literal 4516 zcmcH+ZEPGz^_)13b4hRur72Q{h8Cr^xZAxie;p{Y`<&0lamcw&qlO;i-LY@Uew=pp z&T&g1LP7R9ZG1_67g11Jpb{T~s+B+lMUY7S11g|YqN-YjDiTxzK}r!2#2?_j-M!1% zwUZ#h>gL|gyqWhs@4bcL9c__Fghmv{S{xfp$DT60k}hz9&z(3rOzt(7I&j|Z8CHmn zY{L0Q9BW~CH-g9-96P}@Eba+5%stL_+n#VIxh7ayxYBTJmQ;F`H0vsOUNNhxnxhNl z35!oFx=@R*^Esh;Qq^>$o9Jx>$1V%o!*i16ME?%h5l<=!nnuMJa`Vv>v%qd%q=980LS#qH7r9#dsXN0S(nhKBZaY}K%(r%G-WO_A5p zbgDBUga#h zYxU@AT6tE{H=Qk}mznT3nJ$llrE&7VWJ{hyN1-2L{jA|`boQzq`)_ok>p=z$nal|8 z#weUv$u4s3h|u#G28v}~Q?Bb;EY+7*FtV2Fw+gw&y<$n0%w!YkY-WH|O;99q&%-#SY{FT7hhduI z+$@P03FyRRES>7>?Q7+Nmx`_`rXfs@I!g?wsRRc0#0-O>93?P(Hc}G6WJ?Kw=9KTc z_l*t>sr$C)hIi-GeSSLNCJU0Rp#@nMFh>fPPDCQ>kboH`XgdFKI?uKr^@Ob>-vfd& zf#;Sqk|LKIW8>)wI@h5&mW6aE(c-zbSH=p0iN-N^$uTK7lcgZ9d%`LTmwP2wu&(U~ zkYaaqnoHKorX&q}ig`%Ta-@d|Nkc~F4C7^Pn4I!w6dbGQiUMXvqb%5{hJhC!@^E{x zAds?OOmf0wT`)Q{oa^=_r?kbQ+}4?ahn+GiBt5hc+E7CqS;8wgxH<-0irRRz$vP5 zL)l5!vDiKs1|{0u!wiYkZYZ*nOq;Aat$2=(Vqlpzvd_f&+?_}&sTh3yx310*I(-zR&peC*}Zu3 zwmXOsKgKbkF}fEIO18^yA^dbz(3xj;DCCGulN-l0;&SZE?8~0*7-K|8IXhY$%Od}+Rd3mMl>U)2Z?KGVUq@Keo zxPo+&J;WvIfRW-~l;Gl^q&=B9C3uwd{qn`IU&4_Y=!qwLk_jb<`0-?v-G;Q8re*b; ziA|a2)?)O*Y1N+dZS#nfvQ%bC)pFAsPAmzb}i{UNBx}SxUzXy zZm;ijg1!^!w-di+3m7n@UYQ>1dkMc8^NFo|f6NqdK3F42ueWS0wuriFhK3 zKSupN{g5KnGj3wZ<5U)jS4YEF_)aq6w@l~P5U#~m1%WRI?Q8WhecP;Lm#&eZA7>+2 zrX=0;RjwnRkKSkwaEA36N89i{nI{o$whT$7F<++Mfv`*QcQ^YI++gT=m)ldcjpSc* z>2BJN#vKkI{%^n(q#5*?6)aJVHf+7cq(I6`W6JhFI&3em8~CwDI~)6GZ%3KCd0j{i z-^m_ZR#z>up300AJ`LJ?yS+vfznz5H;1cjzA7(Qo6WP!#<1`EK?PP0w--uNj3v-^f zEXSd3NsP`H2tm(a@9_Zc2;u&#!F)WNA7;V)vsVMCy%fO7;{i1G2hd~zwBHM0@oE6w zT>+HgxzfG<{8BEMU)sxp`QX(6Zawb9!3GT12g7}X;km)TobwsO?DyV)+3)`d;V&D5 zVuuFKe}m)CIQ|H;FP32T<@;gw2i-9H((B>+-(l{`NvLdj3@SZeg-Z4=s8lmhdHq?K zAK4A_&wd3?e)urVU%3GDzkUNwcD{q-F_=HI4Jzlp1eHzmP<`NCs6My=r>*Nyee*u3 zezG5`pS}nS_X{|^4)MQz6skY@2UM@^gz5`tpqhFS7LpaH9xFrjX9_&?@bhpcbscJ{ z4yYa53bpgspjQ7n)Gi*w_b)@e?^jSCeGlsQyaTm^30Um;9h~V)K<%M7Vexz$)VBS} z*R{UqRj7Y{J=A|+g0mk?LH*y4z}fpAfV1swQ2*u$s2~0V)L;7+oW1vPs9$~?>W{w# zwO9WIiy!HR+7~>iw^yKk0rBlGLw)Q5)Lxs1#kW5Ji(}t_#m*1GGoKoU#pm$c^}j*w z^21R3%)7AIm4)ha2T-09aQb2=%x^p2wEe=-b8u?wPvPmGo3PM33Dq$LPGz5fr;5LT zr|ciXsgFGZ3zs**{96S$86AcBZy$onch|t2yasdKhhXl+W|+HU0p`XNF!#l~aIFAy V?kg~Ne98P;GNui9N+amtb4BQ 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199711.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199711.nc new file mode 100644 index 0000000000000000000000000000000000000000..52e1c7e74ff68701c6ceb6fff4b4191085d921d4 GIT binary patch literal 4516 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 R)c`)X7v^>^!`!`3{Tq%?GnfDX literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199801.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199801.nc new file mode 100644 index 0000000000000000000000000000000000000000..f25abd59f417e45487f0c1fab830178a514ba946 GIT binary patch literal 4516 zcmcH+TWlOxb)2WYNk~;i4MK(9lB(EfcV=hTZ$4`0*v><-9c6;t z>o^gWks5jJ7_c|ljRbAQyC4ODRQge*qCl0ZY8oMx51{a2iBbVoRVo$KO0D3WncdCW zwUZ#hXz!l6_uPBl_nb2@G}59d3XK?!tvK3j&z-h{f+=u<&s{iLZ64H@T5-NDu$&rN z*^TpEIJUyj5d_K>9EZTR93BWZ!~@QbxPkDexFJ|k_|o!RrmNj*nziSGAm6WPhGz=( ztixwiQ)qeLJ1vYrYKCcb5WQXCxkcdycuvxs=}bJedN)fY`;++V!WX@(pSgxFT#7-xwhL#5(%#aO~zH%GkZ#v8^6H>_PKGSwEv zxNxO#CT*l@Zm{5sDKb`^{+O2Y9HF@mcMFqvOp_@SO=3-12HMwiHOrNOCb^ThMb<>q zY2Kt1elbEio*U%s*{mbDs|B8WY?RM3y$gT+dS8FCmzQdQi984}PAQvkmL0KddxF~q5hnq? zxQwS$J>5OcT<}uSRmC)f$&NC(Q1qLzMxWlD{)$wI(ptRTl+%oiA1wryeY4NXICRa)~{=cYX0 ziTtW;AH|YuhbSe66$-8E8X_#OVZ5EIRpyzQ8H`ucP^m7c(_T^YxMoDPUGoKofN$h9 z4EK7?Q1iKbtm&|jzJ2p>UYb#vnf5Ic12LRL=&s9l_$ zR7ce~JE1<=Pc{Ylpv&!9iSBCGdwY`!B;MVjVxz+_ zex+2|QLo_R7UoUWZfX5qOr$&1*cxppeAa1%R+xNiGUg>lR&%E$hMu(?mK_w~1vv-!+MGB)Ga%eSX4pX>QS4h6tx zjf`K2)=0(yMcMlZ;cMRxBp>;cY;Ae4jlHT#&pZ8ow?`)JgUvr#Nll5YAY z*AdUhZZ-!v!}^S)W$2#Ha|ri1mZZ{{EmH45*tPh5jlKjoSZ3De?lf&9`L|r%N88c3 zLlMOPHcUZ=MW0#G62)lU*86P=q^z{2-SDHs4YH<%AA7X3zK`~{7P+4_g*5P;?6H4y z)s&r7W~2yd(B3=kHDdVfBTceEAEW&RiTjTpKtkPJRv$SPB4sAxq)|{UZsstGTNZ@&|^^g#IsPE`!tl! z-$$`S1Lj}vg3{Cqlv+lhq`U*A&*h+W@I9D+|C2C(Z4OG^|AK{|zX*%l{|bu-KMRXT ze-DdubFldC-EiTnI9@pbOCt_kc=H>uv|}eMWnP1&Q)94n|EsY0<`-e%&jzf#RD_jh zz62Nfx8P#y^H6?DfwFQPmOuP4T&#}3#omihuKWhdZ=ZwmwKSCPnunDiwLtl;^HBcf z4ya8004iI42$y&Fz~vp^gzCy+sJ>Ey%Y$FXwO>Q^Z#Uqw;z0GrUZ}jTLgkbWmmYr( zs$WS%<-Ko1^+OiwTJ3lqs{R3}eyN^Uuf9AbpB;n$fsa2bs84mD8f?d zUbrxfHc#15`utf~{P&CSwbKv5Li=@CIB^I{kKKUzpZo>puOR%$`0d)YpI(9acVC0j H_A~zh^&v05 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199802.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199802.nc new file mode 100644 index 0000000000000000000000000000000000000000..b6b9a331299710879605902c02303a0ba2dda34e GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199805.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199805.nc new file mode 100644 index 0000000000000000000000000000000000000000..ac8846973093f358b93d41afa0eb5e1e2099ed39 GIT binary patch literal 4516 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 Td;cRa`==?Wlp;|1tifARiZ};wU zcJ0JSu)4W#XTF*5HQ#Gtc+ZAVC`2QSqYcLv)3K)wub>N@;BzyM4wHM0r4F38dxlj< zhqmIp6Gs~i??n*Wh~oh;4U2n%4RepPy|yRZEY}1p3RfDA&EiUrl4QGco|hj`Rn5_b za?Ij0iZ0Z=>pUVfPpX=3bP>HyaO|S6Jv=9APV{erJ<+%lqiJY!&XAtt&eA*L+JAT` zS77@JCX4s5L~J02zg~QacMmXIbA`<MQ1mckD>h82*Ok3q_`w zq8Jgj6xNi9RP|LBT#+SXMd**IImZ&JZE?FWg~wEx(9tAD*3i(tj;$KD^i;{MyeTp| znof15q;QJ?(sFDsXU=9U!EM!ZB#lhGzrQcmr`THfy=s&Gq_(Cz%oP^TYiPoV8}B*V z$D&f0WQqt9VXBrbs6Id2;atT_l3p=6rCy)o|5clZgwDqJEQ@#JZy?@35bGyxlC77x z%8j+&=vrENR^B(AEoN4jaGgw7dckr(`CqW@tLsWPhZlwS5b0x$>&DAo^Tz%g-TbIP zgVveM3hqY8omj!nbL~-~XV484%O-y#o-O>tD=d{7NHs*ZwMS(=zR0!Kptbt)b;&kD zx5!W|-)+}NBsq|5)s*YH7D@Cb74)p-`mI5(5mzkE;;DgHavPj4$13@Qp$OhcF)br$Pa6EVzAQ?m?)(v-mP>7*op$(9lV z%_-k?jZX{>spBK*;k{{f+)oGGWI>WOv>?j@=1AeviBM=05-{rtn$F)v=h?_nPuM#0 zJt!y>cy2)>DbndfY%)1T=Q=dUvXBlXT0FPmoNU!|%{(M%Inu*~q#+}7mhmDtOiuYT433p|MGiBgQ50-KL&u8_ zdAL2F6G+)FCTZcZ-7qmUobK`^r?kbw+}4?ahn*rSBt5hc+E7CqS;EUXxI!rLSIepB?v0wEg56{|;sY_hMqKdu-3OgV$0wg9&|4#N{`Pk2AT*GqE z@)T$TY;WKrzK>%dm7AGIFxj8HGx^~C= z`eIQe-qWREqr=dDrBv8Hr{Lli=49(p+K7wEWS0_NrVY8z3XPB)=H=DG)xZ5Ld%$$2 zka`+Ja24q!`#6`V1A2-dC_&($q}{0~Ciq^I^u6*$uwTNF>hF%myW=q>@c7Ain5{$F zRMWEh^~9!3b7L`jBP@~X>4_#%y}e4{qiy3bL2s1Hwon@o>yCE^DC#?#xY1>O=Y*e= z99K4DWqp086ZD-(zn%CsTfl%J^~&^6-%I#ym``k-yLyKDDZ5ZGpotiieD+; zwuXGR<9az10H0+tekxca83#k5?MDb-|8^kx=srn4`tDfEj*a~*dEcS)S;?@d;CDs5 zFBXf&;`n3K@6!({Qa$4)mOM^nk$819?h4;YCj6G!{tUu4Y*i5Wa?rlkJEm`&)$Fo+ zEa=DC7?vqXk-kPa;`#8k<^X3{pK)v${y^$6gxf4bQfbT-sdpgka{R5$z63WIddB7U zG;JgKH(t7xwxe-}1Bm}yFa>D_eP#tq=49SGHG|M>60(?8!8s9sy zN@HQp(3X`rv@MCT{W(I=GuU%HfP3ojz?EP=S)U(a!TfVq0;qi_fZ5{#G!6vNWC67Q z5y1SF0J@_Al=X9k5Bl><>0o|oKMUrAR|2@}xDN*#u)aQ6-#1u4H~9AV7;S{P7ygXn za_b=9p#gK>z8%LW5cd|2cVO<~uVL;-(=hkaZ*hGyj!#4BH$Q;VKR*fO_7aqLy$0nI z8=!n)66U)XVE*fQnE%^3nEzHB=3iZa6SsW?PTccHn1B6QDF6I0lw%j6a%U%0b}hlF ziGM-m@-e8`SD`X<6c%q8g;NC&PK}(0%Fp_t^7_}Ha^lBO8Eu2b@f=hxCZTff4LDO7 zhtu~y2-T0}q3V7HsxMcdmiQCYzVKzJJ-8EUsadFPd=si)+zMxZc^=L@-3zDkS*U)u z3e}soLiG_pR-m^3GStpog(Y?eEIqXomM-jorF&n3+6#kFi#!34kJmo_9DFez6cm4;=axA9+ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199809.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199809.nc new file mode 100644 index 0000000000000000000000000000000000000000..cb0d7c474960dc9c715b8c3ccd9d63be27cf9dcc GIT binary patch literal 4516 zcmcH+ZERat)oJ>XIxF4K#KsTGRbV3#_Iq}mPfHaEC+XVIB&81RfUf4|y_@*8@56fc z*=ag{RMVu`*|NAx?4Wf_OqxJU8z8OHC?GBE5E?L$x(*4X0cD#i20~*$7$Ek8bKbLE zCnRl=;K|qLo%?aV?>Xne(7vWnC`2QSqZ!9e)3K)wFQ*Gc@VOmFi^;v(R14x;J;SOl zhi*f>6-P4+9Y7G;g5y3g4U2n%4RMdN1GXpJDXs~Y7p^oMo5htLCBfP=o|jFks^;iI zIc@P7MHgz;bxsJ)ld7g09Yn7c96K*;56?-$iT-xj7mX`1LPI+;hV&eFmfmq~>xGF- zj*a9@7Vlx5v1AN?z4#LEPBL3_h0QI&qT?)@XQ))9rWlLr>u_9m>`2`h{)V*^d8U{m z9}%_`)})D4^$jLmF-69T&>vGXjwMvv;&yHlkEya#N0S&+hKBZaY}K%(r%G;RO_A2o zbgDBcg_{o+EywmU=4{#$+*UnD(n!bq`}<=3imin=S6kB^<_e2vH8f$wjrW}DV^Jwg zGDQT5Fjbq%sXjm3;ao*0NiUz6RBz1j|EkSVp|epw%i`VmOUCJTFm|17STV%RE3f9KS|B@|v4jqMli1f3XyV2R3dhEZ^&A%0B&?=Kz!QBXj z6U*6IuALNm8pA-bY>GGH*}y-%&Qe{;uD-f^PRi>2qR`re*2dE}BwM?>d4^*7VS8&t z63IlPrd-#xNM~MYi;cE&I}P0lhHOi=>ErLkCjon4b=~$$}(nXhD_*%#p&S6QR&HBw$t(G@bt>ooB9O+>~(vXok%Xpp}Ca3%v2FJ>}B7>RH$O|^EVcRVVJD9YNe?ZAHq_8Ymhdu;E|D+y7&lF4hL(M94eC%$ z3gnYn?n=RksuG5ri&2L{MwqWuy?%98wN&z*9gKL_3L6$Rf2Wd91Pe865>Zs)y0TNQ zW3e$90wrAE!wiYkt}C*UG_|KGu z+C|ueGO9$_VdbcTF+6KKrY><3iz>z%DD05H8z3=R`aT)K@^O&QxQ6AR<>{g&*?}NN z{20fC#^_#rO0xZa3*iUMsBot-h7O`vqkaUkR5i#a8iIV#=H{$KceTg+`eIQe-qWFA zqr)(MrBv96lXGzkbEc}dw019!Bs!Gv8f_?i)@g*~FfVU(U48FQvHMJC5~-)~3T_~s zWS`{{b-+mRFG_H6P}1(MC?@z`l=MI4i(tQmqpQC=8t;zBlpx}d#KY_sr0uF(R=<(h zlxc1*MsI|5cJ=f`JG**&l^{l&$6%b^D3|S|HXzm=?+%uz@2s!wU(9_${;hNrcVVsvz*?pnZ)#rf-{#?9x6O^y6$4 z%ao*>zR7jO^Wp2w0b*F6aWoBmr0YS1yDUReX-wy-cc9g^>vz`s65L?uX_wp6w2kE7 zvU(?NN8=6!5dU{#3epVv%nGI`Mr*dd%cMX`OJmyhKRRqLtsD5UM>}i#Xm3lNyJ=lW z4d2NgcWtg(Xa|)UDSR5V_f~t2Fn&7;v&JRhv!j~LkW6T2y^IqUtZyY-<9jPsX)MfX z+OmEPZA)V8euft48R$6^zo~EWih@2Jqf9J{+jQ>ij@;-$3=;z*&_MjRIR1d+bsU#r?mI&;_re^Gy@+4I@kc1U`aTriZ-e5_i%@KR4T|}S(8JKgX|>v5Pbr=a-cWhmaU1r|T}8;Lh0E# zD2=@UrQ;p2*!)d6d-@uj9eEQL7~ zC?7ik<@}eR{H+U6i5`Z^1rsXwKLC}E98|)Wp?vaZuw42KEU9n6*_MZ){A>p-zu5%k zZ(s9ut>lkEgQFQ0=-@*OCz{t_y8oQ6u_D6Aw^sC;)j zRNDRmOP&Q~_5hSG_QA@hIjm%#f%1C>lwWxo%HvU3{?VUd>9uq4_}f=t`J*pF<@^OG zm*0i5mWJgo{{|Kdr(p5gkD>H~CtyCjw{H8#K6n@w{{CxNP<{>zzk41Q`@RYbb8&d| zrM>Xz$NJ#0?dM_f+)rTsrPRMWqFbpL-pO_gwlnWIi>0 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199810.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199810.nc new file mode 100644 index 0000000000000000000000000000000000000000..07a9276c4dcfb5a8b3c65ab799be618f384f3145 GIT binary patch literal 4516 zcmcH+TWlOxbyGXo**Fb?s0m2G1p%?!-I;y)wSZ*zIM2p*lyws*3Cs1&UGFsWSmw^| z#x0LXNL|}W96MRBC0Zbrkf3d-3RMwBR1E_DC;evo>}T zBv{SeGxwf*&->c|_?bKGfqM_l{2Ch|qL zzi6^}A4|m2F?{;*CElB6w&n_(TY^Q$S+vAZsYpXH7S&hH5%1WMrZM~tD;G*kF-0jN zY$>cs6RGNJEVv>^#){A%Q}d1`RNLZqaT1TIGNGeMjGUpNeH~jhZ0V_zTLn{Obu^vo zOiJOF0;J{GUf!I}T7uiE=SUja_~76`Jf_%Mczv}s-C?e(E+z`G#a0celh)EI)2mHMqiu5qzgoW)b=STddRLor67$UP4OmC^}k+1-X|9_D6IL`Xm< zA|uH}e_wwq7ra$;S1}J^cGOvHP))=zJxxwC7|u`z!+b|c0Fx~x1e#O6>lqs#9#+S8 zWk&X8)G-udEFCMLAcy2x`K7@I)oH^!euU5 zE1RM;>?!6ULCcXICL|3RnbVAyxM6b2pJ8yUf-CZv8I6));~K_YblAh~g}gw@elf`i zk9EWN@JOb|mz>fT3v*j%1|D`wsF3u~LTEz`ZDa{A@8}Zwa*uJ-bjpPGxwWW6H7Sr! z7Pu<~BdSUmiY^8n3K?O(QqB66sB5W|5(+oBJ~Vj!8N3l>~1bm z2aFW|q68NQCGAZ`F~9etr2i>j1p6f%slnc8ycau)AmR_l!|WEMO*Jj6-$-oAG&dKc zKf)5JzP@N8)!(lKG1@i;{nr*o4%8;iE#C*L}aE?rEyLddM( z(!;fOe!{5d=Fo-@6DRD2ahwc=Zoh)CwNG#K^*58V^~_o_w&GXIx1}MU?YLeZ1;F15 z89x%Nk&Hv3(AJ}buYWs`eB@7(kG?zBvtwibYTobE`LtwMRPehZJ`jsVV{v>K_51W7 zMXG1q#FEFUEE2EIhOh9QWWsNmt&bpV!%hW(F9+>w^)Y?htYw$((V!n^qgbXS-Sl;? zBc2am?+tK<^%=*8kvmckBHUsbl1gK?M6Cm1SK_xd+Y;Ph=vkNBQ?!lbzwOdC+K$E@ z2_XJ&!W5(#^qCbbQH(Zhz1^fh%1UF(_CGpoFRL5)u}3=_`)F@xiMv@{NDbe~9^2Pf zE!06}Mhc$>?Y-4rBaGip!fbE}_;l2>8IlQYYL;=D1^9NdHNJ1gDvgCXOIuds(6%JT z)-Mr)enWjH1Gu{m4_*!ChwJmBESP`%Y5=vT0+>4)K;vKlO%_1=wEz~b2GHFbKv_Rm z+~LnJWrF#o11y*iT@B#-Px^4E0qg5S^?gJ2b3=dnrq2i}UwsQyp4<+Vi!U?=#SRU` zy^iB^xPAr4pP}-#w?pOmYdE@b{zt^M!OSmTf!RBM4YTSr%!VT{t3Lp<^WTFxbq~y4 zEWxQA_rToKJ7KQ&BFw#V0Zwho!Q4xiVfNZfF#GO@VBuYtVWIq2So{>g!jB8EF!3lX zeC!yUeaAIe{Pty7e6#}=qnBXuJr`i%@7rJ@_bQyd+k}OG{RS3(@C`VB=6!Jfsgtnu zq64<3P~UlgGFY8GmV zyL?@1FXy24qYJRi-UiD<55w}O{|3vw&p_?rV^Hhrf~D$TVCi=cLG6BA-(H5=m%~uI z?--oRSE1VVA*fDWgyqirU^$tD>dW^)_4l1nJ$?$R?cayT!PB$5ty0#Da<_g0?a(l{|(74GeiIY literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199811.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199811.nc new file mode 100644 index 0000000000000000000000000000000000000000..fafb84d13c5a71d37b88562ade7a3bf7bd9a3cb5 GIT binary patch literal 4516 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 U&Lcbz<)6F+^LwUXe*4$|4UqmhJpcdz literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199901.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199901.nc new file mode 100644 index 0000000000000000000000000000000000000000..aaa526296a8961d25cd1a22094511a958fce1bc4 GIT binary patch literal 4516 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 Hec$*G{-QIe literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199903.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199903.nc new file mode 100644 index 0000000000000000000000000000000000000000..ee2b83b7f1d8e379a520713bbf9f04ac0a570253 GIT binary patch literal 4516 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

    n>8 zix%2LWkw1g2c5muUL%a(PQq+Z3Fz#pXEQ_->S~s8ng#pqq-%WNi&Yv6bC!;5-9z0H z8wZ}I4SGffE(Gvc9iG|<=F|20LoAqob|Zk=#Q^3n1kgAYK$8W~em8){jR3mG11RhF zN_YA5E16(^R-2)5vya)^J9WejQ*J1wGKZC{Rqp|gkK=ltXs2O&#b}fk^QimeFv&5W0Cd^!j7-~DA%_Y2?3!(vY-EM9sCmd3iF z^7b20QP0AH;=qEr0hQ1`c%rlpi!cg{Qy+tc_!QdYNy2fHv4Q87VE#9+!a{fM-%2nv A_W%F@ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199905.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199905.nc new file mode 100644 index 0000000000000000000000000000000000000000..4d189711c4600033df9d7bc84225234513542ec3 GIT binary patch literal 4516 zcmcH+ZERat)m>AXI{lccvTh)us|i>l+3)$;PSO|{Nl)4}RnxR}KbX|cy?*aHe)N5q zcb}bR6H{P_G;urCUgM}!k@(mTKx`eOXnd5Zz(5F5#IK3LL_1A@gpl|c5{y4^&U<#^ zgrp4;Jo);(d(XY+`<`(=QtWC-~fpqtoJkYpE0G9lmKd z(UHwK@4~SjhDQ)Y?!oa0Sfo85}Q&OzE==-INs_L#G zl*es8p%_9fdG5!B?n_lS%pRiG1+G&Oj*sUg&58cIU~gPg5;To$ESl1Hy-9jUT*tSM z7RzjZ*8q04B}?QC zG@a_^rSK{t(smucXies9!5!6iC5@amFffqlRUAFKy4t$oGEdmNq@xLAp4NAE7mG__ zktt$GgsFO=tOooXmva@JB>hS%uilyC|5ck4!eFC(l4-s8%V+}`EkRC9wL5VIkF|Sr zHLZNR6qwEt6U$7vMyAW7U}>EEFWHjk&{61zSTAe28=bwX$Nmf55(7%P`nY(HvZ9NmP%*R!5s_Sb4E7r7lqa;v{qieBiYu~tuPcT2-~$0 zNo7*~ZJKh!&|}H|l!B49RKHcoweA(un3m2YQkisMxCBKa_kE00$|juU_L`P;oLglP zBLUr*jHQzOef{lR@KVuL#WaM;(O`)IHJM2Cv-~83p)4gZe7YzJV6vrzKy%7>JqO2z zhSY<5vcn@;^cL&icYJkna&enZWnT zI!Teu9%aW6il>^c}tE-!I> zq7z)Qb~a^cI^)bog0?GtOh`I1vL+d?aMR+HKcnEhm=OGSZ{ zgJO~uKI?|Dq2X*#AUUNi7Uhn?Og!vXP$B7~h0umN+Q=4u(KRIUm1)jHoJ6D0>)nC}fNUN-fl{WK&C}lI&r`yH(h*s0BNfN-9LOW_g^V3X94X zJlAFiVHlL?!X9Qyq_(KYN|q;4QA=-uWm1WGS(M3>RgLr$QS(zs$CNN$NU7@<5jJp-p<*FXmcGVLY z0-jz}G2B}u4PDE#G;C^1`0bQ@CHasmVr<9WBEA1Cp^=3(eiZBGHfJ_ zks!t~p)tA_4@tH!Xd!}t85Q0*#?S%uYCMQQmTd<4(Y7ETa=0}q(Ouozu3d>Z67TC# zu+d={zfvk}zgzZj3v&z2TiUu8$5TB@bcr?;KFc&ha+pb1x~_ru3+xfg%_H?JUcnWl zlWaGar~^hya8bgGgOc{9%*~N?A0tlK3*(rIM7F+xu)R-j_4Rj?v;E9UGPdKF%eSQ^pW}Ld z5e2|!iHwhiYb4`fB(m)!;hWzMBp>;cXUkXkPBP)Q%(g2C*JG=KAdrLhwfmU9ZC0{N_h{IUvr#Nl zl5YAc*AdT07n=i|VSUE2Zuq|R69~81rliuCt5EMi*roU#3w;T0FpZqYopIVm^51h~ z2W>~=4u=r`H(?6WP5R6VmncSCw%%z`AmyYv?gSqlj-NA3{Me(Nt$nn&v%CtJreAs!rk_v4^w$|o zf9)m>iX9r^{Q1Wa(w^_Z^eeM4{pKl{{$&H_n{j*|W-2>i=KQlT^W2j#bF&L(w;q7m zhp)rzAKweryav@@^+5H}V^Gx&L-piGp<3#IYX4&}E0ZwuY5{7s4?u0N5A~O)aRhCd;;pHpMv^Fehsw~ufoNxTcP&1BGmr+5X`|Xxb(nx zp>e^0#;I9o?AZ#9w_b+~p+9J#Y*fktt|gy$>4WUx2yS z-wkut_n|ht9qJE03H9rrg2vx(A-&&1-Tx8PAHNEinNQz@nQt+)0vm(`xU4*I^kS( z24+$tP%Xa(7k={<%icpav%{tMxU;9Tc5 JI5+a_zX6REGl2jA literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199906.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199906.nc new file mode 100644 index 0000000000000000000000000000000000000000..b446928cbca3e572b72586794c97f053482aef57 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199908.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199908.nc new file mode 100644 index 0000000000000000000000000000000000000000..ee1502a4c73aa5371cab52fe942c5d2a5bfdeddd GIT binary patch literal 4516 zcmcH+TWlOxb@OWMbwVl;r4bV3enb$%?#w>?76rSxyRW7+Y{~-*90pHR~nAZl1h(~W_xm;mmg47&C!MO z6^qX(x={13^SIDFscO2>N%T6vv5Ug?@SG%^=-&q;@uZRjmV zu!9AYC3{#ZF_6GtKfWZp2bit7!seD>@o^R}GE^$oP>jX(WjL-ocC2X(f5Xy=B2!FJ zj0sx`Ytlrj`U(@Sm?C4v=#Qy6#}cY-al0^y$5ffp(Im!{p`m>pTQzLysghfHQ)G2C zo$5?V;TD5M%dx$jS;|_1+p6bC8rfuje}AG+v9;(2)$R+`)^vxt!s2-iO&D{NJtzBE zTndv+5kn$O)usxn&(C%^SJ6q*E2byayL0@%YV)wr*(fiuWHlKlh81Zk6Qb>a#h zYxU@AT6tF9H=QkJmYHykOqWN&(m45FvL(-Kf?sgUxr(2^rom3awRWtvr2KvW=@-WGI#& zwreAj9!U3wp+lN-UDsl%-n4>|wN$@V$TjX2OR{9wKq5WR<)@PbMI!e+j8n=coMlH0 z(>%`2f{2lTPE5wqsotL6RxWs{=&E8G!sMv4M8BF!BzoCoiNR2Y5*R)mlmsx@QbHh{ z@?GcH_|T9#wl_0;Aft}?>42LoNV0|&WLdx*DO@@ciEKgwW|*Mq{BAnW_MY^Fts~!~ zf--^U7BrF~lbK-0)01?rO>-;@=}@A@bL)OQkrPZbj=4*YNx_*c1bN*PR$jQ=E4YH~ z*?SZzc1CBoWUXup(y*tQhXgH0dYF(jWMq~YFLJ}=ls}{3Sb10EFf$rO!NxTVy!eoZ z+w(brl>K6o5gywE<3q!lPG53LTP(_Lof&x8DWXEsLkpn|HMEf>yqu#;zCRfnru zP}@~kUC5i6ZlkDqD z#F2PUr-F?R!}yg_VF#Upi(8m872eXuy*QrkRH93?q3~Iz5t749y3%#^y+6hFna(6q z&)^kYK|0AE;u3YhNbxU9aB)!5?yfi{_+FIsgYw0&U&7JV-yKhOClg8#@yC-bbi){o(;MZoc4`9>-O27?iTcjw+WsYd=eVDf z99K5)%G&x)C+Ito{zl^0Yyks?)GO0NeJ`zV#e8Dx+|{$xPti&!=dyD?oqO!rRIm*{ z`Gz#M=wjLxLS_Y*9?os#Cyg*SN7g+;oUj+haV8S^&~Fg7_UVnj{$6sno>@u8*7fD` zZEeVBJFb^Q0q|KO`ix`U@Q$u05N@>$Nu@Dcq~3v6m#%Mb_9eK%(6cVL zr)e9>zy9WS+K$E@4j}%wV+zs?`pgQZC`KE$e!!$a%1UF}_CGpoFRL5)u}3=_`)F@l zk-J%4NDbe~9uKUpT4Xbo87X`kw0Et&MijrDgxTN{@Yx(@Gb9sfZ0WwZP#dlp240o0UQb8;l%(y9^#L(0Do*TfZB}!PMry$aX5e`3!wd8 z0P~9hboU2PhUW@9ef(x7z;7O60Y11Gz>lBt;a~%X^Mm2O!SLMR`>*+o;N0`S#j%Lv zr;S0eLj&}$F`=^Q*HGzx3Mvm>gi56Xl~*>y z?3eC`*`JkQZr6)2`}|`tdv+dX7vF@rE!{AC^%1B%w-YMs+o2kH3#vz^;Zp5BsNTK` z)zAG6s+BTa{KyDgN*#kspZqdZU*8YaH(rJ6t2>~&y#f~&--c@T(@-^j1Xr#M!{z6C zp!VP^P@9~C+PA+5wYNN|z5Pw7Z+#c)BQHUH=PjtYXJJ13b-4ViIk>dteZ>C`^S^ir zYCm|=*R{Uu6x6eiL;WumSlD?D7C!SWSV-K0`usak`;!W_r*QA@b*L9^!@~9tL;ciW zaefTuyURE~4)tf-q5kGpSm^jO)Q|0j`sV9UJG%h$-~T1de{>u!zwlYOa^z)LU|)mU zzpp{<#R-^q-hk@v*Wl9i5?qGYVfIr`H*J6M{4qGccplF8zY7;mNVqt41kT_7Cp`17 z_u!cqPQiskb8zwIZkSvD2bkOWRhYd|hsv`TpnUp4D0f~*cmm41_CfgzB`81rJt*tL WP@X>oQa6hL literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199909.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199909.nc new file mode 100644 index 0000000000000000000000000000000000000000..f11aeeeaeaa22ace6f69e9a017119c16d7c68fad GIT binary patch literal 4516 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 XuI-ypx;6rHmCG=9?w2t4s~7(byZAm& literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199911.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199911.nc new file mode 100644 index 0000000000000000000000000000000000000000..c8e5287c14f288cd6f52b49e18d0c01497dccebb GIT binary patch literal 4516 zcmcH+ZEPGz^%6Ucb7@F{kf2tAQPdV2?sji|wl8*5$?kL9IEp`%GfqH(%XoL}+hjkk zJ9}rFR5bjkE@!80&WE2?sGQi_`;jyx?lz2Nz-+hrgSMu)|&PGT#u^i zt|64K*nCtgMRo&-MK_@Z_8Fh}=gS#=7@KlSlt-GhUE(d zrdXm76OI)2goRX%RTexkNyduNA5*igEmX(mPJRN9sj}TblbDmHj`npO)pVq-bq~He(C!sJ<&{WVG(?ZcS4hJ-W8qy5TZU*gU7B31gntHM5Jw zrLf2pF(krNeKM~G{2Z5a6`dsgLUKaAImiF2HV1{lhWISgI`Qezx_dN@oS1BM;wm0% z^ypez`F1Waog=1KnD924u8e}^aq_=pOP)hVp&w$Xf6d?M?KNHYUnmz|3$$pJ%dFsD zjN*yqogCMX2_u7Xpx6!t9Pw=6A6;Rpj-HNPb^jcb)eAaO4hQLgTP#enrXFTlz#J(&IuVI%Kmt}ZLDTtr={(yr;|s??wg&`d z0^iH)Bt$wr#>SHqbgo5rZ5!!OqQ!ITelV65Ow^8f%Z^FGnaqcI-4}LFc-+r>g0=2B zfE3%J(_FGfHhF0}Q_M$#wkv&1NIEjIW*IMV)8dprqu|;(Ph>GOngzi|bd0-rpO4#f zS%H*;Vv-g z+)#GXb8R*Z{h&nadzdMa+6_fkvpk84T6%Ss?MjqQb63 zq$P)SZqoJa(65mVLs)XH02PU1g+l8(x(Lc^5O2q;m3ex48pGAl6{-u$lv_|;uIgcJ zS3Q9t;OSWvqrFx$lw39!Z8$8XXWclQlSWu(raaTYKnx}!I;c5H*0%$xT6B|q7+e5~ z!+)i1)Go%xlp!U?4k!l|jNw_wwG4@iSX43AKw+Z-Z-B&P8Te!$mXG~>+B0nzEl>BX zhYf}?62v&>Ge-B~Gm`BMT8JQEhJ-hTF|;4O8V@3nrK>?c))3@<4!33{x~o;&wJQ-v z;$3YDHaZOBS4xHLbMqcXN5*c4%6~#*ER6|BzxF$Cy;s? zuiz@uN%jzzr~^hya8bgGgOYZ3#4*38P}2XDFNXaRj*jlmxYns9lrZAQwJ5s{X*=qc zHEt$0Wtv-yk&3bQj;^kFdq*mzgfZGQ3?uYLxoi`)0f|nnGel9}S;y^N)_0BsImz{8 z{jS_z-|2>ZC(>^we)SeGWJtX-{iyFH{1(h7j=?=6L;VzCs&cM47tp!Io(*}&43ck^ z#+`+5eNXXBaGWNgH*ly6H- zKF9U^EDC_XWioytTq7BKBay9#319toAo<9jBp-cutYydA{*}BxW$;rmK_ zvmq=~l5YAM*AdT0Z}bK@!}^S4UH|ru;|RCdrliuCDNyS`*yZ?b^|k~zm`29q&J=AU z`PX0BM%&T2{UOBvO_+jolRmS;C5q9St#?=yNEvBPIl)JV<7W&LKlW&6Z6EDzDR3`i z2&v;c*<;7rszo+ZnUNx(L3?kv*NEb`ldx)BLOvU-*$l}0yc;8i+d&#h14r?(b0iRs@Q#C{X;>`%t`m6z88u{BbC4eg#VR-4CUQ zW}tNBO(Vc5d*pqX`=<}{{vTj|iwbjBuEPAse+=`vMVKFb9p<_xpmeAcPX7|1 z-24_S+`SXZPhEua1J6Kt`-kw8((!|9E0K>3k7 zpqy%gGwZLw;`L8MCHWXs?ztB#I|rchjbFgo2R?wx4?hQ$3y(r&_fA+kKM!YSJy>{8 zh4Qm4uypNlSZZs7%JCzCu9Zu>asT(A^6tl=^4tKNO??&4ZoLE*^NX-_`5-Lqeg~FH z1z7saIjFp}2`ZTfp|Wih%9p+d3xC4#v-40H{3uioy#@=HKMRY_2eA13>#%swv#{{! zdr*G$X;^sPg)?KnfyE1*u=w&eSoq^rc;fdZIQ8eNaO#B_I2nDgZu_}6pN6>)ABXuJ zXtRsYz!U0qm_K$HN@6>dPUT?!ou9*#pLh;RZ@&elADx5JT{BSp+Z*VYZ-%}kf6{oh e6^buy!1XVozY0+N_E{+YdK^w3*bFBhOZ^+gKr`L| literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199912.nc b/inst/sample_data/obs/monthly_mean/tos/tos_199912.nc new file mode 100644 index 0000000000000000000000000000000000000000..78b56020e90717f9dd2ac16bbc4d6a265f3d6ada GIT binary patch literal 4516 zcmcH+ZERat)os%zby^D2$|jJ?6&q_J+3)$;`Di>42`BBEu1TsoWMd56oA++wN8g9_ z?z59@FjYw4IBBKWZ9E~qR5T4~Y+`IbiV)MPeV~Fm&dZc>FdAr*;_pRA(docC%~aC|%`X-@RF!GXA@Bxo9G&zaJ9y?J^^T-(nk zas_s%U@@(aB@^icJ_Goo^`@Dld&1$iVDWJlFEUgr)=-SajWu(`yH2cWj9|m+g(6cd zQH%*k3VX^zs>V7Co|q8q04c}rvs zG@a^BN#PYkr0qI>&YI8Kf;+13N*Y;hU|>K?DvloASZ&>KnI~+X*U^MAPwSi8$Kq00 zWQrIPVX8h|Py>FB%ejh9l72BYrQVw3|5clZg~3MoJkxsdNoxaXO(Q3!TAjF#$67tQ zkygH)4@~EX*)=A-L#At^V0E1QFWHjk&{61zn3iM>f1|fIblHEQTzDjrl#mzhwj=o(xF6)=Qh1IkrPZbj(Mw&Nx_*cgn8W;c3ybgFL;7=?LUeX zyQ8yQvQ{<)X*x5^M}oF1eN0F?GP33wFLKl3ls}{3+IdgpFf*D(!NzrryZDfg+w(br zl!IcD5kBjJ@uA^NcOW^XEf(dD!Av~t7EvMTqlM6hI@-t!q6#;a zo%URtjlnP|(dHgzN~CsEk@YN3qN0{wlVwtgvZ;d4W=%iG9LyIOS(asD@eNEvZjE&0 zvCd7qo*nu%vULV4RhO%JSld-k zUKs7;B)gBLZ)L#AF%x@$q$0h23krG^#@ZzAPy*+Wv@BJw0f65obehEj-x*x@8Q;>5X#Pc4`9>y;^UGqQ0|&fO_ zxwF304f{@{-$wkJEnvuydS&`i-%I$Nm`@yodq$S}DZ6 z_52(PfWK8Tej!{V83!YgU5^pI{_Q~Wkv~a3`tI1sj*b0mdG9g!ykuBZ@Vi3Wmq^4D z8a|BreR_~0)iZ8k$>UTOiC0I%SNKjc;kV4L?;zZQoeF|L4%*l1WBRsP&n{h~VL#4B zu}n$2=^I=}JRiN;8{iDR2s8IY8?o>8h=-_Ex`?@k@dJUL)%FH z&FAl;?P%QL5aR!KOhLLypIPA&#c0FUcUu%lS!vEV!AFPVXAKiS_Go8gAMNcZaxZHL zspC7@Brlk^!|BR*!CinE69csr;LG9w_;VB#E@4pST3pJ?COu)*k_rRGS9EQ_h zdlRZ>u0id-zru?16x1$_1iIEf^;4+LorBtU{|vQHT!h-+#-Mh^fZE=dU`2im&b)US zRzABQR$l)AYM;3TwXSwpc_9tUh22p3ss@z@o`sd;@50LL94!B#6RMxQ236xXP<`l8 zsJsGD+4cZbUi|=0AHM?CKVFB^o!6n7cneP5i?&&6hb6TLrN4ZmY5VdQ4Jf~R78W1b z3yW9EaI*SoSW0e(1(}D1_g;o2eG*PR`#mUEe+}g){{#!KeG^K*yaA=>-dtx~TD^Ae NWmp(^6n*{nzX2m1HSYib literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200001.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200001.nc new file mode 100644 index 0000000000000000000000000000000000000000..d2acb942be711e25edc0908134a28bb75f3b3ad7 GIT binary patch literal 4516 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 Gwe}yT_b>tg literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200003.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200003.nc new file mode 100644 index 0000000000000000000000000000000000000000..3564cb7bb9e16658fb2cf16ee0b51ed0cf022ef6 GIT binary patch literal 4516 zcmcH+TZ|i5)p<1=Z}Xsvl1PZ=@+iql_Ke5gr-j5W$Jy?#vJb`EO(+3(cINJS(s`J< zV>@o4iUiVnoekMt#||JWAru6tw7?If0;-g#AU+!SDoRB~5CYUnRP6^+QAOaK8QbwL zyGev#-oikkXgskaC7t!kk$1ZT&!*haQqW=I4M-?eXU}$I75T4_f=pFaAzc`)E zv$4F%lwKB(C1bIq62ljzC&_Hh<+f^Z7M*0#0z;)DO~qJLUkBs9V@F!X@DbK76qsc4 zLWJ9bTeBuo)i+ph`5YN5LVrxoIu@60OSSW}cuW>?9Zh1)85-Kxv1P*+o-9-=XY!1W zrjwmn!QDczX*sr+HA@+btG4Vpf<`7D!zUrxT6lA{HQiw@x73`5CXBdB@7aD972G6K zM34xRwYj|P^RpdQmC;GUD1xMZEqM+dg?@-6Skv9;>`guP-{{t0QsSx`p>Se(JEv+- zay^4#AXzrW8}V%8A6{pv?qqj=%RNtu#{Htu+Jx4|%XcN)yt)O3V)+Ngjf|rV}DyAV!jyj7C$Y}6BHd|sal%@oRPbVb-OtzE|2&R13H8D9fBu^Ym zr$*EAgr5#nlLblE(1I)rm?ODMCqkheNWg3)XgdEfI?s-s^|-Ag-xHiNf#>Emk|Ld+ zW;2OdI@h5&mW6aE(c-x+*Qc|b@#Zmi%`w4MCh|dE_qdhguIlAo&W;{CffT#KMOCnN zHhE##^UOnnmLoh&NE$LSOH3`OhN)8i41;6kT%N_uXcRb`)G+X(Lmr~%vK%S<#U#x= zb`&OuQt2*Va!Ok)tlBy=@UT-rg@lI|LK|vmBa3@kM;FLf^_Xg!PLZ~KZf)vNO$y`_ zIn@=M5mhM+c^9J&g^Vy?saE}pH?))r@h(QZn}rRFnvW?J62V3jnne&*xTEZx>sV|8 zQXqv}ILr`8?T#WFS)N2iE!`H&xD;lyd5;whFUxGq7Z_TmX<+g7O+#)Cb>y(l%{i_W z_%*a+980e0Z-v5Gq0qXv#{Kf@$J^75%3LfKFI|bQMWi6=fvdb|9TrDeO zxHoHtl*{JAZHKvV%{zy4LJ!K!yldzfh&~W(`!z?(dX_I$hh~ru{R=>G_>Z)O+C|v3 zG%iKh3F)MSFmJcu3Geech)M@?rIsi*M@ZXlgtpHcljNiCj?L`Y#9z<*VO=c=hD8OxE0q3NEE-er$FSe` ze@Kz)nQCImQ>iQxua2g#@SSABZ<)Q{zDy)_yBr-4`f)anWlGRZ z-{d;t`S6|Q03oc;IJTq?bU%&rZp#o<8Z!mz9cXv${{B{9f(VA5aaDVs&`AER*Y*=S z8aEZp_`eHNkY>!F-@Q3Vh){m46UzO0D3ARD${)Ug zV}xRd1}yyT0faBZ!aIkc9G-*n(7&Mk#6O|@k%O>sZ9kOvy$6eLmtgVzWvGn(0V<~^ zpfdk5R9?6N=O3%X`Ja9WmQpoX3cm^G|F{R14u2k&hM$3@=vU!<>Bmqhjlt^lG^`$o zLG|^MQ2oTqu$u3K)u~ru<-ki&ef$GZz3?5VUU~?s;yI`qGqC!M11rvLs8)_c_2eF? zy%B|4>g!N{zX$5yegW!FeGclc9fr#TDX9PbHq_sG1nSS7g8Jj%gWAo9p!U(9LG`z% zp?-A=>SO2N^3)Mu*ZL{MfA$8ReHQAE6rujjH=zEND^Pp$2-K99;L=})q4u?3LcQaI zP%H0*+L=kHjaYE;_OD=h-*@5Smvy-G=PyC+`tRW4uT@yi{s5LQR$%$99$3ElS6J?v zf|cGpRC^D@%C|aUb?X?cT+m_Zi@$-&C(pv-pNg<>^+e0|<@gGeUwa)EmtTa+$h&a< zx&oE=UV-w%`=EU2=TN!&1-NkH3@na*78VEIhH~x|Soq0jVBz@;EPVgfyN~CSu<)ZR IP~KDiH)`rGPyhe` literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200004.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200004.nc new file mode 100644 index 0000000000000000000000000000000000000000..e394f2efc6de18bec28f10386fb94b8a6c706902 GIT binary patch literal 4516 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 OH=%O*BQX7eUH=AB)HnA4 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200005.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200005.nc new file mode 100644 index 0000000000000000000000000000000000000000..dd2571d314084edfd4531ddbfa824f14a71a40d6 GIT binary patch literal 4516 zcmcH+TWlOxb<-q{y>>{DDpEdxTd8Vnx;wKEKNo@Q9@}}^PO~OyQKaql%w6v!^H|ND zUE7qZQHAQqrfqf`uRmH4qWPi^5TQVM2EqrgDy;;RS0D%^1gQi?e9#~y&Y9U=uZ^7; z2}XPO%)RH{^SX+p1RLfaXNPQ0xLK|VRurx@9Gk_JUM0yobDoz^sjBAaLixDG zXB1tidDl5DG*7CUZgdg7c5v*Xusu8{X-@Q8U^E(6Vl)ly${Esg+&Owj+>Tc#a|L#| zV6u2GOT<#KSSlXFmv~Q#*_tbCZV48hV9_E&r6P63SX5s(N4#T48piN9tX(KF#T3Pe zu%)o3Or)xBu;7X;87o46OwBo#P;HCbg(*Cy%7l(4F|vk+_H}I4u%)L;Zskpp(b06O zGbM#v43L&%dpUD1V+n4no+D{w5;1&w6k7{#uC}H-%oP^TYiPoV8}FU%XHh9kGDQT5 zFjdPIRG**iaIT`0q*qK%ski3%f7Rxs(AgNDWAPsRrQ!prc!HdmY3?zcq5)o{KM-k)t&0@Z@A}-tlcjPtxafcynIWt^{ZQCD3%|#TO*Q8CHtB* z<+`p#5`9SpBWtaGn~K-6+F^WX)c^IdZO*qSp8m4)In*|Xe0iB49 zBolqTea&3(Qqfh#G=#}fXR!el4c^D5<`@j6DS_eBPDuchEhPk+Q@-mOpBNfa$4An` zhtle}pANXmf+TBbL6!x~k;0`Dq0mkwVAc{eoxg|9vyoX(*gEn(E+`XtZb2g{(&yqu#;QKlC^Ob7UuS88trI_eq#JgVDu&DVvm0~hL)MryTMHN<+&AN`o#$gzg zaAOZMBvM;dWFyOysHmmeV3|y4Yiq(UuYSBeQmf1}Gcy>kx~5QFP^O)t>Tp#HYP;$R3;|cmsTl6{ znxW)#`Eb)=AzgFza9-*`nVEJC9Rtyy1ZcnJC^^sarE1j-@}YkLC=TCATc}-xO)6tb zgdJB-Dj36awqxoN7qO^ftbxLg3A_Oklcn#I!&p9!@)_5#9JD-Lv=loO#E2i`n9vyA zi~W)v^jio&V8(O7B!`7=qwDH>Kg$l7&J5kGZ;eKWE~Z@}WJYl5 z;o1&9Yt(XcXxoFt34382XG5WP{Tg9&pI-0lZzpH-nT=#@#;=!ecU?Z)alIT0fX^Bk z9}3n;#=%f%&nd#!z8y$D@+Zkh-yNITvA%yj@AvC`PBJVi_+1h2kHw;~IQ|&+`~D9p zQa$4)mOM^nk$AP%eTDBN6MoC=c@E)rY*i5Wa?rkJAJezZMt12O3;J<3hGk09P2c1? z;`#7ubAU6f&p5UXzo+{Vgu5+6QfbT-sdpgkTKt`jz63WIddB7UG;JgK@3?#?ZAaq{ z2N3_;Fa>D_eP#tq6r*)p?=vZoGSZl~{f`dY%jgDv?9tBpKHA$_g?HjC}8+`lPUfKxrFI~a0ABPF^FTO^DVuuE< zeHzDaaqSJ5ztjTr-)V>WKhMJaZy2t3;h2QQN52n?PY=T4cU4%tmW9Q4a66bvY21LN$NvV4Ke`HK=M0qZejF;V-h_(zc__d9 z2`FEA9nSZ)LS_CfsGNTRDhECQmHs!OGSmX)Bdu`$zN=8#`4K4pV+58*Tj0W@Q&4rk z4pmu%>iAty{nj$9bi4)CuUv%c<#SN|4C0Poh2;y+!iCcNpkm?L$9kZ;a~M|kW_?{( z9{eM$oPG>ewEJOY^e3<~-U8Jd--POieh14>y&IMvxEq#lJ_Ob0e-G9EpThDh`(SzQ z6)4Xhfy${jpz@2Cp!%=R!is{reCl4PeDE}se|`wcum23nPYlBO@99wf=U3svwIlG% zdt0D#6QF$K6g>HZ&%wF3N8qXPC)U`0sl$S$ZLh)7!!JT9)dJ_f@iLVDaugQCM`7W{ z1t^_N!;?R}2NqWxSX_7>7QPgP`EUOieR2s$2aZ(Tp9uf3`hMv#nE%?dF#o4FVWIbn F{{{hbG~)mO literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200006.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200006.nc new file mode 100644 index 0000000000000000000000000000000000000000..48b108459302cd9ef1ccda2bc9602bdebbb04ab1 GIT binary patch literal 4516 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 VBW??nuWg0$zplZ_BJMvq^KV4nI8^`u literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200007.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200007.nc new file mode 100644 index 0000000000000000000000000000000000000000..2cfd2e96b9c0532b19ff587e34c1a250df427c07 GIT binary patch literal 4516 zcmcH+TWlOxb(1*6-XwK|N)sMxFQjVYYIkO5*Uyy#HphA5N61D_fWY>8=Gr^WJXUjO z*D(btk&5iKFJ}M_6@=~G5lN*} zJx!W&!_Z^No|J--wOqe7$kp!^)0ozoPNdSEeMBxnk;r`??>a_C2L{xU zJ(s~yP6HL_6yk%%oa3%|3UiXEa7asQuo?yH797c*A(J3xj zGn;}mok`{+LEDu+CL|phS<{RcxoL6ApHXn_yeD#)8O@?#qdEp&e89)!`J6z?K{3e) zpY4Ltfx%2iAUUNi7Uhn?Ohk5zsF3v0LTE!BZDb2S=Nc0Ea-VU_a;FF!aBEVBYEmel z%yUl)MpTt36g-SN6f(vFr5g1sS<_M}COa7Mt`{~eYQagRm))i^Fug2Q=VzNXnDG5X?7rtks!t~ zp)tA_4@V2PN(5jB9;;Jt*ma$``|a2}fsNS6u7T5=t2HV_KBmg|wXw%Nn;6n=;Lv z#psE#WM_AGJlWaPql7WKVFX6$jdEEVwE>APtt$jk-`RleU)Fby206*~WaF;fUEk@3 zeJ9dyA%2Y(Fl0!*GCkDy5_~J>6UX45k)?i$AT>Ex;01KeH?ig{xUKq!zNaUWYI5+p{^}ha2ayH|vCSx;vrF>iK@;R>O=THEA zmdW_JaF1l{k3`y!6TJ5AK=P44Nk01SSj&#}^DBAZZ}4f!u&Cg7h1Q!$#1k6+820ed zjq8Z`(Ob;{uCPAiST}fI=i@kUwM|K-Fd?C)@{ArqCm<@bJ7VuIvhW1nE0_rC+p|vY-^EwSwl!2-^m`^ z*H$gEiOP%=0S!8Px4lLbznz3t=MwVSRLf>aCeqd@G%iAH5#V`uD?m;#4@Bhr-!n;q3f9ob%Vi+1nq^ zvW8dK5v;Fd!u6FQ7OwlRhx0?Hg1Nsw*Y^8s=lW}S{cm3n5Mbun-{5$qc~I=oz`ZwN z=DFQ9*q>nL$1lLlOK-uw`j0|s_RmnddIRQ8e+TB? zzX|iZcf;H(qcHcqQJDYW7MSmN4CXGkL+NKPL+POfC|6&CvNU1w`F2=LJOkzOdr$&c{9s=X+m;^YI6udhunbwx58?rQbqz%NL=l{|KrV)GkO33 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200008.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200008.nc new file mode 100644 index 0000000000000000000000000000000000000000..322c7383871d58951b7630595917436a2306a0e6 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200009.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200009.nc new file mode 100644 index 0000000000000000000000000000000000000000..0236c68f2e8d7c22eda60544c6f9a19c1f02de57 GIT binary patch literal 4516 zcmcH+ZERat)ooLny6p;5MkmC^g`tuZ`#pc;(-K<3anlc)rmI6%q)z7My_@*a_hH_B zwwraDGVMnkcWIn9c7_U4ktQlWs%<}zHZ-8XFElDN35GT*)=B&V377;(ln-&vd$#L@ zq%9IW`TD+l&$;LOo^u|gN4JDRAsS&E+i>hO9ec*`3cA1rJ|D!zZ*)rsp4&#)Tc z&~9As!m$m~M{o*l#c>Es!{VM`Y3^}$#P)2^Jk^(IP{oB2C3uRA0A7xMN3J#_$o=ZWNhf zieg0AQdm)5JcOHY;D%9|pq zqv=#M%a^`H-65LijN7Be9V)zUxwie!8ZB2KWD=ePZ(1Z~;-hXzGMWryw z6cHrCRBgJT`uuE%a}}K=y<&1oy*tPMt2R#vosIEX7VpDfDn68oC&-D(b|-G&v38Gc zrj=*qebd>Zw9bV0$#i`btc{cZC0p_wItu*|8DdR$qq8^l*ngv&e=E?S4JNaKyAcW} zRfBy!KgIHhdDS$5Pg%}H(+ zM1%x%A~KRp4D=7QbHPhRR~6F`CP$schEz280Gpa+Fp{AJhR-fa0+?(mA<&xgUC;6H zkrDOy!A$x{Mm_GQ18%Y)$r@UaWdU=faOp%Sv>geUjRZ~SKS}4=!Ly#Qb>w?eP$ux) zf<{tgG81evIYs9>HOI1$4kcPVx8)}jIl)Bpn7ihf6r9OIkk>t7<%P?=f-6|}!IMa_ zCtTu^wX-Qm!=7Ot60{uYVM5Z7kvYqFksBtb{22zv%DWveoTE$R%RRPhsHNLtnNY%Ps^GDb;pLc(`2s`BGz~1izG=v0>6f~k73C*eNZTj6$-6uYr-$De!QJ)ROV8tgz>6t3e^Q=#wn@}SGAzFtFFKh zaJ8I@;ohtnN%9s*iCzU4@jNw_^F?ETXSX43AKw&2Y-T;Zo()YS29G)DL0Q<5F_TL?d3#)LbAF?0;Q8ucTPWg0;~(H7(*HaBM_x~n@rI2el}@%|nK z8y$x6E2YAYIt3R|m^0nDrOkUWne0)*YqX*8S*H<_!@RuFb@jbJ%?_E)6jION72H5N z$v(>^>VT2rUzFhDprn1h(fH8N0809w@zr(03yJ4&v8p0Rx8AE7L=LFTwXRIZi2-1*q-8rAmJ#e-cY{O5!4H~<3 zG2;p$vw}+x_d57lqmi3KTTT%t?1gd6g+dS9#JRmsZ}#=~lC%BHMl!a;*UPu3DWC1Q zUJeDoXN`cOd9mcvq`0K?Fn3y4;>2G?IVo z^)5n3!SWhsFz=u9=i%nu*dK1-4L8mWzyI6ogb4HBc^k(q95f}3{Er7=Vee;P;mKuKSn{AU z`Yu#{`52sMuS4Z~^H9068!ETw;QY=ms8lb*!V4uR|NT9vc3guh9ERoDn^1jg0IHw6 z0#)nluymjgmeU1Te&lhe{^%P}eLVrys}IA{U%v(y-uxL<^$Do1rs0z8fs2a|Kuu^+ zd*LS3-ntC6KkkG2=_jE+`9r812cW+1H&B~@3|5?TaPdYRmiG@qt@3?Xx$#Y?nfrZR z>(9+W{o*35ZjHg}zALbL=+m$|k%RhQMxp-rCy?ei)IW;v#$H(6E}&j~2I^fOflIHx z47CS;4YjL_Q2+5ucs2~R%jcnXVGGpGNLYDl7p$C$!^QVM1ebpI4%ENfg>sHS?c}qt z68$GEU3wa-%2lYoDPZCDdo9~9ee6Y8{MWBwv2+bCyw(j%b17JS=3#h#@gh9`@z2AB z@Y}HT><^&w^K(#n<2F>Db7A4tr=fiQ0F=8H&S!+?NmbL0cA~cx9J?fJ56?-O6aDwWzGz&D(KOVOH>Bsd6ZDR_rssz8 zMRurYvUn#;#4@p1CLYI^ct?iWnk#H>2^Jk>(Go+YA~nTWR9`bkykke|#_%_+UMMle z6s3r;rLaa!q^hs8;EGW)R)qeTns+Rr+7`EqBX~@e2^~#hj2ar+*RfT@mYyoPRWL

    3yZ%VdycS{V#^5gdQ zh$J(~bX7Lel8KybR z&7z2qfKEh4l8JO@x{(XsD!QwfhcG+pEY_`}!P9JHf42LoNV0|&WLdx*DO@@c3N<4Evznmk{C#wu?LFZMTSvA>1!V%y zEovl0HaoK6o6&`DY!QQ@XyDvGVEf(gs&I~;4lu#k*p@qs)#0iZ)OOVs z7y_=AS25aaHA5-n3*m;tLb~RS!v(1aWoFDZbPPm)5}^H>qvSoym#S4W$cO#~pg4Rd zYoT@#Hl*|`5q4C0P{A0UupLvExQIm+V+|B`MBojOm@Ivt9K!N(n2)=L<)G#1o@Lm< zAV&Nc$9%@#k;yv9 zkxsHta)~-%r1%#lxHu?jM=Bcc?oOkm|0!Pt`z0Ky?v7}@13QW!;)mm5b{o>B>Xy}S zCN^c7TZ@s7utch}Gnz=H(@GGdn+IT!-YA!Cp*A4a5$_04)OXf#2Uhi+gMLnOTv@*> zx7T+%LEnk=n}}b%1q>KcuS^g1y@cO}`NY<_tLLbnB1~1zHRpUfx7gEMv<*M`R%zU+ zi!oOSnG;-kxYoo^7}eYy+Vm;nguO71$x!I7R}nV$>9xN8R&q9;Sx?4B{95_8)#S4s z*UO^-_^gugppukf8@!f%=F7Z7g7P6dH42kmS0F@4*tXP37ApdV-b zSf(W1^bM{fo)6#X4RD6_8ONr+dr~J6ZnF$Yr7>5c)`76A@jL2m32rd-oXhPo+D7u< zad`)AN8|Pd5dXJe3epVv%nFt$Mr*d-X;L8Nq%mguA04)r(+&LCqn)*Vw70dy-JC9@ zhVNvLog1qbYN0YCg-?U_-fpiE#&0KK*0=L+_f_GMm0&(xoj<~Y`LUG%YTpXr=wtwmBLOs70PQyeSXc?5 zdmwFz;Cj;Qf<6?5V-(dQWv2cU^_KkG}(RlRt&|ORvG) zduf=n{|s}dz5(Y(UxN7ypNIKlUxN9&TVcKl_r3lE%94}lkGf&$?O#9zegc(uKLVBWC!uokV^E1|u=IsZuvp5#`4=lN{{XU<*`UeF!S4{jhZLEm->N091yah2`+G zP?`M;RCYfM=g;kcg%@UFvGo!x@7x2+J5IvlqfuCV{$W^Lybl&Cr(oghzk%~#Zi9v6 z%dm9r$FTVQ2Vn8#Z^FXGOK|q3c{ux6JDkn_1E#fK)op*K<%4kgu~TsR)8BQe_ruwl3d|hpff=|C)4%*JOmA0Vs%0mXzjF}E&;Jg`C!qZI g_h9O7^zXGIOl|uBl>c-uOkH>prk;ETrmpV(Hz7SZe*gdg literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200011.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200011.nc new file mode 100644 index 0000000000000000000000000000000000000000..bc91e1e1af4cab3abd3a7d3c09be76c12ca133d8 GIT binary patch literal 4516 zcmcH+ZERat)%{N0c4es0BC6_&eI>|#&(F?BhU$u=p5@7a1xQYbwU##*#VWT_@HuMzCS=LXjz! zD8_^%g*{;*Rb!b2PfU`rV)Vzz{kw|Eo;^@(p)z%G{dBWy-9ZeYXwBBR8SzHQ> zOc6sOOw}g~YQWENIakq1(l4ea)LV1>ziRWaFxV)cW?B#a(prC7OQAQlRJ#+G@mRY@ zSJKM2^MUCcQCeccJ7l^v3Kqx7|AK9@p(}X~9ff{~X&P(#8@;`v%l;eXw8dPe1@~eU zPpshNx&EjyvKR-7?NGoG&o=(iC8p|5ckgcb=TX_XU=&*`&{}@^mSmfEx5!YeAa3uB zNGhG`Ytxh)h8|1yr4$UU#rmy4u6ePT#8eZ76{T<})WUBx_v+0kH$eiaSg$0nv33}z^UVZNgzfXS8;0?jGkbsZcV z98?eP%?yoX)Pq4f;1&y$tf_}t7BEK&k4{7)>yUueNYHftUOLbA9`l7`Alt)&GJ)?E zbP^(y8D~dQ6LhXacWoQ#P@=_itFDgc1QX3;-lAhta3%|3UiXEa7asQuo?xAO4ZqZd#o3XB1pJ?};2{Mzbi`n2vE5AM|m1J|~cJ zP)styXPq!MIF#uMB&W2+qTDfteLdIC2RI7d^8(J#GWEUge&BBI7E!e3PQz4=`o4_fma8uby z&$Zb>7y>2Q+QUqV)NU%WoaISW)Y5CQOe#?}QSe#G^mEL?e1VZ=Stb_Wz%=C6NJk#) z+@$N-p5p=i7l)9lA+A3@!l0;RhKT zwTrQFWmJi=!^*=7#_+V`T86|$EUFl5ps+&%Z-B&P8Te#BmX8CxY4^2M-U!qMH|6W4mQgc3&l5iQE@K-%t>WsO^j zO_}EQV)VsWvb(o8p6u@HQ^FWsa}dVpjdIyWY6B8IT2F|gzO#kfx2W$N3v!a{$<|%D zv%b>}`%a|4miV<=z>p#J%Jfj*OZY9APaK1LMwa?1!ZhSuaxS2An?36aju|B1293>z znDT^>S;3``Yis#2vyq!4t3FShuouR0JQBI<8p8HIz1i2_PR{l-%gNY|Un<|0rhJa; z`8gB-pG7i$AzULF2O^QJj}X4`?LhL8KS@6N?pVo=&HYPx?=twbWLQ-2yF%NYNW>Ew z{uuWA!4D}?J>wRZJWgeicy%;=h3_O2e#>lq65$%`R1gGm(7tvb)3?oXcIg}q`*Ajk zWlGXbU*S69`RL8w0B2aAajY8pc=uxnx7enn(wHq$>pRXFKY;? z<2%`7`^u_CHc*+7BA`Kg@3hy5;ZrwKvNK=1Jo4maSTg>ZhPF@J=G^DixgP=6+blgC479txqwLg>5`!u&!A zy?r5+jdO(^!Td@loL@P>!uh~L2=6~0z=0-gtPeEy4K&UTynB6~HbVK^A3*uiNhn`< z4a%>~K>4j-QS8t_-0z_LtR3Pm{0quI+zRENe+t*WiMT;1Uw#oPn_q)UVjL=vgUX(5 zQ2F`@%zo^7nElS1FxQoZxze9t_Qr!S`;!|mm+FH#_bAN%?IKiu(Fv8FXJGz?)iD3z zkDxaCU8ur!n7{M~nE&pVn}GVW+n|1Q1kV2WbvX0n7}Wm$eW<>D z8P5K>3(oG0LjAy9fv)w7SE2s19Z>)07oq;d6L9V`zlC!t7wX@73eNsx2b|5}c*%x( z^ggJ+JOK5*cz)qMsPZ?U_R|NU_KiLCwfgd`TITi{y0=#ABM`k*J0+9@1U=4;CQ>?GxX`zVJN@+ Z0+cU4fMXZ>?P(}4?1GuhJuoBZ{|%~%HKhOm literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200012.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200012.nc new file mode 100644 index 0000000000000000000000000000000000000000..142fa338035979a083b301771aa6784ca9afe558 GIT binary patch literal 4516 zcmcH+ZERat)ooLny6rkmqobQNt~9hIV87>Q=Nq9WJ!#ieP143uMzyNu=DnNvvG?J< z`|LCuf=X<1Qm>+RYwyRpjj;`F9b?r12?{?d6$v^~A%=v+G(^QmrNIyO1)@@gIOjdv zbwbh>37&j?-o5AE^L@`b4~BQIi9{kaqBz#!*l4-Vtm)?sffIag$I)(azp>Pg^EThK z>*&a4oNvOh4u(e%MAqVX5G>Q?zF@=L=WN9Bg*U@>!3x5Yrt2_G=}}UwBkTLQ0aevq zLnx2gd`>Zhn)BQ*3*DEhZkU}!ZxgsqK{!61lQbv#pMc$QO-ax+vLS0q-}UC{9dT{v zCbN0AH*Ybmhb0pOiNrwgqIC~2NB4xoZNcK>EM8!!RIH&GiyO=4h(-^^qr3(e7 zSfUUUjuiH^g;b3d7CbRS#){D&Q?sruRLAB{ej1OdGHIYm%o$Th`?`*5I?`7qw{w=r z7-%}xotDBYgh<0@yz zEHXt5i7-{4$*TcB$K_l_CrQ7MnpSVj@&BsLL&9LAe4c6D_#4pr2ecG=Q%kivaRraH zdUQ3dd^;DI&JlCVOn8e-mq)?UIQd_)CC{Ow&<`;!$r}DfZ?EdI|3*2jZqYiIdBMFH z#S_arIj%n8deA=kKAOk-NtKq58J)lcLS6pGyUF;FR;aF*F^TGkY| z@*+k8x-l6`C3|~%Te;w^qPvQD2(zQX68$O~yq8VSGZ;!!2E%+uNdS{AB?OvNzUv$t z9~x4}cBO|$(&|`{4!Fg_Bx~wnmIcg_!lM(B$a*AT)e|(G{|udHyN>w6F_7(qpiJO< zd7XqvrzhD|YMRcq>#l7h9ZIx#Zq0?stYD&X%v*9y3eIFc%~2*921R zjLvb%TG`~K>C7@83EHmoF(K*5$eL%oz)g!&{)~ca=RA?c%xD$_8`m-J;zK@e&t(Nt z4vI-y_^boQhlbOgf#j67Sd=>kGx4xnK!v1_7D5~9Xd_$rS=W%rm-~!cmODr2fLn_? zRFgvaWR81MFrunNA@5<(p^z~aDAlZA$-0(GA=$}@ccZXjQ44k|g;a=W%%*XQDqL4~ z#&c~p2E(94n|qikk=k`dRy>$KZVtoM&=sl+%B)*ZU9Re3ZC5>k zA>ip*6{EdTGn8C57i~E#q-R|}oRdaaW@bIpz(5QpAv&lzO4hdnsoHgud>C8+io>gE z8?}qENo7=tu?giN1!H*LaVZ)xLROr<)N=n`!xe3og1(|vf{PMf9F(-XE3WnT_oAf#DPIixB^+J--Epm3ODJK)Piawh3(|HqEo^qTu8}VzlfFVQbmFc0rm+)IKpEw5hj12WtgsIE9>|8+SCVSTB9WzM2bsC!u zG3yB-GlEMW*V_0Iv!0tHYraUFuouR0G!nV(U4*TDdZVwunVhX>R+6z5zg)g84f!0` z^Rp-bK1*ag7_O0wgOSMALxit?JCJq}k5zwH$x7uq&@!LsQ4K5*{4fSk>WFi}zWt?UqzKv{+@0+knV`0wF zmgP9KEs3%9B|^|M*mE?5yX$cO<#0Y#pC4l3{7aWZsGkkt%+U~<`$K545IXONFn2kG z-kuQ3`nmk4g8BJ$I6uFSh4aD7A-w-+00$eezCKvrH&{P6_`zRtv=NGb-VVi|P* zy|B=I4=n8ZG{p`LDE{yVQ2h8;h+hlEAKwneD}zw{$D2@m>o-t5y9tW#tb@fYz@l>i z7N5Bd7QeR_7O#F5j#WJ<_1q7o=Oa-1@C=j=pMz5G1t@+08k8=LLCM+<$G&h77QeXz z%CCJ6%CjC+K2)I6_c4^eb{~|dehw#2KL?d}ahx%rvi}TJc3y$X!^fcf);)0Il}|!t z;NOg_-HrhFS}{y(91`bntmY=hdhjZk}U5^6&qLG^_^RO3BR zJ#!ya-|vOm@Jmqr*^5y9`cL7+ce|i`;VP6TQcz953e~T4LivS1KxIcKRJOeiato_^mhK zn4E!-zd1(XUrvVcQ;9=;Qwe$zw6% literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200101.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200101.nc new file mode 100644 index 0000000000000000000000000000000000000000..dcfba0c515edf5dddc7fc4c9c144797ba919bc03 GIT binary patch literal 4516 zcmcH+TWlOxb)7hgvq>5x(uWj8u4q$ix;wMuUB8wh>>ejgLL7&zNeHxT@6O!y4w=Vl z?(8}yLW(GrH)~h%+VPf_B7xNY@Cskh6ey7j5};PC#3RsxnxBGDK|B-@9^!G%%?A@k+Pi1&J@=mXJ?9LJ?(c|1A~d2nHsaW7xz42NmkfaueBOqm%i?}>sSD?wzG*km zk?lC&hGQd)9z+n?fa5{1Oq=_HjdGu}gN`q}Jl6#)3s0J^!!)H|NwV&O?-$dms=J0z zK4J4I#Sm)Ib3ZP0U#hxc_7J^o;5udD_;^mzoak?c{c%l6&@{58U`pThrs*AVotGvG zC3dJ}F|D8VCen#SI(X6g(#+94;c#29_&AG~87dWPD#qf*syX6aC)P4XuwmswnJJbi z$Alw=owJatvBrWY@?@+S{V}!R+Cp_~?v!$POqIO`n#9bTI@;HDRMU~ZD!E;>MAksl zscudRuN)$6*YOM1bk-K!QGHj^$o3`@T0&DCJ-WWyy5TZU*u1Et31gnte|nI`rLf2p zF(krNJzr7-evZqzicXS#Ihj*$%<=!K%?V+!F+R<-KK!M%p|qAnZ)(YQC$8bKc8{*7 zm2VdV(>Y>ll?iW=>FOw087Kcsw&Xc<6#5~iv8KDx+3R}jztOG1WLj`9M&ZOtPLb=U zgptKCP;7_djd-^4kFK&*DxDf^x#yH@+%F2Pb!e@C_OBOHd?o-^VzmY{FS~ziC;=xm6M|63~sw zSh9DZf1sTUUMjk(n1(Pp8Z0rSqQM7PZkoYJh7uS)+b9WOvZaJTbINx;N5)4+)Fb;c zqX#qUksuv#i-k$n)Wa+bm?MQpCnAweNWf|&XgYrnooD+_`@%7h?=eA{!1qczNs-A+ zu;a-bo$JzF+eSK+Xz^UfixUOGMDv)p;+Pbi$x@itePI`c$NiEgSogkTNUEl&9}3a(xBL;*9SSr%+u$H0q^__)1T5J)*FCK=(g zZWtdK&GZD4Q`%xt?ikF(!)_TBl0I4pZK$J-Y~dGNLn2@9Gj3V#6rlrdZR$`>3gweU z?n%LjsuG2ghf#+@##o?KtA6!1v{cHyJ&bra3mX=-V5d?}hKS}Yhf`ExS=qej+Uy97 zf)Z`*VWvcC%ZjXJc@h=1^ja)?l_<-Vd^TnJ1?FJBz|gWR6N_(P8ggr-tB7?j?|OFV z*T|+ZEV)*IibSzOp>-Wy1m!h|w=<2(JT*0i@oMM_)dgkJEvqh9^{}?9p1=_B^n!}v z-mDo)u~3Y*9Tw8FmJb)D5tf-r&onR)gGq=EYK~Iy?Lew7-6S6d7l7jMuNfP)i?Io1 zOo_2$$_WKyc-nC-L*gP9Rg5)I*inHuKw`2Cd~yiO$6-F@nYN3Tr;C;)H8Sm*N{%K2e?EX zFj9hx5?&mXv@aFchK2@E(*Kk%hW!$b)KFhs>(dfS81cuoD7yt|Q!UFHHxipN&CSIa zh_T*Oe}B9;H87xrF}m>xjME$CvaQqxB>J?z5Ji1w3wK~e-#H%SB-fLzyK-xNryKU2 zNWYW#wOYWCA@$1iP~S`V9hgrXgL_7n`YFOR8^bas>87u9 z9r1j0xjDcY)@K|Yqj#jvAlzY_l1gK?OuYkPSK@cI`V!n=8d;A!leCTG-*9;sZAasd zh7kX^VhYkt`pgQKC`OyMzSE*W%1U$62|hX;KWmuyu}3?b`)F@hnR{77NFCqF9(S&< zT4W2A87Tr9wD(qfjVOLQ39HE^P1sl;ZtNRwoE!e*Zy%wJP&qaRl|5Tv=Jh+E@>l{Y zpE^&mLj%`74V9D6!OY*DhnedcsN6RP6;ZGQ{qjC)}AXRpKT=lfu8$0W?9cEjwSpN8u9ehAf$H()_|1!`Bm z1d9tJuyE~3s9mc=?WJd+cK>czoO}ru&5f|Q^Ovyj_W~?F@DErx^M0t!E?C^L z8J4!*3m0CQh58Hcf_h~G)C&_(|GEoL@GJ1d`=U_)mkagJejDn0lCY%hg$swz!s7WV z)brb6>C$_k{(M)U>(aA7f%@IQfqKq^rR(p7`nUEX?tZA>{smZacEN>zeg~Ew#qmZ0 zmVWvJSUTMaOM4!J`FChA|NRp%zxzjU;mPOV!qwMc{sX6=w(TjXZAwAyZXCCN4(7jl z9%}j-Soq>cq4w&VupswA?YnQn++_o*zrGID^KZe-rKei9uRMAY&S{^4>h_O8^)H)Y z?%`j-Z1*5kcITn;p_5Sk(=~Wpe*w-t{3@LL$RViIKL|75ya+R2Ny5yRe~#nj<#DlN R`JL7;;=bQ?K;`Z3zX3^AFTVf) literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200102.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200102.nc new file mode 100644 index 0000000000000000000000000000000000000000..9e4963bda38c33223caa994fc2e2b35ddec6fcc6 GIT binary patch literal 4516 zcmcH+du$tL-Az)Ox+`H&QKqr&lRzU8_MIPjdP5}pC0!FWNvWd@P=@((_a#1Z59_|O z)2suv5>gyDRr9D_!5)Z$1`>22IwlH#tY{#_V?qTXp#h?R02RTY2!vKNjoHMv(?YQ=erXIRzk&>cA6 zgQFP+hY^IDa6AmAVR28eLGE!jYlB_-JdAXFTYK|_H$1Fat z=t9l8&c}r2NmbL04#Kww9J?TF5AR8u6aF{BfoNQb(KNIxYe>&=7w8@LS}smx^K2w< zvUoR3#8R~A`;Hx{E5kpqaiPEzQxqb? zmcp7g5v#t%f-7c7SrPhUYSyuYYFpgSPvbRJCUjJZF=J?`U&mGrTY9SGR?ZX|9aX0~ z(^9yFVAFDJFKaGjEWvHnb0m#SA{L9s5{j*b-zYZ8PhxAj!(3tUoQ5ilxbg0zy(}t) zNven-5~gZ1dDW+9JDjU%BmGf0+i}_6|yiKB;yYm2HilhZ1Ojv*+4(MNmHGv&fdCt=43U#$hEe?we|8%(bht@z>qE9ZEp`rGL`h> zA6*gDcZA}AAhZeAlU z(&-5{nVhD3t(s$5h=&p_-rMowL{>0SyXJ1VCIx3QALMmUSUKTxFYgN0K6C^zc7*4- zWQ}C<(y(WlhX^f4dYF(jBxEiyUf_nwDSw8+v2w1+VrDc7f{knFc+mk5kLR)iG5f_N zEj-o^;{$`~4xe*MTP)0Nof&x9DWE{oLk*!0HPn$MysV>3q{}_VP1BjDZJ%0$I8>7Y z{$!53QZT}*gdy*u*CCS;<_lG?Ux})eN+Hp~h<2^8VNvr>DuraQQJYQU6h*ip?2PMJ zYzziL3D?gsLn5{tf^4OEVil!y>m(COm`&$BHg9-YW@ElU*D_55i?6R5GHa+chjnho zajn3vp`D{xa!r3L6vhgL+O;*|msj84j#Vr3{QNxntF9?j7nE72pgLUDg4(XS0$sq> zvMRcJt!5~>Y%bhzSxDEsaXBaTpv=s=hK`QtPl9c~<|tXu^0{i&46>mg0OW_SrY)2% z!X}haCBlv42eNe4$tN0|e8A@Bf<$w*$9sEYQAFO|p=*oc#N@d$Hfs!>{ti^*h%65b#Uxz8qv5FKW#t-{r}{tSEAbfyt|8bfdk?j(DN zOOydU#SfGqaFElk&S<=^uLn7OBYzR>mvD6Ubw%S{@t6{L{A4`LZiCy-x@Ps8u}zug z)@<}dSfaDLJDTY1=}`h7Z61ShdZS#no7#X_SG+6OqQ0}fcW^`BIqv5q$CdS1xxK#A z3HnaN-$L~2Enq;9dS!a3@1^~{m``k-yLyKDDcY&>x#^yd=N4yn=551IzEvD|=wj9t zLS_V)9mA^KI7Oi`1a0Y2=`isq|%rvQ13vy8~69s`w~20=oy#WvviF3Z@RRP zj-zr11Bm~-F$HM`eP#tqEVjGSZl}{f`dY%jgDv?9s{EIXc@~;BH12Qp0!B z$Nud_3+RT>L(hK_9B zL){V^ZJ(zNdiuMM2k<}@9=;OHC#&-*7R*0-C4kyj12}U$fX3kfnk<0!-vXGs5dr`|CIpVf82-tHCSEmub%6#-s`{iicc7dkG~AX>7PRJ11F$( zLV@CAzaihD0mVE24#kgr8;bjW2F1I64#lAri@h z4oY?ll;%dD^p8Kl$;%JGa^huJUV9am?>Yr1ul^R6Q_Zma{`bOi=wEQM=@gVkj=@?! z18cjdVEvV^!TJ=3wfFr5R$s5cYVi`Rzt9BhKU{|O#c#s;(E_ZWI}dBm{Sj7w@grEj zcn;Q2d>G0fPeJ*?XQ1-u%TW3HL8yGV4X9kiwUO7L{M0|8 z+_ns7_MeB!Gi9jU`w~>HWPMr7=dMAeryVM5cSHHLw?gI2b*P;F9F+h1DJZ88!8B=_gLZ8T~I%zIzN#dk?|N6GO1_l~b_tD+gA- z*99v>Ps7UVzk{_GAB5E}{uuz2xpuy{TUi(h_e<9PPY Qjq~#dVey4W(Z28e50_Uq7XSbN literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200103.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200103.nc new file mode 100644 index 0000000000000000000000000000000000000000..a973bec2e145d399efdaba4ad972bcf8ea00b866 GIT binary patch literal 4516 zcmcH+ZERat)oD_ix+$$-wA~Qf9k7vr{hptlkH(rrvXi!Hm5-{tsn=P4MLF^X@(Op6`3kc`&lSEfR^)h~j9+vDI>&8PhKs0w?(F#L;PSzp>Pb^A6v% z>*z=q&bQ%chmnH_BAaj=0L!$wFW3n8IXme1!pm`8u#)hk={ihP`jr&x&ij5Lt*W|f z2<59bpH&Q@7CiTHq5D$R4YP;nZ3EXS3CG8ClIBGJBd|ZNDG8cJw&YFeyWSkVBd+6D zQ~4r0RJ54Z&ytCBB9Ybx@I~uOGe`G?!)?LhlPq3hs8p<>7>gTg=7@KlSkoB6hSdut zrdXmB6OI)2w1rfSbrw94BV)zrkEwar7OG=&r#OwrRGBo;BxcUk(Y~&unvV2U$?bwA zvId$?b*H89N+HsA9Y1f)Wo^M7)psS0Y%-D15-G*eqZ_NO8!q#N%?mo3Fy?9fC-<_r z6c(8xhD4aE=Zb2;&v7|d(Mi%TrKZ)JbNs(*b4(a)oX;_>4}WQGFs-G?iK$j6uH&&* zk8Y%uZx;g7IbwE=32&3>+9+5ZC;v;f5Ha*8+I70~xpKX)`FxgT^dFwr>XtvV(JXR;XPbzj&8;c>s{3D&*u2vY2c z&T`3G*%YPe%rGAb+OG65A?e7-nq$1gO^Z|hjDl+yJdwxDXqE(<)G_el!#-{=0Ku zxi*`C5m2JdJ-jS)N2iExjhoq!MM*MW4-@ex5m)FEF$$%f#Xvn1sxHoEsQpgvgEr*5ltQ&_5(g@4UjAt4ch`}U82Q^2@`*t8zr*4uDg9|`$_+G|F z?P6?78CPQLh;mH97@l)n%aFK;MHOQW6n0qP4Um{D1D_ni@-fC|J=1p4@^sPC>|hup zL5yQUV{|V*C)sGwLIeRbF1#6xp)vGoJcvM+sR#K~OOOvc+?tc>U_T!WeCzfJu6zT(*_kfJC3x7ow=|Y~n^&^_`PJPI5ijyeqfY zce-KUiS#>&U$X@a8B(uI5B0r--;VjjF}P=Bsh=WDUCuS<0y?+Yv$^P)LGrEB=rY8N zCxpxjE`40<;3v&`ZjQ8li8x^|jN^19^3gvbZ0*w!@@;R(=eVAq zM*;9zCFAjMjbt2(M0Pw%`1-d4$w&Sq`RKc2BRe+sujPHW!RI8yqJrNQ+TKJWp3v~e zu-^}UNRjFpx3J`KDvQLcv*9azCz}vcS&AtRTm`2v)&J1lM`8Qp< zgSMk_M?#4ITQLRcCVggwOBACGTkp0gkh0R8ae|Ky$Iluje(cfC#y;BHS>j&S5K_l? zvd8X?Rf}w)G9yJmgZAETuMx#>Ct)?XgnYKtvl)_!Y;BftnuYidvNgVM!zzu1IZIpC z;?TAv#*U{6LC;YC=@9O(!^11#{AhjtC=2J0t%Oj2K7_f`Av6z%&|)EU-U?x1C4}B+ z2xa|TaZfP6lnLjT##lHXS_$F(rvo_Dfc5pE`o5w1xuLh;+DRLseC+E`KKMAok3+fp zB`DvYqu8MV^Z)!Ily@d!{@Tk>j=T=#&+mcqp~s-i5cfhCly|)WXWsZbRNAgUW$Zds za>t=!z6O=oy5Q_H-LUYq!cU;GqQU%n32>ibaLcM+=JU4iP^U&Hxxqp-B}8K_>0 zK=sHJEML9|%cGCLg?oLd{jCbMr+*8zEB}HEyb2fg<7mGVYQNh9wc_ireEl9+KBdA_ zZ7$SaIRLe>ci_SUuLQc*vd5wJ!oyJe&+|}w_*JO={2x&Jb{fyz2g@h!f@Su7SpG#j z)E+=OKUsn0Zz66)!eUPcEPm&GSiJWhc9v=!nwbE3>Lqo!QwYI!{Qah|K`(( ze*zX??1J-Gdtm9@zftE`VaZCs!eM~QC*Fk0eHEC0_Hxtq<^CT*`C1IlTz(cRKhD6} zclSYM<;zg+nuhY7UxCW+zW`5;JPBt;{|aY@9)a?aKf?UQA(($|2hmwQo||1W7cl=~ J56r)L^}o=UE?)ou literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200104.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200104.nc new file mode 100644 index 0000000000000000000000000000000000000000..7c81cea66d445e0d33cef0c5707aec356f079016 GIT binary patch literal 4516 zcmcH+TWlOxb(1*FW|K52xJmh-x=29mYIkN|w&VT5<~UFJ5oIHX(4ggd=Gr^SJXUjO z*D+S5M0~6t0eNk_D?~qvfDcepMJTGMP#{vFY7w+W{Di12282*V)doZ(l~BPsGrOC$ zv6BeFXz!l6uk(Hl3>?}N3WaDyaBRV`-E`~;!z=0nC;05a5jMHkSPJ93%`>d}c4#Ng zci`9p14j{rHsd%9reSeUumSFIcGUKSJI*!1O2URn;6_C||Mo zq@oM8;5ui8=1Eo4jZVV1101^~Y!B~AniKv<;7}}~#AzDZmN%s5xKs3wdu=bB%oo|Q zqRA57EE&(l z>WoR@mV!;ovAw)Gm9qr5RnL($a>;l+5l<_&7TH*AO?Q|pEMCx1g;6)ref|K8Nnw&I zqKJg4+IUg*>DdnFDjG?8rPP>ue~SNCX-)~94e=?K=)zwn(VI!6$cU*{Bd%kyR*P;V zm1h-v)!AZljS3%<=vpsW?I-_BvSc|l6xt!0W({+ru{X5Xe3I-L0DyAV!jyj9?s;KZDHa5keKT8P=pBBQCPp zlWa6KM)$&+V_ArY5-r}_^zzBPV4`u&U3Ez=R*!sTAk6|Cdn3B=eLndFkS zk||2Vo?sp#v>fSSLeh|sImLL18z!gx83D&CxFV04(I^QvqM_r(`aL{e$P2{m7n7{; zSO<*s4`e%i&M9rN2)A`+;AN+T0!a@wggVqvN0#vNjxLcd_ZT-#XOgykYAxbWO$zvv z1@2102&)o-qKjUKOh%b6RI`31>ryJEWG5rqjlzaS%|EG>Qo%-JHilCa;hwPLu4A!b z7yu>GJi`o$*zO6kp5}>Fl+taIOezsJR`l4U;pLf)`2tP4~+_>Xf zfn7sehp^JnaDO4Af38$nwT-AcwuDSwUz}509 zx_hH$D203>(sEfy*SvSRAoZZkOt^-Qj_6N3Tp=0&<_Ce!w<6-N*84( zl_4d{PAI1o^x-MnF?ETHSX9y1Kw-xPMu5a*>D%NOmXAR`=^B=Unx{a^u%m&G_&$ya zjZs|em+Xk&Lii3dB-{z~p+U52%=bW+tvmV27ANnwxj7}#Tpfu62jVeA-rcESqr=dD zrBv84r|9Al=8V^)v=JAhsZJ%bN*Z#XH4-5@%vS4#t8e{rcGz^r5PKFwa2@U>`#hH@ z1A2-dC_&&Lr(Nk-qPMpPIsH%mqS!CtNcVQd5?zV75_tS*BElYm+jLX2`u*6ZO!Hti zdZH|u?(U8y(>*;(;GU^%b=i_<6nXN_J@RM&H$4*^LxI)OB z;L^jjHh$iy=jPC+FAyc{g>hU6g&utiVQZh>=<6TEXX~Bycx>HY%ipdBf41X#d1L^e zRXm;!)`-WxP-yoV+OK~*5PxJ(;*Y*NHqv9`{94*i>U>HvEGqb2kvI^K$Knb6G3@vK zA7Z3>#!W1FoXR563O8(p@5B>+%j|v@;TCLF5cqu1xmFv~x6OKb=@<(7aW;fyN>Ze6 z5RQ01a<4hS8P;bUn+Eo#rxEV53`wOiSEAm5c31DWH~SJiVCXrQ+Y@w*_}_fJosOe& z2Lg!y+c5=c27P7)OXQ;sUGFo=k#f?Qu>Fq?+so+&e(cf7#yL70E^#-f3#s8d>0{r< zqJ_3mnUTWBL1!Pf*NEV^lQ0`p0y^93*$mNywl~W-&4T?l(lx&Cz$%S}IY&pzF9h&V9Ufl^=A-rb85YdHyb?g|N&v?%1kgAhK$8W~z8%2AN&wv>0hIN7 z#V7pv^=vS|KFET3-%0>Kd%=f&4On0AtDozu-|PG9-~4k>{%9wZ|M5P|v|oYp51)kc z)oJn_8c=@mSt!499m>~!1Ld1%@!TUYvo{RoyWfZM3@WM_+~cb2nh_%40D1_+zlR?G>n0 zFT&D@4U2!j1C@`y1C_sMu<*-wV5$3ESbFp`uz2GauoU?iEbX}si=XO+g%4hXrLAXR z@pn(d@~_Xr^0^w+K7JgkH^-oQ%Qg7T6=0g)JEH(cK#;R9^VbMeK(+b?T=91Uxww`i?G~<@a;TQpVEeU zEPdm9u(Fc zA(V%0KC2i)EqLw`q5D$R4YQBvZ3EXS3CG8ClIBEzGwhCQN`j`5EqPP=t~W>Th}-zm zWWLDu6)mO>u>M3Qk;rI+_@bpV%+WpJa9gnW1dEp#Div!f#^T1RIpSR>);314VdX-J zDV8Y3gd>GLWg%5#jRj9kld)p-$JD%Q3)Qi?Q=GzMs_Zw=B<8fKqkUaRH67`zlG_DK zO>P|`Fl|rQLI)2`o%h`fEs_#k~x&A~#OQaP?kFKw_Zn(@7HZSOC!kDKG9No#{ zQdne)7!qNsK3!A;evZqzicXS#DLJKHpX2{koBM>p#`ql5()i10Lm4eaPE2+>aSe}k zdUQRle7g{s&JnY#On8$_S4Y9hIQd_)CC{Ow&=0XRYq=Ypy{^ap8{LvkgEpDW3GT%x zoLJE*aQ#7HrnNS}K!BW>Q0>YJwt>`##1gWfRVFyG_eF z#I2%;k$`SY#*+Pm1B0Dh@KVuL#WaM;(O`)o6%9Vfrsf!oWGR8+vyGAfCR<7fG^c#m zH$E{kqK@y%j_%E><3T#$77LTCsfSq>Fh>fHPDCP`kbu=p&~*M2be`=x>I=s}z6S+m z0^cj@Bt=Otg-9D~?IQnJk8R-4}L2c-${~g7xk? zh!p#xvs|)HHbrSVGt5VVwkv&1NIEjI<`^$=)8dprqu|;FPvkK(nkB&|bPT-sh>zO~ zd4ZIJVv-d;>xGGt(QIEJIi)QY<&MEjJnWWGA?c%q(1tqN$QFLyH6-%oKI4|<&JsG{ z)}ap7q)b63 zq`QE1Zrb(i(65nAV_0&n02PU1g+l8(x(Lc^5O0q(EA#B^EXJ#$D^wSh8MmamT-C$c zu6hDPz|-?8hI^}KD203>+HqJ&&$@QFAdRrh%y_1Off!6ebWn4Yyl)3mb?YYiFt`8| zhyTdhs9lUrDq~8F9aQd9Fox$G*D@q7Vo}9d1BD$BcmpIR%fKi5uzc+2vz}?YXnDG5 z8MZf!ks!t~p)tA_cS*JyxPO{H%i8^4U1Q#W|I4Eg471xG_22s-glrM(;5{}eRI@Hygyy)cgXNaS6wBkb(cTYdeFedo$H9_qt}`PoMC;&v0?Q6sYej@*rue?m@855K-iV|9qqmZH<(7w zoFSx+?_`hL)>kdEh02T+0S(%Fv%N+Xznz5D;u7-N(#&Q^CbG3%#%UJfHd%I7dOn2afe>0Ogw9(b zEL;wuw3Hqq5Q3%)1cU)f$x`~{EUvH8_MUu0Oi*{1m)lV3(6NiiMZEs{cflT4wYIrRDN&{ zDz6ox^2hhWV!8_!-+39T@;gxd@dct5E;y+fYCLC#Zk)n^3>^Jk(1H)Q_S{rxj=>Wl_; z{RwCsdm0*d9)ZR`_XN5wKXewBk6nW0r82^A!18nrmbW|%jpAWAeK7~8zx*gPKK=?c z>OIg%AH%gXaQZ91fZE4ih58-uf%*$6XuSO#EDxQ5`qe?G*Kdc~&wdTH9|6=(Jq=6G z{}pOK{W_egZo<6^)SoyB^$(wblhqkGaef>g8$Pna_LYOTL*<1(!{X$dP)&5hi6yk% zlNVrN=~GbIdM{KDUxAZveFQ4!u0Z9nH(}wWhoJnuN1^;(^h@Z+RqzUwzkL|W&vrri PoexBD>n zTsut%Qv}l7B&DnKaDK3AKPYSxbd-W%qg$!8QKU&c#KuD!8ZBi)nuH2S2o0u*@4MG_ zoshIaf-4_?_q@LM>q6h|mQW}}BaEXJ$41k!#|*Ei3!LDy4M&^Fz4}rc&ewT{Rof12 z#`z{3to}@Y9e;@3Q#+4XNLmTpj^c;7B-f?f;3q$!L z+gCJMJjFU<=~yfs@4}aOXPViXD{O8F79C{K5<{UPb-`FvUpB{m$Bs0V;U8GKP-2QH zN)cg8VU3uGRbOGj6{DoA2>mfN?^r^$Ep8V_@R}++bX18kYG|lm$5stndaC4B!4x?i zRi`>5Qn;mH({gMtZ%*Va!EM!ZB#m50EEbQY6k7|gF1DsS%oP?dXsE)78&4hWW>G0j zQbh!jFjX5Zsy;p2;ao){Nw1U`QEyK1|0>O4p|b%#!Q!3xOUHZC@gx~B(QL#OEY@t% z)ui&Qg0DJTj4xB+8i_9Vf~9`)za&eRLqnk*A}LlkHyV3Yi~TpUC29(-5t$I&jgULB zqFvzHqe9Q28z`1d{zf#L=!chSDw$4pH_Y>>ti>0()+)GGUcM>XdgzuIvgNz&+K?pD z2|xbPbx2aK>sq9vE1{rgEtPK-boIDmaTZUeV~KRKheVB$Cvwk2Kc#HKS#Gysn#0^I ziU=|2L}Vn<(Ut0Irh-95p^9k;lcUaJJt``^i;YY$=*?0B!)FsE0Zg`(5NJ;MuKmDZ zZ?Ae_SGI3&Rz2XS18%Y)$r@UaWdU=faOp-Uv>p+dwFFJ~@1^@}*HKT{I?_EPC=+;Y zQ6nz0*&#NZ7@>P@nqygrhY~H`Yk7GnFPNxbbC+C`f-_kR^13Iif^fN4bOqbF>kwjW z507)nn#mNUVUIBn5n7J)Fd=D3$eduj#0`^E{tSa-6lLhWd!3e7ohN6pJhfGG8FI1y`b=0I(N*(QtXx9rH7B&B*Qc46H_1OqcQG^@9 zj=GM;4nQ9$;l>$eNW^wSkd-t~tfG`|gJg#iW+O$9jT>H`*_bcTwM^5%;_Iu1%o=Jd zV4WLvTr03^X#D_|T+`nQg|R}Rc5O}g<<%e0&`JRo4`%3(A;NQXQ^pL2XxE zfiB=`c@^EgUNe+Jz7TG@ETn7RxLlBWP-ezlLq|vSC&9K~bCkSi`CPSW2HDUL0P@3k zvKC4gVMEG*5@Cmw!wUNFgzcER#6>Ks=xd;`g90N!VzTsYvJcD0em?FRmV=t7Kufc| zfsgn;jtPxXTM}E`mdA<+vgNrJi?sOT9nq~VmQ&RgqKJ|?z2oHM2FdGrEvAFKg#x)&In@9VhFCl zon#Mii87$4_<<4x4szO=jK+IT{ zHf5Syv(Xh{9m!NG+L7$)QUV`sJphCBM!9SwwE?ltcxSLheP?5@e@Wjt=;tKIm5o?g zTi@vfeJA2yNAwykU_g+1WqPRZrTs0KPi&pLdXD-j+Ntrm?4FP37H8HMZNpE#H5{9D zG3E*(bAn3`*Vgf)MlCmoS{@`y*bC#B429nRJA}=BdcCi|6`##_R^qXFe>s0!>ipS` z>*bLFe3tO|*{@$`Fn&7;vrZ+Tv!RyF5KU-fqm0um*k4Dw#`jHFrLi#Q z=*aRt)Ge{G^$cy$lSxemaCZ$Jyb{cZYx9R$Fh6o7fZDkLj!p*9I2b^a1oq8!J%}TN z??0tMzC#1w-@x@G!e2u9+xJ8H;uMsB{2?e`xChs+<9HXQVsF9J_;r{%eFUbS{whpe z{25HQeh;Q!)nKMG1vAAvVCL>`z|4o=gqi+VVCLgzVEQLlVd@_*!PLQPaO(BLaO(WC zFuSQ8D$l(ImAev9`Pj4Yz{Zb25e{cn=3vWR6p7pSheH-Rmo`K5w zZm8}^!onFm+n4iYt^WSgu-N)CEcR}M#S_oN;@3Y9i-UQnp4|b}Z5LtTyH7y%gU1l( zYfycB5~`cCuyDBzW>3Edb1wkQpZhW_e$Ix)ObF&@GcfQp#18)aD2-#IR2ea!tuxd@NZ~GH0A&R literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200107.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200107.nc new file mode 100644 index 0000000000000000000000000000000000000000..4146a3460e0d758c0a5dd02bee13c54ee09731eb GIT binary patch literal 4516 zcmcH+ZEPGz^-?>Hb8ecdBqXRQ9i)=l(%tT@@9c{&EwcOEG>Kw6%2^35MVImJ*tcXq zPCI+&m>`rEfxnvCj&o7p#x_ob7RZ;f-)zu#)hk={ihPx|Aeq%lm#IqpG@V z2<5XjA5#pW7CiSeLieSr8)iGvYX#RS3CG8ClIBGJPS_RKlmty9>++`bU2mM;5!ZZn zC|_iIix$(mSVtn0NMy7$zG$5p=IEYqxGh+Gki|<3m5S9AV{v2I9PzFbs~aQOuymos z6ibw1!jZxrwvei^!h$D8$XGG@V`|>Dh3eScDGuW?RdyI?5_81V(Y~&unvV2U$?bwA zat4}Cb%&+!N+HsA9Y1f4=WM|p)psS0Tt_0ICDMwcM^{%{H(cfkn-_F6Va(IIj_zP_ zDJ(KY42dvRA1SH5$PW)xG?u?cqCng)6xPr$T zJ-V7!zFi1R=ZLXoCcI6i%cEdvocu4@lIPG-=!aOE)!dEFUe#m&jc&=RL90y01@~eU zPORt@xPC+!ISd2Eb|~J6X9NG}GE1d0sU3Cq9Ff)gMWM9{t(BK=O15@&OAN&d!uIxv zBs0n2{$uEnrra>}SVuakU}P=TZxwR2d&M-Sr80?RCe=-HLFqo;`Nd7mk5^4+zQx zzE{*qifnd>9ZU|>xfb2EZKOkq7SFA@Fq9We)Q)*ej!D6pEQWdA7j{8-+%I~9wLNwK zDYi$)xMYoNiqdpOnU4f*SNfQcbYx_WGhX7R#VLPA!L||p?tEyJt-JbRiaSzFzQgq7z>oD*RPJMmP)Ckoe}R^VZ)*p>{Lq05K)^A;}li6 zq3np~+H3&&K#A7(FjFG68;Y!Cc@h=1^y(}-lqef6`fSYf^UT3~fuUttCKlhoH00Ju zO9AWLi0j#*Un6V#vE*6-DiXyCh1PX+5tP>;-i}o(^VrxJ#;c(#R2P&{x1_pU)x+AZ zdICeh)AK5Zd#z?Dg?u5}a9Bvsx^cK5jj+s&dZvMa7)(NRP;->LZwFGf=qC9vxBwJ~ z*RwWi7h^+8zY=2yltT)}@VMhzhQviIsu*jau>AsWfW%}O_+&4Zk9~a1Gi?_wPZur2 z_JlDK#5g82M)%?&$#w@VL=Z6j!W+dH+J|0^2NB4!)gT{g2=ZQsTjLVl)u!#(k%%Ml zu66|*9ft8MrNZ{QMGvWsdQQiW3*`i2I-A**?MXN5}jISh@!r;j@!MY?;H$rlIzL( zUAeu!(+&Ghq~A>Z>MdZ%ka}f$sP85G2Fxdp!962K{S;xUaxOa;(7DB)wMEAal5ds9 zU4|I-gpfJGrH^aP{HR&Y&5<>qBu>~1<2W9P-2E$rjeUBpufLU?jb~Ppu@S#qz6~|` z9M|*nC;&c7WPBoABN=-lk&RCgzWVJz@{vDDKKkxh&5pJG%Xxp);Ny~EQNiyDZAT&z zPiXjK*zX5Fq)7FQTUhcql||y!Qu7tQlT7$6v+*>-CTvv@1ai>6Mjz9+%}RD@>ks>J z){kXM(oJ9GI^y~0jphJnSf6pM>HBc%7{U#Sy)VHHrjhfwGfLY? z{yWZZqU~thz7XR7dQ3sONuOEa62)lE)>|wJq?|NIo#3Ox@pFcWAA7X3wvYC+5BlW+A?rY>n@&Sf#Nr z=V;4v9NLz|*!UtL=;`S?9>QH!xc^ExKUkeV#lrdFDwUj8{ue0x8_ zi?u>Duk<)biptqJDZUVu5V4dxfV z0Q1SMF!$2aF!z&B!0b#D%zr)&^Mj)>uU&%qy~knxkzc@^{65TX>x8*K8Zh^pL$L7U z*Wl#G9)$AFc_^Q~0F{qC1C{mb%_fUCs5EeH*0E_oN0hQ)gq5OkmaO#U+g;Nh*hlSVw1Shw@ z0}IJ(P4lYhPjliS~ei8o$=iNDOj#G7p} hdFTB&_Q2#l127r?04DFg4<_Gw5~d#cDNOaX{u?qvG>ZTL literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200108.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200108.nc new file mode 100644 index 0000000000000000000000000000000000000000..fee622d6f63d5a8ed4581c150691d493fd4a152e GIT binary patch literal 4516 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 Xp}g=Ml)v{fROI_msa%1|g^vFK+fX`@ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200109.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200109.nc new file mode 100644 index 0000000000000000000000000000000000000000..aab27ba0ef059eb21b58ed5ddce933c411327d35 GIT binary patch literal 4516 zcmcH+TWlOxb<;SFv#CiWN}KXQuc}h)YIkN|er+q&?s3w@isO(qP74v6>zQls(0Od; z&aUHBX@dmG?vljoIJ;IUA5c+&Dgp?8Kcn}6XIKq% z=q{XZ$FUhk_8|z}f#V4<4U2n%jc|{%eYPjuX|4%Y6s|NJo5htrCCR#To|jLns^;iI zIbrcxMHgz`bv`3BPpX=3^bo!6;MhfBdw5RLoao;Pd!lhAM$^#NoFP5OouhZeb$ov! zS74(Blg0a3B9@ND((wU&iT9?Nt+~SHmSE9w7A-PVD$-PpMfFv4#5;DRWek7A%7r3R zOi_#oTMBE+M5_843$B$*Fonldnb6TB#w4_J(Jk39XoJa|;BJJ% zi52WT*Pa%77Q;ZXY>GGH*~UM-%2KIx%D-d2d!Ck!`$eI(4z0D9Z%MX!b&Cwe^22sx zM3U)bf19RU*R@EZKdE43t<-NFa?N|i;w+v@$CByPAd!nvBy!KgIHhdDS$2it zhzJSjL}VnH=OpZE>4XSAHel|77U^qhw44>_k1TfiBLZCV2yPgB% z!^7%<-I&W+zpiJPo z1&yT0WG2{Ta*ED%YK~t7<%P?=f-6|}?n6ki zCp^m~YiCoChCRbPBxpI(!-S+EBXf@NA~#G<`7;cTm3KuBGow)yY+S>@iw=9ZJ)aXu z*)Jv;;jwNQA0El{_>xoFVqtFU%)rA=5fzdiS_o~Zp^Yrzn+!HB97hJuSxheAe}uT-mkB^p{P#Y7Jy-p#^>Ma|!-6q5m>Ih(>Ms<5o= zwCh;x0E~bVZtY=)L~6^5tYvu;6}5C*EE7tYO%*&gYj`OAG%EA#>@3Est|?R(lo_X}I$YI)+OE0+ zL%`K?Du#QrW+?ewKHPR#NY`9GoR@k~W@cPN$3XNa0ot!QO3t%$>{hpJq>(&J{dA5_P~x@h?hnaZu9UR5U&~*pHI_r+g9YmvE#8d!zB*cuWZ*eli|r8;~~DvaEh9 zu_@EsUX1<-OQibxqKQ<0zY@gg<^wQJZN{Jwy({|8aX%+Hu58_v zjrE;Q(03yJ4&v8p0Rx8AE7L=LFX6i|pV&Hg^(^&MglWjR>YPvKHhZ=dY{O5!4H|dp zV#XChW(AiXu66L^Mk6CL|Wc5=3#Sxd%t{A&5Sn)2C> z>*Y`Yd{)T#RIo-e4uwKHju5`_?LhL8KS@6N?pV)`&Hbx+e?;eVl3`K7?~3?9EEbK$ z@yD>=_kT!{>KQk&a7cApUQ|6r>sSnH4Nij5ck3uStQFmBx(ie{|ShRyXitk9Icq(caD?ceA>X z8orY~?ptBlhuz;}?X@qIg1X)MfH z+Oislwk0uke3cON4E3D~;GPCNcrBPuHs(iIFh6=NfZDeMIDIOB#=!uZEP(c(1DL-S zKzDBdW#e37mp{Lp3FepgvtT}SEr1W5^5IYuHr9t4`-U3lhW>J+N*m$KH{M)5D0XPz z`X6w-zl^{1GMxG5PB`#6N@na z_}^jS=oMJ#-2>I1z6aGSk3#iVS7H9Q>asFfb}b*+E) zeyE>22}@lbEIo1tmJYoJOCRsRc?#;Y??QcN1?rI(p+5CjSo+{$sDF19>5s!=)rMNs zgW796B?Ax9)r^9-#~fv NO(;M0M<`Fe_ixs6H2MGl literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200110.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200110.nc new file mode 100644 index 0000000000000000000000000000000000000000..297d086266f71e483c2c9892dde9706e1754b80d GIT binary patch literal 4516 zcmcH+TWlOxb)7iG*~CpnAE8jt1+}RSyEFT;9j|!UJ&yArwv(*oKndDj&s=+_oyRhF zb{!`l1f*(hCvog}z5Zx^P$SAKP@q*25^B^`NCibvfe4VIl9YT-!z<_lC-}P;M~lh5+ENS7n?1v- zqC;D7z8S}Q=-Y!Jv<}BEFb#`)g7tBavpu#a+%c{RRurx@9Gk_JP9@3Oa-Nq@tE%Sc zLOE*j2}Kub-gTZ5nkQ9FH`#nSN|_z~|&Gh1_o%`L&ALo8Zks8pn;7>nvF=7@LfNZlCzhUE)I zrkJ7_5w;Z8sEJhdRTf+^M#hTJKc?m!OQ^QR?ZPM?Q)NO&lNe)$hW2%A)v%?fN^a#% zk=4<3sxvBuTMUqvV|zJsGHVHLtDYliWD~JiJRVbQExfkcn(i=HSUj(x2_tU2^T-Ys zmBJ)bM34wmwXuTg^Rpe!RdkZ{ipf#+_8kAO+8h!(8{m^H-hqGVcy~IUA}1yrow$m} z8a=v}R-TpjO=pXV6(+n(rYoahd7S(&*^=kbQRs(AJjQDNMsKg_vj0Z8WYwZoE|Y@0 z5sD{Pu=8AdTIgAf1I4l_;D~1f|L_V^rP3+?lKK95T2?O@#nu|MR$sm?+1lMLG8D^? z+q)x@Oeeb}1w(7Oeru4cT`U%7@l-mNOsBeuT#Q1IdmaWVr4!Dw{f23d zaI+vHB%l+Kkz}H)v#XH{-YUAQn1?Vs>MYi+qQSe^=p=*Q3}rCPca#J$*-}EFIpw?d z!J*z>b#P~}1!aICy5a+n#7qF_TB#$B}6!|nN; zK+1kG$q0|N!BB5srrnpE(iRJITW1Cyc8aKw^w2_RLk(?Y2`}g968UnEanp1r2<>xg zP={(#AfL>0R|-Z{l`s@s3_27t!hEIb^(#@;QYj|d8S$GrO0ZQCs9#Lx6U%5gxP4pV-tp#V>adsj4abMu=x6>A-9HF z@>u7_9M=l`8rm>`CD-&(p)gh`w63iQzr6bKcC1>NCnhE^Ty;&Mx}c0ZMb+V|7Swjt z6&M1pmQyj>Yc)g3=kno(!$P{|t;2b#2W4j5HFOL_e-fbmnxo`A%a^J}GsuVj1)w7J$8 zo*+j27{`3Z=w3V~*>1mu@B?N*xZ@Z@`_QXVKLS~%8sx(bLEdX~b5f$a+TuHQ#G**N zvt7YPhhh9msj$6H!No1i8LQsX+PxS_wkzRf+EDnc&*jr*nrr8w$4JC*LZK zExH(Yg^*dnrH5>o9@yu#6HsV*x*IJX$ zc3dxq0^o0%j9(4bNXDK}XzO9ZSKkgKANiByqj$$zcC77R$@^0}pOg%X3cf4iJ7TeD zERKH+`+ffpDN;S-CYC%-Ws!Kb)O>~CBon@6ww^_}9y=8Tz8ti#(Z}?*Sobm~z6Vps5Vl%|q|%rzQtLq2<@o#SZ3%8L^sLM6aoR@m zue)$RZAatw1rYyl!W5(#^vnvDC`N0x-eyuDWu-B0`;QLW%jyO`_Go8qAMI@^ayP3B zso^)-W82!Qg*H-|k;11zd+)Z_2;Sdf}0lt}Rjo+KGN@HQp z(w3Dtv@MCT^&BDS*VB1Cfc;gt|5`8~sm>3xVE*K_0BSD;aO`*hjr{>MSpe<#0+_!R zKzDZlW%XR)WB&X?CYWE?$AWp!wE%8E?!%rMtgiP|_w`iI_5A(AJZ*&1kFMajhT~Fg zQ0&lv()r&*>BkS&*75sYDE;gQQ2NOYT>A^+BQW*K1(>?I4yLypgXxc-h3T)T=J%P&LagLj}}Jph$;r=ik{G{1NND*t#J zDzlfN;vRy9dyhhS-xE-_Z^F{XqpT)LwVtSD0e;t<+kTw;ki?A=G-f=kh=nl zgG*3;;}VpA(+Uf3z6+0Yf4Kf{qro)` literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200111.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200111.nc new file mode 100644 index 0000000000000000000000000000000000000000..af8d100d9a323b1a9fc3cf6d5676304be1d92b3c GIT binary patch literal 4516 zcmcH+ZEPE7*^tMi4y}-vM24D(j-+KWlXB%UG84Tx88?! z@7by8Kvl)&Iw@RQ^;4K!Am1PEBA6`}Icp$bjotJT=5iB0MR&vR$H zPDt7!ft5GUz4yHD^Zj)&v~@)&6rvTzwGvmC>DW_-SJXLf@V6dUr>T0)SDm=;@C>Vg z4&90SHMmy7&@h6~9k?C<)38*Jvmw<}*|6<#H>YZxmAESm$7YJuD<#bxO5$1T${;yQjX zo-eZPMUyGLEFMe8VriuhAC#Unvo)97s>NA!j73Wfm5MYKV^Mw49`TMHX&J*mu<%8R zNhU8vxGlIfX(Cm9i5D)E>_x7=< z;3ksgEg$+9Wnh-VxB@FG(s(@8(ceE;kbjRd3ET87rruWw4WnY$&1V)=1< zdqfiHM5;|wRoAshJe80zv=-{O47p}vF@-6~bS#lh_7k}ng`(UpnC66P z7I}mObRr^>h^Kl}?OZUcC|9u#VRh75tY1chr`Tkf!C;0e7}h%~0$6ORAkd!bUH9nN z;GjIZB{MXfkw^Vbl3R0(Vuf=yJAs%PyqY z9iCPNYiCmwhCRhRBxpIp!-AwCBeTrZl4_VL)z2_ER>9?Ytc*s9voQ_hE;{Jp@j{*> zWxttZxW_ib*x*p6+n1cm77MGk&J4Wllu#kzp@qUf$6K@>M;inx->NXrEh~ zI@FT_`9wi=1!qK63PaJwphF=e%vY+_zv2xorBb|`5$|SW!=~n+luC&J(cDeq7FD>R zY|eEoHVQ)^gM^Wv$0-aWSORc&DS>#xi!>T zz&@9ATr2QvXw?X|T+>H|!q}nEy0*ss_UgymzD8%Bo}R{V)isIwf;8onWJi^?pts8| z#}II}yo}M_>={xaUkJBd=E5~^TrLPbXfso;p<^KWn*iK|b^ofa37I zjD^}o*tj$zMc6LsK?!5HY&)hd@Fg}?j5UzhPL3HMuvq#&*^cdFhdS*VmV=h3JWI3T zAV&Nc$9l#nFE$Cb%^xBBfEnTL6vogF^lH?PK$d9)`FLB958A3(7U-_cN?%_rio|=n zB^-1Z#;*_(+wK%yJi?q@BTJikF_Gw&!V9#a@L8l0lEXr}RJ!`!&#?zgXA-GrFa?*8 zPO$q`fjVHM_=yrE4ocdSj4J*8DU|d-<%{6Fge%$K6IFVYm=r|(gc4@AA#Ji{S^Z{W zQ>D4J7^w)0CwqIN@nk9`1u?pE6vpU@YFQVJ0kIyXCqU8M*}`pGFn5mmHOX;BD_3rB z?sS5=6X|ylzt#vCFr-yG@QZJQ#+^E! zayb`St_ly|b*OudMr{tQ_#APDy*0yKEi_=5aQH zZAwt4FO!aVKYU|0z#aByTq}m|O726r)-nXO#%zg32f{AIZ)lArc)-xJu4+%wF_Qm| za~tS58h0pw_`eHFkY>*Hx`7{ibh3Gl&UThmH>-1@ z;WOFe?&Vbrt)@03xKD%5-tMds#&0KXHn{|RRyV2{k_mOS+Boe3dSkb zBa3lpTM}d4vxK1EK=1wlZf(GwmxKL8W51gP`-d+FP&*O8-2MO>I|FF40NVcuVBvBA z-E9FBjeEt9`1^C2V1I503-$w-19;zl9}YBOS8_cZ#KFqx6z-;n3%zoo1Fx&SG%>49yn0f0_nBDLQ%=~o>WgZjk@ymJQXKRg4+Hs;}&d=Bcr-VOECbvSx{ z7LLAl9qKE82KD1#gZiT@pxzgS+9?Kel`fc@{yEeOFF^hA9L&A?7|ah3!F=CeVE$9* zVeY_Qs9h<;+?BWCN%$wse>)5Ff1HK+^|SCq=hJZLVlN!3T!qS&S6a58`O<4JbNY)g z`W^R%lBM`*{^;9s&7s~^~x?d^yw4u#QkqW^+E?!Umk_(y=&p%$A1Hr?_EH@ j$bmn}r>9S$&nD2v=)<#{(5Ev{dGEt;uzU>;mWuxdN)17$ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200112.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200112.nc new file mode 100644 index 0000000000000000000000000000000000000000..93ad6208f8a90ebee002f6f0aaf3a30dfc48d21d GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200205.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200205.nc new file mode 100644 index 0000000000000000000000000000000000000000..d5de66c4f563af7031d1cb246fb3c18340cb94d2 GIT binary patch literal 4516 zcmcH+TWlOxbzM8y*)#;&s44WJ`;k&x?9S}VuPq;TkCQkdwxg`&q*c|;^~|+*$UIha zXV*3r!BT}bwwvPJ#%r}yZ7M1%AwmjDBUOkfKqV>!LMZSPHBy8S5`whh@xem^&Y9WW ztc{%*2}XPO%)RH{^S3 zE|f1?d`8iQns=Qq2+fnKrW;*EZwEMbQP>`ylQbv#AA|kTxDumjs6A&$&vEDI9dT{% zj^_&OP{CyJ9+rruW3hC+A7A3#X=ZD#u(>5zbc{ud43&!16=P9--5l|b9cdWD->`O} z$P`l)Bf^%#nlzEBzQKYkrpQI`~XlP%@Rt;Nvs^nJQ z6j>cjr#h2TxWxczIkuNG=dzaIw(2>OMm7W-cjowi)#jMc*$AIw@oxN~2h;e1PE0mCaRZMv zdvr6cJS*>;&K5K4Ot?j+>!V<8ocu4@lIPG-=!Zx*tGgSWy{X6k8{JYhgVvbL3GPNH zoLIrmbM2(ivls@7WmCKn&nEuib(Tt{Q+*BhoRqcuMWM9`t&NxONVa};iwwo`!***# zlIdh`lcrqPwMe2jsbD~@)o&AW^?SwQES^folIfJ6PGS^^-19I_DVuPX-EWxY1UCyJ zLIOGw8A&F3dwQF>;H9FgifIUwqt0UeDjK|(P0leG%uoWuX9pz#OtzE|XioXAYjkXI zP#xWu89JCzNBwlbO%^0sLkqGjV2%_nod|`tApx_Npy~WxI?wjadcxL`?@>XSz;g>4 zNs-Bnvx(#+o$JsX%R)MoXz^UjkH&L?iTW{j%`quBlZ7C!d&0^KmwN?Qu+Du)kz!YP zhD+AWrXUS_nt4dja-@d|Nkc~F9OFf9n4I!w7#u6_iX3J}qbS&zhJhCy^l*DVCy=sV zOfte_oiH{ylf0wvto!wiYkZY#2pIw`2 zSIemw?)93X|hWh zevD&6V{|Vbmu%Q?A^d=xsRj9XQ;-kZ+?uFiO0Uo48md%6^C zbQs33lnOiK6kOcGoT=I^t>24@WS0_NqYZ`6I*pJV7P^hDtMC0OcEEHdk$MKN;0Dr3 z_9U0614fE}QG$zul6I$}@&5i^l=MI4i(tQmBh}v>jd#amN)YiA@i5zhw5f(=^*f18 znda_d^hQ`B)zcGAqZb@(lXKlUpUz$OY%AD?pL}aH?$yP# zD}>AnE+dFK^O=ogY{svbZ)aUT+i|@d z3V_cV8J`N)NXCIsXxB4@uYEg^eB@7(kG?xLvtxb#dft!fd`>bfD)?Oy?~BEvu{i!1 z_WS-1DN;S-CYC%-Ws!Jw)P05TBolti?0OYpE4C^Kd^u=evybW9W+S_Fjs*QU8^JOq z>85XT9r1klc5{F;tj{=Fh8{>ghj6E5NGgrlBJ~c0U5nq{=u2>ep=VugPt!J%|DG$m zX*(KsD1i9C9aE5I&}UY#L@`>o^&XP~DJzX>+yCgWy{vBF#~$sh@1wmPMeb&GAvJs_ zd+gaL(mbR?N zp>0WwU2hVCo`IhE0Pe5BBR7KiL~Z^I3+5+o1W!z&WC65q1u%ajfbMVr zW$j$yL4STF6U?t1X2E>mMgTuE@56yQtgR2!_6^j|4g4wW6M)jCAt=53X(;_*7)syz z84ZdZ8c;g_IF!Eqb%fWTbonhPU40Nr*Sewf{=>NMDvpm}!Og(Jr3F}ce-;*g_)S<0 zWnl66S7E7Lz*6=lSi0~NSo-qUVCnfNEWNe^mQFkii?_vx?_!gYq zcM7Ve2G!a7p?ba#s{i^ktnPUhsvo@ptB-shs=xa?RKIi|tXy~-&i?#6P`UmlRHrUM zwWS|cA5HtZu0DAaR%c&@)vqvEbv}gE;geAP>tU$A(hJr2KVjuO!ojDZdhJ7~CMICz zy)vwfCZOEDFG`LYe=%NaQP zTLoTfi9qEdK>07raOQhg;f0%jfEPb?{~Fsbj{g!C+X}EacM+D(48RM&xeiO`EI57a zvvB&?kHOOC&cT^?Zo$IkhhU-d0i3>g7E15@82$AK(Ls0}{gy*`6G|6;f$tEke>VxG PpS}#IyLQ9rC$9b*Qo}KF literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200206.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200206.nc new file mode 100644 index 0000000000000000000000000000000000000000..fe941f0e5d74094f07679ee5099573e2e235357e GIT binary patch literal 4516 zcmcH+ZERat)ooImIxU?<*@l2|5!Fb9{hq(#w3enNJ89RH=7YL)W2@v{zjqx!_CBn4 zpY3M-LD4!nAEm3?#2M3ukSN*@##k8|sswAHLaGoGn*c$@s5*@gP1*o~5TXK&bKbLE zCnRl=z{<^e_nmXk_dVx47}>op6bjJ_QD#De9W3#xDR+6l*=y|1#s%nld zl*cSyRdk`2T<7yb^Q5ZjMnCcE1;?%k+rx8`_Qd~vusa%8VzdoyEE>{t+-Z77T=%&H z#WLGlHd#E)60uAymWl7ghxkB-*_tbCZV48hV9^RgqarQCSX5uJN4#T4+RpF^mcOVl z#T1o@u%)o_CUVtRdEtrzIV(c{m|Ao!q1qO=%XvJe%7l(CF$#u;{&j5Cu%)L;Zk0@t z)6sRRlb6D+1W3!Vy`njtvjn$Q&ylopiC8QVODnb(UfXO(Ly`LOxVz@!YzL2a1A;)-iY4F)28c<)E&6!YT=udu3O!zFqr~V}H2H zCF>MZmWDmWJY;A&(!+wJp&)ab@d`IgPW3Ykj#Y9+5i6rn5o|)k#ETAlNM0%m%dl}a)|w03#iq6ycHEx3-w z#$g1MaGQo161iPBWHrx|s%WL#7MW1OEMN9m)$oeU#(IINWts*yU*9zp)=*Cg`&_|s ztst(U4P)4HO&=8sV~0ZT+M4j&tDkR2nw_~?tzy3FnnHa+nQ|(s!&NQl?W!v<1zfGD zV!F3_hEgh)!X1Z&bj|CBOHvQo%#>^Bn27!+K>IyMDSDQ#RgY#+4E+m0dH9d4h1Nyb z0cA{yu>Hyd3g+;%?U=g6m)KM>*Fa&D0&jrCV(G_ZFSd_;yy_a3gPy00mSLkoj`%r_ z1&z_Y_@rce{1L)Wm@(l_VGixXs7Cz^WZ7ntALvN(VVj%N62sLO-?1YWMds;#1qU65 z`75Qu_Bv%3Ntjb;-qO~+IGF5L!pp3o^jTpMvcpEV+I97#Utsr}P9C{u@d~b@on-fM zi8f%S_!lL(IH>7BDjMIpa}YKCPyHe|FX2k<9EipT;xQ%2_=E8tLJE*B1}`y73X|DH=)^3whh1dHhFB;#gr?A z%n2?%eAmqn8_n7rTK6DH!dV#C(NO69Zy@ZP(_3@>&GhU%vzm^b_?7x?Y3XM>u2)0_ z@V89I&js&D$DvSY>mkB7za2a9_FX!kmJFK;epkeI#A4A{9RC>3 z`~Dwtq<+RtYY}Ke_Si@l9f30 zEvd2f3?b+@ls+23-Ay=oHP|0)?hmnG|H#zN=DEL{ztyC;CM zd9Hk?zrTV zee)wwd!d5xL8zTW+8?|FweO8X?d-Ei`3KK^rQCGb^|_~D;khL^{m>U- z@h4?y+}RC{@lj|zJ_(KIH$vkpXQA+*MwU=P= znZLuShyMu+pLhutX5N9NubqV@^Ho?lvJDnK_)9o_@4w*G%in=h^?YtycfRo_IKfU{uP+b zd>iJHN8$KKZ-WyLJq>gBRAKG|lQ3I&3TnSP0k!j&p!TibL+zC}Fjn1AyXZje^&dm+ Y@*fb_3$@p-!3-OQnXkVKGtYJX8#%Evl>h($ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200207.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200207.nc new file mode 100644 index 0000000000000000000000000000000000000000..dfa814d2bcc659d7670d3731cd506891e0800d14 GIT binary patch literal 4516 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 UZbGHD09ETcR1bGT_2g^+22-#$VE_OC literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200209.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200209.nc new file mode 100644 index 0000000000000000000000000000000000000000..498b7dfb24087a8c6779f58f6bb0a8b62b008a85 GIT binary patch literal 4516 zcmcH+ZEPGz^^!P^b55FyMs-C)7%DzuakqP4{<@}>-RGon8plyCBt;Ee$Gc3 zE|f1=d|c6mns=SYh2}|B(~SYI8v7Y=}>=cqjhS@!quW&3LleiA#8_ z*`v#8(bha2@WWrlyx;P3J#>xMZEqM+dg?@bDHJ`n_Ut7Eh&P$#klh$i*lUx#wY=Qa0f%yWKF& z{oE{w2npy!WF(pB?&@ylf|rV}DyAV!jyj9=s%Y?THZsAWKSK!&pEgPYm~1H_(46vJ z$L`_&es%Y@%)nqq-R-9XZn7ZB8d{KL0du5q=|m{B8VQ)S1Wo5ZPUqRSL!Pj8@nscLCcXICL|3RnG=i`xnXk3pJ8yUyeo2;8I7V~!x{!&wBN(+ z`J6z?elf`ik8OeB{(($~FFB5LQF z=hmbS)ucc^ndhz)jHoJMD7YAPC}f2BN;T?NqNb%%Omr~fT`z1{)cl=FF&QB0vk{!4 z3fGk#bsdZCh5=B*jXlheNbR~JOIe;oMJ?S1%Y+hUBL$C*8(xmtm@hE2Ow+*P>zjt$ z8fwjBof~yrEAVS*^$?a^(?^BESfS9mwkG`Y>c`vRT4f#|AIEsrHHGSeGUgOjhpSpp z+f`R!2)J5K#c;3J3?-k-hno%y>6+IM=cOK$nK9SUF%bPpfc9&SlJhKIs#eV)ANm)7 z;_&^9h1x~fK4nOWu)WFw1!H)^c1&I3A{JGQHBi_dfj2;6vh;nj6U)agKJFTpgO;a@ zmS%%NjQBB*360Uc_>^Qj{1(Cwm?7bgVGQj;uSWd{WSLr!?`sP3ew&*U65X{W-qRC{ zBJr*c1sffP@hhdmb~*(Yw=ie4c1!E`Vt=wj2`|uw!e^02NDlMzQrFe@{wRCMbViVR z2Cv`}(n#` z8kW^>BsOK5n~TvMVTn{%S2U68?pA^rU9}sA>5X#PTB=&H&Uj~lqQ0|%+p(bU9QJdP z5kG zZ;i$}U5vRx$gJSf!?hNE$f)J!(27Th6ZXP5j)X$DzlpH9Pp|j&HK>S~eDM&NuGb>o47_Hm7-K0RuN@L9SKRRqLs~h;SM?35LXm4wg zyIEaG4d2Ng?aQkcT0><<3ZDk;z13bLjNeYetaAzYtf^%)BokWODC0B>@GWF(d~d@l zjfFW&TNdNcwj{=e(}bX>uj@zvx7XmF%fWnqZGMmi^T#d+Q2TBGM~?*1*b_jL1<-yc zfceV-baw<$*3K2~_U9Ke!TiE57R>uD2k?_eeAriqwe`N*zP{SIzQ2FyG1>@|XFd#* zFJH!SsXi!nXdv!kTzflMKhp`5ubhO*AH-qu>;+tV7x9~+^!*Q@bnP=RwW$ZD+TMk! zgCB#bpMM3WpT7^LuRRS%?|c!a&s~A(^Q~}n?It+ddJd*%egjjpFF@()y)b*_Ehwu! zaQw6b*POe%+^`I-7>-9X3?&I||j8 z+hKnFC!qS&cc6Or=i%h>4yfG!W2pQddA;;?nBRo+Up)(zFBW0$y?bEp)K-`qY=sl= zU4gl_IjEjO8PB{5m509#bFqIyx#d+TU;HbSe|8O~ZyRmc{@7nO!pu+3!i@G!I5u@Z z%zkex%sT}H literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200210.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200210.nc new file mode 100644 index 0000000000000000000000000000000000000000..726ee66d1dc689f79e1fba87d7de58deafd3eb04 GIT binary patch literal 4516 zcmcH+TWlOxbzLWovw2kz8cXY} zn{mDgM=SL2LlC+J$30*g7WV|}=N@PKY)`o3TobG)TxmEqiz}T$o#<@>$1V!n!*i16ME_P8h{lx|O+y=UhV&e_MDK`O_wwOf zf$cAtEZ)fyv2-k!PQ>sf-jQau<_eozf<=c}w8&7YNL?`&)mO|B@7R%sG5ih77m7?V zMKL05DXcLQsp_jNxMG})6`?<-<{V3?w#Dtj7#>q)LPwJr* z(R8XaCWTuJkd|Y6IkS|t1h-YskuFCFhm``(Nvo1M6d$C^F5 zmR6pX_f2Pu$rUENNv12KV0oPUFWHjk&{61zNIb^s{zh-F>9YSuxfERsv}lb>NpLqp z@x%&to@_-V)=1< zb3~HqWLJ}>T-UWoqARIjXf4-o4RZC1#o{cUO2?AvR1cAhQ7CfH!$75U!dZ5}FwIeJ z7DR*ubRsg6Omua2HFLpRMRyhR5N1c6#d=gUco!QhG3d)s2E%+uNdS{AB?OvNzH2`? z+}Ecb+?(m&mr)P;>42LoNV0|&WLdx*DO@@c3av*1W-UR}`8(-6+k3+w(br zl>K6o5gywE!+rgkc3*NzTP)0Nof&x8DWXEsLkpn|HMEf>yqu#;4%}voT*_WSORc#n(3txi!?5 z$2vFexK`lT(E1@Pxu%Z_g|R}Rb!|=f<<*b3qqWLBIXQ{ps%r|>1!cl1st#ARpth^7 zzz}e?oQlz2uNg`{mk&1`7Sc7Z9nMQVC^HkTp<^KWlK}1493|&jzEo|RK|b^^0L9@) z84IKs7;B)g5rH>AVzTsovLDOG0Y2#(mV=h3dzNPV zf*A2*9P=5YdvTX!gMJI)2h5OgCoqN%pjV@Q1hPym$PYIKd7sVAl0DTK#VyPkuieu6y%X#J;Nqa99jR!%r>6@g{ZIKK*e~Ho^>jqz9oSI>5kDFavzw4M)v&C7 zJ+Ud%+*pjR2uq|oJEMtISCuE8>wi;I^rDxiu%q5Zg5%OIqc^o$CZt{ za&vvB6ZD-(e;x5_w15Fa>XqrCzL)S@FrU~ucl9jwQ-rC>x#FBp=LUP$7i_~%zBL+~ zbur-zA+v%@57*Z5BStMZhgu#WPS^|MI2HOk_?Lqepkf1W3gx~ zjz5O|zW+mtRL{7HC67~CBwlTGU*S8+gx@mTo<`V;oeBb94%*l3WBRsP%`SU}f_|J0 zVVRP2)7Q9;cs_isH^3RzXB;j4x2KLG++rD$N@KQ2tpj0~hc|ApUQ}6r>sSnH4NijMiak*teq=-(x0Ep1oLwTSTOIs6u{3M^I>lt*4BG#`+95VdY88M(ncu1_#BP|lwbI5 zeNgPs!1cRv?Fx=Jq5M)Sl+Pxi{G&fZ`3H~U+FuZFLFMNHD*t#1rgm|(8JWPLg2TVP6J5)Y;6J~b)31+lKnEmw( z%KASQ}_M`W}klyX46YB^Ii#NySKq?s|_>h*WlE{AHuBiFPM4jpD_2W zkHhK8d02S$Yq0Rak742RyHMS_0M&OcLe<^{)j1uiCojOl)!ShH`6poR)1QLb=@D4? z=`%3@K@U_neAU;rdi6e7-10sw?s^>-H|>JO%!9C)d>^V;W}y0wBvdyqK{fsrs6O=x zsDAi6s6KZTs@mOf`n3?uum1(ipQ*y)UEhPnJNse&fhx>D{soxt{0_{`9e}y z6`0ci`R<1Kzh8#=um1t&UVH^kZF~|=W*>!A~|b^^>=ua`_1;Upx!tAHDe))ys{fAzd!YFpXfBj literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200211.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200211.nc new file mode 100644 index 0000000000000000000000000000000000000000..8ebaea5787c682657daf8010ef07901b8d9157ed GIT binary patch literal 4516 zcmcH+TWlQFb@R423E=}J^ab~W23y*l+1Xut?d8YjI3bB*JIaQnk5t?1nY-SBd93En zuH&YnkxFH+od!RWi4aIo38aE3rD~BNLLv$+A8ip7ic%^>BOy^0scA~7P^Ch9&dly+ z?b=BywWGaz=H7GfdEax+z|ihBu~>{o9LG8wotEp2n|{?0IKk&;932+-n@b%yU+_!YgrIu$u6s={ihPdX)_8D*JvVud2Fh z2<2NgpHK{;Ry_AUq5D$R4YQl*Z3fq=3CG8ClIBEzBkWFUN{XhjO=VO1t~W{Vh+BW| zP`S$XRV}9VvUDn+O6Aije9?OH%+WpJa9gnCC`;BDDwSv|#*)UeIpSR>(K1H3Vd+AR zDVC@ugd>GLW+7E$g#}NP$XE&bV`|y8h3eScsgB_>Ri+IziCHprw6E)^rXzh-a=T)Q zqJgGU-7zV=T7{$N#G~M})zK`6SbN@R!&6^PxAjOuG|T@L0P? zSJTS3E1~HeF|o{qH^_8(6fBLC|0P@U96Ad9kkB;N^f!8YRhRuY%4O+VphX*8CI$Br z6i=+`RJeY>Fp3xlitSLq5zjXM@nxpU=CgebYL0%tY+NvktyO5PynIcv&AVG;C{`G^ zH%26r&*a)P<%Xdr(z%R+p|w=MRme3j7SouP&8IT?Y(J4pQ7CfX$3UfY!dY>*X<3K4 zRTT*m&`rohCY|fewR6E+MRyhR5N1b%rTSGgc#e%tG8imS2E%+uNdS{AB?OvNzUv+t z9UN3gb`^&97Sxe29dL_9N!HY(EDM+;g-0i1u?z7F_7&+L7Bk! zsyYc#C>&ykGh=kFLw9W(=}@A@b8B8XR2ED$k9kXuNx_+{MtR*Ac13vHuX=)Y?K+4Q zyWT*?&YP;$Q z3;|Css~GLgnxRz6m3Z4>AwBEr;fge(GBfU(1_oj{iO^xqQOdp@O4Xs8kc1Rgk66~OIM8O!IbX?1jxQIm+V+|B`K;R9Km@Gq|?8EZ0pHFzE?V{!Bp5@uz zC`Q5<$9%@en6h6x|LUNdvSGumD_e<;^%N;}N1-ybQ zNGI9dT%rybDd9zlE)GiClTB*<{W+BMKjlkczl0;(-;>mOw3HG>{9!H5Za~^>%d*C` z#HLJheKB$gmd^I}CeztmPKjc4-3W}*8|AW2Dq5)?ttUcJ-`T?LS<-iohB?XgWb3Zn zSl{VJeJ9diPyAXfV8oDmWqPRZCHz**Cyv2Aqe%S}VH$ESI~UTq&Ylfb#|)EigT@v^ zjC(@JqTtfUwe|d%*~rbYHD4i4*bC!05sTgQF2eRcz1i1aPtNu;E6Lc7UoPL)rhJa; z`DGLUpCvMWHCiJX2V${pM+x8fb|Cr4pCliBcdTZ|=KkfpZ!`F$WLQ-2yF%+rrIINP ze+>Km@P`zso^cCH9;dQMygHh`!grDhzh$;Pif|ovDhNV3XkWXJ>Dy){yL1gl{Wu%O zG9~GzuW}vneEe!}fHSPmIMxhp&mKp()ix!S#$t_H2f{AJ-_mMJaD!d!^6bRvT0fe2bGg3gr)RxU-* z+Y>?AI9I(joS!d5^Yi;zG#|JW!JQ{UIM9TR^?}B|fyTLkkG7|1BTW6Q6Q-WM08`Jr z22-zo0j54EQS8vbbzFPyF_`+%PJG`FQ?GQu)GzvA>iHb5-G*!L!}NP~sBd`_>ir)= zU2KB-OTUGg#4OCb`vJ`M{t0I5UxV4Mf5Gh5Z@}!Hzrk!F4Kp8o9qMo6xcyF;d-?}3 zckU%v*tibnAL)jMtGoJlo`P~z6^3fl{^p|gM*?#7<2{Uis3bRKx zz{!cn;nZChU>51ugAGtWa|g_R(gCNE4%9Eb2=$kbL4EDVFde%K{qkz$OY$d;*Y?5G bZ|dl)8T2LMpZ_sT? literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200212.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200212.nc new file mode 100644 index 0000000000000000000000000000000000000000..e07be3bbc0dcc5bdf696fea07f1e7c985baa74aa GIT binary patch literal 4516 zcmcH+ZERat)m{3LIx8)r(EZvjgRPCQ-}6_J#!Qg(q-j$%Nfl@52Gz{XdpGgh-iLYj z*{NH^iumEArl@uo7rIKLuuXimRBS*&f)&sZpixz96Mp~|H1Q#Uh>$=U5`%Nzvt1`7 zZIR%~*XP}P?mgf4obzC4cwHzIq7lZ?fn&4j*t3RL&;?HL*@mOjxX0Ou?Fn~=Yl0PpD-FkHaiv#DvRygP%coUUb9A8` zv-q5%3pMXLj|hrT5&Q)}h^oq%8_0}B!ui6|IIveFB7Vp7dI^Li5y%|roJ8>0{wR?0e ztvoC5o6Z(qQ%>sQg>eQdhKU@$`&4D%f&0Zg`(5NJ;Mu6t~J za8MoFn;9C(sAGOQ;3f-_tf2*27BEK&mrjI28<2q6NYHfty>y=KJ?aTtN467!GJ)q7 zG!i0{nPgMRX*$=bIhKWVDAD4%bw8ZU2_~Ay+-1k4;7k^RyzU7rFI?^wT)}qjoj{7+ z;W;i@JDY+u>{;d^LCcXICL|3RnI*=H+%P%i&oDSv-W55_j7CwgaSh`xI_Tl{d`=)` zznEl%$9BQ^;83R9mz>fT3v*j%1|D{bsF3u~LTEz`ZDa{A=jamoa*uJ-bmj={b8AzF zYEmGd%yU-?MpTtB6kH5C6f(kmrCRkX(a=&UCb}8%ZWcByYW_~8m<$lj*)&d3g`3LG zxQ@lfUYD<_nB0(=@R7`lcbbhC1_D z=Vlz&3j7+{Fp4GD^iiQORw%TttqH%p`tf$WQJLrF<}h4!O`*D=%sNHY;i?wYcGVRa z0 zp>`2Asf;QSHlZ9=FosLEW9kwYv8ZCKfx-?6ya5uErSFpiSUwK&IoGfpv^?FjG#d$G z#E)^zXN>N}PRaKBErcI1qr#oV7&?evjrtMDGL0agYzy*1o0}zx?%EaKy*m~~;=SDp zHaZOBS4xE)a0)JNVa`nBmNxIjRI*zMFVlv?XN5*c4%6~#*VXs_4BKZq(?~soS8x^S zB-_I!>VT2rUzFhDprk#iXuQ9_4<-Fi`6Ada;YjuOMB_d2m=Z+%R6NY?K-yHxvihyW zrc85tG5R7bk?QS@CQ^NUN)V$RV=zu{l*=|#(TerNdjb^ooh{t{Wqs$kpOYL{w(iQE z^_@=8cOw1u#IMx?1`MfJric1o!f(NRV(Z-1v(!%!rXlBwb3UEh?AcJT4L|udXxy!f zSyu>|6N?h)dIy)cdwq0rlYiLkv-Z}#=Kle7KIYBILtSIW1gDWC1Q zUJeDoXPJzT25ThaKq$2J2;m#w4kRD>ljNiCjAHLZe;0)_Cj&(!tN*zbI#WEz7#%z&V2f{ALZ*R3FxWUk~F1KfC8_9py z)$Oz$jXM-T{NIczNHgd&D_Ei!ZQ6Q=Nr9A=#;omsbl6^2H}GSRb~g9X-p(R-v$~KP zzLPz6tgTvT6O|b$d>XX(PJ4|oeme=X$tB>ksgcc)OlWhfjMFT@uP0mMdlyz|EX-Nj zvJ!{3B{8->O9*-fdQSv!xB(B{2CulH=DjW8en1C)P!8Oj$g zzZawTRsl;`|#{@ufpO# ze*^VLz6|w!Z$Q1{04#nV<@|XERFAzAs{8^hj(!mqKl&%AZoLB4>yJb2?O%fG*V0gp z*-(8ew_?CeOiqX$Q>z_BvE@2Aull5-fc38?bQVG|Yc*1j<(qqaUAy@>hR$b6jFj ae&Hcpe>m{j#hp-o<<~Gj(FOC_)BgtUW-*}v literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200301.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200301.nc new file mode 100644 index 0000000000000000000000000000000000000000..730df0ae3a9bd466c3ae933892c4854a207762f6 GIT binary patch literal 4516 zcmcH+TWlOxbzD2d-ZUhF(nb_jSE6a{YIkN|w&Mi}n`7ri9EYssw4!KxJ#+0HGLO~V z+1;3+CZ&*FKWO~gjgU}(XyK=UmOtJ>fS^KE)qs=_s1*1>r9u=HC@&Q_XJ&V^cI_lc zu=4epGw0s(zUQ2Q(Ssd|qR@)q>crJ!xz4QV7Y%_3{`TVPwz%JX)s1+UZ`uvAawp=u zaCO4y5d_K|xDJ73+T0gxl>3|=aeU#;a9yyH@TBQFETImlDb}0!{X$05bk`8-r)^$V z4WSi0_ftamrKTHZAMx7-u2T|@kLM)e#Q$AzFqTl`gep7pru1EJj-HX$_07qAksU2s zEHS{6@k~6PNha_i(Vt?nNn` zSkWnP{j@N0mrGM zh?0VCR7O+D!GXbcDR`;qs$vpMO% zGNK(H%Z?t&YR7|ez%3RQSyK9mv3H6lgksKb>b|XMEupDEFkGO5l4% zowUeiC)reLn$C6Wu5BY9Dztd6|-Rm+1RkD1v}MJDkLQf^dtfBPTWD!;2%$C6T}Wo2gBe z=GJNqMp-gFFc3?o2M5(KM>~(h1U*qL>!H>d?@#oHB$_*0w8IOo+3&^&rRn7KDXGjqv)7H@on(9(-5;scKT-hb~p8NT+h#= z0{GjY<0Iia(s5W(_B=}T#6=(}S(KQ{MomVKYW=On|Xg5MR11Mzq)p1?nb z^M3G$9I2mi3tJwiwn(zNo3X-Y(h0w1_IwFpCypuz0zGJ7dyMJZW-Gt+j)(I&8^<;! z>85XU9r1kR#&Ccb_Gerjqj#szBHV48l3HV~M6&}?H`4EF%_X?OG;$tyW@#Jgf5(-( zXgfN0G=%uS2TPD{(q~rqigL8+>w7Fpq?|Noo#3Ox@pFcWAA7X3xsUdCm$;WRgw*kw z{Bh6rrYSqA%}5dOpuM*{YeewdNmxxOp`4wKYKCl-o>m(tETnglukm>oc4=(PIoh(B zhQ1{=_B=xb`V9}958=TEJaIk5ryBU9EW{tX9zy;35YC(rp?M;N77L;C#}F2-htNA5 zLfJT1+!x?ivLSxu7z^>?>mhvLd;o`=uZurgj2m7F!yAP`S_d?~jm!Vqu z2UIW2Q0~xz%8Q?es_`UL{wbll<0@1SUVv(H1uCzXq4NB9q57W3VE$)cg!$LIU_rSE z3;Umjg~vYt3;!O2#b-YWi*G*xOC?S@9U+aX0?~lOz8v<67KY*3r zUxKxMvYF0T8q{Ne+!a(@pjzkLptKeG>(zfpvh ztEXYL@&v5>asXCmzX~hYehf?Bc?A}B?T3Zl-B7urw0vKErVHjzy#NdM=3wCu>#+1~ zfW^_hP*q>XnEVYEd%p)?xbRt+|4=W?AHvvpe}T%^&O_z$A*ej}(#Cc9uZSc4vXAgj QQ2ExgP`x(_Rrc%u0K+UTEC2ui literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200302.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200302.nc new file mode 100644 index 0000000000000000000000000000000000000000..5d85213005e85302b0a42da035118e3f004f2d34 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200305.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200305.nc new file mode 100644 index 0000000000000000000000000000000000000000..e176413c879892d6a448fd3e1216ee7bf7c98574 GIT binary patch literal 4516 zcmcH+TZ|i5)#+}?#%YpDgrpz@w-OCmYL7jB?8D`;+p~EpyBp#qX{4p@-I?q4wDWN0 zj=fm|Rm#izNJ?z7-q7{~s!~yjLMSS2D3t<@kOD=Dpa>8}3eWPvO9+q(h;q)1?Rb~n zBuFsw^_hFmz2|+;IRitx)`UVK8etqAIM$nvJ!yC)UEl<_ zv3(_zsXZ(a&&1=Igo-a}I>T(u6*jj7i;l8rnW0jVreZ9rFPkIYu_G;G_#2ikl$m0R zazxltSQ92v)mK<>MV^cmp+6QYIF^Xn7Pm_icq}FpI-11D8yeczv15iUy_n=y(G)oy zO&4<}q;Sgt(sFFCU{2>O!R?smNE*3BJf4iF6KB; zv65Zn+WkV$VHhZuP4PxN+xUlmC^$ z9E^?Z%nt3%#zy>fz)cn;Swjo5EMSflE}aO4)*=D3k)Y}PJLo*ydCU{Gj(iUa$^@QU z(nyMIc8ncLPSCk7&9N+`Lx~p8t$A^*Aed+#bC(>Gf-_kP^13IiqHwuaas}J5^B_{} z4o`8(+S!z(VNWs-30jWyFd=Ek$ed=p%ng%M{tSa-6c`vhMrEFwn!YF}SGio|=m z6>M}E#;=qL+vk*A+`^oE#i3-k5?-PWh0ijLC<|v+ysp0Y^K7^2Od$0vUcnWl zlk6@oQ3s3^|DpsJ2PI9XqH2GCFG~8K@(U#kTS7*elH5B0r---!9d*14n+82*U<0}3b z_WS-1DN;S-CYC%-Ws!JwHGPHeBoltiYPv8gq32v~PtrD$|E3FD zXgeBrD1i9C9#fEJ&}UY#L^0a5^){0NDJP9d+yCgWy_{~~#~$r$?xVe3W$xy5AvJs_ zdu&@>wa_{$GgA08Xzz{o8e#l)5@wT2z-L_}n<1Id`c@gIS%B{(TjTo%tkPJRbF^hS z4sA&^bGWz2;i;;Ja8qLA8O3USunr%N&vNU0nDEWpm898CJUhbrvMhO1kl|R zK-oA~y49aw$OiKZ`&lp_xDvqaCww^2gpKuq#=e2Zxq(05=5K_``EjT`e-bL+|0z_y z_&pjFJ2as3)C`V?aqTszd~GXKE`1OxKe+^z%lF{gtB4ze*^lgk*{9zJvoBqQ*~_oM z+}b{v``9O8UVQ=P@4W}+&;1hSt?e*BcpTwpVgBrUV7`AH%)L7fv(+C%)j9^%yHZd) z-wCz;4@33+TcP^Vufpm4Zm3O-L+$Kup=RC*wcUS&+LpIN^)U@jANe-awx5OCTc3u7 z?Q?Ku-2+hn<}FZv@;0b{d=Bb=$iw2Bi%|a!hs8}C>Mz?+zx!oan0q6fIrwF$sdqyC z%s!~!@e(X{WPM#1pSTE%pYMjn`s1)T`UzOh5EDK zf%=}Wz`~`Au<+pDp*k}NwfteI{pBH8j2wl6P*0i2s|{NUSj*%SHBLkzupRSwY4z+;E&*x z`g1s${42~H{TIw`Lfi6R!KrT@gW0o>!R!OaVWxgNRGvW^Pd$O-T{zy0^nM4Gb9X@H c1;jnq0hKSIFQ54vRK9y3%%pz+Gaq>N-(q|-B>(^b literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200306.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200306.nc new file mode 100644 index 0000000000000000000000000000000000000000..21386d7242e8eb92cf4bc3ed3e6d4a1149417a98 GIT binary patch literal 4516 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 PD*GRW%2QdWoILX%MdmGG literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200308.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200308.nc new file mode 100644 index 0000000000000000000000000000000000000000..16aa75095044eea01c723083357ab9e923a43c69 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200311.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200311.nc new file mode 100644 index 0000000000000000000000000000000000000000..a5559270db94c189d8966699a315a3287ac6f736 GIT binary patch literal 4516 zcmcH+TWlOxb=^3%y-5hDrKaL_p{TLN?##~a+KyL6*c>NKqSy{uD#HCL9}JXg7k$T{s>F%e1*K*bw(Q+wJ(mo8Y=&CE-cab(p5~Dk;{L_x(afRdv@8 z%GYc@r5HjjcEW;fB>1g=vOj*sUg&58cqursbH37SUQ@}~4%Z<^i_*ZQNe ze39)bT1@L@$wVfR$Rv~aqV;5$qkF>PwqWs57B4YWDppsF#f?>S#Jf(cVT@qI%7qeB zEK!OHM+$q~LaN3Z3!a!DW5wu?sd?8Hs$+AfIF83unKaNO=7g!EeO*U29qFr*+XYMH z3^bkUj!WT{LZt0Fe%_kS*@8Q&?@AiEWFnE$G{w=Q>#MCBF7t%V3p$!G=4ri0wzIet z7MUW3M3|~i6xD#A<8rQ|lcZltjjOlj_3(+b$_F`*LB%{qa582vS^LVwBTNh z;)xZV0@oiCMh@dZu^kFH;@QMMy2@1PO!}sO9+R~TMzOUHt+khLNw$7>OAN&d;`Yvn zq%x_#CQZ3v=&@v9O2N=tsoy%}>KBV?OiO1HsZ6?`$R#Kgx$k43Qaa%*x6`z&1KcW# z7zyacWGt2J>+Ngig13t9D&`@~js{Egt7z~(Ha^W@FiRN>^BpAtOtzE|XioXAdt`KQ zP#xKk9on5$M}l;~EfywOQxCH&V2%_Xorpv>A_1$Gpy~W)=seqT#21c%Z1)Sw1in|) zNr-HAj2%dg)46utwQZzBi5Abbyfl^w?k2p=@^`Ii)QY<&MEjJnWWGA?c%q(1tqN$QFLyH6-%oKI4| zO}L&N`Zcm~7)!1dpdwMMP-tC87eRRq;_YayGEYrSVYnK)LUlozbW5tsRXwcjswXf6 zJUy>swAX8fQpgvgO^1c_teb}m(g@4Uq-Po!h`}U82Q^2@`*t8zyKa&Xg9|`$_)gYF z?P6?98CGI!zj9E)7@l@q%aFK;MHOQW6t+*`4Um{D1E1`{^0Ajsd8X~6<>{Vf*zPb! zf*8kq#^_#blWbSeLIeRbEWAmKp}pwUco2asTMP2BrXU}5xHT=&U0vGt?TI)N@9kEw z(P0?BQYvhZTl8=Xb0=!Iw0%PKwk_o?Mww^_}0Xr20fgH52*~j#4vzA@DhQofG4P%*- zbko_CfjL^H6@S8_MT@1?8*X zg7Wo~6gxC<{lifH!5HG+g7UMwp#1#rp!_24z4SP){R7Guj>BxrX_&q5U6}2;2(w>a zg4yR@hS@iM2q&IC3zgOqR7yHj_I?*C9j`#;ljotbdmB`?UWXHHUx(R&8!&(A6wJRq z35y@*3Y47R#znKnntseghRImL6s_*+yed!#W`B(|geCipfUZ02R$m4MO+8k6L zxCqsw66v0U>Is}@UV(*+`(W|eH(>GmUxe!338+5$Iauo121^IO3QNj)So~QFEIt#1 z#g5lt>7KvCsmoVk>DAX^>Bb-|-gp9@e3Qf6*b_V>IDGi^HhX({w2`IE*U1(g4G a8GUI&`4^q&&qFYC{~XNBcf!mQXZ{VH3N=>% literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200312.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200312.nc new file mode 100644 index 0000000000000000000000000000000000000000..1f8145ad9531b242a328baa3c238d5534575a235 GIT binary patch literal 4516 zcmcH+ZERat)os%?aa+nn*9}#SD^#|G+3)!ypB9^vowQA==3{k~4Qa#Nymu47^?g|H zK08e}AVUbp@w(P-;|?^b6IA>_bQ%H#+ay+06-|}KkU$_b5D`fG1A=KksPT;TI@9PK9e8e8qSZu1PQ z4i4?X^==$HV0aX#&~_Y0!89!H2{z0<&PHudxU*antRP%zI5vwby-JdGW<4*LQdP~- zg>u^B^NKFioa;O-G*7CUZgdg7-Qd^-VS9)tX-)L+f+Nwm5~F2kSJsf8<1WxU!rES+ z%I4XzyvgFdED=k^VyQ#|U*bI}W^1mnxg}V1f<+4qm5MYJV^Mv>8sUx|X&S>nuzsV! z6jKx;!j{6CF_Egi$%ZRt$ygEkV`|p1glb#d&d(s4Dib=I#F#ZSw69~UhAll+aw}(w zjE<&Lof#?ILIAWJ+sm2@8B1_m^&CkflZeHV@q}V);jPuybceaZ;yDdX7;)phr}|k` z3X@C`K_X1mX7j4g&vrOh(Mi%PBxlrHbNs(*^SIF27++xV9{i=^1F3jFIWgJl#7#Wb z>d~#V@~oV1I$O+dFyS3C-53Sy}3D)p8dV5Qk{Wr?d{UD3hxhx3o zMktP~g9`RAmpUoeWTEog1NeM_>9yIWu=mLIow zMkJX^_O)orbzO@j`jQHU)_VQ6AlJB9EY9NHsaP`AJwW7Q6pGyQFij|3h4-q~)e99BHj%-f|$^@R9 z*GPzTdWuaaX9%xdb1Vz#P@+Y=ZP%uz=T3!sTAx6|D2{38dH+ zp68OavdK%so?{*ov>fSSLeh|txxjdV8z!gx83xD7xgv|1(I^Nup<&!bhdex<%L=6I z7n8K`SSL&j4X3+&$ti8IFt>GPAhJ_Hg`|fTLK|vmBTIN$N0-Q#dyJc=Gf!ZjTZ=kW zlLGlGTablx%{Anl)PpiJ=NdW&qQ3~he$7#`p5;r`t{LP*{{m1PewemU zy9k?7#*_#rTVu3p?!%668ZRHy0$jt25r;AB!UK-Yx|j z9ft8MrNWLmc^8i`XSRMz8~0*5*`3_->!F~xx_driH-V={0LBvnT!|V>E?QU9Dzm?dO zX>Kn@UxX#PdwZja?!G=Hh|wM6FhOsW%Q~oN#d_jB0f_p}CTwI~-#OvuB*&G_yK-lJ zrxWy@NWYEvHCw=dA@$1iP~S`Ny_ipIox6I5`YD3c<=lYh)49!=oq5~vlW(2I9$n12 zLdcBZ(!;$re#)rl=Fqk$h!gh0I2J>pkNpAX);_(_*WXUgR-DabY=v)>Z*N0B+i|@t z3V_c#8NU$hk&J_((7q=LUjKF=`N*FnAANUhWyi+(jlA#I`GRCvRPehZ-XDuaV{!a3 z?Dzd2QlxsuO)Pnw$|CVvoS1F zl5YAI*AelS&g6S_SYnvNgW%#wv}4IYUP_ z!qB!P#=gr0pl7gmF_@3k=gHMzJzZZv$%6HlR)bl4HJE1?gV~r2W|IZ8{eCd#R)g6c z31(Tx%irg(ucm|b)#EH!53UCD1B?DV*qH14gY|QRb-ck36dwVWw*L)^KYRs;0ZYjn zuypv-6gxDa_>(*=bs+rB$DsK7H=wu*Q2c8Oitpg~{zp*!<)5I$e*vZZ*P-;{hfsR+ zU0D7^4VIs3hjLp6%JY|?eDe&H--tpve;mr+yaMH)-GuVl2VmLGLFv1bP!YpWdFm0U z{&W?p&%FiJJqf5h_&qqs?t<#i_e1rqX{avGLUrOdR0&`zX}D@)6VqK7iUHz(uFRDE=GVNZdhKB-Ub_IrE2q&nZ?}wJ;ojeI90>NVWT1Hc NJy;sK4oeTG{|$--FMa?3 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200401.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200401.nc new file mode 100644 index 0000000000000000000000000000000000000000..f2f9acc272626f7e6fe0d15559ea855fd91574f1 GIT binary patch literal 4516 zcmcH+ZH!b`b(W8^J3#RVwoNp8F{EX6=DqpauW8lYo`nLkEMX98r5W$OcW39x`OaZRw2aHZkcEUxq_Nwy{Ld4;s9YK|_H zrz}39=t3>H&XBsdlk|?bRWI+$ z7un9D$>O~%5lhEn=|mD=;yr0*Yp$@lC0KNnMN15oiZm5tQGL-I@s1s78N=VOaG}H$ zQhK$8&J{UeQa!!!BB=07(Qz$31G6Ngg|r3cip>3hlbSM zTQkEuGU{$W9dMHcN!HMUEDM+;g-a(wq18yhY$RwpznRXnt%p5f>&SPnpiJPoMUAA$ zWcIQB$uTG?dV51raUUbOA?S;HR%6>7) z2#;-n(V^i?w=X%REf(gs&I~;4lu#k*p@qqvSoym#R}U$cO#~pg6pqu~54R z+oy~u5w=%3pkNG7+K#D9T*RV^u?7m;Bk%@DOqRY+c4GP1#V1_Da?tX0(b8;35F>t! zV?tweFCLO?yWc|i0W%`pag3o|=+&qnfh^Mq@_lVVK4f!qQlh)I#QXbWQ6%2mtze_W zFn*;}*iNVD;uhxQ8n?80FZL(9mGA;>D0~)agygW$Ep=Ue@8{TKrZa}rGk67;kWR8k zxkMc>Qv8b&TpX0NCl!qk4D_L-|0!Pt`z0Kyfu3l*CmvIRh~FO%v%8Qs)v~O9JFzL# z+*ypi2uq}Td!va|U!M}h=*rzNN^g|Qx~L6^^~8Gu6!o1g-1Y^1=cu2P99OpP%H8#y zPSAHE{Z+)T)dB_#saK|l`d-4X$9!Vz+|{$xPZ6de=c02yojdGVU9=59`8H^*)5W+e zgv<&qJzQJG4;zi#9O`(SIAJf0<7g;!?>h+F`}AgCezne~j_c)7 z0DKn6_=RANWE>2IHXI~;7^xd(X9h>_X^ZuC5Cndw8g5MSK{#Yy;i{p=B zzwiH$BGof)V#(uF7KvA9(^vRTGU2z(hBF9PVyl9{mxK1T` z z(6%JThO>mAXR!BZ0Jk;Zo=d@ee`9`-1@kXm3ZV9b0OpPc(AX0|lLgRzKY)cx0d%(q zP&UpLAMocFGQs@9E*8uOF9qdJ3H z_2JJ$^{dlRJ--pA?W-{T?pZkg^s{h$;Kwk1`3;!9G6cuF&cXE6gHZkZWvFgG2eTIs z!R+}>Fn?$g<`dUp?(`X${cZ=$oKs-_sW)N1{0hv&2Qa^`6XxFIFqc+g_VE=k-|-ii z`}s7~Hl2Wz;svO`^*q!s{sQV}{s{G#PQ$4uvT$nTJe+#)r%?apdr;48hFWe9oII9> z`B!g1-5r72TbrQ%*LQtgYZw0k^+!Jr^V zANUH?KKK*VuD%R4{u<1DbSup4Jq0r>y5ZzEegr2kh2Xgt9)X!Zd>dx(c?f2o{0Pi` z_+glN{a-M9`qwaba|C9ueH!K_{swbvOgR4Ar=j}f&!F0W6Uwi2w`^Z|wI8PJ8&LgJ z4^;oW2abRC7*zlH1ls%^sC?}vO!uFK6DO{~)Ye&;8afS?BPXEz(%Vpe@fj$8?>BAZ X_fY=+NZTB7KfD*pH^!lI-|2q?6)rYj literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200402.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200402.nc new file mode 100644 index 0000000000000000000000000000000000000000..4395e11672f8b5268cd907dd7f110242994e4f8f GIT binary patch literal 4516 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 U_ySB%Jqt5O<1ll`LLYqN-@U6dbN~PV literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200409.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200409.nc new file mode 100644 index 0000000000000000000000000000000000000000..ed6ad1ccee2f4bfdbd6320e108b184a789b74a18 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200412.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200412.nc new file mode 100644 index 0000000000000000000000000000000000000000..5c45205754561bb0d0cc79dc9a620a99dce16588 GIT binary patch literal 4516 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 XPeA3|i#Kq3|H>hl(ayunePjOyb;Lba literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200501.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200501.nc new file mode 100644 index 0000000000000000000000000000000000000000..704dbdfd378c98a34a0560591cd7ddbac86936b2 GIT binary patch literal 4516 zcmcH+3v3)m^^!QXb55EHlBN<+O;KrM*xS92Kk-Qjo9Dzy6vt^Ua$70NG2Wf?ZL^=# z&fYn0Rml>dJAbOgcJ3mj1tDl@i+~oWpb-TkQX~Yl0>rPV5|N@vs8IS*Rf?KQytjLI zIU75P5Ug(Q?aZ5b|9S5%4DDGLi9~2bacsb`$#R_u(=QqVC-~fgqr>8UW2pn@ZN6#O z(UHwK@5HeIhV~(dtj947mT7Zeup#bqw$Jf}m*cu%CE-cabyz~}Ra0zd-uDY>P19XN zs1MqFQZ0BYjPByI_f| zfu_^kaVfk~h_qeD&s$SjTX0A7T}dOGjK_Q83Dwb~YpbmrF7t%V3p$!m@e;i!cCnZg z7MVgpB23eBMJ?dxxSVU~BOp&(_{aQZgnP8f_n;u6Dv9e zt{)dh7Q;Zb9f~*N*}^}%!cyJo?p;my9GCU`MWM9@t<{&WNw#ryOAN&d!uH09q|&Lr zx@@E=Hw;}#_N7#etmXQxL9TJHSb`MD%V-CKbigeZCRtMtvn*ha6ds+3L^dJ;tDd0g{GD{3?LOfP$3VV^1!V%?E9xXg zCUb<1rN-%8hwj=o(xF6)=hj^~k{3)gj(N+DNx_*chI!o=c0qXDFM5LQ+S!Zd_<7fm$d~(!Tb4UX=zv>`I#iQF z`DB56QZS;bMxp3o)S-|H3zTZsuVh_IwUq2)#Jf@0u&4z))lw=%G-l&CMHQ|poAX?o z9fToJqs=|clt}HWBCA=RL`5yVCd;H6W#dJkO`3k5IhZdnv@FZS;v1NT+#2a9V4cgk zo*nu%vT+1Ut`(pnQLIpCT}Kx|c@5(2p?YPWoSejXHFTBgf;!=rG?#07SlcyEU0_FT>X|d?!{QDON}nmhQeosMo10|-D=l0@P3XBTkbeg&)^kYMLNko z%O&c7krG^#@ZzAPJ>9WHe}5lJ`k(SC*e~Je?(c~udJ=IpjQFucl-+=|-A&6H*AkmD z&Gp6TQ&_UQw>OsT?(0*-7~OCXM(K@m*(PcO;ysC;5Ji1w6SsF+-#HrOB-fM8yK-ZF zryKU2NWYEvHCw=tA@$1iP~S`VEtpRngL_7n`YFQH(tpmUu)8;gz^B;PuX&4!rp zgpgUmrH^ZE{DfK0&5?EY5hv`0aZE=dH@}LowNG#K_1BZL^~`EAw&GXHx1}MU<9dD` z1;A&SjQ59YB;!CNvh^t8>)#F}ANiByqwkKj?AX}9lK1TfpOOrV3Vv54cE#hdcmjV6 z`~BdD6sewZ3rilSvPir-8ot7Jk_o?Mwmyb%1GXv%0y$`3tB>j1W;MI)90~hzHiBhJ z(oJ9EI^y~0)#d~j3JW?zCEOe5=YXM(no{Oiwe zqwQ$ip%CK#CQL!PNuOEa62)l4);lZ;q^vY2oZzFw@w0}BAA7X3v5)q4l(?5Qgw*k! z?6G5Q)gtXwW~2yc(B2#EHKO?KB&-IPkWYI(n<1IVre+zZS%_~VTjP5tR%tBES=zD^ zhqfg#wmwb>dIox@L%6374_yrBWA*t_7S2C+F@*ZFAQHiV10d{zHgv@Zs6_VfB;moAA-tlSD^g*U!Yg4doyF1}e&rVCK1}Vdlr@VCHvG znB8&?X7vYP_Mb1q++$ydxp$AkeC``Cf5&B*`{@TT_q|S--?$y-Kk^xv>-aRxZhsyY zZ@&zS?ZdG2unkLFABDwR&%(l)zrm?XufY<$0!!KsSh}wRmi91M{OujMe?2U`a154u z4Op!G9;!p@;PgMV-`%r!V7_M1x^2#G{ir)h#-+Bg4|5=4<#D+4MQnq)5ATLYrq9C6_=7N$8-vP|FF^Ul0+he~Nhp8w6)1n} fCWJ5Hcp1kZalC=_e}e0Xf9828|2+y7ZO6X>L*g(M literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200502.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200502.nc new file mode 100644 index 0000000000000000000000000000000000000000..95e09ab6cc03282326c98b5c782cf807c4001662 GIT binary patch literal 4516 zcmcH+ZERat)m_syb=Q@lK{pAFi1Wjgkp;T3d&3w%C;quu0QW2+t4ZJuG( z!J)fwy&K1N7#zVVbO(+DU>X+p1RLZYXCt;J+*z&(Rurx@9Gk_JZY9Y&a-Nq@tE%Sc zLV3*MB}Er%-gO=onkQ9FH#&*lZgA|Pusu8{X-)L+gyCphiP18&GiON8ap&nBVQnu> z~{ z!X#5fkO)(?*@EixvmMS=bdvOn$r<(59RIJ{JS=oJ#^+f)g}-#XFP(^y6O*k@+`wb4 z9^FhU&&vCzvqfp03Ae~}eH5&Xlm8`K@*Fw}{SZm8hP%<(n|kcO(XGy8UT`-;;lv7d zo@>X1p2aXwESutuc((8lud`HFx~sS8o@26pzbLdep|$b$Ey*^nZjqr_e%Nk}NHU%5 zsmn&1a$VOViJqi_k+oL8O~^Iw6^pZYS2~tVcl8mu7)2uYJd9JyCY)u54bzG?tU=tb!UUa}i^n6YrWxtqY zgvUByVqh@S=}S&&i-ozZGXoDhMN~+7Xd$$rhBmTlLi<*zA6q5m3 zl~Q4coPvue%$cp<(#E}*PIfBcHQG@4tkVd|VWHdTy87OqWd}@W2B~N83T_~sWMAMC zb-+mRFG_H6P|{RaG~U7l-t;CnEi*gALhEcH_asmrjq=h3@_x&aHiVqp!c6oULazlCc%OUcNmI`E1Aaawq^k zYh?U#utzfXheCUg61@KHK=P44Nk01S*vyU%{Pnya(D}S%SXA)4BHkN|MPqUNG3@vK zA5x@x#!W1FoXR5cYH#=o-$^F?mf8C>&fBq7!O53{@LGLL-!>cBrDH7U$JrQ`DM>ed zlk14*!#A4)Tw#62v2F0Nh{_nyRq#5*?6>L$AHf+7mq(I6_W6t(JI&3ei8~CwDm<>F_Z7*^+s|%^&JK1C3 z=BkBuQkjv$r$M+|?KQ&q?Ig?wmw?aCdNxBcpV`aF3pSWnm2M_I7`>a}3jUJT~hlfi6E2D8b6*?u>e^VfpeJs8Zg zey(tzzrKlSZu#v{dzcKPGAwv1FQ7BKIg7V1yP_A5s z@{{K%c4$EPqtj4+G!5mBIVeArL%hF3d78n(2iIZY=K{(H4#VQx55VGI--Xlr{s5;Z zYjC>y9-O)V5}f(TZm7gxhRVx7g344cRPOl~R3Z{8seMqn?+G}Q8iLbP6<9fP6jqc+ zVD;jgu=3o9R- zg6ivUL3Q#^Q2V0+wO{u@?e$;6g+1Hg!r0qz;lLHR(4TFZj3We3#8UxnJ`X{f&T4XE{Bf|^@`+VHob`incEI`tk@zsI2Z zXI%g6n^67LRjBUJ;oNgSg{3wJ&OQDHoUb9y7jMA1yD!7iu~%W~@poWpB?L=v^~2H+ zpM&MuYq0XIJ+PcR0xRjS!Lri^l``6H_)S=R>L@IH|LRTKfBjRi_^~1^-gpJhgik_c z@bhryb3^Ep{ZLMR0#5(spK$h(@4(`ho`=QhD^NbQ01I!t2n#Qqg@ud1g@qp^iQd|A T`ER%%LHG->aQ(ATesJpFD*Z6T literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200503.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200503.nc new file mode 100644 index 0000000000000000000000000000000000000000..24c6ec5b12cf4e730c854388e9d46fd6ae5b0267 GIT binary patch literal 4516 zcmcH+ZEPG@@sc==b57!l1d39qUIi+)dbfLD{yJ!7XB;<9V>|dP8J3b3kL8(HE5Jd%{iu9L7|AF`sl_DYd;RdLX=$A^>LKPuqcJIz- zVhb&b;}4Gqcd!w<8n^(F)_*g=??r*pr4=&;@SrcQ>v^lY7-yjks^{46A|; z?ZbT&u3gaEk07)Y*CSvW7WV|} zXYnaT7i!*ho)DTRRZTZqiC+^qc2U?Ko|CjE{&zuNG_J&G8`_gIr02NP^o+QMYa_V= zJ6IB15AhRl`_R-?T@(V@GPv@Ci1)C^E$q z#fY$_u*OZ~s&Dba6%*vF2>oMf&as4QTih;;<1tkxbaaU^VQA=I$5stndaC4B-V|9K zU8g$ZQnwyze?&Ol@-E9SYr?1sn6^e<_wChk?R4M3Sr;ZVdLe5&Lg!s|cAE+>KB=v4WlF z+8Lo|F%1;UrhFrrb@IcTJe5kPI&0xMBP;idQfnJtTfe>~+v?RVGE~b?+dE^DOeZ@k zx{;+^*R@EZBdK6!ZM1J2cGY{u;w+v@$CBw(7qN>`CUVciJf&*FS+>tG%~5U^M1&M{ zA~KRpbhLNWOTkM;R~5?;7Dt`Mx>R&{2OFPe(37D8hQB5%0$6ORAkd!bUF+abPmely zG}GIkQ3w5Uz)cnuSwjn|EMSckE}aO4b|V9`QlRPl7wJ4Zde#%Rj&g?uRRYf~Xrx6Z zGr~rb<8-c3b1Vz_P@%f2_~w?+zrR1;7k^Ry6y=pFI?^wT)|q74kO3b@D!J< zUQ9t6_9XL=q2)*q3zCL{%xT7p+%P%S&oDSv-W55lj7CwgAq^8R+T$U4J|~c~-%K*X zV=XY$)0=7aHK(%0!ra!Gfrp(U8YDgR5c*IsV|M zdO-=-XqX|9+qxlJd7e~7E8UvNgc4@s1&>V`UXIyVFEF)C)4=BIyN1FVYRqGwn{Zq! zh-+x~0JdDyM}@-Jq0qawCj9p5=iB*8XP%mx!hF>=h5CXr=@eCmt6I?8RaamNxLQud zbg%XdC7;WO>kbR)n(K%2QV-h9q-*Gyi2f!(`#nd=d6utLqh?SH{R=>O_|J@m))S3mj_>=Dx$NA4NCf?H@O*%2<$ z2Fw)yq68NQHEl~p<6T`HsOf*|7r}W6SE{Qm8gGlolpy0r<6(9O+NNrr)o-OXRhrwY z(Gg*ZRC{|gk?QDBf*jp72t)KlwQMhq0kO7tTY#duvxYmiVeTCAYm(#2+FiM`xzh>e zPUPP}@@gYsAdqHd`qA7=`2AQATUNk97T*v^kt`pvTM)A_Vy*i`VlBHkH`MPqUNV>s{o zf5?&g88@-zacYYstFam@d?uanTc-J0gu8H5LE!5_boDW&Z=0?B(lQXt<7@!il%$)! z&2_}{;q~DFci5kC?dbhX>O8{zmLaJ%W{WgC5OyQ}P;D+j0z=Qb+@2&d(tqdbAtFcT z_689D@5K_N8T6SIyrLYf`uZM|5-BT+Kd!F52C%(StE?!PQt883FPdlR5N4~+FNVmvD)uG)NaG#sqevJ!$Da1z=EZV=V58}C0KgQhNZFVu+*7{#V7BB%RflNl8gKM--G2( zz5vT#9)Oj5TVdt!!%%*w3@hE=hLw>gVdcpCu+laJ<&U3+^78|*d;{0rAHkJ_NcZc1 zKzZ_4u+n$hx3$dsp?vKstn9lE%OC#%%8$JO<#WG)a{EbG{_Ry*&N5j3PVD8-s zn3qT3VrM6m4!#AYu50K&0ndo%U^aCMW{*7&r6>LbGe4a}9yf>&%)E3Wfd2D~>(4(? RVdiINVCIeMP}=|be*+#nEl&Ud literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200504.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200504.nc new file mode 100644 index 0000000000000000000000000000000000000000..326f497d27a7f0ea3aef5054bf0d83ddd6fe75b5 GIT binary patch literal 4516 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 YAXF~j2bJd^hRXNQ&+oRv)XqQr2j-_Zvj6}9 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200505.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200505.nc new file mode 100644 index 0000000000000000000000000000000000000000..a4dc200fb2e9e2ff1ba65d575795baac68019ea2 GIT binary patch literal 4516 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 XRQ|XHDmPBS@oix^ehuLG$%TId&Nw>` literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200507.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200507.nc new file mode 100644 index 0000000000000000000000000000000000000000..209272c85ce8ade790b4cb80404aae3e96b14063 GIT binary patch literal 4516 zcmcH+ZEPGz^^!Qmxg<^0mL@2o4E>6&-0j|n?X#~+v3ZUYhu97|*P$rr81IgKOZMZs zvv(I$kV1>26;Sv=cyIUa zayE7nBv{?t+nG1>zURHS(A&2v6bjJ@<5+`Zz3JHFhF8!9PVm`+quJzMZK)aOO`c&@ z(V>kv-+*Hc^!6hNt;VqjOvB=yV7=Vqtl##8JH|D^io%tKW3#x@p(I&L&hzqVRn;6_ zC||UANzsLxcbzW?&6BF88?8id12}e3*dCsfG$;BWg1%^6iP1E)E@w#3aVO{@t2Nwr4w;-VzSYR%XqBO zqbq6US$W@dwkRzz;cYTq8U>5v(JY5m~)o6k03LT7LPaWNTNq$WSalY;TW9 zGM!8{Xv%e6izHG>1tV**ek+ix-76Mn@wRjMYi!qQO&abb>)oh7uS)8z>22vZaJTbINzEgF`(% z>fr87Z+}J|^wR-1S&(E6Ey%KfIa0WEA{1JS1k7rJrt=TbdA9qgCu|-09u$-bJhz~c z6q(F08%d7Rxn|9=ETlt;7SFA^IGhtq)Q-7}j!D6pEChMo6INch+$*?(wd_8K6kEe3 zE?Fa+f;8-L<{?4Lksc-_4H=mej2F3Ka>}1!aICy5a+n#7qF_TB241ws!|nN;K+1kG z$q0|Nz)(+brq!36(iRJITW1Cyc8aKw^w2_RLk(?Y2`}g968UnEanp24g!Z{Ls6#a= zkWc2hD+ME}N*D?*MjZ+nVZKuJ`jx0^sT32fjCj`y8x}Qxr&3G?h}vuvr>MdWWyf5{ zVuR2NO1Qp<84{`8P-HpFlc=brTW6V2!fdqQv6A8Cn2q@YL(4P`EWW;J$gQE~Jl44} z$F%~#hSm;X$u)gcD2x>ft!rz-FRy;QJyEU9rBVswRo4`%3(B}tR2{BrL2XxEfg#{( zITgdbRx^}*E+1|gM8>;0E)wF84I`m)mvJ-7bD45CA>%*3ZEq!Avr8`%UxIB`(td6>5L-v3|_%yq?7EE zT%rybDgH$XE)GiC-WH8_b)`_!|CBF+{SuD0uJ&lWJswknh#!fE*=XqrCzL)TuFrU~ucl9jwQ-rC?x#XNr=N5a`7Hq>$zEv6_x0)14S!s;h{zr%HWpx8T_Go8qAMI@}ayP3Bso^`> zW9!PQh1OA-k;11zdvCYb2;;YtFl$@_KI^L449SGn*ULD~0(=wM8s9fymBzxHr7cTw zXj>9v^VbPMPj|<$0QObkfh)m$q&h#$g8ApK1W-F4z_DWiG!6vNWC66_4`BXE0NuR- zl+|;EZT|d1CYWE?&w_dPl>k0;%!l1ISY7X~?(43e>;7xT-v^W5eq-sN*r9>z|Afi! zTtxUsn0#qFOnz@SOrC!g-+zp2Z{hemOmBV;rc*D&^g~~Q>Ete$eo=*))xUz7CtG0V z(j#y@ei@E`^c)<&>nm{l&O`n{`cU_<^wSQ%Y!ig`XD^>>3uMN;4!HD>B~@l z;j3`w_m9K;kFs$3&Al+!`6xUycnPMTdZ%vtQ|J2NWb$8d;t%KG)X4YYv|WIcFTDmQ z9)225-1S>H`SvzAJ@rkPxp*07e)c}h?0XcZu3v|#`@R8_zxfMHb^QV+uh}rQ?IZZU d08^iO9j5y4fvN33gsJxq!Ss5&Tzvqu6PRxW7j@va^laxA3nW*GlzjqTq_CBn4 zpY3|npp(#Qr?hdJ#sRcx8bYH8HdPzb7~)4!2LovXp#i^O>aU?9K!7Tw{Qz;!d(W;D zlD0_jb9J@=mPd(L@~JG3PdiO`7R*oI@5>DcpzSJ4Gd@VN^|pUJ(>QXkH@dxjOF zBX{C_H;!$P8%Ge?isL~r4U2n%<+#V$xa|pdj%$Kdg)0rmW=Um8NwWhb&nstDRdaNq zJZ|xtq6@X`I$so;Csj>1`ib6daO|qEJv=9APW119L-C}NplM`h$&jAo*6AH_+h3n4 zRoFzuWXU0xN@Np>Y>HlzgIQ*4uCTc!SbUnrs|=NjbrfT9ecc@Kjveb7!{4xWp~@6f zRAa)H!YZ0bRo`I26?0^)82vG|Zw$6mN$#i`btc{cZC0p_wItu*|8)hAMqq8^l*ngv2A~a~oq%OD{qi|vs zyUex6gkHcfP%N9`jd=F(kFK-SKz3lb>z>DCc)uvLHlelg@=eKhu5Oi~Sbo^v9+7l5 zo$1k(>$(<8Wzq^p)>{2GA=kNAEXk4s*+e=!Fhb-K6p7sPFit6(a8@{EnC2`uDh!C0OW7(Tlx31G6Ngg|r3cl}e-V`J*n z!F+B!uTJ^tfSW8xvW6C9S->1ATsjen>_7r$n4szWy>y-(Jn0ErN501dWdhHwXe32G zKf`9zMLO4~IhKWVDAD4%Emvkrf{D&Ccg-;=IFpqiuY1BO3zvHpSFi&Ik0HhWXpKwO z%cdd?d!Bhn&~l`Q2}wgnW}WdWH%w0XGYXDXc0~y@qfr%XTEoDLk9oMgToOpxFD7~6 zu>&wYmdp41l2h7ZQEuzZz{5@z6_OrW2yLjLjV$4n99<$`?lEqfPL0q$w;pwt}^d|w@uQ^J|vwW%gG=qHTUjT~3_wyEN7h^NZ zq!MGtl;aA7r%Xcn~9gjAKG$ zbT96g?6BWL_yIF1+-zkjW@PjBcBPX?mkvwu{<;#9(qTKvCb>#T{PLcTW2`$#G@(uH0VV=>&Zz z(%(+}x-DS9ka}f$sP85G9?U1U&RxAg{S;wBIoF-@>D*$^j*4yg$v32Nr!MAQA!I>t z>EYUTe$ohYb7afsi4*q1I8H?(ANU=@-aft4*WXIc-ZLA?*o$8;-=2KJ?~HIye=6Q75uJ94kr@vL=t}t`+fh1 z6sewZ6H6YavPiu8I=;epk_o?M_CAAf8@4J4d^u=euaD{5W+S^Cm<;-HHi>0Q(oNsw zI^y~0jphJnSf6oh$=yBh1j0R*A*nPLs?<9Wb}fEiw=cmBhF);FJx|+6{;iky(RMU$ zE`a#I3saD0&}UY#L^0a2^?s8AsUVGc+yCgWy@GDw#~$tM?4!MXRqhsaAvJs_d+gs_ zwa88?GgA08Xz%Uz8d3aq5@v@>z-MQe&5%rFSGSDQEWmFkTjTp~tkPJR3$$fD4sAl&xZ38ESNufHGtZs0M4BXpm8*SCJUhb*8rBU2GBhmKpCE^ ze8it$&Ij|$M_4c)y&Ay#PWf=O1H<*vaNlTnZuIXnJ|j5&y|-~(4(l3;HFF-8oM)l+qgiO(mxb2xi?BHOI4m7I z2TS+71+A+egVvjGKbR;mV|cS`_RsO3ffBtVHLg(?eDw;?foyq^0l{M<8reOK9+>B1i>aKU~E&j0!Mu>9*b(q_5O76+MC-GhH!@cL) zZs-r9ArU9EiPOf;ChZT}#H7(e*$>2HKoL?k0b^|J4}(H~A|@d;*rb94eBZsc>tsn= zB)IbNchBp4zb*_O+z<+dXoPWW#IenE>`B8b>H;VDd=N*6$-U-M2hKNnhSk^(?ZEkV z92;S92tnvR9EZR(Eba+5$UV-6Y)`loTobG$TxmEqiz_`!l6B@iuaH(%&C!MOC5x98 zU8n`uc~WSeR5jh`B7EDyu}i}C@SdbO;okxWqj4oh)6mwuAw9>PqIcZe^!*e0B0Ewv zS-giOV(C~co#@4vcz2rFnk#H>2^Jk?(Go+UB2B?qR9`j6eaDWpl;Iy(xlm$?DM}Gx zOJR+hh*e)>!4(svtO)%vHSbtLwJmNJ$MKpf6FREIm@qWduVbr*Ej?9ot6++pj;d3g zaVgwVuxUBAmp7+!mf*JPIg&;$5sP)l`W0IXzh7*UpTyR5hq=Py1r1dgapOH_`&d*8 zlT;BwBuv#NimFe~b~snjNYX1M$JIMi{J%=`xX{@MpJMTD{H5dl=|r5QNwynt4U4r~ zbUmp&tKh577Ufkcyhoy|y$(<6^d=Sbtd;VugRU7@EY9MobS#-p^^>SE@@+3W!0m8I^ZS?lB}TxSr#xy3YTt#LYonR*+|fI|3SLX4xIIbts~vzf--^U z7B%7`n?1qClH+u*Lvt((@lc}0dmDasA}^R|UUOGmlY%o@4Dz}stb%a4S9AsIJa8N_ zc7@AavUV~>Y1os@Lxh$iJxoX%5;CV4FLA@>GxQIm+eGL?LOke~^OqRY)j$rv1=4IEg9Mn7oTAB?7 zKH~d0CNxHI@vvlv{T9M^m=WPlq7MzDRinNKvTVc2PqaDtfX&S*iRS8z_w~i1h`gsu z!A6In|4ON_BTmu9Bg~m-L}@cF#*$r1c!f0NKC2``beOHy3RmCy6YP-bj3f3ehTt09 zN%jbrCM8)8@&;hNcHqY6RF-_CGgRWM`4uSD3@)cHXzm=?+&)8?`-WIUeR}s`Z>vQWh++h zt?zV#z7z3pB6_VBFd#_1GCkDy(*91&C$`RAJxBc%?KJpYb4-mCK|$*`#4cSXD}7K_H> z_+!}b`#;1;^^BWX@;H@6qSeu~6}}Ts_${;RS%e$0RYBnMLFd|SOy4$Z>7{cd=*QUz zmMKY*zD_ve{qXJP0B2aAacmg;XzCooot7b~H0DawJJ9aR{oSp;1P>T`&gJ$b9V7nl zySAH-qjCoWi2vI#1!)F-W(7;+qfK4!G0Bl~(wMaUj}F_*=>~r6(aGjHI@?j=ZcZ0c z!*|lhp7liwZKX0Jg^z>I-fOQB#&0KKHmL-3wl=aEq6uwlm2sK{`L{JSkE-hWg7P~?~M5uVCM4cFmvS;!dIJv ze1`_EAHuaan(HugbqCCR`z@IHmJ+O82}9-jqfoik36+1p4zpV%%sM5QeOZM$f#Xkk z_*(24n0sXq=BgQ(d-D@8_uB!O8w9RQLTDs-Mol z!u|nRJpLdoW@e!JHwCIMordZQDpVi-AuR0tB~;%lL-nwDy#dP~IuFYaorC4i{1ld-K)Cl;P%mzQ+Pj;f{=f~W&+La~^D@-mcn#_&1zdXh zA5e=RzWHIO|9ljd58sb`j6kjaF4R8zJS@HW6f9|%;o>`2;nKhMLVbQ3YOm~p+M^mQ z<-ZII-?#?V^KZlAhi|~#o^VU|3ukV@{NAVF!t!%4e|;}3{CWv4R9ra!qo?6~|2~-S z`vWX|?*Y{37MOeMBFrsXF#DYiP+9moR1W?CD$9R_%I6+~%8?XQ&J06kUjZr?o`uSb R8JInGKg_0Hh1s6R{sU-QFQNbd literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200510.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200510.nc new file mode 100644 index 0000000000000000000000000000000000000000..031d923c711aaaa82410ae9f24fd4c837039ddbf GIT binary patch literal 4516 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 T_so7M{dfxIK6)PJQcwN|V>&nX literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200601.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200601.nc new file mode 100644 index 0000000000000000000000000000000000000000..9c3b3d748c168f309b587b99d675ce9a273c0a2b GIT binary patch literal 4516 zcmcH+ZEPGzb(1)ab4ePc7SbS8jc90XbhmpS{yZhB-RGo9i0zQG5{gQX@$T5SWIv9b zy>m73KdYAN=Ok%K?F*XN()p#1xOVnm0DEz0fG`0S}5=B-d)bd zPJ#rhn|nL+X5RO__Z9~Bty2_*Mg+$O9GflI88`icA#j4v+i3G_kv~G+!t(s`EiO)A4vZmBg1sXPP;>Cme1I78_=qHyI2sSKVC^FR& z#i($kutzPVYOJ#0i7_%(l>V5Ob8VqHHg^i6cubQ?15IL%nL66nbu`nFz9zYyw?x)J z(`oLg6kahz+OFg0tjVk`xTE>5q>)X=<6ZHD>gbWR)z%G{dBWy-9ZeYZ5?v>HSWF6w zOc6yQOw-2-TENe7IoHrh(l4e)wQF%otl6V$ zY31Abz;uq7SYg5&WV$j6mdDBek}Y`-9ff{~CRp9w=25; zv4WH5`f*`oF$`4Op?D*nP5dJ(EY*?j=&4b2^y9L2zbLfUptbt)HObbmZjqr_LD=3H zkyJX>-J~fu3_Y6cPN^7K%k^7>T>W0L1WRdlj@72)Y-E4G{L4Sr47(QDl31G6Ngg|r3ckM&N z{r%d|-ps&(j5ZXc18%V}$(nkYWdU=f@aTl1Y(xT9EkV=yU38x9J>d(-K)y!=Wdh$T z=p;oZGs2FhM(JFu?%Foep+t-4);%?n6HL^PdCQJT!I>(Spw=Oh3mQ%oiA1mStk`4NOCBRa)~{ z=f+&m4*jZZ9K@1q1t=wg6$-8E=prbuLA;%;RpyC_35-`mSE(+j<8D!Nxu%D;UGoHn zfT!m)4EK7?Q1iKbr0KAbo^|zbUK(MU8TU*B12LF{=%D7PIo}SXYSm5hVQ>K`4*#C9 zQM)J`Q3us1JE9&_F@`4{*D@q7Vo}9d1C<>XcmpIR%fKfGv3wlj6P{_iXnDG5X?7rt zks!t~p)tA_cS*KCXd!}t85G_)#?T@3YAlFAmZ=5#NK=saJKUO-=&rUzPft8XX|r9$ zMu%biN~yAgZo$JX%pI%U()ztPnrc@g%e0~JS)mbVT0FT$J$QproB0u|#igH%j`S@^qTu3-N2TfFVQbmFc0rm+;##pEw5hj4bt2gsI87;#@%II(s%295YD1H5ywD zG42T=vw}+>*IM`qvzD8cbsr#3*bC!0ttdCYh_Ja&ulM!Wle78EYBDzCSIW1oE}!Fi zehvk|XPJ!mg=-{ZpQ3EPpYXMB2a=EcN%GNm$69u*?_bILc7sn!hD8OxD-u2Ncr2d4 zAH#k>_#s8AXWYV)$Ehq5uhzP+@SSABZ<+0%N4No76$F7Cw6EF6^lh`6UD^i2ew+}9SFM|e`}*J!40O7^|&)m+erTP z7jLEQXxxDi;{Rq$LAptwS>Y1JXx-L3EDEHoG{>Fbqr>sDhKV10w6ngC_O=$emobGRo#g8K+r@Zy{Ub`xdOySeUc4 zWhD-6OJZz)lo0gvb)633z8XAyDV!gz&F^R7{KJ<*s6QFPvC|DDU|ylwN)wN*6v2<*rxZ%(I_`GcSDu zrq)ft)UKytD*HT4{p>?9{m7j#)BYUHoc;C|i zTXw;ce;F2^-VW95O;CCK3RIuj5a?QYm zdhKSY9OO{>>vK?5-h|4pjzQ)4`(XB^cfp)>H_UB~z|w>Fz|tE-Fnj7#F!%LYnEUm9 zn7`u%n0xbgF!%CzVgBQvgoO*Q!oqFOz`|z^!Th(!VCMVx!PNU7hN)5+O5aK~Y+wG; zLvZG#f;RmP+UkQabLx9Aeb-JX4}Ss5)@GPypMwW0Z@?KbjpG+k{>n$8^wSwAJ-Hi7 j-#iDU$1madIgVfA_(?dPSU}uPD4iRJ(ktk{JNEn=7l|}r literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200602.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200602.nc new file mode 100644 index 0000000000000000000000000000000000000000..e251df8e1e660cf45b4062eccc698663c328ac6d GIT binary patch literal 4516 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 YI-dIk%v{}#>&-acg_+mTe)oRq-;G2s!~g&Q literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200603.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200603.nc new file mode 100644 index 0000000000000000000000000000000000000000..0b0878ddaa55980ff326cdce9f57a6dc9ae21f56 GIT binary patch literal 4516 zcmcH+YiwIr*GZx4jSR zo@=L})l>~tcG8SGwd_nViHYYApcGAj3Y+K{2niT}Xqf~<1c5~PF$pnE?GPZo?_N7~ zLedrqu6+F6^ZMSe3xh-JLZJ|i2#)nQHkpn+X?R6l-~^xhafD6owU)v-@9+$(xgEL> z=bLe?hr#^_LigZ!0!+i=o?wIA<7~g}33q~Pf|Z0T4aa5)rAJAzU3t$dq*YaObfJ9O z;!}z))Pn0A7n&zkO*c9T-)3;^lCV9zCuvUj?}edQLW$Efv@vf;&vB>e9rrpekL8Q( zK+$B09+r%!GNuG}NzStA;H-RdTCfimZ;R zQ=Oa?ZYkKb9NWvA(^*S!TlE}CBb$uJd*Ug@)*@?*t?3SPg~baRsxay%dQR?PF)2(^ zMHG=RRhuZPK0VvvTty>EuawHEx2O1jmF6j-vk^Yc65aSqC;HM!--xMpBd%hxc8jhh zm1h-v)!AZdg$nPI=t?hG?kE3CvSc|l6xt!0Vl8u{vDdWNe7#Br+|y8zpyQ zMZ3VY6GG3T8z`1d{zf$0=tov)sw>^Kr-{whPRM3_k!!7iYxU*ZqHTq4i6L9Q+uj|L zR65n$CMnl-Et>32Dd<_tJ{SjE$#qbT6zqmW6mI(c-;zuaD&g6Rm6RvTIUsCW}E{_k>jtF87MAV7vAmL5!V| zDK1$%nW8l8N#-F!%aI-?Bn=6f(~Ot6VRFi!5pb-6EAp5bjgnxa8aiHVz{BH(ygKDO4AfNvEVbT-AcwuDSwU zz}509x_hf;D203>(so%$*SvMPAoZZkOuB}Sj_6N3Tp=0&<_Ce!}l^4 zN*85g%7_wWN0g@&^xD%N0mXCvc$~7zpHBW(-X8Qvl z@qHW<8l$+_DcP{!Lii3dBHT&zp@V4EnD2os({%E&HYXpjxj8M-T)Pr`_QYe9Hait; zbQt=tlnOiG6kR;RoQY3r~k=c6#FF{U47lLM0X;t1Rg)0h_JihwrfeV`t8`J zOmk;8dZR4a)zcG8cJ=lufsd{~1f%puxoi_vt$25$JJ_PWb7^mQS>HM8=Oo9KOR;iy zeWw%joru4K=q7l-t_P1a@v32h1S?Z@~r^)Avdp@2!oY_#c4L|udaonei zNmmG&6lC zULG01XBm&54AzLp{!nP^QQB{QI}m?lPvVchJJ!-;>-lq5#f4lRS@`m(7ARS)3?oPdf7D+^y6#< z%ao)@Un3mxe&kkjfHSPmIMxk5*mVlw7R!)S8nY$p9cXv?{sT*W2_7)?tjq05I!658 zbL9a#j>;VjApUQ{6r>sSnH4ONkG6EZ%_K+4N@LRYKRRqLs~h;SM<-k7=xn&e-K;L8 zhVP`0ZEK4b+DK(a3LgiZz1vt>1Nf0MKJ0J7=6ZkgTz~Uk|KDN#kJp4M8-~A|5Hopdy#5Fv(1uEe_DE}}Fl}Db3nd>gh{N)DB zKCHm(@b6*P`x(ss;{9-L=4qJgSPye20p@m&z`5%$!CZJ7%#FW`^KZks!Ba4M;v!tg zJqGh{UV_?p>QKw|z=g~R%)hlAs{fpXTID8=0jSlEL+xc1YLlOb3tz3l{P*5~+SxBa z?HLp5Z~g}A)q7!K<1^6s^>Ju?@kwaBeH9jZ_QJxWaah=T78-x-god*h>Q{%MKAwWw z-xr|q(|Kr&{RkF5w&=^+7MvAmt&)oG+Gmq8W z+1)r1C?ZAcM-YD0YYCOd2ZHhxg(4cDC2f!js`^1wgitClMMzb7C`ziJ7AfJJnc2I&Z9!}q^jvg7tz}Uj$IM9hvy{CiT--n6;CP&nnpGh4e2@VIK3mT(9a}YQ>8X-iB~#>e zG@a^hqi zi%VgWDPl;3sam0|`uuE%a}}K=y-Ipiy*0=Gt2Rf3&W89nOLpTgo9xS`d~MRLPF%%f ztsY%VE6*zVrn5zLg$eJF>B=Zr9w+}xw&Xc<6#5~SVGVbqv)A<4f1_KH!UGK&G8q@# zjZrwUvR&fZaiQli3>3?zcq5)I{G%%@mC0syhSY5BxD4+Xh1MFhR$sm)*~ZnaFcixV z+dCtY&Zc`?H08Rk#ZtX#1tV*@eru3x+$)x3$xJqp&Sv_ET!JEzdmhFqWfRWwyA0DD z;bvLHNI)khW9d|HPj4$1yi{~mF%4mI)LEiWMT7UU(QyU?IZ9yoY@#H9$(9lV%_-k? z9T*-MP!Bwu8{C^y5BTYTn=DAOh8AR5z#J)DIuVJiLjq=)py~X5be=tY!V|WRd=ClA z1fE;gNQzwUFdIpa(z#B}u`HxRi5AbbT{v76Of-(U%Z^FGnJfo+-4j+xxZEqdg6(+t z5K`=lR=H%YY|7HG$C!r%Ek}BokThgujx%22hRG>^M!~U4t|($=G%A7(YZ!R(0S~vA ziUKM7#Uv*@wgZL-26J7$QhZASlu19%e|Sc2kknEKj1MmTr?}N{O=3vd5~1S7bKk3k)sOG_d&krXjaR zI!jpR3XW?9evPaf!jfzHs7Mqm6k6BTgkN6$csmtV=4!Qy@v3VI)dgkDsi+QDwV<}E zuD}p*wW5mQ-l!Q$saT4(92U|wZyqj5Jt#9{uAyTf`jY_d*BqtjS-w=Ann6DFF95~i z+c^uhi?PGXkP>5ulp_kp@VM=my2M2+su*jau!90`fW&0!`(z)MkNv#r8kU2Wr;CQ(1Q!P-?asuLeSN(s>AU5NVZVeU)7KqOb|(``5b-0)D7yn`Gfm6t zw-TE&&F#hLjj>dwrzf7u^!6%2jJ6+uVS1xnwvnn30ynW(ycFq+XdG>U#;l1@nomb63w(KSh{O&K2i;I=9)gu525A@(pQh z*2S1Bgv<*rJzVSHCyX#RN7^1CPS^|MI30<+=QV__eR`v>znz?|XI7K36~9uxEe-i> z$MuRR06xoPJQ}Q#jQx?w)?mA^KI3Q`{6OXu!Y!5|sWj#*)H@J%IeuHSFTo9lo_D!DM%zgK zyUuT;?P%P=0OJ2fOhKAKpIN~Y#c0FU+f53jyfnsa|D(h9^16W^d$hB$kM?#}xSQ97 z)bO3`v3+gTA{(g8Na53vX0(k#vANDt3xZWS`>krTMU(p$Dgo$-Gpmyz>F!A2c zL+zR4PbVG0C%+5R4;+K(pFIL+`;Nl&mEXbilXt`P&)37*&4*z6S8u}96$Pdq z`WMW;bpvKUSA+S1@4$T9<1n}GewckS1v8KBhWRZL=0Emrm``7V`H%k%=H7Y{<`VNT z^Y862_x4ekyZk6DyznY4q+W-`&X=J6%6h2Jz7F*_Yq0pqCtz{g4`A`be}(!xpMv`2 zBrIHd2OfXzk1*f-3& zPhEor>-Vs5c?9Za1nT#kfrXcT4GV?$!%VduW-dGpGnbx+h3jXa{?jPToRcu~mpPdE znhCS81!n%d4`x37b(nqNvoQaa7|dSvU@oJ=>~r_R*{}WyrcPyH`dbe|?Ww;vZ9nnb zZ7>NPF!{?b!Bq7zID0RL=`$WoB+tRb7k&)Wy&K_+Q|n>!&^4IM*J0x1hoJV0?dTT; fYTtV~9Dite$F-mQ2zivC_Vg6g-uN<1Y*_jaMw>WL literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200605.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200605.nc new file mode 100644 index 0000000000000000000000000000000000000000..a476658f253ce3014b31201083934d0778512cac GIT binary patch literal 4516 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 RFThMV3Nu%J12Zoj`ZoZ3Iw=4E literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200607.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200607.nc new file mode 100644 index 0000000000000000000000000000000000000000..293a0dc77900dfba2dc80b9381240b0e4d462194 GIT binary patch literal 4516 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 Y3gz#76v`K>urT*cSUCACELg_B0b71KCjbBd literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200609.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200609.nc new file mode 100644 index 0000000000000000000000000000000000000000..ee3c8a918e5d4e550c25a6740c54bedd85761c34 GIT binary patch literal 4516 zcmcH+TWlOxbrU>FA8W#5i8|EHo2W(HcQ(P0QBwT4YHcKkKN}6@%J+F{aRn5_b z@1aCDnUumU1xU-Wy}UV_vjn$Q&yh58sYIeTF`(F5bZxaY-C?e3!&EoN4j@GhCIjDqEH^1ozDo(G`~J&UE*O)NJi>8Qw1ntu<(^zI(>*}s5)_Ht^Ds^+n{bxfXPD*$ zH;W=h0y;4nOQ-sJ`&zl+rJ}2fX$X^}&JqJE8oZB9&N3LvQUb$gGbI5`wv-TPPWi5D zbZlry9o?H9K9E&M{dB-h79?3i3$iR=jubAPh(tCZ0W(a{bbdFTXM0b1!q$=R5kZ;2 zbBh{Dk(Cs_LOPUa@!Yys$Mb@T#xZx#F zVpnvAOV-M!C=Gj>c}UQ5q=yMfLq_H-<0WpGobqQB9IN1pJZ46tB-ogSffpb0aC;#y zkg{J)vchAXFg7%t?eZn3w8f&_)|r8aof0Y}J+u(oP(vG8!pl3lM84c(+%%mTLi^lW z)S;Rb$R`Wjm4XpfB??6sqYj0PF<+@>{Yr&eDy38xBi@a|hDFWasg%+IqA{DqDXMTw z*(ukt*eDEx5^e5bhD2(&6j{ykBr0m@Hd&^WD4Q&LY{u~N%*K3yp=Fu|7GK{q z0qfk9<641VBO6ArSNqCB}{@M-`0WS=%vniHlfNG1fp~hXvjMiOJIU$w4e1hxm+ZSPojAE?R~i z2x7#KaZG58?!|+W?e|*vl89ane6XR#3^ld zDcI;Rj9)1gcF-xhxP>`W;Vo_4i-~lX5?!VZh0h9&kR0aa)vl}W{VDda=}aQ^EMCD? zq?2q9m#70qihogpi-VH(bjOne1AQpzf65obehEkSKu@KA3Zdz8q zo!FFV?kq-MjHSAJd*i9@zCI<0(Y8?-qc_TBo2Y6fdXhZ>iu%qbZvV2rbIi|4jw_pY zXqrCzL)S@FrU~ucl8|gQ-lfSTyf5)bB8?}inie=-;l;V zx|nu_kU7DnhimQplo96U$hu?134382rz4TAe@58ar#JfgJIUF4W;GdG@hj!q(vZ(~ zTrZCT;ImA|&j)KH<6tDR?IhvDZwHc({7LfBcgI?GZ0ujj`=dIal?;mtepe*>6Nz{t zi9d$@zW+mtRL{7HC67~CBwig2U*S8+gx@mTo1$j^JRiN)9N-M=Gmdq`JG-AixWzIgmBw6&dI!QT$M0zNCAh)Rb1t{1X&cGE z{>l#8j>a7hApUQ{6r>sSnH4Nij5ch&%cMZcNn_gfKRRqLryKaOM>`w)Xm3Y}yE$D* z4d2NgyVh1MvXRP+6g~~wd$+wt6u+H>+29iJ*%)RsBoo=xEaNl_@a<%4eBX>!8Vhrd zwyeaVZApx6&k=&2!QRsW+!w;b*Ms>)I6ujP`J>kZsJ$4#snY>84hPU=0kr=az{2$a zy88nt!*j(C`SUB;V1DHg3+98@1Ne#4J{)YoaD6b`HyEB9eB1H~z}ySJ!tr|RpxB`S za~HR^uEX4=kK@|Ea4d!EZ$bG@3FR9Hp#1K=P`+7%`Q!Uw{^dVF<&j6A@}uv-SGRu~ zDnI-+RF)1ycW#C1ZU?G8@4z|!9#mhSgX-RKsP0L@*>_%n zbN7xw_5CHNzI+v`FX6r?D^Tsc4;K16p!zK0zP|w$i;Hl6kAT{--B4T1LG8!aq4v@O z)H`RO{;@}){*@}!k3Rsl*LK3v)#qVx_$Hh?_9E2e*J0@|>!DV?=IdHt+6485KB)iW z3|#ogyKo^}z;PNbblng2`Yxz{@V8Juc@^rfU4jdP4?+F%NvIz?1&cR-54HQ+q4tfR zK>dXYsK5Uv)PA-FYCniWt?f&&^a~v6<8c0O7h&8Ve&MlK;OxQAz|%kfB%D356Ba&o1D^iEW_ap%bMVx`GjR6PW3cek zx1sV&1MT`*sLY*#`R`qV@{`w~ocs-xFZ>nC#y6on{T!6%FGKl6Ka`*OBa|;q!2IXd M!TgDbU|t#gH~a@QRsaA1 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200610.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200610.nc new file mode 100644 index 0000000000000000000000000000000000000000..a4c51408b780512bda30945d11385894387a2e99 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200611.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200611.nc new file mode 100644 index 0000000000000000000000000000000000000000..8e43c2f72a426dba265e72de810bf62c9c8b0871 GIT binary patch literal 4516 zcmcH+TWlOxbrU4jjPp%6nxJnlg2;LtkAh{|+!w5m`<(4{eBn)SU9f`ir0F_LQ#zF-+m-eGTv}Ci z*AU9*Y+h6hq2@gIGeY;JsvBk-(c1*BQxJ}i=OoRE{yoqi*OUZJBQ04|`mQ%c?}%%@ zGMde^eR+#%ovb~PP9)OF6uxL3Y3AsjaJVg4e3-=x43&!26k~B?#T@aj6RR5|*sy$| zz!XaqV#1Na9=DLHvC4ucCdgPZ`eSO=wT0@~+{usQF;%u3XcBY6)X~1KqneKNRmts~ zB{Bw@PIbqn@CqT)b{#)!O=WDs9o2UwjZAwY(Wz;Qqes_PTQ^+h37hA1G-1rsI*;yV zaVab^MGT2BRiDVK0YAs(Ttz2IzmObPZ_n}ns?8x`ut7e>v=02GweEC#lAM@qbmA%= zYxL+^TKRS^Fr6ccD@=HoOjkz1@;LclvL(-II|NT7%Z=%eN(4ySoL3Vg+$~ zcSMruWLJZx+%WW5dskAy&|0qF8sushi)l_yfln`i6`L1nf zxVKjw+B4F(cSIcu(gC+vm}E^o%(8$vQh0PC64`(RtZIU$^E>H0+jG*Zt-5R5NQV+Fo?G|x(X3#icFbFLObX6qKFsUBuyexWe%=#o*Peq& zu`OEUk~Ol)OVgQTJ`%KD>0?6Dk&!jUc!8T1r~DZO*Uot&iO$ z)S;Rb$|rN&lY$XdB?@^DgARp^u|TPM{c5jjsTA7V81b$ZHY{qvPNk3x5w+PkPEmzh z%1(H$&4!>4lxTeqGbK{HrO0ZQCs9#LugWe(;Gj4aDCvG@k2A-6_a zb6DplT+a^u8rd+2CD#g2ktkLuw63Fzpu7h0cC1>Ni^U>_tD!4Y7nDi2pt@Yu!`iNT z0z<&lvnob=t!5~>Y%bbxSV+&hbvP%Du*^()rh$PNOhR-}bCj%a2U4}_CiyV902GJs zj@YPOjEyRTN{k&;4k;MJQ;usH5*M+kVyuC}4hXyf5|d@%lYLk|_Vc1=+Adn2?pd1c z4PzvTam;6o?!`wX8wgs6AYcZCH;FN{AH5n6B9M(#gM73h$a@`bO-XduE^YVjM4Yl_ zn}UrF!}yg_Vf);?hg+CCQN5+Ldoh-5Q=-eXq3~Iu5t73~x7u|Lyg$JnwcK%}K7v

    h6eZ9a=&OBYsSavb&HrRky5h zJFzL#+*ypS7;8^;cE;ONU0q5TqfJ9FOmCFSHc}gq=+HVs6!o2T+`zKFb2!LJt|#kv zXqrCzL)S@FrPRE_lyknQ-rC?x#C}sQL~zxBkMj%oUj+hF&&9~;8lc;eR{30zmuGeXI7K35x-KtEj9TZ z*YmR|06xoPd?H*U8G9m;txpoZ`t3mSkv~a3`tDfEj=`)F@#fqNN4 zNFCqF9`~=UTBL=_j1&P4+IzRXMijrDgjM4b@@c7NGb9t)STEx=3-QflYkc2?RT>L( zhPJH4p>0Wwt!D{APfzD`2>Yw>z*0CLtInTf;rz%_2=z-LoR|)wc_4%q3!!r}gt?^< zdIKSp)pPj=g89{vaDH_^3+FvcA$(*yfIT%>UGJ&x>#3gWdF!*mMkrl;5673GbpB;1 z{p4vVU4MvThX$^ngVN%Ed9LJp4O2z3rQ@ICBFQ zcE;fJwU5K;haZB<^o2mz%5!C?ym0}}w7dY7mv_LKElpKwurTyIEc{S|g%j7H@@Wk!nMGJ+Ct>l>PFUQ285Uj~fQ4z4 z{qMNvZ-0bShj+l@h1X&6r60iJ#}31Z-fzJ1cR3t?;|BSlZu{Anz5{dpZ^GP9JK*@} z4fv}66`0Fhg7Pnq!EEyjaD3tboEYO!{`K2X{{8DvR!cC`v;qAR4Sh-eJpWH9{pt}Y ez49Ec{|QRp{SuU}bi>T%-@r`i9hmvlwtoZm5H+~~ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200612.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200612.nc new file mode 100644 index 0000000000000000000000000000000000000000..734558a384bf11a2f85a4176c8b77dec9321d7ee GIT binary patch literal 4516 zcmcH+TWB2DbsfvLypG~D1lxp=-abgAc6Vl9T3Oqd)FZ!yB^j@f8*s9@nz_=BJ&$GX z>`JQpVPeviv~kg{tqmp(t%>Q6o3xNZ)3i{Bl;D6}0-NL66eAS6~hi6y~ za_D}Rn;6_ zC||eujG_y*;5sLS=1Eo4jUM8+101^~Y!A;#!ioP@*dL86F+xMz@`m&rcaENs*73%8 zzQ~4)CX1(8B9@88GRYJ^#CtQ$)?8t8OR(q|i5d&~Im6$u`bCK; zrYJ>(Erm5{B3FH#7p|BhXGQ2AQ}d1`RNLZqaT1TIGNGeOj44Ay|2np6*wRxaw+g1n z>F7GunUumU1w_lSy}UV>vjn$Q&ylopiC8QhPbjt)-q>tScbF?IUeM5m5jUQm-OHj< znBw!^uKL6Tl6IjP=R;{Vl}V?t*me2&F?@h=na&m@u*#AJIA*NIqr zL^ra^vkJcJY%#OOh4(0QZ5FJ~lmDeyiW~+C;}D4_STo)j?F~cr-xwEfc(fs9PH;Cu z`NWELfoms)p2Iv)ESnOJWVXoliJ&g&q>+1V3b=M@LK=%9oaVTZi%5UGrkGIE$w;v1BIIPwZlpirn)sQK_78mfLTb<^(s3 zB0>r}5gAD)`qF*vQt(#MUBx+%v!1YZ6nj)qCGgy$ zMoMI}<7^^1N#{B>$Fh(Q68z=R*!sTAk6|8&TQRLVY zp5cfSSLDEo=ImdX38z!gv83xBHxFV00(I^QvreWSi2R+GP;9;kP21yS+gg(^JN0#vNjxJFy_ZT-#XNJhWv^I07 zCk6V+0(Yfg#8nAH(Z!@gB_qr?s@1;|4J(yWqKA>}W@E#q=I>NW$$-$rCJ{vwR*ao; z9gB^^5Gdi+9%e}7wqnS7o+nk&O1C94p@i9F(PJ})muEKC3(PFjG_d*luA#7oIt$q6 zrX1G_;u_jAf-TqdNue-yDD`w!=cY=E~uM)PpuN?HW2JqK^b*zvn1<&+@hE)C`KDe*q{D|CzPW zx(FLrMwAFUsvJ`=hv#g^)Fr;eri!@+3Oge321qQHeoTh3eH`X9u3f)XzYcZ6x`4Tapjj+?`}t2tfBN-V-d2$Mz`K|^`k$<4w%j)a?j!wTt_>} zzRD%qfSKZ7l;Gl^roE|XyuZH>HT_ThA~-MMO7-_fW5`kmCK zN^^HL`XVfmN~fcVR9~MGfix@AkLF&YcVRuTb?)jpnx}};&~wc>pU++PY$@7?Uwj)p?$^b% zD}>AmE^AVeqBxdY{&KT zr~v*}>G)*uj&vLdg?1h%dgI%H^rLu^e)Qe3ksq7;*UElO=W~)_Q^D_w_}*A78jIr} z!+GETLypwXxQQ)~Q(Giioy}O`GwFoiGCRMGa5GLS2z)(gUwe${+h#q#bdLn{I2*w> zCF!Pba2@e{cx5&~4Er;#O+&j*1L-$!md9<{ddQpexv})gE=_=&@$BC z`6ARGzX;3uQ@CfJZ)^RjG}ISVsQ=^(P(S`nsQ>l?)Ni~9^-Bk!zUwwD7q`OlpOE*y zpCbJr)MM9S`B!PE_T7f+(r&2koPg!@ldwGdbEu}aLhaL|P}})AsJ{C#RI7i1>Jy)Y z+Mz9Q?i+7H?cEI2{{9@)rmn%+?_GfBKk)%nmda56{`Hpc7fyy@@sR;o{Iv>|FJFY` zPYpxmp?|>q+26y$)@PwI`z<(o)q#cbMOb+02F$;&LHQS5$m1sQSy``s2FkDIR`6FI Rh4Rn71M{E%7tAZwe*?UFFk=7! literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200701.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200701.nc new file mode 100644 index 0000000000000000000000000000000000000000..456ea858f73abeab15252f40c284750a1958042a GIT binary patch literal 4516 zcmcH+ZERat)m_>(aaKyzjv_I-D>ikBu;24nlEyG8*-5*$YMLqz>5vBQ&3o7Jqwm9d z_t|MWB#Mx*<8)g-YFB&-A+0|^tQz8T5)zfBBGfUVRod9b21S!571-Dis+brX=e%dT zPDt7!!IQ7gyZ79CzVA8b!N|T1p-_lM7)J+=F4M864X>yRoZ$0e9GxcjnoFHH-{=`u z10A{p=iN9uVB`RT&}}##1k}TN5+cKA5-&=B~;tuc5w=isWPFXNsOGKp?w`&HEijrl3N8+ zWOX#1>P$)DmI9>Z*k0b8&02!ns^>@=*+eWh5Q{6e7G7U%O?Q|pEMCyigb_F1e_{`d zN@0>IB1nX(TCS-2{A`DF6`dr#QgTYYF~|R_Hb;fdM)@p@_u(%cA515FCnnpSxQ55t zJ-VJ&o>lNoXN#FtCcH(atD|6Locu4?CMjT1SMnS>3jGj?v!=Vz+3R}jztL?KlUc#t z2!#_X+6As17kU=MK(TC!H{#jGKfKCPsdQ>jLu6Y!E*tlYLTepbYcJoBZ1d`t7>ebG z?X3|>rjrA0=H$ArMG^x^1tV*ve(R8H-YXVo@l-mNOs58kT#O=-dmhFqWfRV_`wY{Z zyu71JQKlC^Ob7VuS7#jrIhGp#JgG8u&DVvl~OW5G-p#dMHQ|q zn{yqD9flE5!mT~bkVx&iB5PTmL`5y#7R!VZW>ZCv%@|&u*_badv`o{$;_I7++#2dE zV4cf3t`+z-v}qJeuIZyfVXRPSU0V}=dG+J%kw#^nnVG?O)is6cf->!tREMitP}@~k zU4)(oYPFNE6;3+bBI4;Q2!l$mMQ&@mAGNr3iij*|B*U#d>cARqb{fa37o zjD^}o*n~2wMA*1;RKXaYwH;HJxQIm+V+|B`MBojOm@Ivt9K`Z*h|jo&<)G#1qNUk^ zAV&Nc$Are{Ufd_ye!qqA17=jX(-=dC(5q2D0$HXJNB$)F=(}S*J2v;P=Dkbjvyx#^!S9Oro>(jz zi{p=BzwiH$BGof)V#(uF7KvA9(^vRTGU2z()^8&0z*Yr;F9+>w_c49jtYw#;(V!n^ zqgbXS-Sl;?Bc2amZw_#V^%=*8k&mPvLAb>-B$dW&iFyaZuEg(X^(DB$(6cVLr)e9> zf7^u}v>lB*5L( zmbR?Mp>0Wwtxphwo}vCz0o>PsN3I0($;SL)7R--b383~=0CT4TXdDTk$pUD<9l*ks z0J{4FC>!UBANA)KGQs@9Ar{Pst^{!RDIX3sVPk!$v2UnxZs>1CpD|P>J`R<8PeS>x z0xCyGp;En{VuuElFONVaKLnL+_e1$#F{s@4N2v51h4R%flz;YRsO;>9x#!=6xffKZ zc1%LG@3&B$-U8K2F3j`SVgCFN;dEv*oW5%i=3o0N%wPTy%)k8_%)k3ARIh#ls=MEZ zr2`Tc|Fj*Jzx5a_$9@b;<7rrY{@bwd@=sv-?q^|na~+mmItj}UjKlJ_mtbkvIaoZm z0rwVQ>Dm{e7JD7eytg0f*WQBqrT3s-{tMK9wF%CCz5~vF@+~-f&o-#P*ah{6B2X*7 z4`(h-!}8n5pnm)!)SmtT>KA|D>sq_|bEtp%2-J`L8fq^%P@lUU>fiYq)UyD!i+4e7 z*JY?ZxgF}Mb5Q%>D%5`W4Ak7O!$PS53y&Rw$AA9>ocZNv;LIC2c>Eu)!eZ)ku(MPrzGQJ-w<~Lw|Yd1Xll~2Lku{U7Oc?BxxcR=|UOHls)J2;-h Yaisz2y=^=hgYr`@ImheF!T^~|+*nt80| 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 QSHB6TKmI11e)!Y>1`DY)S^xk5 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200706.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200706.nc new file mode 100644 index 0000000000000000000000000000000000000000..08407f7dccee1ec081df84982954ea0ddd5f0c7b GIT binary patch literal 4516 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 S=`pB2`z%yn`TVCjziXQK`L6VXRf`I&SRN7 zyS5ut`2(?DJ5BtEH!7{F3aCUxXbDsZXsH5?5CTP%S3rnIeyC7DQB|5Y@KJHj%?BAq+Pi1&J@=mXJ?9Mc?Oqp&L})~DY{0R_a-A{LFB$?T_`C;4i^cu=QVY&E`lek& zNAAS=Rva6kZy$oldK`PeGHvb)*2jI$_Bp=rM!7CnNqEw99i}NAN{Y4SeZP=VRoyj& z@|exX6+@^6&pj%1U#hxcwh_Ip;5sGY_;^mzoao;HyW^UYplM`t-ju%UP0~B!HhzC7 zUu64>7SlRdGLcCnGAVk|+B3}2J>hU$u=pU0ml!G)t1HIh#)>)OT_@HsMzCS|LWwDs zD8+;$g*{>+Rb!O}PmGeWV)VzD%k?7Pk#nGc{tF0R@^MuU{I+`%%X&n6cO?>diU+U$uEy7;Jz~GOZnd8Lc~$Y$qqCnw_|c$C^F5 zmR7!92u$aQ@f9Y#O{OcOV0oPUFWHjk&{61zn5MD1ztP)ky6nGEE>*K=jmxCqUX0?2 z6`cat9~DLp<3O<;3OM4~#6P;iROw8*tKpwVW$l7dY^_0S_2rwAt>4`eL$QLmy*(nS zOscaJcQZNV2N%uF!;zMgWfDm=2i#&|k~Q@(%L3*|;n9gmWD^pwY6+Uof0WL%{s~_=2C_XYC=>WzQ70j? z*&#NZ8liJ7x@+4=hY~HGTleZvUNBKV<}EuW1!uAt=5=4#1>teO=n2-^e;6sYMaQ{h z&1{O&bjFyE1Z`LPn2>a2WKA+&;-|RylY70%YDWz%N-|lz^zFgs!5@I zvcNql7*SQCQ1me9P{cay>bW*M z2z{VL8+({3k=hMKR5vh&CM-(z9+HE=VIRGh?1V~3T86^!9Y$F&TJi&#`K)<9v01l|CN$ujWCek>mc__$}*`9xk$6X&f{hNt z_?1#&``x04TbMgqyQTGeF`Q~sqRX_Q@L8b|lEXr`+I0=QKg#x4?g&!P;uTy)I>{d5 z5_P~x2`)-_aZu9sbX@E1?nFudQ@$AXOE}Wq?QyMLODJK)4{K3&8`7p5mNjlBHf5Sy zi_sZl$#h3YJelt7RKghDa1aLRjdIx*Y6BAOT6>71zO#YbyR7dV404j|$;Mr|y}r{8 z`%a|4k@z)Qz>p#J%Jfj*OZaV=PaK1LMvnR^!qntkaW0^9i#?l)ju|B18jU**G3E&& zbAn4B*EaGAvzD79>pn%CuouQL6^Y#S2ZYUidcCi|m7L9IR+F(Azf!(!b@?3E^YbVG zKFehMbht(`_CzAvA0d40+kxaGf0BIk-LaM(>-$&o-eK@b$*`#4cZJrKNW>Ew{uuWA z!4D}?J>wRZJWgeic(v4hh3_O2e#>ls8sP@)R1gGm(7t9L)3?oPc4-|5`*AjaWlGXb zU*kIB`RI+_0B2aAajffmfBG20ZMG??H0DawIuLd_{_aLwf*VXD=W%C@wvqhn&)-ek z(YSpf#Q!arf^?HUv%)2c(Ymegu_%yo(j0Swj}FJr876-0(a!ol+S^j%Ud|9w$9J;F zJ!`8L*-T|dihu^~z1?0Tir-Gcs&fhXY_4T9Boo=vDC0B>@f*q3_`VgZG#2I@ZCQy! z+maaDze)&tdOD^;xVr`qT@L5NwfQ3~oPYLm2=#A}L zvUaZcfna_<8_v%kVBx&yatQC63Sdti*4BG!`+92UdfuE47(@9RyKwYF`Rqj~|9Ak( ze|?)`hX$_y8OIgG{SwDDD8GpCr9~)z>nP5D1?A^0nEu-nP-(dimDYZ!3_bvrb3cWd zoxg*bm(Rj%^jVlal82eMQZV!8RhWI~9L&aEfSI4~g323@L#69kn0u}l=KkoxLhq9> z|Mhm5`^R~h`@v2)`I`w?xOWWZuOET=#UH}_*ZN`p#1@#V{tQl@c^l@>F_=I03M{_+ zMOggPI;i&D57iI81l14y3#wn(45vT79jdSGg6fNBpqfp?(w9s)wf8fy@c7FxpFa&t ze^FrR-m6eOc{I?q`gAW;zr7c#m)f9O9EQ{PO~C0`9;#1$8I~^ZfTd4dfTdGYu=MVe zQ2id#)vrMH0hI0R=V0L(1r~nv6jVRC2dYDN!NRNGg~fs2!s5pkVd3gUShz3(^FKk} z&s~C3pWh6NXMPWh7q7u0IB?>9kHPWlm*DtYEil~^Y1n?|^#shk128-EAk4o04m|PU zzvFuuDp%G+<=0<<CzoAedNTy0YXqW>;M1& literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200712.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200712.nc new file mode 100644 index 0000000000000000000000000000000000000000..33ddb0da183a22c47fb431104f33f5b001db832b GIT binary patch literal 4516 zcmcH+TWlOxb=}y+*(41@RRXHyUZjxN((cSY{9J@&=QwF%#c`AkPEk`fcW175hsh^Re>S|=gjPG z*2YeP1f#us=H7GfdEax+!1#fVP$)zrjAIjyEv94V46mpQoZ$0O9Ni}OnoHd{@AM3- zfevlM`Bog8VEhn*&|^5B2Gg*(C)hamI6Gu}!kyuoU?t&7!?9Uh8B~(2H}83cl&Wfu zE|ljjKC9?LEx67XgyuZxm7Sl zMn}`BPF4!H6d*0f_VVU@#uD6CJx9{WBx13lctWwY@WyIuy2D&y@q&gXjJWZ^xnUNS z!X#5fkO)(?nWF0RvmMS=bdvN+$*lTdj{jF}P6(Y%@_7~?z+Wmpl1dDa6O-*uT*qVW z9^FVQ&noz)v&HNh6Fwr-wNbD-PX3o{$#du^^g|?`U`>Ccw>Nazf1_NoVbKPcdBNQX z#S<&q1+JYIdIsY_v1|%B;@QSOyv9`hss7=Xe@@HB1*6#7fY$oU4;kND|;n=DAOh8AR5z#J)DIuQzWApx_Ipy~W>I?wjcdBWC_?J+@_z;lZl z36V}8XVb|no$J;d%R)MoXz^Uf?c;gDMDv)t>X;Oq$zqV#Jz*7u%e|s2SnvL0NU<+G z%Oz`PQ~(vXok&v=O&Ca3%v2FEJ6B9EETCJltN$3#9B9 zleF+yFHDV%r~7=#DQ&SZw{>RVVW)%&Ne?ZAHq_8Ymhke9E|D+y7&lF4me4-8Hg%{b z1@g%PccoxNRS84U#h^nWBg|K-RlgDqEtOKDj}h-?VZ);4?^H_30MVRfaf&M3S9ZpA zEOrFOK?%3^Fhe4>`--e*c@h=1bXzPFN|9lzE^cAYOyia|@5OYoPYJKmhQeo!Mo10|-Fny6_x=of+H|r=J&jjz9qA<7 z$0h23k>X#J;Nqa91O3tX$jA^%`k(SeuwTN_KQa)F55!|i5b@LTFna`P`&*XPA0#$q znum)q6k&<}!NF*ve`rVvVsz6Hn4&kzWm~8Xhz-OC0u=R~E!@FXedm;)lN?vJ?#iR} zolekqBK=O{*J=R+hSV$5Lwzsdw_`rBb?)jJ>Zb_PkaNvBpUy+}bQNvGPreNr+jNn0 zg^(G+rH5;se9ma(=1|8o#0h(09A`tJ$A62ky-#oU^$(M?{mgnYw&T~zx4kK!?YLeZ z1;A&OjGqhENXF4nXvayyH@+Q6KJq8YN8cSA*|E8QE$<$k&r60y1-~oe!?9R27RMjM ze&7EgMXG1q#FEFUEE2EormygwWWsNm9WNr>gq;ckUk=*W?qmA4Sobmy@tyq(2)A2?q|%rvQR_h1)%Yh`Z3%8L^o+~x9Bm`{AG`Gg zZAasd2N3_aU<%R<`pgQJC`OyM-epoCWu%d_{f`dY%jgDv?9tBVKHA$|;%-J4Qp0z$ z$F7Z43vH${BZW_c_C9K_5yo#PVK%u0d^R_-8IlQYX_axB1^7;~HNJ1fDvgCXLtED3 z(6%JTj&Biyp3%Xx0X)!vNACvn>Bjsd3+AWp22lH60B6ny&^Q`ElLgRzKY)e10dx-r zP&UpLKkmffbtJtLEKF!--tr_)eb1X`xz*|_ZKL?`DZ9!MI4@4f)Fg7cm|frZ@|)P zJ7M|Bd$7DR2bJhfs4RRDDnB2B%EUNSMt=vDYd?j`OUqC>x*L{1{{bvrnSiSC6{zwv zP`kDVYS|w__2m($j&;F>FQ=jQ`+q|1=1Hja?1$Radr({OpqkkM7b+c4le?e>AHb!B zEL{5Zb*TT~Hq>(yQ2*>fsNc8-myKSyylpqs-~1WWPj$n}&0oW%xv#;+k8Ockx!wbn)9*w1jc>GUzjS^tEZvF0@)->(Pjg{5yl3ybeQ2j#apl)wAd>Tw~ NJ7IBP0T%bZ{cl@RFqi-U literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200801.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200801.nc new file mode 100644 index 0000000000000000000000000000000000000000..06f5c41f69c233e56698ed37b98b91a4dcf5b4b5 GIT binary patch literal 4516 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 Nn7MTbs-O7#zX20MD0lz> literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200803.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200803.nc new file mode 100644 index 0000000000000000000000000000000000000000..d4e51a236173047ee1bfe65a999ed46c5a4407d6 GIT binary patch literal 4516 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 bjw>Og_i#M_Dpa0(4#zZ9Ubqjc+l&7JH8wQE literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200804.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200804.nc new file mode 100644 index 0000000000000000000000000000000000000000..ef8cce0db7f20e6f1b7eb825afd83047b2738cb1 GIT binary patch literal 4516 zcmcH+X>1%7i%5b%97vzxWC z6C=TB-+uG1@4f~G54S`j5gJh(+i|p;jy-93C0*bIpL=n%ncS-{wc)(gGpuksvK!~S zaBPRcqX;6~a6AI0VR28eLGE#O)b@ls!8O6k!j*<&v!v3kq}hRj=M}T6syVt)&RBd( z(S=%cohOCnNmbL0PQtef9J?%R5AR8u6aIVPa6G9bXd2mBFr??W)AWvet=CT$O6*w4 zWXW!pN@Np>Y`OUaedt!_Z>UdP=HtdR)CT#s8}`j|rU(^J$js!e2Jomrap1lj&w7ZeX!yi*6>B zXBBvQa5qNo#7cIN zYo~;sM>kL`oBWMvHqno+(^Mv#>1~+jlnmpGTx%0t8!z7xZ9R0$4B7JCc56t|Vf>@( zkfdDKwOFbrt)OSEm2VSt^|)e5mds=m>1?KtL`{$7%}L? zWGtQP>F#N!f0?#dJ#6>Q5 zl8vRu>0X=WSQg@;M2q)Yo;z6(Ow_NrYpzMbnJfi)-4j+(xZEqbf*m+?0x@<*r?_Oz zWJ=PoCz*!`Ek}BokTfJ@PBUKShRG>^M!~U)t|(w;G|GaFYUp_J0S}KC3j#6w#Uv*@ zb^t~P26LT0=ajZsl-oKp@Ul}zfux5TLLF+TBTIM%N0&&KdyJc=Gez4zwI*?>CI$S- zB6p==gjI<`$wjY2CS%MOs!_jEp_EEF)yarsV|A z20@87&M-qFw%dYiq(GlzLERCS5~ENAxGbwqJ9Uf@k?$wP^;~&<_Ce!?$u4N*7}% zm0=~uPAHEl=)=>tW9kwYv8bZ2fx?api~xzr(znSmEFVLB$~7zpHBW(-Wk&-a@qHW< z8l$-QkYq>v7Q%O!Vc|}q4-KJJW=H|3Sa~(+b_9o(pyt`AuMu(yQ zN~y48PRYe1%$W$Iv>q2@=}slOMjCRTbrK;u%vKwPt8e`Y_K4|>BlaAI;0D}Dc92Vy z0X@YJlpt`B)2>WB+1J;Doc)J20QvI(PLv^;5JH^11GwkLNCDc9d+xPrf0J-MW}`g^+o{ zrH5;+{In6~=19vYh!Xa~IA$V|cl-unbDv)C>+i;A^PP=&Y~EkbUq_uk+i|@DGJww- z9v=_Zh{yg&WX}_{AAUO!e`HVMkG?xL(_{VodfM;T`LtwMRPehZ*_%kj6G{9r?Dzd2 zVx)S;O)Pnw$|BKftJ@0Si6{J)*|UOhJGLqad_L%0vyJK7W+S~E7!LYzHjHITQlxJZ zj(9(MyE(ua)@K|ogYV9qMc82(l1gK~OuYl`uHE0;=u7Z`q32z0Ptq~sf7^|{bR3mC z7(o1Q#}uR)^qCbbk&o7Oz0V{^%1dL?_CGpoFRvT;u}3HC=jd!(nY(#iNDbdfANw{J zEwYo!j1)c&I=j_gBZ}Wn!mLvX=Bzd zJzt{@diuL(0(dxt$5(^-SU7)z1@lj@22i^az=@dv8pi`@vH;p|2C%pqK=()hWq7Z2 zzdyf`3+6Y5STOHj4d6pFKJ2fNzqRxd9fZm)29-a*0<$~*0hMbjP`Q4Q ze1`^9E_*mW0+lN-K;_3bq4MhQV0PChq4HM&m2dq7*H6RT_kRF$*Ge$=3m4`)uEPBB z-7x=58!Q}t2^PNjDLA*|+psY81}yYH4hvs5VBu#^!NTn4VgAxE%(L%6^*vEoddi0C zt=~fRjbB3bffcB>-v^7|-3I6HnSt}!>rnj*jvtW$Ar^=u0)W!j>4o#H`=R#i zYf$^#DqP6@&6l-y^EtTi-W9m;=w+yVuK=}|FGB74t5DmYhh_aM@TEVUg5}>o4Yer{i6)bmeV0_pi&a@IKVnvwKLV4c*VR48Yt_8_fOa1k69$0t;6W zzWz>_?fd}DY9ELBmj~dB-Zx;5e+Q7=5fh{%B8=fO}_w@ K=bwSu4*lQg%ruPv literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200805.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200805.nc new file mode 100644 index 0000000000000000000000000000000000000000..34a747468356b11c08fde5ee38dfe6ebb7a54908 GIT binary patch literal 4516 zcmcH+TWlOxb(7e{nK&e%v?)~umjY=lc4zkC^@|qS9OvOQwnNr+8xgu(&s=+_na47B zb{!L-5eWIQb(P)5>ksY0+oPDwNxV74@4lUDxnGmf#3u2C_+W8_~4wG+0EM6 zNswT)ckkSL&OPsY&KVd!vMm;i(NJ*gz_H76of*?F83Gsh?8DJvalf(Ef$KKkv?Fk= z6W6l^tM??g@w6f+faTqRddKctbIkFgC0a?mF?NF#?438)c?i zq8t~F6!w&bREi$`O1nA7|Eo3+3xkdFIhM-eZy?n_kS1@YGObSB#AB@< z-AXIpE(WG^#OwwW-X_zHQLsKv{+DdYbLc4aLp;kG?nY;C>9PMtw`^q4h{>GbUYx>- zm7F5i&k7@tVW8R$#T)T#;je74RQEu4U(-EjWpuwNw6>tN`Swl8Hm+`&p;$rK-X4)m zbpJ7QNK$e5D#=T-Gmg*izW(Klzy$ z8q&rN=Y~ge+E|bdxW&RGYwBT^11Wo5ZN$1(&bG~p4%Opy!sC9)6YS98Q%JE( zndOqTvMEW^nPEN>v|Z_ALei0uHOF|Fn--`1seo%2JyF2SXqE*V*D>%CLq4Jx3j!$z z#Uv+ub_m9YhI3tk7os=kuXMr z7{`Rh=w93>*|DI72m)qQcrzG7C(x^jAOcw~3i64TARltLH7C(shf;lg$pjMb=~A)L zVHm$ss_eL1@(_i&)6p$$+>6Ofm#VDOhQeoqMo12`)n?Z<@cuMAYPnNLJ%?9t6X_)T z9G9pAMoMr|!i$5FX1f!q{{CK+^grc`W50x>yFZ&qWm8EtjQGiv!fr#_?xtmpn~6=C z=GJ2L##y?%rzer_?(J2>7~L@j9-NTW(ycHq+XdG>U#;k2lI(zaL>q7KShv8&JE`RI=8@SFF9tAd?Om2hM4h$ zka@wSk9%$WoEhcj*tSQA6ZXP5F2rIVd>iN1KE2V`-%8HbGn>iS3g0N-o`!sm>-hx~ z0H1X-o(}g&#=%%@?-_ze-wq@n`IF?M?~bkP*udY&`=bV*lMIUrepjUWlF39eg+GS< ze(*zzRL{7DC67~CBwig2U*S8+gx@lIpT>CywkkLUau8mtkLlZHGrJrb4f}C6ie*aD zP2b`=;(6spbAT(X&p5UX-`Ra0=RLM5sWj%x)H@J#J$!$&FF^#;$a~zGAvBVI``Ug& zN8=8MGydoY7|f9ZNS>)#9K=?md(o(yM;g|qXwa4udCXYW`z z%jjI`u3){E3)gEWShya%9?l0Z1oL2Hj`jy5yus+);NPDL2*CVz@5Avcn1At6n1Al) zG$?jx!2I){Xzbzp<1l~a^DzI`FJb;_1NU86{MHC8F5C-?H3b%5e-4&Dv<6F$D6sVY zL8y#>6)KlkprQ$=Y@2|}saK%#jYpw!&t0&Tei;_mDo|bi8B{;^1k}#H54Eu`LiIbJ zf$HU}aPgtfLT&KRP;(!E+VLT%J+KpMok^&^d*~?%usU-MR!@H&Ry+5@YJ4x$|Mh*SPdo)H-~JS=#676rGmG>(p?-fqto-rgu=2t| zsGk2F)Y>(uJ$Ware&jt^z5BONd!Y<9M}g{J--hb7t5AL8*KqNtk3seHyKrgY0MxGC z0kz+}2DM2BPj)!4tb75M|M1Q_+b=!%HCXCwgQd}BSbFm%c;Z0?D%E#jVd70#RK5w7 zsdKRWmpCj|UWCP`9awnvGR(jFdzk-mSLn0nKOOn*7wF#~!2By`aP*)b??$|Tz{0*Y ISjam624hn!!vFvP literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200806.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200806.nc new file mode 100644 index 0000000000000000000000000000000000000000..8947a8f188bacbe4f6554342adad0f42066d461b GIT binary patch literal 4516 zcmcH+YlvJ|c{bTJo7u#4V{9yhdK781I&<$l_6^ltzummdKFGvPi`D6wd(ZCN=01jd z?#yOW&|rnhZlasn$1IeJ75hMKjkbi42qoA`ky`&$(3S`Zs8EU+5vmtFCNJk z*}8X-i1yf{o zG@a_?q;N|C(sFDsZ%$_|!EM!ZB#mq;k?2WuDYh0}Uu{iym@6z^(9nc2H`#T(hsC8Z z$rLdp!c=XdsQUbDhjSI3B)w8Pr{139|5cl#LTAH#nk75&*O%<=OOZE|=|(56;ju=K zuBVk}6@1g#VrrEM?~>{2C|DUM|4X*yIdl~IA=bre?nY;?>#_evx6aU@A(Lsr-57-v zE7}FF9TR#M!$7fYiZ|lfz(2amQXPFAJ$3gSli~fM&{~Jq+RL{kTf4d?hGO|)dv`?A z;r++ZAx*iiYq3;!TEWO#soy%}YWIpIS+b)qk?!m0B~=p?iQMxrPAQvkmfdTZ<~TQt zB1Qr_F&Rszy1Tj?x!|RutBPp|lcUZOy(${Ko8_h%3}h&Q;nPY<0Fx~x1e#O6YabaM z7*I!sGJ^*)>WH5XxXFSfYiL211z=R*!sTAk6>QJYVWij| zo#K);vMEZ#o@5>pv>fSSLeh|tIn8*98z!gx83o5GxFV04(I^Qvs$t;82Rz(f$P1+G z7n6+e*d7=i7|gW$l2h7ZQEuzZz{5@n6_OrW2yLjLjV$5i9bF<{?lEqf&J>}2ZVl>C zO$y|b1@210h^i8WqKi?7LdKY{RK0$sLM@e2s+|$NW=>Soi<#38B+){SJ zbu2algP=s~dzc}S+AT%avOI~3TDo)(WuBUv!g$p+h3bMb>6BE5t6EUoRaamL zxLRJtaIe)2rI0T~8x9NUnzs%Yq#l%+N!QRZ5dBGj_G^xk_bgwk7R?|Z`WJxW@UIyQ zwTrPM%CHh+hn1rW#_+W5n7YJ8EUFl5ps+E4H$Y;t^nG#=%f}%;#|{KB z;>S29G)DL0A<6dpErcI1!@`}!7&?Srjr$SEGGUM(X$bNGo14=T-L)s#)02oJ@ve3S z8y$x6E2Y8?Iz<<^FlQpXrL}u8o^Ds7E3~2TS)~z@!)&$Ib@jbJ!S4ykAG3a%lY zWS`>_b-+mRFG_H6P}0thc(S**8zucu`C`~F;pph?j3+yj2_=a5@nn?Ug|r=Y%j&li zn=;Lv#psT)R7Y1=Jk`pePgOcKmG!%F zcYUW5^qok*nfTRPzOU6e0YWcR+u z%cB7JtdQ~1V2xz#k3_aVM)>gCf#f59l6>^tv7Q}k`&aXRKFieyhB5l|xkKSqyaEA36N7LYa9Zw?MW*L%7W41)S17TOt7++gTgm)n!HjpW~O zc_(d0;|>N8|F>WY(hT~{3YI8FYqs8HQXpleF=_iB9k!R%4gA=nowa?mx2440tS+R6 z?_`f%>#G*oOl3w2p9bx{+g>Az-%i4;aS8Zr4zn4OiEOEtahe7AX0kQDw_=sX!knco zt8r*s5@Y*wgrKLt>tq1;hH&g^Fdq-+kFj9>_|*VvKMLT)$p9K-0W?_v?dt(7Tn(VR zKY%hkSNy0yznlr?mk+UE-hVZK51#a4e+`D~{o%g;@Ld0mrDtg)lwW##^`O|H0p*vU zUWq&ZJd|JC1m*KL!}V)0^YA{H`SSfR^XPYAMt&D&-q{JW4}Ji%mrlUx)+=!O;1JAS z`xeapWDsWm-U_GV=kR?DW`6Ncm=Q0-+4oahPex0g39M#gv$6$SUmqHn1Aa&SbCR1wQVa@A26Ug zK7`{1s2<(|)w#!^dg6VkvZr9_3p-%pFT0^~c?PQY?trB?7NI)%oUd#3gU`V7Cz@b+ z=$Ekksdr)d&^@r+_8X{9Xt4C!o3NBU1l9XbLG{OvKy~3+s6KoVmVQ4E^Dni*;^ytJ zc zr(mw_6__iZhqD)QP<}OCxBZ!;8l3+2GjMugH=Nl$1K)UJ49LJUxf0n$Dw@g2T1E$;J*tmK>3YMIMr-I`AQr5@3U}f*U#b9 L_20s&OT+&L`D8UP literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200807.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200807.nc new file mode 100644 index 0000000000000000000000000000000000000000..aebe52c70de021ea76f69207a2ce9c5d3aa47445 GIT binary patch literal 4516 zcmcH+ZEPGz_0l+rb8ecb3KXeoHHa#<(cSKS*=Jh;**qsr(l`z|lM+<*81IgKo9xH2 zvv-agq(-7(-=)TO;yeFn0imKwL}^Ho5JadV5^B}*Q9*wc2}l$`f=U5YJ_;>AD&E`O zyPS=k1PN9*_jcyZyzhDMEe!A75Q#)+L~(4yvDI|!Ny97Y0w?(Fz|n4Uud&pQ^ES`0 zLUiPAoOj^Z2*djkMDD`zFqnqLJ;8>#$Ju_{6Yd1p1S<Gvm!%Q|iNruUi!aHZ0cLBiu(>5ze3Zq@43&yC6k~CH)g1AT9cvoH->`C_ z%oJ0UW5Slg8aI)uzQ%$pCdgPZ`eSOrv4m<{+%ApdF;%8?G>I``XlP%@Rt;Nvs^nJD z6nPy@r#jOMn08D^d+*2twq;YThkrp3X2ytG-1q5_MYrx zaVbnPMGT2BRhuZOK0n*xTtz2IubduNZ_V-ls?DQ9XCr)?C42BUknA5wkvEg+Rwu6E zu~v_+r3uSQ#h(OSa@WbQJm_mSqihqqEob*ngv2PiWAP$+X~Z zjKYbP>>}4r2tAKspjbA=8}V%6A6;ds%s{5E>7ElZyk8Vr>(E+z`IclGSGUYiEI(}T zj7U1X{}?)?Dc5x^mdd6TjI5RVtwXMHuUL{LGXshAK&GEmO;99q&%-#SY{FT7uVI=; zxmgl163~gsSUQ#M&9-vEOGQ@|(-0;{ohABJGH zo?FsLid=4t9ZiqZxpvL5ETlt;7SC#;kZ`d*T|+3EV-tSibSzOp>=Id_~q4)w^Lzdo|>A%c-1w9>Vh)qlvRhTT2R|n zS6~RZT0zBdZ`2H>SSUtY4h!j;HxC!39+a6$*U&K#{YilKYmQRzEMKa2%^)B87l7jM zy_|*G#n_lKqQuw{j4ErScHcy}j{NCYx1)7~OaXM(K@m*;Z-;5u)D#>zTD=Y{jpZZ(Bn? z+i|@D3V_cF8IJ{PB;#Ntvi&i_hu;n)ANiByqwkLO?AX}9n)ib`pOy@Z3Vv54`x1$G zB8fkS{l5Q0id4_Ii6xIyStMTV4PW6q$%NlB+n+_a5nB}mz8ti#)yMR0vzA@DMuL8v zjbNFQbkoai?NGgr_GW8CGU5Ve>>`QQiq32z0PtrD$ z|E?=LX*(KsIDq)S6;qIA&}UY#L^0a1^?fDlw#N4ktkPJR z^R#6(4sAjBg*1#seY0FA=|G+6-cw*y$b z9zb_r0A+Zt^dWzKB^S)E9Av?K@Ol7uo%Z2i1BUB^;l9D}+~8lA{f#hl;iszy#SRUa zc_F_Ncku?ye0vIJE?o@PU)TY&?>`5XkLXb8It7*8gHU-k36*zuK(+cesQ%^%oVovx zP<`n=s4mr^`h$-`^;#cPkADX$-WyPP=rSx|tGVzw6Bg%sVDa9ourU8REPQtp%pd;) zEaqN@#hzWT_`vh9xaT4)cKiqyzW6@OKfW0je)$M2Tss3xZU2O`2il=__-UxUI0Ln} z-^B3>)OWrL^~_UHfBY{{f8+tEU3&$V-nj_pzTOFoUz&j0g$}3X zpZgaq-~Spcf8bqMKKyf7PH%wv>~EoV<10}6>gS=(u0Vac1odw&L;W+oQ2XJDhv+O*p$xhjX15p#IEusC{84)HY7T zxu4Cz{2NcfV(coM9lH#b^B-&4etxq7bLYPWbN39x+}HjDUtWF^<~m=8Gr!mkPp2kf z?(&CW{*$|)`n?lSeerit-TgAmzV!~wMxTJ0?<+9#`%5tMtB=EMdktp$?uA+72F&)q Tit~d|*>V*s$DfDFVCTO9ny55J literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200808.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200808.nc new file mode 100644 index 0000000000000000000000000000000000000000..b7c20a6a8cab1d2702620cb0e55153b0686d1f6f GIT binary patch literal 4516 zcmcH+ZHQb~bvBzco5`1GH6qkrt2Vnb^WJ>zCl+>lHfa*F*_c^3ZK;lT-@CK(+V?TM z`(`F%FpVUTnN6EalAVbaYibEp#E+H;ZP6bo6>5>HMX3-f4FvqaqEc){q2f93y_w9e zyGaCn%$@V@J@=mPd(L?&R3-L@y(Jl6y(3s)MB&63KHl4kt{&nu3ps^;iI z`Le|;iZ0Zm>pUzpPpX=33=qAI;Miqhdw5RLoao;MJL5?uLDR_kf+0P}t1aCDnUlgT2T04Yy@FZIS%TZD=SUj4R3b5w7*T93y1Lq$?l4zayr`iGV{UTj&sl-|oK`Thmg=_(x%RzcNtVovCDLP=QBpNQk;pv{6O*xYYItb4n+sklx~iClFgfZhF{+}$huK_}!9*31G6Ngg|r3cLV#T zCnnT=JF=6zv+6!S9dMHcN!HMUEDM+;g-a(Qk#$JG3==e+{}i2PI}Ulm){*Z4L7BjF zOBzX$&Camd^ct76@|;ak}FvMjsr+> zAX?#)b+ai+!=7gz60{uYVM5Z7ky&ND%ng%M{)~cS65RH&s=P7N^P-7aic)cl=FIUOL{vpJli3fGm* zyN<>7!6Ycr&K_n+q;_4Al`K!9qLyxlWlD*%xst~!hF4%V<_ioh(=@R7`lcbbM*50a z=kktg1%8dJo5GT7`lv`0D->GS)`VYP{dhYZR_02jg7K|XIr;FGw(rGkdO(RT(T2ijnMOzsv(-x1)%Sj$-Df&;NIi>Ja0Tfk zyO&GU0VBn~D8a=+Ne46WaC7@(-{?BI4S={u+WoaDH&b60My z?{tE`6X~xdew`LDU`V|(J=FISelzA1Tj#Exqkf7op`6Rk`E+iwXI;rQ{Nx+b*rbbj zR|uICTza^+mLD?0+#Kn-pEzMJjN@n|vgJ*L-FEHz1XTC@a3R=-9Dyoo0aU+KNa-jYzoVi zq?^9Vb;R@0>&*equs-AHnfyrRFv882A*nRx%G5g$b}9b$PG5o>3_a&^d!DwD{A(`X zPTSGAlL5s44VZ#7gFdr@C5q9ut+$yJNI7ZD+x|y~?d5a>KlW&6dmruXD|0ue3#s8d z*<;)4szugQnUTV$L3?kt*NEb`lQ7#{0zT`*Y=&ea8#-m2W&wUJ*&5$BVwJ|ioTDwv zacEl-W9vmi&@(=CG=Mupxc_P}pAF{^v0(nCs{z!W4PgFg0FC_tG+6-czXq^)HGuA} z0Lt)O>7)MqayFP>-phjd_|*X3ebk5JZ5XbPhx^9EbK~zkQKXG<;=8Xc9~3(@;KcV{ z3UR+i_&UzF;dm5IeE&$e{vOnRlZJZVF{p1j3iUf?p?=JO`V|)z9zF&OuMEJ+bx~M& z{vs??AA^PZ1z33c&#*9j1nPS(LGABvK;y2rpmE>=oUuL#jcY%H#sdr*@-J}u6R$$! zUkx00;d%-h@B9K9-~JjjVt;_sANwIRz7Ej%&U0|?;u<)6@Gvw7?uKUbQD|Pd2F=Sc zXl?o04VgDRZ=+=I}1rV6c|J~vJi+xagUWM8#zlZwS NC!l`mEvO&A_-~ZPGq?Z% literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200809.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200809.nc new file mode 100644 index 0000000000000000000000000000000000000000..bbd013f8f7ebd015cea73fd999225d6e9aa2553b GIT binary patch literal 4516 zcmcH+X=ohRc^zN!+KxhFoEF;hD8ZG;?#v!Kx22W($tRYjdKKA86E<&W-tJC4$1-nr zWi>8QXp2{>W340aiqJF=XdNg?FKB5@FeaunCNz*9(3%hw2%$fVlR^qD^!sLJ*DFP` zU1%3Qee>pf@4K&ou>+eTkqE6QuFbf1n2udEyoxSxgTMQ5b(!32z3RgK7SFIkbYvIq zcjDR%V}}t$?!k2sOvB=yU}N0l?6B<#x4<>Qs=}3qW3!|(prlz($@9t?Rn;6_DBrU9 zjG_y*>^k2RnkQ9FH+qTQPH^n1usysdX;1XG!GU;ENzgX3y<|wwacAinaa&%UDplB# zipi1#ES1P45}EW6J|z1y%+_3Cb4#%J1dCT0Div!f#^U;#J>nfZ);5NJVD*bCQ%q5f z30n#)Zz5HFofobskg;O)kEtcc5~^)+yOPIis!Zu<5~E;fXkW)x4O@Du zI(aGFYJjvH+bfx~IZJR`^&Cknmr5jt62pqEML((bV5qjHJIoapFKcMRn426pJ;dTt zm}H6=5@D)VsHi?a+u>YACrPiG&a1cQ_%9TgxErHz zVimj0wNpaRVHhZuP4PxNJNQS}SgJ46=jWL3o>MZ+FAA*U}UYXTZc&9> z$`)M5V#i<%lxX`5GbB>GrO0}gCs9#Lx6Lx8L|MM#u^GcFF&pazhL&j>*nEA{kXs{N zW$beW$F%~#Mz)S)%QbyeB#Ipht!rz-Z?As5JsEc9nVA`kS6x%6FDON)sybZNg5IvW z0z<&nN-BnXt7jG0L9@y zvleO>V^hkw5@W}e6AH%gtnHY(#FyAqG1fp~lL9k9VzKmnas=DQQ9k1umV=h3M9Z+l zL5%n@js=ZTUVKrqL;eWi2h6x|ix@*k(W`Mk0$DZ;@~Ms>AGNtTE74s&$)TY{9ElI~ zDmdscj9)1gcEqW;c!W8HFiTr`F`e#JqN}u_@L8h~lEZ4XUb_0;FR+8AlSk@VOu==e zlk96;q7E1-exd}4gOc|5#goIsgDB}I<%{9GgsX43Kc4JQCX^uJr;|~37t;2%Evw&7 zY^pSO7Gp5RQhfsh@l@a7pc2IB=3_8HPgKix&=`>DPxc2WnmgOLL#yV_3BM*eu59PZ z-OZg&Fn1#TEyS-q0tO6eR;C}#y@cP5^~Bb>tLJE*B1|afntMK-JDk~Cu?@fYhBS8R zqUZ`CbAn3`-)-Tijj%RHHk~9+I1A&Ni$v~y2Vv)&-kR(0BxmQH^-<{YpV#@UWY|>jyCON1NW>FK z{9`!p`+rE0`WZK|<#B3@#H*|2D|{xI@LQ()d4!vBR6*d&LFYPsOy4%^*`;SZn8(>T zwkb)OzCk+T{phXX0C(7*acvsg+xH~G-IgJ#HRh@`I}mm?eouQY!2^b#bGcolVV4! z;WOFefsIv*Y^OFOg-?Ud-tDXr#cwBJwzvd*wujXW$wYRv+c@n4{1&n`KJUaXjg2`+ zN7mxdwj@UPj|f4(k%74Y9th#&O0b^}_m8n)|HMiFwVwyDFc&~$GJqxvp#Ap%mRADk z9txlg?^QnS@2_Tq{neu^*pI9PaNnE{M_Mp^KN6lB3Ga>E{J|4+5YE2*`?ZT=hZdau z>AfND4w38VH`HGHHPk-nhWV`-nBV&p%$H1&IhJ~XB%%2>D+WQJDemDU2-X6G6d=Ba#<)QxYOHe=c1z6nmOSo|V zEL_-g1nTcbp?<@Kdi7DL-`4|+JAMN7c@^rb-~3yYS6gyfv;=x+bL*XD!}sn z6gT|RDxR_mm#cMUF zf9Yw|aSj#^6xz05ytD-8UmAjEuIz^M4_=1FND7{roP=}lz6a;Nu@laJ<~l4+{tFh~ z7>0$nKZJ$v6k+~1pMu)Cx1cui7pOJ=2DPGqnt2jxFFXyknF*-9cmry$ehl-EzX$VQ Kehucw-v19joH5e? literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200810.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200810.nc new file mode 100644 index 0000000000000000000000000000000000000000..0b7e606f4011fa6d53ac752c64b26f61a04ee759 GIT binary patch literal 4516 zcmcH+TWlOxbzM8e*)$JONFWl?m1s&_?au7W&o8^jc@o=EHgbSeTJFwVd#9bpYVPbh zZg`|f$ZIEY?ATtnkQNZ75~vN8s!-)25ekTpHiGgTE~OvB=yVEx?VY`^UZcZ6$#m4zz}$7V^TLrJq;1hDyb1im|x9Y>xYm9jhC|M_9U0W{N4w zF=0z#DETP&Kw@Z0ErplC#CNV|~4ejgLs$ok{mE05c+L{sRy{}3$fXjAu4F>7wdm?>^ zh#?WCY9l4p=Vv>dtLP-@mD73k-W>n0+8h-+8{p$C*^a-SWOq-ByqQclI&lS$HF|V4 ztvsvfo6Z(v%S`xyOqWN&(m45FvL(-W&e$G?V&|OF5`l`F^VTv zvWr}MO6WO^1I4l_;D~1f|L8JPWqLCHCG-9BlngHz#nvjcR$jg*+1lMLGZf2@+Xo|( z?n!qxXv%e6i={f#3WnBF{Z=7YyI3sAl9`@Fx+l|3e=UO$#vXBlXT0GbE!y^U3MD3Wn1 zDUeSVxhn-Ds!9|}E(RS68DqXu_4<_xwN%QfHb%T_g$;|EkExW?!A5PC$0@3CSJ@HQ zvDhH=gA%RdFhe4>yNax2c@h=1bn7frN|fbG9vd^f0<$q+U}Tx5fyLK14Y@VaTEsdx z;<#4e*T|XyEV-t?6^UYnLhIU^@XMJk^RsA8;v!VU?%0TPp??~?;qJ`VCR*RUM4Jl(S%wm*mw zKgKbiF}fF@kZhmdLihnQAly-mp@ZnvxF3Nm8wUB2h9K{=xj8P;UAvN9U5Pjn?`Tu7 z(P0?BQY!3#Q*sf7IV0gMt=)^^bej@gq78-5GL4WNCeoFztMC00w%2s>NIi>Ja0Tfk zdz?$u0VBn~D8a=+N!v5=WOsKbO8TGj#jsz(k?C%aC)=^32qJzs8D$S3ZKiHn{a#{I zrn$cuoiUcmbacd1na)lnh|%Uj7@{}IW$UO7NVF&0gDvVi>wEi_^qoU~PI6pXzbg;c zcRE4eiS%2DU%dqk7*elH5B0sYzX9`!t#en;Q9ngHp`6Rk`E>4sv!-Mle)0`zJgkdR zR|uICTza_H!jBtaZjLm4ia22}jN@b^vhh8HjeUBpufLz1jb~Ppv2lO7d>d-=*^cWK zPyl?E$oT1Cjb!YNL^eG^`{B0($w&Sq`RKc2H9OYum-F7C^Kr?rsNi=+vMZ5@CzAMM z*zfy4q)7FQn^^KVl||y!TJsgYlT7$6v*|p-X6#fD_;L_lqmSv^W+l7q8VLGvHh^VH z(oJ9GI^y~0-QECaSf6n;^>59bK)As&B$dWonOX zW83PgMb=W8k;11zxDVQEMDg26m^Cf|pS58&Lo$(d^)gPgV84ZIjqmHRN@HQp5z6vC zv@MCT=|$S0r?=x|0QZFO(9K{z9L}F$!Thr~1E{?kz>$*yG!6yOWC65q2e5cEfbPBk z%J5w2BmVqaHke;K$bxzA%>X`n(uch@7_Rq*c)j7d-akFxONcP>^4l=+$~eO72wP#| z!WN1h8aTgz>+j(BWr%kNCSLm$;#eVm9xB&&LglstlUsJel|>7pU(04lMlm7|efn8=U(W(#^a83zz>1^S`e^wTt<> zRBPV&Mub9@q)hpIn6MV?Tn0H}L(jSD{+^IxKEWL-lPPs`?E$ zcl9>Ry`O~ny+45J&-!2yo`iW@f%$9ShWW2e!~B{{FgNi{I9K{L%)RwVSoq>4m_L6U z<}YoBx%YO$^e^_o^fS-H^t0z-^0}|nZGUF==WzPZ!*F`>dvK<6D@^bBDV+XX0Z!!% zIQ7voocXW<({FwQrUs^A>hSMi@?8xkH#b9Ns|gctqQ7qBVd9;OP>DVcmG~W~G(Q5B Xt{0&4$m>w~{vV<8))%01xFfo`=*Qr0o_uXr| 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200901.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200901.nc new file mode 100644 index 0000000000000000000000000000000000000000..45abfca2c62c6410604bef82673e41ab61a8bdcb GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200903.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200903.nc new file mode 100644 index 0000000000000000000000000000000000000000..cea6b302495fa60a9484ab2cbb3639dcf8400a18 GIT binary patch literal 4516 zcmcH+ZEPGz_0rhbIVW|gB3iX5jG!tpy4$@ke;ul7_t{AtVmr-QPJotUZg=e4bU#iz zd*_%S5emp>J8f)VeHLmeRDmi`0aXw{AdsR0P5*#Ue^6CKt>H&03Zj8Zh(gu!-tOJy zZ0saLu)4XoGjHa7&wFoS=)jIpC`2QSV<(PXrejYVUQrh~!RIy{?I!o?OYJys@eHem z4(-Ny2acUEG=d;>3yyZJ+F{fRn5_b z@;QsoD7sJ!u5(goo>Vp6=puR@;MgT$dw5RLoany~4n*ThjHaQsydgcuouzlgwfuM@ zUu1`iCX4s5L@XVPrIY>m67NnkTXTiYEy1GWELviyRHUvLi|U)^hi|s%>$*n8RbLOz3D5W6IFbzK*RLw)9lVt%51C zI+{*(a#FaZ0BJe4mp5m#mf*JPIg&;;5sUT5l8UW`w^v)!9p(y)7c?|s#Etiy>SIwU zOfp3Ti7-{0Dylv|+u>YACrPiA%&FJs_hK$>sQg>y(~A&U@$`o44)240+?(mA<&%iUDw$7;GjA- zoEaL)sAGOQ;3f-_tf2*27BEK&mrjI2tw_MEC1^T-51nVjr#xZn$oH6_OyIdijiktA zCfH;$N9Wo#$Fh(PC0abUb`gJxB)An!i&iB?Cl#mcuEka821M*Rj|b z41p4E>|usPYS$Fm%JL*CYUwsuCX_JC6+Jd%czI@HzQE8jO#_RsZyIuIsJ(!7Zpv}3 zz^|d!Q7pNpj|zpcLZNkSP59;2kGIpc$~-eOgYl|s3e^Q=+9|0HSGAzFtFFKhaJ9UO z;a;y9N+DkeHyswzHLo2mNIfVs)2^XoAo`O4?bjS7?^(W7?V3S8^e+I#;oBJtwTrL` zWmJi`tQM*Rq6nOcxfGzIyf&COYf?%E&k>x)H^cu$vtjSj>3 zl~Q4couZ3dm@`$orS*F;ne0-+8?>SD*`yJY!$P;!b@jbJ#SWTI4ykAG3T`2tWDjtO zI$)&u7bUnjC~0>p8t?D#MM?itz6kb9I8y!H(Rg<}rUVf`84t6YkT%t@tbRSQDbw6o zjNS-Kqjq-g>Jo!u(?mK_w_fDv-!+cGB)Ek%eSX4pY6C_9tFT> zgN&aH)=0*IP^j}E!q>hXNIvo>$w%KE+u53lWI-ivciwb^M#QS2gXe^FDhW)<( zLyA<-xQQi?Q&}Wl?R8(_JIRFKGM(oU?!;CFfiDN`YxXgH+iYc*{i8uY&PK6JNxJFV zTt_?~zSbPz4C^zF9YY^TokqCFG9;D8Y>9dY!fwRxZS*C$!O*iVx2I_v$$!hmy|f*T zI}||t--RhiGw3rbSfUuM+xiZZ0x2tvY1{wku)VBq;Kv^AtnZ_}?IrGJbs;r;Cwttn zy=tL0Dl<~}G-&V5_8MXQb`oZtOTeeCmd%h%Xjh|*(=5QZkgf5(1FJL^<}7X5j6>U! z7@glB1U&;iX99Sj29K@>^U2!$Ar{O(yBaeyxP}?_9J2&vRXM6%sKDY?w%nZ zVuuFIz3>v0Z~X$y{k{X{uB<}&_Sd02@HHrZa0%wV$6@Ywe}VZcFTni2F2X`I3kwfk zhK1_eu<*`5VDa2RSbX&WoIPg2;-Bt=#ghgse*QPG`1g;&+16oL9R4~iIJd#dCw9R~ z>zhz{^iHUJ_zhS&+6OD07hpMdFH{y!L*@Jxs9ZP!l`p>rl?N-Z^0OXTe)VOjJiP}h z`L|&8oxQO7kqKDq&coWiG*rKT9M;0Uuy+6Ru-0=ItljlARNuG^RV@aqui)O)r{Iab zuS4}x4yqQOx$phHuGQ%aP<`!9SnIq5)rTL2>QfIx^-D=u{pZJFHHYW+JqfG7_$gF( z<61?7)syeS6Tg;l?xhSYwOxX9&#l91^mg3ehHH<*(zEZv()l04(pxXW($zn}QtB(P zoIVUIPksoNXYYpjPrnTFe|#Jkj-7zT zuYL;_e)$+%%{F literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200904.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200904.nc new file mode 100644 index 0000000000000000000000000000000000000000..c730802c68a8f92bb10e4fb0e6ae8b15f14a1a22 GIT binary patch literal 4516 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 literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200906.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200906.nc new file mode 100644 index 0000000000000000000000000000000000000000..dd7723fb9a18dc5bb3af383366fce0648ccc5172 GIT binary patch literal 4516 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 HZ+zw7{^K?+ literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200907.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200907.nc new file mode 100644 index 0000000000000000000000000000000000000000..8349007a8efec2c10cb2c78181105fc3c3c38c37 GIT binary patch literal 4516 zcmcH+YiL{NRcY+SQIaMdp)G@suXJndBHgQpWyNaB>>ejgLL3Lnb(b|m`*iPT>#p~q z-S0|{6Bs6AwWTDD6<0D_3xkp|23hIYt7VUdJ)khUQAjD2b<2;fTQ{;tRw#pv?VNih zMfU6@gYBYE=brCz-rqUr!pOc2p-_lM7{^8&n@z`_HoTH95W!~$jvkYHt*IWwyF9~c zE{C=vz6Hld7&(9-bO(;dz%(rG2{yt#&JNg~aHqH?SXsEzaBLP=29zZ0EqGorqpF&t z3+05xXB1tiMc4VP&^)PXy3t4Uwt!=oh3(-vNjTB}5bTS_l^CI+O$9@Gjyp^5xYqT` zM4`kEmP{5OV2M~J7Rw|D@g<(hFk5ql%`L&AV=P)`s8pn-7>nwwa9nrnNZT0xhLsa# zrkJ7}5w;Xo-bAYU8WXOVB4b79kEsR65~^)+yOhUcs!Zr;5@X8H(7ukX8n*OQ$*rO( zaypt$b@EcU<}AT&)pI0`Tp|`5jHMM@3$L%XraR0P7B6aO!iXCmIKG=j zr7+195hTJ?ZK|aD{A`DF6`dr#ax$;poa6shnFOw087Kcsw&Xc<6#5~OW-WK4v)A?5f1_KvY0xHNPuM#09T$`dJh!Bg z6xr+qn@r~ET#x2h7Sf?ai|01{WTGILXdQD`9Fu}GSqk#HC#<4yxmR)p>)kt!6#K$6 zT(V9!C282x%tL~fBRxz=8Zt6x8836gWY47}*Dhuez7j+th8o()5?;a4CGzDS5A-9Hlidg5S z9M=l`8tNX!l56@)p)gh`w63iQzr6bKcCuNSXJ%$FUUf~Ox}Z!uW!2%T7Swjt6&M1p zR!}kATQx%|7K-7H!$P{|jl)H$2W4j3HFOL_9|@NInxhmv%a^K0GsuVj1)w7r%Wfgncw z7{`Rh=w9rSY`@<^_yIF2+-Z!VL+I70AAu~}4DyMNARo55IV;g!z46_t0MI`;_nsZ76(JX@umk(5-b{eeX}P$4n=W)U$X6*N{%K zN4Z2DFjD-B5?maVG}RxC4-TeL(*Kk%g8dSX{=rlZ$aplEBN>N6q3y?Lz4`4x@{vDDKKkxh&yKDAt9gG^=d+SwQNizu`0iLN8jItP zVZZPHkRsJHZeq#fR2GR>Ps>;MPBP)Q%=YIIZp2mvfiDN`>+~^w+pJ}m-qD~RXQNoA zB;E9Nt|Oig-)IgH!}^S4!^qwJClPM53`wOiSEk;9R#&d?Z1*L&!O(Lqx2I_v$$!VC zowOZ|I}$+r-;60pGw3rbn4%bM+4>%n0x2hrY1{wku)Uma;Kv^AZ0)1HJ!S6ZbRji- zCwttpzG|UORA!{`Y0%!=?KQ&q?Ig?=mw?ZvW;R1Iq0Q|wPFS$sMYhKGEm)NT`2iLw0xEzmPGFc-jmO?c!=fKN8@V=TZwb0vVz#vQhX%}l z;}f0ph(Cn*FJS(~i_Q7#P}$Ld%C7gJ^3WNm97sXs;&rIrbuUz3_zqP6J_)BE*b3Fx z#-aMvi%@<2EL8va9#p^h2dG@w0F_4$!Qz)Lz~a-tgWA%cptk2YELPrv#ped#oUs74 zyaBZje;sPwFF-AN0&1H+fW>dV1LyW_hQ-ToLv8CDu=MVmaDMDfsGpjK`fEp_(fxa9 zJbVfo!iC1C&p_kE9%#rfK>d0I>b+lqrOQ{LcKR~Ze6Wj^|uI%kb<6kHXRqOK|RA zuRv|*$Km{u30OGR*S7sL-YGbHw+Cll-U(-adJUd=KLcmJ^&Fi3{3CE?+mGO^gEo5j zNvOW`DpX(oHdOcg1{SX9uy9u#=Kpy=EOgJo{4bw}g}w?bJP?D0Z6TO{@6WIhJ`0tu N3RI5ng39=v{{{xWG(G?T literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200908.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200908.nc new file mode 100644 index 0000000000000000000000000000000000000000..31d64e8143435f46d32478b32a5f67e38236c41e GIT binary patch literal 4516 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 GE&Lmyjy7BX literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200910.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200910.nc new file mode 100644 index 0000000000000000000000000000000000000000..a30a6afc40c3729a008347fce6c2feca44a37b51 GIT binary patch literal 4516 zcmcH+ZEPGz_1rj(eQBCVG);v>GoY%qmAl>hvd=ydVe=d(j^a4vA}6R-kMZug#O{nxb=7@LfNYfbphP4YN zrkJ7>5w;Z8go#x34HjH6NyduMA5-&=B~;tuc5woasWPFXNsLKDL;E_mYS_|KCASKu z$mwW0)tQjOEd@x+vAw)m$ytKis^>@=xkN11ACD=v7T#QKO?Q|pEMCyigb_F1d%BNB zr7+195hTJ?ZL+BP{A`DF6`dr#QgTAQJIDX4HYbJ7MtOzBd+?Wu_h%A)1xMZEqM+dg?@;{W31tC^!BDM`)`y>*DYG-QW4yZ zP&~1sUEtdDLeF6wD3(nDM?72jhu4`Zl}WAo=XqJbU=&-M(As$Uu4Ef`x5Q8^KW^`j zNHUXb)s*YH7D=R&3WnBN{Wc-jxL7RC;;Bq5nMw7N;bIhu-19I{DV=bZ8#YXHoSQ`v zApxC;j3g83-gGM$yj65pF%MyO)LE=wMT4i=M1{d%mNFRTJ4ynWY$+koobp}w(Xqin z_2_}@&`4H2>Zb#4vLMMCT99P{bEI(TL@2Zs37GW+P3NDW^X$NBPuM!LJuWB{cy3W6 zA+p&MY&7j+th8o()5?ft!rz-FRy;QovByma=DD*s%r|>1!c-9sSa1Qpth^7zz}e? zyo%A@s2NHjUkJAx7Sc6W4;Q2!l$j~l&@mAGNr3iij*|B*U#bqxARqb{fa36ztcBV| z*a>A+iLm3!Nd;rLVmqcTaS@9u#u_N>n7|t#Ft! zV?JYaFP@U@kl#Z10W&JxDU6{b=+&qnfh=1O@)IpVK4^2ZBGFx4@xH!T6p8nCE7<5T zj9)1gcGxMpxP>{B^;_Dw7vsrpCA>x(3ZHcvAvr8`8(ml5`;+XT=}aK?EMCD4q?7E6 zT%rybDgH$XE)GiClZwXs`_m}tf65oZehEjazb6{+!Hyz``0;p{-G{WPre*cJiA|a2 z-eRO9ERpK%jV4m*v=YSVmZLC6Zzr z(03yJcH-A;0Rx8AE7L=LFX4A!KCyM~>N)DC2ve7H-8rAmJ@#xZ+J>Ke>ogwH#gr?A z%n2?%Tx;j2je2elwVfhP*bC!08wx#q17T~Q-stP^C1>lIjbv=aua|E}Lq6May*vtl z&l(xO9ITOy1EJ8)X9!>ab|Cr4pCliBcWh?I#{TuZAJ=(BGAt_iT@mk##iFq|{uuWA z{tqcqJ>w>pJWgeicy%;Dy)_yL62P{Wu%NG9~Gz zZ*m>+e0a4tz!}zO9Bo67rp_STVHuK2W3EK417X+VA8EEFxWUkKF1M#>8_EB`l}Bhh z8h0pw_}_^sNHgd&D_Ei!ZPXX(etV5Deme=X!6o3ct)9)0OsKP2#%UJd+sW4Wz8$MH7UmpnS&u{8 zk{CO`O9*-fdd~)MxDJoq4CdqY`7hJZfcBjL7H$U6JrqD$ zKUaLrpI^xa^D9SKFdw)Xz$ef8aG(L}>jU+D1NCzQe|u{eZG`F9-o*%D4c0F|4%Hh^K=q>#RR8rM%lK)N_b)J8$iU2^fSJxP%#Zv6<}Y4@h2^JVp(_IOU*8Jz2fqz34WELA z$`~x{dleQsufsyyZkYe80`s|#;idR?SlDw3=0AQ77O(ZfV)AWR{_~e$`S-tr+QXkf zZFoP_{!oD0H)2rxK^xRAreXQkZCJW;1{T}*!@{QvuzYn6mLGi+YFl6Qb*_m0c-V>G>6`#E`~24?->ZHK=h3wV%8SE4$x=+8cME_QEw-{OmbcdhA(P zdT|`j9fI0NUxlUbeF~P&b;8pADlC5MZCE@t3@@*6So~oLmT!CxmVQ)*rC0D=_$pBod3eJXu~vI`0-_!`(Pes zN70@WCt>FOUYH42pt|=8Oy9l=(|>;%rhoGeRCnKoYWL4!`qo=eed-mcZa)RpH(!V9 L`JX}c+SPvp;%70! literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200911.nc b/inst/sample_data/obs/monthly_mean/tos/tos_200911.nc new file mode 100644 index 0000000000000000000000000000000000000000..7d25af1fb183f0e03483821d113f8dd0b1096f3e GIT binary patch literal 4516 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 OC}HN^H(}=A5B~=y)iB@y literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201003.nc b/inst/sample_data/obs/monthly_mean/tos/tos_201003.nc new file mode 100644 index 0000000000000000000000000000000000000000..d250cd2e16b1b4e3ef39f2976c4e423fa10e9090 GIT binary patch literal 4516 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 QpWygCl$MS_>BfnF10-HK+W-In literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201005.nc b/inst/sample_data/obs/monthly_mean/tos/tos_201005.nc new file mode 100644 index 0000000000000000000000000000000000000000..290868bb0325cbe6653b9dcf93ec2fdc745c1f9e GIT binary patch literal 4516 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 HJh1maH(xl> literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201008.nc b/inst/sample_data/obs/monthly_mean/tos/tos_201008.nc new file mode 100644 index 0000000000000000000000000000000000000000..929cea19b92f74933767d4568b035213cd96f0c2 GIT binary patch literal 4516 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 Pzxp;zzjYI)OF#V&3EVS% literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201009.nc b/inst/sample_data/obs/monthly_mean/tos/tos_201009.nc new file mode 100644 index 0000000000000000000000000000000000000000..ec27a27f80326ec0ca2df144d84dac4c4df9253e GIT binary patch literal 4516 zcmcH+YiwI*)m_pyan}{3X@!Z$hg5ZmWZ&yolEz|M!g1eCQq^g;Rz>E^y`ST|-iNv0 zwcXGODpi2vwN28-&UgrfwEY-k12lw6`BTv!(}Yl|cuY*A>aPMqLer2YbrKur+-ti| zNZKO7l|P^RJ{zJxh7ayxYBTJ7FPz9BPxQ8cW0!^PA)cf;(cc7nqH!fg)6nLEAw9>PrFY!x{>5aW z#152979V7ZSUMIbA`<Z|6s@7R&HG5iB77s^aA zML8mDDXeJ|sp@MixFS!+iqIcZ3yvjJ+v0X<8qrjl(9tAD-q6s#j;$KD^i;{MqA7AZ znof15rEtr^rsddP!JN%mg4?R+NE$g*EEXG9Y%RRL+M4b#S6IBLp$Q{yeDKsR7L~#z zQ$&ymQ?-0a_4(Nj=PEi$dgbJ_dT);ZS8bjaIveA&EIxq0bbL6SjFA(QolacCW1Svd zPb<$V`lho*Wt9mZkm>3uSQ#h(OSa@WbQJm_GR#`;MrW_MS;_CStK6Ha*K=G)oB#pDmOGFxgT?C=IpxnVI9AaW1QGGz zN#5$LE zTr2QvXyX``T+`nQg|R}Rb!|=f<<*b3)6L3UsZ=mtbxonVpv*XB)#0iZ)OOVs7y_a#89*nVE479Rtyy1lxYiQ3{^rOVy(pEoZ24mv`e6l0RM{RD-N_1CWeAlj66p0V^E7<5T zj9)1gcEBmQc!W9m<}GdAi>YM45?-MVh0iLDkQ^4ewXUo0{XE-iI@3r!i&t0?9v+l#b8&&c4J0PbnR!?%L@RC9iU1@kZ63ZV9r0OrpG&^R1GlLgRzH-N=k0d)5T zP&V;OpYZ2bv%&o8Ar{O>ZUu1X86S?cU~_$>d2XbMH}c+_{yF&OkFMkRP3NH4p@C~3 zcCO?5UxWFp_2&B9P`&OLG2qm zp?2vw)Lz{PwcWR2?#vdL`}i9$f9HF!@cEmt`0NNQ{PPYhoaL~P?}rN?9f!rS$6@i{ zuV8WF7%YD3IxJjy4Cdc|2`*ekoUc9w3ol%TOJCFAV(lQ*_hg`c_HC&DDGH4ppM}QD z3N-R%Xq0~eMr!+doUoL~9?&b@US&J}+L7Y_Eq{JYOX?S_QfJGY_s z^?fk+`c9};KZ5F%2h}SIR1e>T>T@}$zV-*Gj{gIyKS)FM@|!UCTomTc{Tk*nFZ~-* C6gM9L literal 0 HcmV?d00001 diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201010.nc b/inst/sample_data/obs/monthly_mean/tos/tos_201010.nc new file mode 100644 index 0000000000000000000000000000000000000000..a441285dee40cd00f490760a003264feab6cedfc GIT binary patch literal 4516 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 R;>XZmEl}NY11fL+=HII%GHw6> literal 0 HcmV?d00001 -- GitLab From 0a67143da36f654e28e1f26334a032ec359ae998 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 16 Jul 2020 12:57:33 +0200 Subject: [PATCH 05/60] Change the examples to use sample_data --- R/Sort.R | 32 +++++++++++++++----------------- R/Step.R | 18 ++++++++++-------- man/Sort.Rd | 32 +++++++++++++++----------------- man/Step.Rd | 18 ++++++++++-------- 4 files changed, 50 insertions(+), 50 deletions(-) diff --git a/R/Sort.R b/R/Sort.R index d90c5c0..9445f48 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -26,23 +26,21 @@ #'} #'@examples #' # Used in Start(): -#' path <- paste0('/esarchive/exp/ecmwf/system5_m1/daily_mean/', -#' '$var$_f6h/$var$_$sdate$.nc') -#' res <- Start(dat = path, -#' var = 'psl', -#' ensemble = 'first', -#' sdate = '19821201', -#' time = indices(1), -#' latitude = values(list(-10, 10)), -#' latitude_reorder = Sort(decreasing = TRUE), -#' longitude = values(list(-10, 10)), -#' 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) +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = values(list(-60, 60)), +#' latitude_reorder = Sort(decreasing = TRUE), +#' longitude = values(list(-120, 120)), +#' longitude_reorder = CircularSort(-180, 180), +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) #' #'@rdname Sort #'@export diff --git a/R/Step.R b/R/Step.R index 2d453fe..ff141cc 100644 --- a/R/Step.R +++ b/R/Step.R @@ -27,16 +27,18 @@ #'@return A closure that contains all the objects assigned. It serves as the #' input of Addstep(). #'@examples -#' -#' repos <- '/esarchive/exp/ecmwf/system5_m1/monthly_mean/$var$_f6h/$var$_$sdate$.nc' -#' data <- Start(dat = repos, -#' var = 'tas', -#' sdate = c('20170101', '20180101'), -#' ensemble = indices(1:20), +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, #' time = 'all', #' latitude = 'all', -#' longitude = indices(1:40), -#' return_vars = list(latitude = 'dat', longitude = 'dat', time = 'sdate'), +#' longitude = 'all', +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), #' retrieve = FALSE) #' fun <- function(x) { #' lat = attributes(x)$Variables$dat1$latitude diff --git a/man/Sort.Rd b/man/Sort.Rd index 249d1ee..ea4d893 100644 --- a/man/Sort.Rd +++ b/man/Sort.Rd @@ -40,23 +40,21 @@ range. This is useful for circular coordinates such as the Earth longitudes. } \examples{ # Used in Start(): -path <- paste0('/esarchive/exp/ecmwf/system5_m1/daily_mean/', - '$var$_f6h/$var$_$sdate$.nc') -res <- Start(dat = path, - var = 'psl', - ensemble = 'first', - sdate = '19821201', - time = indices(1), - latitude = values(list(-10, 10)), - latitude_reorder = Sort(decreasing = TRUE), - longitude = values(list(-10, 10)), - 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) + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = values(list(-60, 60)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(-120, 120)), + longitude_reorder = CircularSort(-180, 180), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) } diff --git a/man/Step.Rd b/man/Step.Rd index b099cef..139e368 100644 --- a/man/Step.Rd +++ b/man/Step.Rd @@ -43,16 +43,18 @@ If a different order is specified, startR will reorder the subset dimension to the expected order for this function./cr } \examples{ - - repos <- '/esarchive/exp/ecmwf/system5_m1/monthly_mean/$var$_f6h/$var$_$sdate$.nc' - data <- Start(dat = repos, - var = 'tas', - sdate = c('20170101', '20180101'), - ensemble = indices(1:20), + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, time = 'all', latitude = 'all', - longitude = indices(1:40), - return_vars = list(latitude = 'dat', longitude = 'dat', time = 'sdate'), + longitude = 'all', + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), retrieve = FALSE) fun <- function(x) { lat = attributes(x)$Variables$dat1$latitude -- GitLab From 4915ab5fa10a02c76cc8a9055ff457f14730d034 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 16 Jul 2020 15:08:10 +0200 Subject: [PATCH 06/60] Modify NAMESPACE manually to export all the function during the Roxygen2 transition. --- NAMESPACE | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NAMESPACE b/NAMESPACE index 07ed7af..d5c33e0 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,3 +3,6 @@ export(CircularSort) export(Sort) export(Step) +exportPattern("^[^\\.]") +import(stats, utils, abind, bigmemory, future, parallel) + -- GitLab From 341bef3d292c47db021d5902cdbaca553c258e6b Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 21 Jul 2020 12:44:46 +0200 Subject: [PATCH 07/60] Add Roxygen2 headers. --- R/AddStep.R | 44 +++++++++++++++++++++++++++++++++++++++++++ R/NcCloser.R | 21 +++++++++++++++++++++ R/NcDataReader.R | 49 +++++++++++++++++++++++++++++++++++++++++++++--- R/NcDimReader.R | 47 ++++++++++++++++++++++++++++++++++++++++++---- R/NcOpener.R | 23 +++++++++++++++++++++++ R/NcVarReader.R | 41 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 218 insertions(+), 7 deletions(-) diff --git a/R/AddStep.R b/R/AddStep.R index 3ca5a35..c9b6520 100644 --- a/R/AddStep.R +++ b/R/AddStep.R @@ -1,3 +1,47 @@ +#'Create the workflow with the previous defined operation and data. +#' +#'The step that combines the previous declared data and operation together to +#'create the complete workflow. It is the final step before data processing. +#' +#'@param inputs One or a list of objects of the class 'startR_cube' returned by +#' Start(), indicating the data to be processed. +#'@param step_fun A startR step function as returned by Step(). +#'@param {\dots} Additional parameters for the inputs of function defined in +#' 'step_fun' by Step(). +#' +#'@return A list of the class 'startR_workflow' containing all the objects +#' needed for the data operation. +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = 'all', +#' longitude = 'all', +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#' pi_short <- 3.14 +#' fun <- function(x, pi_val) { +#' lat = attributes(x)$Variables$dat1$latitude +#' weight = sqrt(cos(lat * pi_val / 180)) +#' corrected = Apply(list(x), target_dims = "latitude", +#' fun = function(x) {x * weight}) +#' } +#' +#' +#' step <- Step(fun = fun, +#' target_dims = 'latitude', +#' output_dims = 'latitude', +#' use_libraries = c('multiApply'), +#' use_attributes = list(data = "Variables")) +#' wf <- AddStep(data, step, pi_val = pi_short) +#' +#'@export AddStep <- function(inputs, step_fun, ...) { # Check step_fun if (!('startR_step_fun' %in% class(step_fun))) { diff --git a/R/NcCloser.R b/R/NcCloser.R index bb5e892..f7decab 100644 --- a/R/NcCloser.R +++ b/R/NcCloser.R @@ -1,3 +1,24 @@ +#'NetCDF file closer for 'startR' +#' +#'This is a file closer function for NetCDF files, intended for use as +#'parameter file_closer in a Start() call. This function complies with the +#'input/output interface required by Start() defined in the documentation for +#'the parameter 'file_closer'.\cr +#'This function uses the function NcClose() in the package 'easyNCDF', which in +#'turn uses nc_close() in the package 'ncdf4'. +#' +#'@param file_object An open connection to a NetCDF file, optionally with +#' additional header information. See details in the documentation of the +#' parameter 'file_closer' of the function Start(). +#'@return This function returns NULL. +#'@examples +#'data_path <- system.file('sample_data', package = 'startR') +#'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') +#'connection <- NcOpener(path_obs) +#'NcCloser(connection) +#' +#'@import easyNCDF +#'@export NcCloser <- function(file_object) { easyNCDF::NcClose(file_object) } diff --git a/R/NcDataReader.R b/R/NcDataReader.R index cba05fa..47e3579 100644 --- a/R/NcDataReader.R +++ b/R/NcDataReader.R @@ -1,6 +1,49 @@ -# Parameter 'file_selectos' expects a named character vector of single -# file dimension selectors. -# Parameter 'inner_indices' expects a named list of numeric vectors. +#'NetCDF file data reader for 'startR' +#' +#'This is a data reader function for NetCDF files, intended for use as parameter +#'file_data_reader in a Start() call. This function complies with the +#'input/output interface required by Start() defined in the documentation for +#'the parameter 'file_data_reader'.\cr +#'This function uses the function NcToArray() in the package 'easyNCDF', which +#'in turn uses nc_var_get() in the package 'ncdf4'. +#' +#'@param file_path A character string indicating the path to the data file to +#' read. See details in the documentation of the parameter 'file_data_reader' +#' of the function Start(). The default value is NULL. +#'@param file_object An open connection to a NetCDF file, optionally with +#' additional header information. See details in the documentation of the +#' parameter 'file_data_reader' of the function Start(). The default value is +#' NULL. +#'@param file_selectors A named list containing the information of the path of +#' the file to read data from. It is automatically provided by Start(). See +#' details in the documentation of the parameter 'file_data_reader' of the +#' function Start(). The default value is NULL. +#'@param inner_indices A named list of numeric vectors indicating the indices +#' to take from each of the inner dimensions in the requested file. It is +#' automatically provided by Start(). See details in the documentation of the +#' parameter 'file_data_reader' of the function Start(). The default value is +#' NULL. +#'@param synonims A named list indicating the synonims for the dimension names +#' to look for in the requested file, exactly as provided in the parameter +#' 'synonims' in a Start() call. See details in the documentation of the +#' parameter 'file_data_reader' of the function Start(). +#' +#'@return A multidimensional data array with the named dimensions and indices +#' requested in inner_indices, potentially with the attribute ’variables’ with +#' additional auxiliary data. See details in the documentation of the parameter +#' 'file_data_reader' of the function Start(). +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') +#' file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') +#' first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) +#' synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', +#' latitude = 'latitude', longitude = 'longitude') +#' sub_array <- NcDataReader(file_to_open, NULL, file_selectors, +#' first_round_indices, synonims) +#' +#'@import easyNCDF +#'@export NcDataReader <- function(file_path = NULL, file_object = NULL, file_selectors = NULL, inner_indices = NULL, synonims) { diff --git a/R/NcDimReader.R b/R/NcDimReader.R index e93de95..4e0874b 100644 --- a/R/NcDimReader.R +++ b/R/NcDimReader.R @@ -1,7 +1,46 @@ -# Parameter 'file_selectors' expects a named character vector of single -# file dimension selectors. -# Parameter 'inner_indices' expects a named list of numeric or -# character string vectors. +#'NetCDF dimension reader for 'startR' +#' +#'A dimension reader function for NetCDF files, intended for use as parameter +#''file_dim_reader' in a Start() call. It complies with the input/output +#'interface required by Start() defined in the documentation for the parameter +#''file_dim_reader' of that function./cr +#'This function uses the function NcReadDims() in the package 'easyNCDF'. +#' +#'@param file_path A character string indicating the path to the data file to +#' read. See details in the documentation of the parameter 'file_dim_reader' +#' of the function Start(). The default value is NULL. +#'@param file_object An open connection to a NetCDF file, optionally with +#' additional header information. See details in the documentation of the +#' parameter 'file_dim_reader' of the function Start(). The default value is +#' NULL. +#'@param file_selectors A named list containing the information of the path of +#' the file to read data from. It is automatically provided by Start(). See +#' details in the documentation of the parameter 'file_dim_reader' of the +#' function Start(). The default value is NULL. +#'@param inner_indices A named list of numeric vectors indicating the indices +#' to take from each of the inner dimensions in the requested file. It is +#' automatically provided by Start(). See details in the documentation of the +#' parameter 'file_dim_reader' of the function Start(). The default value is +#' NULL. +#'@param synonims A named list indicating the synonims for the dimension names +#' to look for in the requested file, exactly as provided in the parameter +#' 'synonims' in a Start() call. See details in the documentation of the +#' parameter 'file_dim_reader' of the function Start(). +#' +#'@return A named numeric vector with the names and sizes of the dimensions of +#' the requested file. +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') +#' file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') +#' first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) +#' synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', +#' latitude = 'latitude', longitude = 'longitude') +#' dim_of_file <- NcDimReader(file_to_open, NULL, file_selectors, +#' first_round_indices, synonims) +#' +#'@import easyNCDF +#'@export NcDimReader <- function(file_path = NULL, file_object = NULL, file_selectors = NULL, inner_indices = NULL, synonims) { diff --git a/R/NcOpener.R b/R/NcOpener.R index ca6e9ed..ec44ac0 100644 --- a/R/NcOpener.R +++ b/R/NcOpener.R @@ -1,3 +1,26 @@ +#'NetCDF file opener for 'startR' +#' +#'This is a file opener function for NetCDF files, intended for use as parameter +#'file_opener in a Start() call. This function complies with the input/output +#'interface required by Start() defined in the documentation for the parameter +#''file_opener'.\cr +#'This function uses the function NcOpen() in the package 'easyNCDF', which in +#'turn uses nc_open() in the package 'ncdf4'. +#' +#'@param file_path A character string indicating the path to the data file to +#' read. See details in the documentation of the parameter 'file_opener' of the +#' function Start(). +#'@return An open connection to a NetCDF file with additional header +#' information as returned by nc_open() in the package 'ncdf4'. See details in +#' the documentation of the parameter 'file_opener' of the function Start(). +#'@examples +#'data_path <- system.file('sample_data', package = 'startR') +#'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') +#'connection <- NcOpener(path_obs) +#'NcCloser(connection) +#' +#'@import easyNCDF +#'@export NcOpener <- function(file_path) { easyNCDF::NcOpen(file_path) } diff --git a/R/NcVarReader.R b/R/NcVarReader.R index c794244..3aa5bf9 100644 --- a/R/NcVarReader.R +++ b/R/NcVarReader.R @@ -1,3 +1,44 @@ +#'NetCDF variable reader for 'startR' +#' +#'This is an auxiliary variable reader function for NetCDF files, intended for +#'use as parameter 'file_var_reader' in a Start() call. It complies with the +#'input/output interface required by Start() defined in the documentation for +#'the parameter 'file_var_reader' of that function.\cr +#'This function uses the function NcDataReader() in the package 'startR', +#'which in turn uses NcToArray() in the package 'easyNCDF', which in turn uses +#'nc_var_get() in the package 'ncdf4'. +#' +#'@param file_path A character string indicating the path to the data file to +#' read the variable from. See details in the documentation of the parameter +#' 'file_var_reader' of the function Start(). The default value is NULL. +#'@param file_object An open connection to a NetCDF file, optionally with +#' additional header information. See details in the documentation of the +#' parameter 'file_var_reader' of the function Start(). The default value is +#' NULL. +#'@param file_selectors A named list containing the information of the path of +#' the file to read data from. It is automatically provided by Start(). See +#' details in the documentation of the parameter 'file_var_reader' of the +#' function Start(). The default value is NULL. +#'@param var_name A character string with the name of the variable to be read. +#' The default value is NULL. +#'@param synonims A named list indicating the synonims for the dimension names +#' to look for in the requested file, exactly as provided in the parameter +#' 'synonims' in a Start() call. See details in the documentation of the +#' parameter 'file_var_reader' of the function Start(). +#' +#'@return A multidimensional data array with the named dimensions, potentially +#' with the attribute 'variables' with additional auxiliary data. See details +#' in the documentation of the parameter 'file_var_reader' of the function +#' Start(). +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') +#' file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') +#' synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', +#' latitude = 'latitude', longitude = 'longitude') +#' var <- NcDataReader(file_to_open, NULL, file_selectors, +#' 'tos', synonims) +#'@export NcVarReader <- function(file_path = NULL, file_object = NULL, file_selectors = NULL, var_name = NULL, synonims) { -- GitLab From 615ef324a31649caece3f15da0edabfef29ef083 Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 27 Jul 2020 15:12:34 +0200 Subject: [PATCH 08/60] Add Roxygen2 headers. --- R/CDORemapper.R | 47 +++++++++++++++++++++++++++++++++++++++++++++ R/SelectorChecker.R | 37 +++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/R/CDORemapper.R b/R/CDORemapper.R index b109f54..8ea676d 100644 --- a/R/CDORemapper.R +++ b/R/CDORemapper.R @@ -1,3 +1,50 @@ +#'CDO Remap Data Transformation for 'startR' +#' +#'This is a transform function that uses CDO software to remap longitude-latitude +#'data subsets onto a specified target grid, intended for use as parameter +#''transform' in a Start() call. This function complies with the input/output +#'interface required by Start() defined in the documentation for the parameter +#''transform' of function Start().\cr +#'This function uses the function CDORemap() in the package 's2dverification' to +#'perform the interpolation, hence CDO is required to be installed. +#' +#'@param data_array A data array to be transformed. See details in the +#' documentation of the parameter 'transform' of the function Start(). +#'@param variables A list of auxiliary variables required for the transformation, +#' automatically provided by Start(). See details in the documentation of the +#' parameter 'transform' of the function Start(). +#'@param file_selectors A charcter vector indicating the information of the path of +#' the file parameter 'data_array' comes from. See details in the documentation of +#' the parameter 'transform' of the function Start(). +#'@param {\dots} A list of additional parameters to adjust the transform process, +#' as provided in the parameter 'transform_params' in a Start() call. See details +#' in the documentation of the parameter 'transform' of the function Start(). +#' +#'@examples +#'# Used in Start(): +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = values(list(-60, 60)), +#' latitude_reorder = Sort(decreasing = TRUE), +#' longitude = values(list(-120, 120)), +#' longitude_reorder = CircularSort(-180, 180), +#' transform = CDORemapper, +#' transform_params = list(grid = 'r360x181', +#' method = 'conservative', +#' crop = c(-120, 120, -60, 60)), +#' transform_vars = c('latitude', 'longitude'), +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#' +#'@importFrom s2dverification CDORemap +#'@export CDORemapper <- function(data_array, variables, file_selectors = NULL, ...) { file_dims <- names(file_selectors) known_lon_names <- s2dverification:::.KnownLonNames() diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index 8765da2..16f0150 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -1,3 +1,40 @@ +#'Translate a set of selectors into a set of numeric indices +#' +#'This is a selector checker function intended for use as parameter +#''selector_checker' in a Start() call. It translates a set of selectors which is +#'the value for one dimension into a set of numeric indices corresponding to the +#'coordinate variable. The function complies with the input/output interface +#'required by Start() defined in the documentation for the parameter +#''selector_checker' of Start(). +#' +#'@param selectors A vector or a list of two of numeric indices or variable +#' values to be retrieved for a dimension, automatically provided by Start(). +#' See details in the documentation of the parameters 'selector_checker' and +#' {\dots} of the function Start(). +#'@param var A vector of values of a coordinate variable for which to search +#' matches with the provided indices or values in the parameter 'selectors', +#' automatically provided by Start(). See details in the documentation of the +#' parameters 'selector_checker' and {\dots} of the function Start(). The +#' default value is NULL. When not specified, SelectorChecker() simply returns +#' the input indices. +#'@param return_indices A boolean flag, automatically configured by Start(), +#' telling whether to return the numeric indices or coordinate variable values +#' after the matching. +#'@param tolerance A numeric value indicating a tolerance value to be used in +#' the matching of 'selectors' and 'var'. See documentation on +#' _tolerance in {\dots} in the documentation of the function Start(). +#' +#'@return A vector of either the indices of the matching values (if +#' return_indices = TRUE) or the matching values themselves (if return_indices +#' = FALSE). +#'@examples +#'# Get the latitudes from 10 to 20 degree +#'sub_array_of_selectors <- list(10, 20) +#'# The latitude values from original file +#'sub_array_of_values <- seq(90, -90, length.out = 258)[2:257] +#'SelectorChecker(sub_array_of_selectors, sub_array_of_values) +#' +#'@export SelectorChecker <- function(selectors, var = NULL, return_indices = TRUE, tolerance = NULL) { if (length(selectors) == 0) { -- GitLab From ead82babc3b941ad1eacb37825cc5276b4aefd48 Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 27 Jul 2020 17:50:52 +0200 Subject: [PATCH 09/60] Add Roxygen2 header --- R/Compute.R | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/R/Compute.R b/R/Compute.R index 570b16d..d248ad3 100644 --- a/R/Compute.R +++ b/R/Compute.R @@ -1,3 +1,87 @@ +#'Specify the execution parameters and trigger the execution +#' +#'The step of the startR workflow after the complete workflow is defined by +#'AddStep(). This function specifies the execution parameters and triggers the +#'execution. The execution can be operated locally or on a remote machine. If +#'it is the latter case, the configuration of the machine needs to be +#'sepecified in the function, and the EC-Flow server is required to be +#'installed.\cr +#'The execution can be operated by chunks to avoid overloading the RAM memory. +#'After all the chunks are finished, Compute() will gather and merge them, and +#'return a single data object, including one or multiple multidimensional data +#'arrays and additional metadata. +#' +#'@param workflow A list of the class 'startR_workflow' returned by function +#' AddSteop() or of class 'startR_cube' returned by function Start(). It +#' contains all the objects needed for the execution. +#'@param chunks A named list of dimensions which to split the data along and +#' the number of chunks to make for each. The chunked dimension can only be +#' those not required as the target dimension in function Step(). The default +#' value is 'auto', which lists all the non-target dimensions and each one has +#' one chunk. +#'@param threads_load An integer indicating the number of execution threads to +#' use for the data retrieval stage. The default value is 1. +#'@param threads_compute An integer indicating the number of execution threads +#' to use for the computation. The default value is 1. +#'@param cluster A list of components that define the configuration of the +#' machine to be run on. The comoponents vary from the different machines. +#' Check https://earth.bsc.es/gitlab/es/startR/ for more details and examples. +#' Only needed when the computation is not run locally. The default value is +#' NULL. +#'@param ecflow_suite_dir A character string indicating the path to a folder in +#' the local workstation where to store temporary files generated for the +#' automatic management of the workflow. Only needed when the execution is run +#' remotely. The default value is NULL. +#'@param ecflow_server A named vector indicating the host and port of the +#' EC-Flow server. The vector form should be +#' \code{c(host = 'hostname', port = port_number)}. Only needed when the +#' execution is run#' remotely. The default value is NULL. +#'@param silent A logical value deciding whether to print the computation +#' progress (FALSE) on the R session or not (TRUE). It only works when the +#' execution runs locally or the parameter 'wait' is TRUE. The default value +#' is FALSE. +#'@param debug A logical value deciding whether to return detailed messages on +#' the progress and operations in a Compute() call (TRUE) or not (FALSE). +#' Automatically changed to FALSE if parameter 'silent' is TRUE. The default +#' value is FALSE. +#'@param wait A logical value deciding whether the R session waits for the +#' Compute() call to finish (TRUE) or not (FALSE). If FALSE, it will return an +#' object with all the information of the startR execution that can be stored +#' in your disk. After that, the R session can be closed and the results can +#' be collected later with the Collect() function. The default value is TRUE. +#' +#'@return A list of data arrays for the output returned by the last step in the +#' specified workflow. The configuration details and profiling information are +#' attached as attributes to the returned list of arrays. +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = 'all', +#' longitude = 'all', +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#' fun <- function(x) { +#' lat = attributes(x)$Variables$dat1$latitude +#' weight = sqrt(cos(lat * pi / 180)) +#' corrected = Apply(list(x), target_dims = "latitude", +#' fun = function(x) {x * weight}) +#' } +#' step <- Step(fun = fun, +#' target_dims = 'latitude', +#' output_dims = 'latitude', +#' use_libraries = c('multiApply'), +#' use_attributes = list(data = "Variables")) +#' wf <- AddStep(data, step) +#' res <- Compute(wf, chunks = list(longitude = 4, sdate = 2)) +#' +#'@export Compute <- function(workflow, chunks = 'auto', threads_load = 1, threads_compute = 1, cluster = NULL, ecflow_suite_dir = NULL, -- GitLab From 9be12d6bad400b0df94615ad5abd3fea70f1cd5c Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 27 Jul 2020 17:51:39 +0200 Subject: [PATCH 10/60] Small type fix --- R/ByChunks.R | 18 ++++++++++++++++++ R/CDORemapper.R | 2 +- R/SelectorChecker.R | 5 +++-- R/Step.R | 2 -- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/R/ByChunks.R b/R/ByChunks.R index 22b8667..9aeb3ae 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -1,3 +1,21 @@ +#' +#' +#' +#'@param step_fun +#'@param cube_headers +#'@param {\dots} +#'@param chunks +#'@param threads_load +#'@param threads_compute +#'@param cluster +#'@param ecflow_suite_dir +#'@param ecflow_server +#'@param silent +#'@param debug +#'@param wait +#' +#'@return +#'@export ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', threads_load = 2, threads_compute = 1, cluster = NULL, diff --git a/R/CDORemapper.R b/R/CDORemapper.R index 8ea676d..4985208 100644 --- a/R/CDORemapper.R +++ b/R/CDORemapper.R @@ -15,7 +15,7 @@ #' parameter 'transform' of the function Start(). #'@param file_selectors A charcter vector indicating the information of the path of #' the file parameter 'data_array' comes from. See details in the documentation of -#' the parameter 'transform' of the function Start(). +#' the parameter 'transform' of the function Start(). The default value is NULL. #'@param {\dots} A list of additional parameters to adjust the transform process, #' as provided in the parameter 'transform_params' in a Start() call. See details #' in the documentation of the parameter 'transform' of the function Start(). diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index 16f0150..d5d90f9 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -17,12 +17,13 @@ #' parameters 'selector_checker' and {\dots} of the function Start(). The #' default value is NULL. When not specified, SelectorChecker() simply returns #' the input indices. -#'@param return_indices A boolean flag, automatically configured by Start(), +#'@param return_indices A logical value automatically configured by Start(), #' telling whether to return the numeric indices or coordinate variable values -#' after the matching. +#' after the matching. The default value is TRUE. #'@param tolerance A numeric value indicating a tolerance value to be used in #' the matching of 'selectors' and 'var'. See documentation on #' _tolerance in {\dots} in the documentation of the function Start(). +#' The default value is NULL. #' #'@return A vector of either the indices of the matching values (if #' return_indices = TRUE) or the matching values themselves (if return_indices diff --git a/R/Step.R b/R/Step.R index ff141cc..1724332 100644 --- a/R/Step.R +++ b/R/Step.R @@ -46,8 +46,6 @@ #' corrected = Apply(list(x), target_dims = "latitude", #' fun = function(x) {x * weight}) #' } -#' -#' #' step <- Step(fun = fun, #' target_dims = 'latitude', #' output_dims = 'latitude', -- GitLab From c15c939e9bad8c496c73243c3762b8d85f6724b3 Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 28 Jul 2020 12:57:28 +0200 Subject: [PATCH 11/60] Add Roxygen2 header --- R/ByChunks.R | 89 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 13 deletions(-) diff --git a/R/ByChunks.R b/R/ByChunks.R index 9aeb3ae..b2cc6ca 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -1,20 +1,83 @@ +#'Execute the operation by chunks #' +#'This is a function used in Compute(), executing the operation by the chunks +#'specified in Compute(). It also returns the configuration details and +#'profiling information. #' +#'@param step_fun A function with the class 'startR_step_fun' containing the +#' details of operation. +#'@param cube_headers A list with the class 'startR_cube' returned by Start(). +#' It contains the details of data to be operated. +#'@param {\dots} Additional parameters for the inputs of 'step_fun'. +#'@param chunks A named list of dimensions which to split the data along and +#' the number of chunks to make for each. The chunked dimension can only be +#' those not required as the target dimension in function Step(). The default +#' value is 'auto', which lists all the non-target dimensions and each one has +#' one chunk. +#'@param threads_load An integer indicating the number of execution threads to +#' use for the data retrieval stage. The default value is 1. +#'@param threads_compute An integer indicating the number of execution threads +#' to use for the computation. The default value is 1. +#'@param cluster A list of components that define the configuration of the +#' machine to be run on. The comoponents vary from the different machines. +#' Check https://earth.bsc.es/gitlab/es/startR/ for more details and examples. +#' Only needed when the computation is not run locally. The default value is +#' NULL. +#'@param ecflow_suite_dir A character string indicating the path to a folder in +#' the local workstation where to store temporary files generated for the +#' automatic management of the workflow. Only needed when the execution is run +#' remotely. The default value is NULL. +#'@param ecflow_server A named vector indicating the host and port of the +#' EC-Flow server. The vector form should be +#' \code{c(host = 'hostname', port = port_number)}. Only needed when the +#' execution is run remotely. The default value is NULL. +#'@param silent A logical value deciding whether to print the computation +#' progress (FALSE) on the R session or not (TRUE). It only works when the +#' execution runs locally or the parameter 'wait' is TRUE. The default value +#' is FALSE. +#'@param debug A logical value deciding whether to return detailed messages on +#' the progress and operations in a Compute() call (TRUE) or not (FALSE). +#' Automatically changed to FALSE if parameter 'silent' is TRUE. The default +#' value is FALSE. +#'@param wait A logical value deciding whether the R session waits for the +#' Compute() call to finish (TRUE) or not (FALSE). If FALSE, it will return an +#' object with all the information of the startR execution that can be stored +#' in your disk. After that, the R session can be closed and the results can +#' be collected later with the Collect() function. The default value is TRUE. #' -#'@param step_fun -#'@param cube_headers -#'@param {\dots} -#'@param chunks -#'@param threads_load -#'@param threads_compute -#'@param cluster -#'@param ecflow_suite_dir -#'@param ecflow_server -#'@param silent -#'@param debug -#'@param wait +#'@return A list of data arrays for the output returned by the last step in the +#' specified workflow. The configuration details and profiling information are +#' attached as attributes to the returned list of arrays. +#' +#'@examples +#' # ByChunks() is internally used in Compute(), not intended to be used by +#' users. The example just illustrates the inputs of ByChunks(). +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = 'all', +#' longitude = 'all', +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#' fun <- function(x) { +#' lat = attributes(x)$Variables$dat1$latitude +#' weight = sqrt(cos(lat * pi / 180)) +#' corrected = Apply(list(x), target_dims = "latitude", +#' fun = function(x) {x * weight}) +#' } +#' step <- Step(fun = fun, +#' target_dims = 'latitude', +#' output_dims = 'latitude', +#' use_libraries = c('multiApply'), +#' use_attributes = list(data = "Variables")) +#' ByChunks(step, data) #' -#'@return #'@export ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', threads_load = 2, threads_compute = 1, -- GitLab From 2f64825dbc52abfee40379af93e3ba5e036f4e6a Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 28 Jul 2020 13:00:42 +0200 Subject: [PATCH 12/60] Fix typo in author list --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 0cda1ba..d135d90 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -4,7 +4,7 @@ Version: 1.0.3 Authors@R: c( person("BSC-CNS", role = c("aut", "cph")), person("Nicolau", "Manubens", , "nicolau.manubens@bsc.es", role = c("aut")), - person("An Chi", "Ho", , "aho@bsc.es", role = c("ctb")), + person("An-Chi", "Ho", , "an.ho@bsc.es", role = c("ctb")), person("Nuria", "Perez-Zanon", , "nuria.perez@bsc.es", role = c("ctb", "cre"), comment = c(ORCID = "0000-0001-8568-3071")), person("Javier", "Vegas", , "javier.vegas@bsc.es", role = c("ctb")), person("Pierre-Antoine", "Bretonniere", , "pierre-antoine.bretonniere@bsc.es", role = c("ctb")), -- GitLab From 6eadfc48c6803bde79cf2c95ab25a25b243363ba Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 28 Jul 2020 13:26:26 +0200 Subject: [PATCH 13/60] Add Roxygen2 header --- R/Subset.R | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/R/Subset.R b/R/Subset.R index da35b5b..4b7ef42 100644 --- a/R/Subset.R +++ b/R/Subset.R @@ -1,3 +1,50 @@ +#'Subset a data array +#' +#'This function allows to subset (i.e. slice, take a chunk of) an array, in a +#'similar way as done in the function \code{take()} in the package plyr. There +#'are two main inprovements:\cr +#'The input array can have dimension names, either +#'in \code{names(dim(x))} or in the attribute 'dimensions', and the dimensions +#'to subset along can be specified via the parameter \code{along} either with +#'integer indices or either by their name.\cr +#'There are additional ways to adjust which dimensions are dropped in the +#'resulting array: either to drop all, to drop none, to drop only the ones that +#'have been sliced or to drop only the ones that have not been sliced.\cr +#'If an array is provided without dimension names, dimension names taken from +#'the parameter \code{dim_names} will be added to the array. +#' +#'@param x A multidimensional array to be sliced. It can have dimension names +#' either in \code{names(dim(x))} or either in the attribute 'dimensions'. +#'@param along Vector with references to the dimensions to take the subset +#' from: either integers or dimension names. +#'@param indices List of indices to take from each dimension specified in +#' 'along'. If a single dimension is specified in 'along' the indices can be +#' directly provided as a single integer or as a vector. +#'@param drop Whether to drop all the dimensions of length 1 in the resulting +#' array, none, only those that are specified in 'along', or only those that +#' are not specified in 'along'. The possible values are, respectively: 'all' +#' or TRUE, 'none' or FALSE, 'selected', and 'non-selected'. +#'@return An array same as the input 'x' except the dimensions being subsetted. +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = 'all', +#' longitude = 'all', +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = TRUE) +#' +#' subset <- Subset(data, c('dat', 'var', 'time'), +#' list(1, 1, 1), drop = 'selected') +#' dim(subset) +#' +#'@export Subset <- function(x, along, indices, drop = FALSE) { # Check x if (!is.array(x)) { -- GitLab From 4ced6578b230b8ab7ae5dd284c5dc88611c81951 Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 28 Jul 2020 14:52:38 +0200 Subject: [PATCH 14/60] Add Roxygen2 header --- R/Collect.R | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/R/Collect.R b/R/Collect.R index f714899..f904ba5 100644 --- a/R/Collect.R +++ b/R/Collect.R @@ -1,3 +1,76 @@ +#'Collect and merge the computation results +#' +#'The final step of the startR workflow after the data operation. It is used when +#'the parameter 'wait' of Compute() is FALSE, and the functionality includes +#'updating the job status shown on the EC-Flow GUI and collecting all the chunks +#'of results as one data array when the execution is done. See more details on +#'\url{https://earth.bsc.es/gitlab/es/startR/}. +#' +#'@param startr_exec An R object returned by Compute() when the parameter 'wait' +#' of Compute() is FALSE. It can be directly from a Compute() call or read from +#' the RDS file. +#'@param wait A logical value deciding whether the R session waits for the +#' Collect() call to finish (TRUE) or not (FALSE). If TRUE, it will be a +#' blocking call, in which Collect() will retrieve information from the HPC, +#' including signals and outputs, each polling_period seconds. The the status +#' can be monitored on the EC-Flow GUI. Collect() will not return until the +#' results of all chunks have been received. If FALSE, Collect() will crash with +#' an error if the execution has not finished yet, otherwise it will return the +#' merged array. The default value is TRUE. +#'@param remove A logical value deciding whether to remove of all data results +#' received from the HPC (and stored under 'ecflow_suite_dir', the parameter in +#' Compute()) after being collected. To preserve the data and Collect() it as +#' many times as desired, set remove to FALSE. The default value is TRUE. +#'@return A list of merged data array. +#' +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = 'all', +#' longitude = 'all', +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#' fun <- function(x) { +#' lat = attributes(x)$Variables$dat1$latitude +#' weight = sqrt(cos(lat * pi / 180)) +#' corrected = Apply(list(x), target_dims = "latitude", +#' fun = function(x) {x * weight}) +#' } +#' step <- Step(fun = fun, +#' target_dims = 'latitude', +#' output_dims = 'latitude', +#' use_libraries = c('multiApply'), +#' use_attributes = list(data = "Variables")) +#' wf <- AddStep(data, step) +#' \dontrun{ +#' res <- Compute(wf, chunks = list(longitude = 2, sdate = 2), +#' threads_load = 1, +#' threads_compute = 4, +#' cluster = list(queue_host = 'nord3', +#' queue_type = 'lsf', +#' temp_dir = '/on_hpc/tmp_dir/', +#' cores_per_job = 2, +#' job_wallclock = '05:00', +#' max_jobs = 4, +#' extra_queue_params = list('#BSUB -q bsc_es'), +#' bidirectional = FALSE, +#' polling_period = 10 +#' ), +#' ecflow_suite_dir = '/on_local_machine/username/ecflow_dir/', +#' wait = FALSE) +#' saveRDS(res, file = 'test_collect.Rds') +#' collect_info <- readRDS('test_collect.Rds') +#' result <- Collect(collect_info, wait = TRUE) +#' } +#' +#'@export Collect <- function(startr_exec, wait = TRUE, remove = TRUE) { if (!('startR_exec' %in% class(startr_exec))) { stop("Parameter 'startr_exec' must be an object of the class ", -- GitLab From cb0ccb8a6c805021c2609ccb36e75651d0b19d73 Mon Sep 17 00:00:00 2001 From: aho Date: Tue, 28 Jul 2020 14:53:49 +0200 Subject: [PATCH 15/60] Small sentence modification --- R/Compute.R | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/R/Compute.R b/R/Compute.R index d248ad3..e5d5244 100644 --- a/R/Compute.R +++ b/R/Compute.R @@ -25,9 +25,9 @@ #' to use for the computation. The default value is 1. #'@param cluster A list of components that define the configuration of the #' machine to be run on. The comoponents vary from the different machines. -#' Check https://earth.bsc.es/gitlab/es/startR/ for more details and examples. -#' Only needed when the computation is not run locally. The default value is -#' NULL. +#' Check \url{https://earth.bsc.es/gitlab/es/startR/} for more details and +#' examples. Only needed when the computation is not run locally. The default +#' value is NULL. #'@param ecflow_suite_dir A character string indicating the path to a folder in #' the local workstation where to store temporary files generated for the #' automatic management of the workflow. Only needed when the execution is run @@ -48,11 +48,12 @@ #' Compute() call to finish (TRUE) or not (FALSE). If FALSE, it will return an #' object with all the information of the startR execution that can be stored #' in your disk. After that, the R session can be closed and the results can -#' be collected later with the Collect() function. The default value is TRUE. +#' be collected later with the Collect() function. The default value is TRUE. #' #'@return A list of data arrays for the output returned by the last step in the -#' specified workflow. The configuration details and profiling information are -#' attached as attributes to the returned list of arrays. +#' specified workflow (wait = TRUE), or an object with information about the +#' startR execution (wait = FALSE). The configuration details and profiling +#' information are attached as attributes to the returned list of arrays. #'@examples #' data_path <- system.file('sample_data', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') -- GitLab From f80a1863352e963bbcc7b383e3f501114acc9bae Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 11:53:46 +0200 Subject: [PATCH 16/60] Add Roxygen2 header --- R/Start.R | 764 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 764 insertions(+) diff --git a/R/Start.R b/R/Start.R index b23e0eb..1f3fb7a 100644 --- a/R/Start.R +++ b/R/Start.R @@ -1,3 +1,767 @@ +#'Declare, discover, subset and retrieve multidimensional distributed data sets +#' +#'See the \href{https://earth.bsc.es/gitlab/es/startR}{\code{startR} +#'documentation and tutorial} for a step-by-step explanation on how to use +#'\code{Start()}.\cr\cr +#'Nowadays in the era of big data, large multidimensional data sets from +#'diverse sources need to be combined and processed. Analysis of big data in any +#'field is often highly complex and time-consuming. Taking subsets of these data +#'sets and processing them efficiently become an indispensable practice. This +#'technique is also known as Domain Decomposition, Map Reduce or, more commonly, +#''chunking'.\cr\cr +#'\code{startR} (Subset, TrAnsform, ReTrieve, arrange and process large +#'multidimensional data sets in R) is an R project started at BSC with the aim +#'to develop a tool that allows the user to automatically process large +#'multidimensional distributed data sets. It is an open source project that is +#'open to external collaboration and funding, and will continuously evolve to +#'support as many data set formats as possible while maximizing its efficiency.\cr\cr +#'\code{startR} provides a framework under which a data set (collection of one +#'or multiple data files, potentially distributed over various remote servers) +#'are perceived as if they all were part of a single large multidimensional +#'array. Once such multidimensional array is declared, any user-defined function +#'can be applied to the data in a \code{apply}-like fashion, where \code{startR} +#'transparently implements the Map Reduce paradigm. The steps to follow in order +#'to process a collection of big data sets are as follows:\cr +#'\itemize{ +#' \item{ +#'Declaring the data set, i.e. declaring the distribution of the data files +#'involved, the dimensions and shape of the multidimensional array, and the +#'boundaries of the target data. This step can be performed with the +#'\code{Start()} function. Numeric indices or coordinate values can be used when +#'fixing the boundaries. It is common having the need to apply transformations, +#'pre-processing or reordering to the data. Start() accepts user-defined +#'transformation or reordering functions to be applied for such purposes. Once a +#'data set is declared, a list of involved files, dimension lengths, memory size +#'and other metadata is made available. Optionally, the data set can be +#'retrieved and loaded onto the current R session if it is small enough. +#' } +#' \item{ +#'Declaring the workflow of operations to perform on the involved data set(s). +#'This step can be performed with the \code{Step()} and \code{AddStep()} +#'functions. +#' } +#' \item{ +#'Defining the computation settings. The mandatory settings include a) how many +#'subsets to divide the data sets into and along which dimensions; b) which +#'platform to perform the workflow of operations on (local machine or remote +#'machine/HPC?), how to communicate with it (unidirectional or bidirectional +#'connection? shared or separate file systems?), which queuing system it uses +#'(slurm, PBS, LSF, none?); and c) how many parallel jobs and execution threads +#'per job to use when running the calculations. This step can be performed when +#'building up the call to the \code{Compute()} function. +#' } +#' \item{ +#'Running the computation. startR transparently implements the Map Reduce +#'paradigm, according to the settings in the previous steps. The progress can +#'optionally be monitored with the EC-Flow workflow management tool. When the +#'computation ends, a report of performance timings is displayed. This step can +#'be triggered with the \code{Compute()} function. +#' } +#'} +#'\code{startR} is not bound to a specific file format. Interface functions to +#'custom file formats can be provided for \code{Start()} to read them. As this +#'version, \code{startR} includes interface functions to the following file formats: +#'\itemize{ +#' \item{ +#'NetCDF +#' } +#'} +#'Metadata and auxilliary data is also preserved and arranged by \code{Start()} +#'in the measure that it is retrieved by the interface functions for a specific +#'file format. +#' +#'@param {\dots} A selection of custemized parameters depending on the data +#'format. When we retrieve data from one or a collection of data sets, +#'the involved data can be perceived as belonging to a large multi-dimensional +#'array. For instance, let us consider an example case. We want to retrieve data +#'from a source, which contains data for the number of monthly sales of various +#'items, and also for their retail price each month. The data on source is +#'stored as follows:\cr +#'\command{ +#'\cr # /data/ +#'\cr # |-> sales/ +#'\cr # | |-> electronics +#'\cr # | | |-> item_a.data +#'\cr # | | |-> item_b.data +#'\cr # | | |-> item_c.data +#'\cr # | |-> clothing +#'\cr # | |-> item_d.data +#'\cr # | |-> idem_e.data +#'\cr # | |-> idem_f.data +#'\cr # |-> prices/ +#'\cr # |-> electronics +#'\cr # | |-> item_a.data +#'\cr # | |-> item_b.data +#'\cr # | |-> item_c.data +#'\cr # |-> clothing +#'\cr # |-> item_d.data +#'\cr # |-> item_e.data +#'\cr # |-> item_f.data +#'}\cr\cr +#'Each item file contains data, stored in whichever format, for the sales or +#'prices over a time period, e.g. for the past 24 months, registered at 100 +#'different stores over the world. Whichever the format it is stored in, each +#'file can be perceived as a container of a data array of 2 dimensions, time and +#'store. Let us assume the '.data' format allows to keep a name for each of +#'these dimensions, and the actual names are 'time' and 'store'.\cr\cr +#'The different item files for sales or prices can be perceived as belonging to +#'an 'item' dimension of length 3, and the two groups of three items to a +#''section' dimension of length 2, and the two groups of two sections (one with +#'the sales and the other with the prices) can be perceived as belonging also to +#'another dimension 'variable' of length 2. Even the source can be perceived as +#'belonging to a dimension 'source' of length 1.\cr\cr +#'All in all, in this example, the whole data could be perceived as belonging to +#'a multidimensional 'large array' of dimensions\cr +#'\command{ +#'\cr # source variable section item store month +#'\cr # 1 2 2 3 100 24 +#'} +#'\cr\cr +#'The dimensions of this 'large array' can be classified in two types. The ones +#'that group actual files (the file dimensions) and the ones that group data +#'values inside the files (the inner dimensions). In the example, the file +#'dimensions are 'source', 'variable', 'section' and 'item', whereas the inner +#'dimensions are 'store' and 'month'. +#'\cr\cr +#'Having the dimensions of our target sources in mind, the parameter \dots +#'expects to receive information on: +#' \itemize{ +#' \item{ +#'The names of the expected dimensions of the 'large dataset' we want to +#'retrieve data from +#' } +#' \item{ +#'The indices to take from each dimension (and other constraints) +#' } +#' \item{ +#'How to reorder the dimension if needed +#' } +#' \item{ +#'The location and organization of the files of the data sets +#' } +#' } +#'For each dimension, the 3 first information items can be specified with a set +#'of parameters to be provided through \dots. For a given dimension 'dimname', +#'six parameters can be specified:\cr +#'\command{ +#'\cr # dimname = , # 'all' / 'first' / 'last' / +#'\cr # # indices(c(1, 10, 20)) / +#'\cr # # indices(c(1:20)) / +#'\cr # # indices(list(1, 20)) / +#'\cr # # c(1, 10, 20) / c(1:20) / +#'\cr # # list(1, 20) +#'\cr # dimname_var = , +#'\cr # dimname_tolerance = , +#'\cr # dimname_reorder = , +#'\cr # dimname_depends = , +#'\cr # dimname_across = +#'} +#'\cr\cr +#'The \bold{indices to take} can be specified in three possible formats (see +#'code comments above for examples). The first format consists in using +#'character tags, such as 'all' (take all the indices available for that +#'dimension), 'first' (take only the first) and 'last' (only the last). The +#'second format consists in using numeric indices, which have to be wrapped in a +#'call to the \code{indices()} helper function. For the second format, either a +#'vector of numeric indices can be provided, or a list with two numeric indices +#'can be provided to take all the indices in the range between the two specified +#'indices (both extremes inclusive). The third format consists in providing a +#'vector character strings (for file dimensions) or of values of whichever type +#'(for inner dimensions). For the file dimensions, the provided character +#'strings in the third format will be used as components to build up the final +#'path to the files (read further). For inner dimensions, the provided values in +#'the third format will be compared to the values of an associated coordinate +#'variable (must be specified in \code{dimname_reorder}, read further), and the +#'indices of the closest values will be retrieved. When using the third format, +#'a list with two values can also be provided to take all the indices of the +#'values within the specified range. +#'\cr\cr +#'The \bold{name of the associated coordinate variable} must be a character +#'string with the name of an associated coordinate variable to be found in the +#'data files (in all* of them). For this to work, a \code{file_var_reader} +#'function must be specified when calling \code{Start()} (see parameter +#''file_var_reader'). The coordinate variable must also be requested in the +#'parameter \code{return_vars} (see its section for details). This feature only +#'works for inner dimensions. +#'\cr\cr +#'The \bold{tolerance value} is useful when indices for an inner dimension are +#'specified in the third format (values of whichever type). In that case, the +#'indices of the closest values in the coordinate variable are seeked. However +#'the closest value might be too distant and we would want to consider no real +#'match exists for such provided value. This is possible via the tolerance, +#'which allows to specify a threshold beyond which not to seek for matching +#'values and mark that index as missing value. +#'\cr\cr +#'The \bold{reorder_function} is useful when indices for an inner dimension are +#'specified in the third fromat, and the retrieved indices need to be reordered +#'in function of their provided associated variable values. A function can be +#'provided, which receives as input a vector of values, and returns as outputs a +#'list with the components \code{x} with the reordered values, and \code{ix} +#'with the permutation indices. Two reordering functions are included in +#'\code{startR}, the \code{Sort()} and the \code{CircularSort()}. +#'\cr\cr +#'The \bold{name of another dimension} to be specified in \code{dimname_depends}, +#'only available for file dimensions, must be a character string with the name +#'of another requested \bold{file dimension} in \dots, and will make +#'\code{Start()} aware that the path components of a file dimension can vary in +#'function of the path component of another file dimension. For instance, in the +#'example above, specifying \code{item_depends = 'section'} will make +#'\code{Start()} aware that the item names vary in function of the section, i.e. +#'section 'electronics' has items 'a', 'b' and 'c' but section 'clothing' has +#'items 'd', 'e', 'f'. Otherwise \code{Start()} would expect to find the same +#'item names in all the sections. +#'\cr\cr +#'The \bold{name of another dimension} to be specified in \code{dimname_across}, +#'only available for inner dimensions, must be a character string with the name +#'of another requested \bold{inner dimension} in \dots, and will make +#'\code{Start()} aware that an inner dimension extends along multiple files. For +#'instance, let us imagine that in the example above, the records for each item +#'are so large that it becomes necessary to split them in multiple files each +#'one containing the registers for a different period of time, e.g. in 10 files +#'with 100 months each ('item_a_period1.data', 'item_a_period2.data', and so on). +#'In that case, the data can be perceived as having an extra file dimension, the#''period' dimension. The inner dimension 'month' would extend across multiple +#'files, and providing the parameter \code{month = indices(1, 300)} would make +#'\code{Start()} crash because it would perceive we have made a request out of +#'bounds (each file contains 100 'month' indices, but we requested 1 to 300). +#'This can be solved by specifying the parameter \code{month_across = period} (a +#'long with the full specification of the dimension 'period'). +#'\cr\cr +#'\bold{Defining the path pattern} +#'\cr +#'As mentioned above, the parameter \dots also expects to receive information +#'with the location of the data files. In order to do this, a special dimension +#'must be defined. In that special dimension, in place of specifying indices to +#'take, a path pattern must be provided. The path pattern is a character string +#'that encodes the way the files are organized in their source. It must be a +#'path to one of the data set files in an accessible local or remote file system, +#'or a URL to one of the files provided by a local or remote server. The regions +#'of this path that vary across files (along the file dimensions) must be +#'replaced by wildcards. The wildcards must match any of the defined file +#'dimensions in the call to \code{Start()} and must be delimited with heading +#'and trailing '$'. Shell globbing expressions can be used in the path pattern. +#'See the next code snippet for an example of a path pattern. +#'\cr\cr +#'All in all, the call to \code{Start()} to load the entire data set in the +#'example of store item sales, would look as follows: +#'\cr +#'\command{ +#'\cr # data <- Start(source = paste0('/data/$variable$/', +#'\cr # '$section$/$item$.data'), +#'\cr # variable = 'all', +#'\cr # section = 'all', +#'\cr # item = 'all', +#'\cr # item_depends = 'section', +#'\cr # store = 'all', +#'\cr # month = 'all') +#'} +#'\cr\cr +#'Note that in this example it would still be pending to properly define the +#'parameters \code{file_opener}, \code{file_closer}, \code{file_dim_reader}, +#'\code{file_var_reader} and \code{file_data_reader} for the '.data' file format +#'(see the corresponding sections). +#'\cr\cr +#'The call to \code{Start()} will return a multidimensional R array with the +#'following dimensions: +#'\cr +#'\command{ +#'\cr # source variable section item store month +#'\cr # 1 2 2 3 100 24 +#'} +#'\cr +#'The dimension specifications in the \dots do not have to follow any particular +#'order. The returned array will have the dimensions in the same order as they +#'have been specified in the call. For example, the following call: +#'\cr +#'\command{ +#'\cr # data <- Start(source = paste0('/data/$variable$/', +#'\cr # '$section$/$item$.data'), +#'\cr # month = 'all', +#'\cr # store = 'all', +#'\cr # item = 'all', +#'\cr # item_depends = 'section', +#'\cr # section = 'all', +#'\cr # variable = 'all') +#'} +#'\cr\cr +#'would return an array with the following dimensions: +#'\cr +#'\command{ +#'\cr # source month store item section variable +#'\cr # 1 24 100 3 2 2 +#'} +#'\cr\cr +#'Next, a more advanced example to retrieve data for only the sales records, for +#'the first section ('electronics'), for the 1st and 3rd items and for the +#'stores located in Barcelona (assuming the files contain the variable +#''store_location' with the name of the city each of the 100 stores are located +#'at): +#'\cr +#'\command{ +#'\cr # data <- Start(source = paste0('/data/$variable$/', +#'\cr # '$section$/$item$.data'), +#'\cr # variable = 'sales', +#'\cr # section = 'first', +#'\cr # item = indices(c(1, 3)), +#'\cr # item_depends = 'section', +#'\cr # store = 'Barcelona', +#'\cr # store_var = 'store_location', +#'\cr # month = 'all', +#'\cr # return_vars = list(store_location = NULL)) +#'} +#'\cr\cr +#'The defined names for the dimensions do not necessarily have to match the +#'names of the dimensions inside the file. Lists of alternative names to be +#'seeked can be defined in the parameter \code{synonims}. +#'\cr\cr +#'If data from multiple sources (not necessarily following the same structure) +#'has to be retrieved, it can be done by providing a vector of character strings +#'with path pattern specifications, or, in the extended form, by providing a +#'list of lists with the components 'name' and 'path', and the name of the +#'dataset and path pattern as values, respectively. For example: +#'\cr +#'\command{ +#'\cr # data <- Start(source = list( +#'\cr # list(name = 'sourceA', +#'\cr # path = paste0('/sourceA/$variable$/', +#'\cr # '$section$/$item$.data')), +#'\cr # list(name = 'sourceB', +#'\cr # path = paste0('/sourceB/$section$/', +#'\cr # '$variable$/$item$.data')) +#'\cr # ), +#'\cr # variable = 'sales', +#'\cr # section = 'first', +#'\cr # item = indices(c(1, 3)), +#'\cr # item_depends = 'section', +#'\cr # store = 'Barcelona', +#'\cr # store_var = 'store_location', +#'\cr # month = 'all', +#'\cr # return_vars = list(store_location = NULL)) +#'} +#'\cr +#' +#'@param return_vars A named list where the names are the names of the +#'variables to be fetched in the files, and the values are vectors of +#'character strings with the names of the file dimension which to retrieve each +#'variable for, or \code{NULL} if the variable has to be retrieved only once +#'from any (the first) of the involved files.\cr\cr +#'Apart from retrieving a multidimensional data array, retrieving auxiliary +#'variables inside the files can also be needed. The parameter +#'\code{return_vars} allows for requesting such variables, as long as a +#'\code{file_var_reader} function is also specified in the call to +#'\code{Start()} (see documentation on the corresponding parameter). +#'\cr\cr +#'In the case of the the item sales example (see documentation on parameter +#'\code{\dots)}, the store location variable is requested with the parameter +#'\code{return_vars = list(store_location = NULL)}. This will cause +#'\code{Start()} to fetch once the variable 'store_location' and return it in +#'the component \code{$Variables$common$store_location}, and will be an array +#'of character strings with the location names, with the dimensions +#'\code{c('store' = 100)}. Although useless in this example, we could ask +#'\code{Start()} to fetch and return such variable for each file along the +#'items dimension as follows: \cr +#'\code{return_vars = list(store_location = c('item'))}. In that case, the +#'variable will be fetched once from a file of each of the items, and will be +#'returned as an array with the dimensions \code{c('item' = 3, 'store' = 100)}. +#'\cr\cr +#'If a variable is requested along a file dimension that contains path pattern +#'specifications ('source' in the example), the fetched variable values will be +#'returned in the component \code{$Variables$$}. +#'For example: +#'\cr +#'\command{ +#'\cr # data <- Start(source = list( +#'\cr # list(name = 'sourceA', +#'\cr # path = paste0('/sourceA/$variable$/', +#'\cr # '$section$/$item$.data')), +#'\cr # list(name = 'sourceB', +#'\cr # path = paste0('/sourceB/$section$/', +#'\cr # '$variable$/$item$.data')) +#'\cr # ), +#'\cr # variable = 'sales', +#'\cr # section = 'first', +#'\cr # item = indices(c(1, 3)), +#'\cr # item_depends = 'section', +#'\cr # store = 'Barcelona', +#'\cr # store_var = 'store_location', +#'\cr # month = 'all', +#'\cr # return_vars = list(store_location = c('source', +#'\cr # 'item'))) +#'\cr # # Checking the structure of the returned variables +#'\cr # str(found_data$Variables) +#'\cr # Named list +#'\cr # ..$common: NULL +#'\cr # ..$sourceA: Named list +#'\cr # .. ..$store_location: char[1:18(3d)] 'Barcelona' 'Barcelona' ... +#'\cr # ..$sourceB: Named list +#'\cr # .. ..$store_location: char[1:18(3d)] 'Barcelona' 'Barcelona' ... +#'\cr # # Checking the dimensions of the returned variable +#'\cr # # for the source A +#'\cr # dim(found_data$Variables$sourceA) +#'\cr # item store +#'\cr # 3 3 +#'} +#'\cr\cr +#'The names of the requested variables do not necessarily have to match the +#'actual variable names inside the files. A list of alternative names to be +#'seeked can be specified via the parameter \code{synonims}. +#' +#'@param synonims A named list where the names are the requested variable or +#'dimension names, and the values are vectors of character strings with +#'alternative names to seek for such dimension or variable.\cr\cr +#'In some requests, data from different sources may follow different naming +#'conventions for the dimensions or variables, or even files in the same source +#'could have varying names. This parameter is in order for \code{Start()} to +#'properly identify the dimensions or variables with different names. +#'\cr\cr +#'In the example used in parameter \code{return_vars}, it may be the case that +#'the two involved data sources follow slightly different naming conventions. +#'For example, source A uses 'sect' as name for the sections dimension, whereas +#'source B uses 'section'; source A uses 'store_loc' as variable name for the +#'store locations, whereas source B uses 'store_location'. This can be taken +#'into account as follows: +#'\cr +#'\command{ +#'\cr # data <- Start(source = list( +#'\cr # list(name = 'sourceA', +#'\cr # path = paste0('/sourceA/$variable$/', +#'\cr # '$section$/$item$.data')), +#'\cr # list(name = 'sourceB', +#'\cr # path = paste0('/sourceB/$section$/', +#'\cr # '$variable$/$item$.data')) +#'\cr # ), +#'\cr # variable = 'sales', +#'\cr # section = 'first', +#'\cr # item = indices(c(1, 3)), +#'\cr # item_depends = 'section', +#'\cr # store = 'Barcelona', +#'\cr # store_var = 'store_location', +#'\cr # month = 'all', +#'\cr # return_vars = list(store_location = c('source', +#'\cr # 'item')), +#'\cr # synonims = list( +#'\cr # section = c('sec', 'section'), +#'\cr # store_location = c('store_loc', +#'\cr # 'store_location') +#'\cr # )) +#'} +#'\cr +#' +#'@param file_opener A function that receives as a single parameter +#' (\code{file_path}) a character string with the path to a file to be opened, +#' and returns an object with an open connection to the file (optionally with +#' header information) on success, or returns \code{NULL} on failure. +#'\cr\cr +#'This parameter takes by default \code{NcOpener} (an opener function for NetCDF +#'files). +#'\cr\cr +#'See \code{NcOpener} for a template to build a file opener for your own file +#'format. +#' +#'@param file_var_reader A function with the header \code{file_path = NULL}, +#' \code{file_object = NULL}, \code{file_selectors = NULL}, \code{var_name}, +#' \code{synonims} that returns an array with auxiliary data (i.e. data from a +#' variable) inside a file. \code{Start()} will provide automatically either a +#' \code{file_path} or a \code{file_object} to the \code{file_var_reader} +#' function (the function has to be ready to work whichever of these two is +#' provided). The parameter \code{file_selectors} will also be provided +#' automatically to the variable reader, containing a named list where the +#' names are the names of the file dimensions of the queried data set (see +#' documentation on \dots) and the values are single character strings with the +#' components used to build the path to the file being read (the one provided +#' in \code{file_path} or \code{file_object}). The parameter \code{var_name} +#' will be filled in automatically by \code{Start()} also, with the name of one +#' of the variales to be read. The parameter \code{synonims} will be filled in +#' with exactly the same value as provided in the parameter \code{synonims} in +#' the call to \code{Start()}, and has to be used in the code of the variable +#' reader to check for alternative variable names inside the target file. The +#' \code{file_var_reader} must return a (multi)dimensional array with named +#' dimensions, and optionally with the attribute 'variales' with other +#' additional metadata on the retrieved variable. +#'\cr\cr +#'Usually, the \code{file_var_reader} should be a degenerate case of the +#'\code{file_data_reader} (see documentation on the corresponding parameter), +#'so it is recommended to code the \code{file_data_reder} in first place. +#'\cr\cr +#'This parameter takes by default \code{NcVarReader} (a variable reader function +#'for NetCDF files). +#'\cr\cr +#'See \code{NcVarReader} for a template to build a variale reader for your own +#'file format. +#' +#'@param file_dim_reader A function with the header \code{file_path = NULL}, +#' \code{file_object = NULL}, \code{file_selectors = NULL}, \code{synonims} +#' that returns a named numeric vector where the names are the names of the +#' dimensions of the multidimensional data array in the file and the values are +#' the sizes of such dimensions. \code{Start()} will provide automatically +#' either a \code{file_path} or a \code{file_object} to the +#' \code{file_dim_reader} function (the function has to be ready to work +#' whichever of these two is provided). The parameter \code{file_selectors} +#' will also be provided automatically to the dimension reader, containing a +#' named list where the names are the names of the file dimensions of the +#' queried data set (see documentation on \dots) and the values are single +#' character strings with the components used to build the path to the file +#' being read (the one provided in \code{file_path} or \code{file_object}). +#' The parameter \code{synonims} will be filled in with exactly the same value +#' as provided in the parameter \code{synonims} in the call to \code{Start()}, +#' and can optionally be used in advanced configurations. +#'\cr\cr +#'This parameter takes by default \code{NcDimReader} (a dimension reader +#'function for NetCDF files). +#'\cr\cr +#'See \code{NcDimReader} for (an advanced) template to build a dimension reader +#'for your own file format. +#' +#'@param file_data_reader A function with the header \code{file_path = NULL}, +#' \code{file_object = NULL}, \code{file_selectors = NULL}, +#' \code{inner_indices = NULL}, \code{synonims} that returns a subset of the +#' multidimensional data array inside a file (even if internally it is not an +#' array). \code{Start()} will provide automatically either a \code{file_path} +#' or a \code{file_object} to the \code{file_data_reader} function (the +#' function has to be ready to work whichever of these two is provided). The +#' parameter \code{file_selectors} will also be provided automatically to the +#' data reader, containing a named list where the names are the names of the +#' file dimensions of the queried data set (see documentation on \dots) and the +#' values are single character strings with the components used to build the +#' path to the file being read (the one provided in \code{file_path} or +#' \code{file_object}). The parameter \code{inner_indices} will be filled in +#' automatically by \code{Start()} also, with a named list of numeric vectors, +#' where the names are the names of all the expected inner dimensions in a file +#' to be read, and the numeric vectors are the indices to be taken from the +#' corresponding dimension (the indices may not be consecutive nor in order). +#' The parameter \code{synonims} will be filled in with exactly the same value +#' as provided in the parameter \code{synonims} in the call to \code{Start()}, +#' and has to be used in the code of the data reader to check for alternative +#' dimension names inside the target file. The \code{file_data_reader} must +#' return a (multi)dimensional array with named dimensions, and optionally with +#' the attribute 'variales' with other additional metadata on the retrieved +#' data. +#'\cr\cr +#'Usually, the \code{file_data_reader} should use the \code{file_dim_reader} +#'(see documentation on the corresponding parameter), so it is recommended to +#'code the \code{file_dim_reder} in first place. +#'\cr\cr +#'This parameter takes by default \code{NcDataReader} (a data reader function +#'for NetCDF files). +#'\cr\cr +#'See \code{NcDataReader} for a template to build a data reader for your own +#'file format. +#' +#'@param file_closer A function that receives as a single parameter +#' (\code{file_object}) an open connection (as returned by \code{file_opener}) +#' to one of the files to be read, optionally with header information, and +#' closes the open connection. Always returns \code{NULL}. +#'\cr\cr +#'This parameter takes by default \code{NcCloser} (a closer function for NetCDF +#'files). +#'\cr\cr +#'See \code{NcCloser} for a template to build a file closer for your own file +#'format. +#' +#'@param transform A function with the header \code{dara_array}, +#' \code{variables}, \code{file_selectors = NULL}, \code{\dots}. It receives as +#' input, through the parameter \code{data_array}, a subset of a +#' multidimensional array (as returned by \code{file_data_reader}), applies a +#' transformation to it and returns it, preserving the amount of dimensions but +#' potentially modifying their size. This transformation may require data from +#' other auxiliary variables, automatically provided to \code{transform} +#' through the parameter \code{variables}, in the form of a named list where +#' the names are the variable names and the values are (multi)dimensional +#' arrays. Which variables need to be sent to \code{transform} can be specified +#' with the parameter \code{transform_vars} in \code{Start()}. The parameter +#' \code{file_selectors} will also be provided automatically to +#' \code{transform}, containing a named list where the names are the names of +#' the file dimensions of the queried data set (see documentation on \dots) and +#' the values are single character strings with the components used to build +#' the path to the file the subset being processed belongs to. The parameter +#' \dots will be filled in with other additional parameters to adjust the +#' transformation, exactly as provided in the call to \code{Start()} via the +#' parameter \code{transform_params}. +#'@param transform_params A named list with additional parameters to be sent to +#' the \code{transform} function (if specified). See documentation on +#' \code{transform} for details. +#'@param transform_vars A vector of character strings with the names of +#' auxiliary variables to be sent to the \code{transform} function (if +#' specified). All the variables to be sent to \code{transform} must also +#' have been requested as return variables in the parameter \code{return_vars} +#' of \code{Start()}. +#'@param transform_extra_cells An integer of extra indices to retrieve from the +#' data set, beyond the requested indices in \dots, in order for +#' \code{transform} to dispose of additional information to properly apply +#' whichever transformation (if needed). As many as +#' \code{transform_extra_cells} will be retrieved beyond each of the limits for +#' each of those inner dimensions associated to a coordinate variable and sent +#' to \code{transform} (i.e. present in \code{transform_vars}). After +#' \code{transform} has finished, \code{Start()} will take again and return a +#' subset of the result, for the returned data to fall within the specified +#' bounds in \dots. The default value is 2. +#'@param apply_indices_after_transform A logical value indicating when a +#' \code{transform} is specified in \code{Start()} and numeric indices are +#' provided for any of the inner dimensions that depend on coordinate variables, +#' these numeric indices can be made effective (retrieved) before applying the +#' transformation or after. The boolean flag allows to adjust this behaviour. +#' It takes \code{FALSE} by default (numeric indices are applied before sending +#' data to \code{transform}). +#'@param pattern_dims A character string indicating the name of the dimension +#' with path pattern specifications (see \dots for details). If not specified, +#' \code{Start()} assumes the first provided dimension is the pattern +#' dimension, with a warning. +#'@param metadata_dims A vector of character strings with the names of the file +#' dimensions which to return metadata for. As noted in \code{file_data_reader}, +#' the data reader can optionally return auxiliary data via the attribute +#' 'variables' of the returned array. \code{Start()} by default returns the +#' auxiliary data read for only the first file of each source (or data set) in +#' the pattern dimension (see \dots for info on what the pattern dimension is). +#' However it can be configured to return the metadata for all the files along +#' any set of file dimensions. The parameter \code{metadata_dims} allows to +#' configure this level of granularity of the returned metadata. +#'@param selector_checker A function used internaly by \code{Start()} to +#' translate a set of selectors (values for a dimension associated to a +#' coordinate variable) into a set of numeric indices. It takes by default +#' \code{SelectorChecker} and, in principle, it should not be required to +#' change it for customized file formats. The option to replace it is left open +#' for more versatility. See the code of \code{SelectorChecker} for details on +#' the inputs, functioning and outputs of a selector checker. +#'@param merge_across_dims A logical value indicating whether to merge +#' dimensions across which another dimension extends (according to the +#' \code{*_across} parameters). Takes the value \code{FALSE} by default. For +#' example, if the dimension 'time' extends across the dimension 'chunk' and +#' \code{merge_across_dims = TRUE}, the resulting data array will only contain +#' only the dimension 'time' as long as all the chunks together. +#'@param split_multiselected_dims A logical value indicating whether to split a +#' dimension that has been selected with a multidimensional array of selectors +#' into as many dimensions as present in the selector array. The default value +#' is FALSE. +#'@param path_glob_permissive A logical value or an integer specifying how many +#' folder levels in the path pattern, beginning from the end, the shell glob +#' expressions must be preserved and worked out for each file. The default +#' value is \code{FALSE}, which is equivalent to \code{0}. \code{TRUE} is +#' equivalent to \code{1}.\cr\cr +#'When specifying a path pattern for a dataset, it might contain shell glob +#'experissions. For each dataset, the first file matching the path pattern is +#'found, and the found file is used to work out fixed values for the glob +#'expressions that will be used for all the files of the dataset. However in +#'some cases the values of the shell glob expressions may not be constant for +#'all files in a dataset, and they need to be worked out for each file +#'involved.\cr\cr +#'For example, a path pattern could be as follows: +#'\code{'/path/to/dataset/$var$_*/$date$_*_foo.nc'}. Leaving +#'\code{path_glob_permissive = FALSE} will trigger automatic seek of the +#' contents to replace the asterisks (e.g. the first asterisk matches with +#' \code{'bar'} and the second with \code{'baz'}. The found contents will be +#' used for all files in the dataset (in the example, the path pattern will be +#' fixed to \code{'/path/to/dataset/$var$_bar/$date$_baz_foo.nc'}. However, if +#' any of the files in the dataset have other contents in the position of the +#' asterisks, \code{Start()} will not find them (in the example, a file like +#' \code{'/path/to/dataset/precipitation_bar/19901101_bin_foo.nc'} would not be +#' found). Setting \code{path_glob_permissive = 1} would preserve global +#' expressions in the latest level (in the example, the fixed path pattern +#' would be \code{'/path/to/dataset/$var$_bar/$date$_*_foo.nc'}, and the +#' problematic file mentioned before would be found), but of course this would +#' slow down the \code{Start()} call if the dataset involves a large number of +#' files. Setting \code{path_glob_permissive = 2} would leave the original path +#' pattern with the original glob expressions in the 1st and 2nd levels (in the +#' example, both asterisks would be preserved, thus would allow \code{Start()} +#' to recognize files such as +#' \code{'/path/to/dataset/precipitation_zzz/19901101_yyy_foo.nc'}). +#'@param retrieve A logical value indicating whether to retrieve the data +#' defined in the \code{Start} call or to explore only its dimension lengths +#' and names, and the values for the file and inner dimensions. The default +#' value is FALSE. +#'@param num_procs An integer of number of processes to be created for the +#' parallel execution of the retrieval / transformation / arrangement of the +#' multiple involved files in a call to \code{Start()}. If set to \code{NULL}, +#' takes the number of available cores (as detected by \code{detectCores()} in +#' the package 'future'). The default value is 1 (no parallel execution). +#'@param silent A logical value of whether to display progress messages (FALSE) +#' or not (TRUE). The default value is FALSE. +#'@param debug A logical value of whether to return detailed messages on the +#' progress and operations in a \code{Start} call (TRUE) or not (FALSE). The +#' default value is FALSE. +#' +#'@return If \code{retrieve = TRUE} the involved data is loaded into RAM memory +#' and an object of the class 'startR_cube' with the following components is +#' returned:\cr +#' \item{Data}{ +#' Multidimensional data array with named dimensions, with the data values +#' requested via \dots and other parameters. This array can potentially contain +#' metadata in the attribute 'variables'. +#' } +#' \item{Variables}{ +#' Named list of 1 + N components, containing lists of retrieved variables (as +#' requested in \code{return_vars}) common to all the data sources (in the 1st +#' component, \code{$common}), and for each of the N dara sources (named after +#' the source name, as specified in \dots, or, if not specified, \code{$dat1}, +#' \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a +#' multidimensional array with named dimensions, and potentially with the +#' attribute 'variables' with additional auxiliary data. +#' } +#' \item{Files}{ +#' Multidimensonal character string array with named dimensions. Its dimensions +#' are the file dimensions (as requested in \dots). Each cell in this array +#' contains a path to a retrieved file, or \code{NULL} if the corresponding +#' file was not found. +#' } +#' \item{NotFoundFiles}{ +#' Array with the same shape as \code{$Files} but with \code{NULL} in the +#' positions for which the corresponding file was found, and a path to the +#' expected file in the positions for which the corresponding file was not +#' found. +#' } +#' \item{FileSelectors}{ +#' Multidimensional character string array with named dimensions, with the same +#' shape as \code{$Files} and \code{$NotFoundFiles}, which contains the +#' components used to build up the paths to each of the files in the data +#' sources. +#' } +#'If \code{retrieve = FALSE} the involved data is not loaded into RAM memory and +#'an object of the class 'startR_header' with the following components is +#' returned:\cr +#' \item{Dimensions}{ +#' Named vector with the dimension lengths and names of the data involved in +#' the \code{Start} call. +#' } +#' \item{Variales}{ +#' Named list of 1 + N components, containing lists of retrieved variables (as +#' requested in \code{return_vars}) common to all the data sources (in the 1st +#' component, \code{$common}), and for each of the N dara sources (named after +#' the source name, as specified in \dots, or, if not specified, \code{$dat1}, +#' \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a +#' multidimensional array with named dimensions, and potentially with the +#' attribute 'variables' with additional auxiliary data. +#' } +#' \item{Files}{ +#' Multidimensonal character string array with named dimensions. Its dimensions +#' are the file dimensions (as requested in \dots). Each cell in this array +#' contains a path to a file to be retrieved (which may exist or not). +#' } +#' \item{FileSelectors}{ +#' Multidimensional character string array with named dimensions, with the same +#' shape as \code{$Files} and \code{$NotFoundFiles}, which contains the +#' components used to build up the paths to each of the files in the data +#' sources. +#' } +#' \item{StartRCall}{ +#' List of parameters sent to the \code{Start} call, with the parameter +#' \code{retrieve} set to \code{TRUE}. Intended for calling in order to +#' retrieve the associated data a posteriori with a call to \code{do.call}. +#' } +#' +#'@examples +#' data_path <- system.file('sample_data', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = 'all', +#' longitude = 'all', +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#' +#'@export Start <- function(..., # dim = indices/selectors, # dim_var = 'var', # dim_reorder = Sort/CircularSort, -- GitLab From 1e5e5869be6fc8bf23462f5c8409dc56b8d4b919 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 11:53:57 +0200 Subject: [PATCH 17/60] Small header fixes --- R/Collect.R | 2 +- R/Compute.R | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/R/Collect.R b/R/Collect.R index f904ba5..27a89b1 100644 --- a/R/Collect.R +++ b/R/Collect.R @@ -4,7 +4,7 @@ #'the parameter 'wait' of Compute() is FALSE, and the functionality includes #'updating the job status shown on the EC-Flow GUI and collecting all the chunks #'of results as one data array when the execution is done. See more details on -#'\url{https://earth.bsc.es/gitlab/es/startR/}. +#'\href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab}. #' #'@param startr_exec An R object returned by Compute() when the parameter 'wait' #' of Compute() is FALSE. It can be directly from a Compute() call or read from diff --git a/R/Compute.R b/R/Compute.R index e5d5244..5d441e0 100644 --- a/R/Compute.R +++ b/R/Compute.R @@ -25,9 +25,9 @@ #' to use for the computation. The default value is 1. #'@param cluster A list of components that define the configuration of the #' machine to be run on. The comoponents vary from the different machines. -#' Check \url{https://earth.bsc.es/gitlab/es/startR/} for more details and -#' examples. Only needed when the computation is not run locally. The default -#' value is NULL. +#' Check \href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab} for more +#' details and examples. Only needed when the computation is not run locally. +#' The default value is NULL. #'@param ecflow_suite_dir A character string indicating the path to a folder in #' the local workstation where to store temporary files generated for the #' automatic management of the workflow. Only needed when the execution is run -- GitLab From a787ec1d51355d8a2391c4eb276d9fe25c6125b8 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 11:56:48 +0200 Subject: [PATCH 18/60] Use devtools::document() to generate .Rd --- NAMESPACE | 18 ++++++-- man/AddStep.Rd | 57 ++++++++++++++++++++++++++ man/ByChunks.Rd | 104 ++++++++++++++++++++++++++++++++++++++++++++++ man/Collect.Rd | 86 ++++++++++++++++++++++++++++++++++++++ man/Compute.Rd | 107 ++++++++++++++++++++++++++++++++++++++++++++++++ man/Step.Rd | 2 - 6 files changed, 369 insertions(+), 5 deletions(-) create mode 100644 man/AddStep.Rd create mode 100644 man/ByChunks.Rd create mode 100644 man/Collect.Rd create mode 100644 man/Compute.Rd diff --git a/NAMESPACE b/NAMESPACE index d5c33e0..49d546d 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,8 +1,20 @@ # Generated by roxygen2: do not edit by hand +export(AddStep) +export(ByChunks) +export(CDORemapper) export(CircularSort) +export(Collect) +export(Compute) +export(NcCloser) +export(NcDataReader) +export(NcDimReader) +export(NcOpener) +export(NcVarReader) +export(SelectorChecker) export(Sort) +export(Start) export(Step) -exportPattern("^[^\\.]") -import(stats, utils, abind, bigmemory, future, parallel) - +export(Subset) +import(easyNCDF) +importFrom(s2dverification,CDORemap) diff --git a/man/AddStep.Rd b/man/AddStep.Rd new file mode 100644 index 0000000..4e38414 --- /dev/null +++ b/man/AddStep.Rd @@ -0,0 +1,57 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/AddStep.R +\name{AddStep} +\alias{AddStep} +\title{Create the workflow with the previous defined operation and data.} +\usage{ +AddStep(inputs, step_fun, ...) +} +\arguments{ +\item{inputs}{One or a list of objects of the class 'startR_cube' returned by +Start(), indicating the data to be processed.} + +\item{step_fun}{A startR step function as returned by Step().} + +\item{{\dots}}{Additional parameters for the inputs of function defined in +'step_fun' by Step().} +} +\value{ +A list of the class 'startR_workflow' containing all the objects +needed for the data operation. +} +\description{ +The step that combines the previous declared data and operation together to +create the complete workflow. It is the final step before data processing. +} +\examples{ + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = 'all', + longitude = 'all', + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) + pi_short <- 3.14 + fun <- function(x, pi_val) { + lat = attributes(x)$Variables$dat1$latitude + weight = sqrt(cos(lat * pi_val / 180)) + corrected = Apply(list(x), target_dims = "latitude", + fun = function(x) {x * weight}) + } + + + step <- Step(fun = fun, + target_dims = 'latitude', + output_dims = 'latitude', + use_libraries = c('multiApply'), + use_attributes = list(data = "Variables")) + wf <- AddStep(data, step, pi_val = pi_short) + +} + diff --git a/man/ByChunks.Rd b/man/ByChunks.Rd new file mode 100644 index 0000000..880d759 --- /dev/null +++ b/man/ByChunks.Rd @@ -0,0 +1,104 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ByChunks.R +\name{ByChunks} +\alias{ByChunks} +\title{Execute the operation by chunks} +\usage{ +ByChunks(step_fun, cube_headers, ..., chunks = "auto", threads_load = 2, + threads_compute = 1, cluster = NULL, ecflow_suite_dir = NULL, + ecflow_server = NULL, silent = FALSE, debug = FALSE, wait = TRUE) +} +\arguments{ +\item{step_fun}{A function with the class 'startR_step_fun' containing the +details of operation.} + +\item{cube_headers}{A list with the class 'startR_cube' returned by Start(). +It contains the details of data to be operated.} + +\item{chunks}{A named list of dimensions which to split the data along and +the number of chunks to make for each. The chunked dimension can only be +those not required as the target dimension in function Step(). The default +value is 'auto', which lists all the non-target dimensions and each one has +one chunk.} + +\item{threads_load}{An integer indicating the number of execution threads to +use for the data retrieval stage. The default value is 1.} + +\item{threads_compute}{An integer indicating the number of execution threads +to use for the computation. The default value is 1.} + +\item{cluster}{A list of components that define the configuration of the +machine to be run on. The comoponents vary from the different machines. +Check https://earth.bsc.es/gitlab/es/startR/ for more details and examples. +Only needed when the computation is not run locally. The default value is +NULL.} + +\item{ecflow_suite_dir}{A character string indicating the path to a folder in +the local workstation where to store temporary files generated for the +automatic management of the workflow. Only needed when the execution is run +remotely. The default value is NULL.} + +\item{ecflow_server}{A named vector indicating the host and port of the +EC-Flow server. The vector form should be +\code{c(host = 'hostname', port = port_number)}. Only needed when the +execution is run remotely. The default value is NULL.} + +\item{silent}{A logical value deciding whether to print the computation +progress (FALSE) on the R session or not (TRUE). It only works when the +execution runs locally or the parameter 'wait' is TRUE. The default value +is FALSE.} + +\item{debug}{A logical value deciding whether to return detailed messages on +the progress and operations in a Compute() call (TRUE) or not (FALSE). +Automatically changed to FALSE if parameter 'silent' is TRUE. The default +value is FALSE.} + +\item{wait}{A logical value deciding whether the R session waits for the +Compute() call to finish (TRUE) or not (FALSE). If FALSE, it will return an +object with all the information of the startR execution that can be stored +in your disk. After that, the R session can be closed and the results can +be collected later with the Collect() function. The default value is TRUE.} + +\item{{\dots}}{Additional parameters for the inputs of 'step_fun'.} +} +\value{ +A list of data arrays for the output returned by the last step in the + specified workflow. The configuration details and profiling information are + attached as attributes to the returned list of arrays. +} +\description{ +This is a function used in Compute(), executing the operation by the chunks +specified in Compute(). It also returns the configuration details and +profiling information. +} +\examples{ +# ByChunks() is internally used in Compute(), not intended to be used by + users. The example just illustrates the inputs of ByChunks(). + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = 'all', + longitude = 'all', + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) + fun <- function(x) { + lat = attributes(x)$Variables$dat1$latitude + weight = sqrt(cos(lat * pi / 180)) + corrected = Apply(list(x), target_dims = "latitude", + fun = function(x) {x * weight}) + } + step <- Step(fun = fun, + target_dims = 'latitude', + output_dims = 'latitude', + use_libraries = c('multiApply'), + use_attributes = list(data = "Variables")) + ByChunks(step, data) + +} + diff --git a/man/Collect.Rd b/man/Collect.Rd new file mode 100644 index 0000000..a496c41 --- /dev/null +++ b/man/Collect.Rd @@ -0,0 +1,86 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Collect.R +\name{Collect} +\alias{Collect} +\title{Collect and merge the computation results} +\usage{ +Collect(startr_exec, wait = TRUE, remove = TRUE) +} +\arguments{ +\item{startr_exec}{An R object returned by Compute() when the parameter 'wait' +of Compute() is FALSE. It can be directly from a Compute() call or read from +the RDS file.} + +\item{wait}{A logical value deciding whether the R session waits for the +Collect() call to finish (TRUE) or not (FALSE). If TRUE, it will be a +blocking call, in which Collect() will retrieve information from the HPC, +including signals and outputs, each polling_period seconds. The the status +can be monitored on the EC-Flow GUI. Collect() will not return until the +results of all chunks have been received. If FALSE, Collect() will crash with +an error if the execution has not finished yet, otherwise it will return the +merged array. The default value is TRUE.} + +\item{remove}{A logical value deciding whether to remove of all data results +received from the HPC (and stored under 'ecflow_suite_dir', the parameter in +Compute()) after being collected. To preserve the data and Collect() it as +many times as desired, set remove to FALSE. The default value is TRUE.} +} +\value{ +A list of merged data array. +} +\description{ +The final step of the startR workflow after the data operation. It is used when +the parameter 'wait' of Compute() is FALSE, and the functionality includes +updating the job status shown on the EC-Flow GUI and collecting all the chunks +of results as one data array when the execution is done. See more details on +\href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab}. +} +\examples{ + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = 'all', + longitude = 'all', + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) + fun <- function(x) { + lat = attributes(x)$Variables$dat1$latitude + weight = sqrt(cos(lat * pi / 180)) + corrected = Apply(list(x), target_dims = "latitude", + fun = function(x) {x * weight}) + } + step <- Step(fun = fun, + target_dims = 'latitude', + output_dims = 'latitude', + use_libraries = c('multiApply'), + use_attributes = list(data = "Variables")) + wf <- AddStep(data, step) + \dontrun{ + res <- Compute(wf, chunks = list(longitude = 2, sdate = 2), + threads_load = 1, + threads_compute = 4, + cluster = list(queue_host = 'nord3', + queue_type = 'lsf', + temp_dir = '/on_hpc/tmp_dir/', + cores_per_job = 2, + job_wallclock = '05:00', + max_jobs = 4, + extra_queue_params = list('#BSUB -q bsc_es'), + bidirectional = FALSE, + polling_period = 10 + ), + ecflow_suite_dir = '/on_local_machine/username/ecflow_dir/', + wait = FALSE) + saveRDS(res, file = 'test_collect.Rds') + collect_info <- readRDS('test_collect.Rds') + result <- Collect(collect_info, wait = TRUE) + } + +} + diff --git a/man/Compute.Rd b/man/Compute.Rd new file mode 100644 index 0000000..eb0efa6 --- /dev/null +++ b/man/Compute.Rd @@ -0,0 +1,107 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Compute.R +\name{Compute} +\alias{Compute} +\title{Specify the execution parameters and trigger the execution} +\usage{ +Compute(workflow, chunks = "auto", threads_load = 1, threads_compute = 1, + cluster = NULL, ecflow_suite_dir = NULL, ecflow_server = NULL, + silent = FALSE, debug = FALSE, wait = TRUE) +} +\arguments{ +\item{workflow}{A list of the class 'startR_workflow' returned by function +AddSteop() or of class 'startR_cube' returned by function Start(). It +contains all the objects needed for the execution.} + +\item{chunks}{A named list of dimensions which to split the data along and +the number of chunks to make for each. The chunked dimension can only be +those not required as the target dimension in function Step(). The default +value is 'auto', which lists all the non-target dimensions and each one has +one chunk.} + +\item{threads_load}{An integer indicating the number of execution threads to +use for the data retrieval stage. The default value is 1.} + +\item{threads_compute}{An integer indicating the number of execution threads +to use for the computation. The default value is 1.} + +\item{cluster}{A list of components that define the configuration of the +machine to be run on. The comoponents vary from the different machines. +Check \href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab} for more +details and examples. Only needed when the computation is not run locally. +The default value is NULL.} + +\item{ecflow_suite_dir}{A character string indicating the path to a folder in +the local workstation where to store temporary files generated for the +automatic management of the workflow. Only needed when the execution is run +remotely. The default value is NULL.} + +\item{ecflow_server}{A named vector indicating the host and port of the +EC-Flow server. The vector form should be +\code{c(host = 'hostname', port = port_number)}. Only needed when the +execution is run#' remotely. The default value is NULL.} + +\item{silent}{A logical value deciding whether to print the computation +progress (FALSE) on the R session or not (TRUE). It only works when the +execution runs locally or the parameter 'wait' is TRUE. The default value +is FALSE.} + +\item{debug}{A logical value deciding whether to return detailed messages on +the progress and operations in a Compute() call (TRUE) or not (FALSE). +Automatically changed to FALSE if parameter 'silent' is TRUE. The default +value is FALSE.} + +\item{wait}{A logical value deciding whether the R session waits for the +Compute() call to finish (TRUE) or not (FALSE). If FALSE, it will return an +object with all the information of the startR execution that can be stored +in your disk. After that, the R session can be closed and the results can +be collected later with the Collect() function. The default value is TRUE.} +} +\value{ +A list of data arrays for the output returned by the last step in the + specified workflow (wait = TRUE), or an object with information about the + startR execution (wait = FALSE). The configuration details and profiling + information are attached as attributes to the returned list of arrays. +} +\description{ +The step of the startR workflow after the complete workflow is defined by +AddStep(). This function specifies the execution parameters and triggers the +execution. The execution can be operated locally or on a remote machine. If +it is the latter case, the configuration of the machine needs to be +sepecified in the function, and the EC-Flow server is required to be +installed.\cr +The execution can be operated by chunks to avoid overloading the RAM memory. +After all the chunks are finished, Compute() will gather and merge them, and +return a single data object, including one or multiple multidimensional data +arrays and additional metadata. +} +\examples{ + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = 'all', + longitude = 'all', + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) + fun <- function(x) { + lat = attributes(x)$Variables$dat1$latitude + weight = sqrt(cos(lat * pi / 180)) + corrected = Apply(list(x), target_dims = "latitude", + fun = function(x) {x * weight}) + } + step <- Step(fun = fun, + target_dims = 'latitude', + output_dims = 'latitude', + use_libraries = c('multiApply'), + use_attributes = list(data = "Variables")) + wf <- AddStep(data, step) + res <- Compute(wf, chunks = list(longitude = 4, sdate = 2)) + +} + diff --git a/man/Step.Rd b/man/Step.Rd index 139e368..1d9d039 100644 --- a/man/Step.Rd +++ b/man/Step.Rd @@ -62,8 +62,6 @@ to the expected order for this function./cr corrected = Apply(list(x), target_dims = "latitude", fun = function(x) {x * weight}) } - - step <- Step(fun = fun, target_dims = 'latitude', output_dims = 'latitude', -- GitLab From 5520f14148ca2a4cc4143e1c237a50f5c4097a83 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 12:11:05 +0200 Subject: [PATCH 19/60] Move s2dverification and easyNCDF from 'suggestion' to 'import' --- DESCRIPTION | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index d135d90..3278b6a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -25,10 +25,11 @@ Imports: bigmemory, future, multiApply (>= 2.1.1), - parallel -Suggests: + parallel, easyNCDF, s2dverification +Suggests: + testthat License: LGPL-3 URL: https://earth.bsc.es/gitlab/es/startR/ BugReports: https://earth.bsc.es/gitlab/es/startR/issues -- GitLab From ce3beca5ed289a60c43ac918d77f7f958071a84e Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 12:11:28 +0200 Subject: [PATCH 20/60] Generate .Rd by devtools::document() --- R/NcDataReader.R | 2 +- man/CDORemapper.Rd | 79 ++-- man/NcCloser.Rd | 41 +- man/NcDataReader.Rd | 85 ++-- man/NcDimReader.Rd | 82 ++-- man/NcOpener.Rd | 43 +- man/NcVarReader.Rd | 81 ++-- man/SelectorChecker.Rd | 68 +-- man/Start.Rd | 975 ++++++++++++++++++++++++++++------------- man/Subset.Rd | 87 ++-- 10 files changed, 994 insertions(+), 549 deletions(-) diff --git a/R/NcDataReader.R b/R/NcDataReader.R index 47e3579..139a9d5 100644 --- a/R/NcDataReader.R +++ b/R/NcDataReader.R @@ -29,7 +29,7 @@ #' parameter 'file_data_reader' of the function Start(). #' #'@return A multidimensional data array with the named dimensions and indices -#' requested in inner_indices, potentially with the attribute ’variables’ with +#' requested in inner_indices, potentially with the attribute 'variables' with #' additional auxiliary data. See details in the documentation of the parameter #' 'file_data_reader' of the function Start(). #'@examples diff --git a/man/CDORemapper.Rd b/man/CDORemapper.Rd index 5ec1329..de394e3 100644 --- a/man/CDORemapper.Rd +++ b/man/CDORemapper.Rd @@ -1,41 +1,58 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/CDORemapper.R \name{CDORemapper} \alias{CDORemapper} \title{CDO Remap Data Transformation for 'startR'} -\description{ -This is a transform function that uses CDO software to remap longitude-latitude data subsets onto a specified target grid, intended for use as parameter \code{transform} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \code{transform} of that function. -\cr\cr -This function uses the function \code{CDORemap()} in the package 's2dverification' to perform the interpolations and hence requires having CDO installed in the machine. -} \usage{ -CDORemapper(data_array, variables, file_selectors, ...) +CDORemapper(data_array, variables, file_selectors = NULL, ...) } \arguments{ - \item{data_array}{ -Input data array to be transformed. See details in the documentation of the parameter \code{transform} of the function \code{Start()}. - } - \item{variables}{ -Auxiliary variables required for the transformation, automatically provided by \code{Start()}. See details in the documentation of the parameter \code{transform} of the function \code{Start()}. - } - \item{file_selectors}{ -Information on the path of the file the input data array comes from. See details in the documentation of the parameter \code{transform} of the function \code{Start()}. - } - \item{\dots}{ -Additional parameters to adjust the transform process, as provided in the parameter \code{transform_params} in a call to the function \code{Start()}. See details in the documentation of the parameter \code{transform} of the function \code{Start()}. - } -} -\value{ -An array with the same amount of dimensions as the input data array, potentially with different sizes, and potentially with the attribute 'variables' with additional auxiliary data. See details in the documentation of the parameter \code{transform} of the function \code{Start()}. +\item{data_array}{A data array to be transformed. See details in the +documentation of the parameter 'transform' of the function Start().} + +\item{variables}{A list of auxiliary variables required for the transformation, +automatically provided by Start(). See details in the documentation of the +parameter 'transform' of the function Start().} + +\item{file_selectors}{A charcter vector indicating the information of the path of +the file parameter 'data_array' comes from. See details in the documentation of +the parameter 'transform' of the function Start(). The default value is NULL.} + +\item{{\dots}}{A list of additional parameters to adjust the transform process, +as provided in the parameter 'transform_params' in a Start() call. See details +in the documentation of the parameter 'transform' of the function Start().} } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code -} -\seealso{ -\code{\link[s2dverification]{CDORemap}} +\description{ +This is a transform function that uses CDO software to remap longitude-latitude +data subsets onto a specified target grid, intended for use as parameter +'transform' in a Start() call. This function complies with the input/output +interface required by Start() defined in the documentation for the parameter +'transform' of function Start().\cr +This function uses the function CDORemap() in the package 's2dverification' to +perform the interpolation, hence CDO is required to be installed. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use CDORemapper(). +# Used in Start(): + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = values(list(-60, 60)), + latitude_reorder = Sort(decreasing = TRUE), + longitude = values(list(-120, 120)), + longitude_reorder = CircularSort(-180, 180), + transform = CDORemapper, + transform_params = list(grid = 'r360x181', + method = 'conservative', + crop = c(-120, 120, -60, 60)), + transform_vars = c('latitude', 'longitude'), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) + } -\keyword{array} -\keyword{manip} + diff --git a/man/NcCloser.Rd b/man/NcCloser.Rd index f8ca599..dbd8bca 100644 --- a/man/NcCloser.Rd +++ b/man/NcCloser.Rd @@ -1,33 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/NcCloser.R \name{NcCloser} \alias{NcCloser} -\title{NetCDF File Closer for 'startR'} -\description{ -This is a file closer function for NetCDF files, intended for use as parameter \code{file_closer} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \code{file_closer} of that function. -\cr\cr -This function uses the function \code{NcClose()} in the package 'easyNCDF', which in turn uses \code{nc_close()} in the package 'ncdf4'. -} +\title{NetCDF file closer for 'startR'} \usage{ NcCloser(file_object) } \arguments{ - \item{file_object}{ -Open connection to a NetCDF file, optionally with additional header information. See details in the documentation of the parameter \code{file_closer} of the function \code{Start()}. - } +\item{file_object}{An open connection to a NetCDF file, optionally with +additional header information. See details in the documentation of the +parameter 'file_closer' of the function Start().} } \value{ -This function returns \code{NULL}. +This function returns NULL. } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code -} -\seealso{ -\code{\link{NcOpener}}, \code{\link{NcDimReader}}, \code{\link{NcDataReader}}, \code{\link{NcVarReader}} +\description{ +This is a file closer function for NetCDF files, intended for use as +parameter file_closer in a Start() call. This function complies with the +input/output interface required by Start() defined in the documentation for +the parameter 'file_closer'.\cr +This function uses the function NcClose() in the package 'easyNCDF', which in +turn uses nc_close() in the package 'ncdf4'. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use NcCloser(). +data_path <- system.file('sample_data', package = 'startR') +path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') +connection <- NcOpener(path_obs) +NcCloser(connection) + } -\keyword{IO} -\keyword{array} -\keyword{manip} + diff --git a/man/NcDataReader.Rd b/man/NcDataReader.Rd index 8bd68af..493469a 100644 --- a/man/NcDataReader.Rd +++ b/man/NcDataReader.Rd @@ -1,46 +1,61 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/NcDataReader.R \name{NcDataReader} \alias{NcDataReader} -\title{NetCDF File Data Reader for 'startR'} -\description{ -This is a data reader function for NetCDF files, intended for use as parameter \code{file_data_reader} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \code{file_data_reader} of that function. -\cr\cr -This function uses the function \code{NcToArray()} in the package 'easyNCDF', which in turn uses \code{nc_var_get()} in the package 'ncdf4'. -} +\title{NetCDF file data reader for 'startR'} \usage{ -NcDataReader(file_path = NULL, file_object = NULL, file_selectors = NULL, - inner_indices = NULL, synonims) +NcDataReader(file_path = NULL, file_object = NULL, file_selectors = NULL, + inner_indices = NULL, synonims) } \arguments{ - \item{file_path}{ -Character string with the path to the data file to read. See details in the documentation of the parameter \code{file_data_reader} of the function \code{Start()}. - } - \item{file_object}{ -Open connection to a NetCDF file, optionally with additional header information. See details in the documentation of the parameter \code{file_data_reader} of the function \code{Start()}. - } - \item{file_selectors}{ -Information on the path of the file to read data from. See details in the documentation of the parameter \code{file_data_reader} of the function \code{Start()}. - } - \item{inner_indices}{ -Named list with the numeric indices to take from each of the inner dimensions in the requested file. See details in the documentation of the parameter \code{file_data_reader} of the function \code{Start()}. - } - \item{synonims}{ -Named list with synonims for the dimension names to look for in the requested file, exactly as provided in the parameter \code{synonims} in a call to the function \code{Start()}. See details in the documentation of the parameter \code{file_data_reader} of the function \code{Start()}. - } +\item{file_path}{A character string indicating the path to the data file to +read. See details in the documentation of the parameter 'file_data_reader' +of the function Start(). The default value is NULL.} + +\item{file_object}{An open connection to a NetCDF file, optionally with +additional header information. See details in the documentation of the +parameter 'file_data_reader' of the function Start(). The default value is +NULL.} + +\item{file_selectors}{A named list containing the information of the path of +the file to read data from. It is automatically provided by Start(). See +details in the documentation of the parameter 'file_data_reader' of the +function Start(). The default value is NULL.} + +\item{inner_indices}{A named list of numeric vectors indicating the indices +to take from each of the inner dimensions in the requested file. It is +automatically provided by Start(). See details in the documentation of the +parameter 'file_data_reader' of the function Start(). The default value is +NULL.} + +\item{synonims}{A named list indicating the synonims for the dimension names +to look for in the requested file, exactly as provided in the parameter +'synonims' in a Start() call. See details in the documentation of the +parameter 'file_data_reader' of the function Start().} } \value{ -A multidimensional data array with the named dimensions and indices requested in \code{inner_indices}, potentially with the attribute 'variables' with additional auxiliary data. See details in the documentation of the parameter \code{file_data_reader} of the function \code{Start()}. +A multidimensional data array with the named dimensions and indices + requested in inner_indices, potentially with the attribute 'variables' with + additional auxiliary data. See details in the documentation of the parameter + 'file_data_reader' of the function Start(). } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code -} -\seealso{ -\code{\link{NcOpener}}, \code{\link{NcCloser}}, \code{\link{NcDimReader}}, \code{\link{NcVarReader}} +\description{ +This is a data reader function for NetCDF files, intended for use as parameter +file_data_reader in a Start() call. This function complies with the +input/output interface required by Start() defined in the documentation for +the parameter 'file_data_reader'.\cr +This function uses the function NcToArray() in the package 'easyNCDF', which +in turn uses nc_var_get() in the package 'ncdf4'. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use NcDataReader(). + data_path <- system.file('sample_data', package = 'startR') + file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') + file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') + first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) + synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', + latitude = 'latitude', longitude = 'longitude') + sub_array <- NcDataReader(file_to_open, NULL, file_selectors, + first_round_indices, synonims) + } -\keyword{IO} -\keyword{array} -\keyword{manip} + diff --git a/man/NcDimReader.Rd b/man/NcDimReader.Rd index 9a0a104..84d3394 100644 --- a/man/NcDimReader.Rd +++ b/man/NcDimReader.Rd @@ -1,46 +1,58 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/NcDimReader.R \name{NcDimReader} \alias{NcDimReader} -\title{NetCDF Dimension Reader for 'startR'} -\description{ -This is a dimension reader function for NetCDF files, intended for use as parameter \code{file_dim_reader} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \code{file_dim_reader} of that function. -\cr\cr -This function uses the function \code{NcReadDims()} in the package 'easyNCDF'. -} +\title{NetCDF dimension reader for 'startR'} \usage{ -NcDimReader(file_path = NULL, file_object = NULL, file_selectors = NULL, - inner_indices = NULL, synonims) +NcDimReader(file_path = NULL, file_object = NULL, file_selectors = NULL, + inner_indices = NULL, synonims) } \arguments{ - \item{file_path}{ -Character string with the path to the data file to read the dimensions for. See details in the documentation of the parameter \code{file_dim_reader} of the function \code{Start()}. - } - \item{file_object}{ -Open connection to a NetCDF file, optionally with additional header information. See details in the documentation of the parameter \code{file_dim_reader} of the function \code{Start()}. - } - \item{file_selectors}{ -Information on the path of the file to read data from. See details in the documentation of the parameter \code{file_dim_reader} of the function \code{Start()}. - } - \item{inner_indices}{ -Named list with the numeric indices to take from each of the inner dimensions in the requested file. Used only in advanced configurations. See details in the documentation of the parameter \code{file_dim_reader} of the function \code{Start()}. - } - \item{synonims}{ -Named list with synonims for the dimension names to look for in the requested file, exactly as provided in the parameter \code{synonims} in a call to the function \code{Start()}. See details in the documentation of the parameter \code{file_dim_reader} of the function \code{Start()}. - } +\item{file_path}{A character string indicating the path to the data file to +read. See details in the documentation of the parameter 'file_dim_reader' +of the function Start(). The default value is NULL.} + +\item{file_object}{An open connection to a NetCDF file, optionally with +additional header information. See details in the documentation of the +parameter 'file_dim_reader' of the function Start(). The default value is +NULL.} + +\item{file_selectors}{A named list containing the information of the path of +the file to read data from. It is automatically provided by Start(). See +details in the documentation of the parameter 'file_dim_reader' of the +function Start(). The default value is NULL.} + +\item{inner_indices}{A named list of numeric vectors indicating the indices +to take from each of the inner dimensions in the requested file. It is +automatically provided by Start(). See details in the documentation of the +parameter 'file_dim_reader' of the function Start(). The default value is +NULL.} + +\item{synonims}{A named list indicating the synonims for the dimension names +to look for in the requested file, exactly as provided in the parameter +'synonims' in a Start() call. See details in the documentation of the +parameter 'file_dim_reader' of the function Start().} } \value{ -Named numeric vector with the names and sizes of the dimensions of the requested file. +A named numeric vector with the names and sizes of the dimensions of + the requested file. } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code -} -\seealso{ -\code{\link{NcOpener}}, \code{\link{NcCloser}}, \code{\link{NcDataReader}}, \code{\link{NcVarReader}} +\description{ +A dimension reader function for NetCDF files, intended for use as parameter +'file_dim_reader' in a Start() call. It complies with the input/output +interface required by Start() defined in the documentation for the parameter +'file_dim_reader' of that function./cr +This function uses the function NcReadDims() in the package 'easyNCDF'. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use NcDimReader(). + data_path <- system.file('sample_data', package = 'startR') + file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') + file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') + first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) + synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', + latitude = 'latitude', longitude = 'longitude') + dim_of_file <- NcDimReader(file_to_open, NULL, file_selectors, + first_round_indices, synonims) + } -\keyword{IO} -\keyword{array} -\keyword{manip} + diff --git a/man/NcOpener.Rd b/man/NcOpener.Rd index 3c0f875..3ab6764 100644 --- a/man/NcOpener.Rd +++ b/man/NcOpener.Rd @@ -1,33 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/NcOpener.R \name{NcOpener} \alias{NcOpener} -\title{NetCDF File Opener for 'startR'} -\description{ -This is a file closer function for NetCDF files, intended for use as parameter \code{file_opener} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \code{file_opener} of that function. -\cr\cr -This function uses the function \code{NcOpen()} in the package 'easyNCDF', which in turn uses \code{nc_open()} in the package 'ncdf4'. -} +\title{NetCDF file opener for 'startR'} \usage{ NcOpener(file_path) } \arguments{ - \item{file_path}{ -Character string with the path to the data file to read. See details in the documentation of the parameter \code{file_opener} of the function \code{Start()}. - } +\item{file_path}{A character string indicating the path to the data file to +read. See details in the documentation of the parameter 'file_opener' of the +function Start().} } \value{ -An open connection to a NetCDF file, with additional header information, as returned by \code{nc_open} in the package 'ncdf4'. See details in the documentation of the parameter \code{file_opener} of the function \code{Start()}. +An open connection to a NetCDF file with additional header + information as returned by nc_open() in the package 'ncdf4'. See details in + the documentation of the parameter 'file_opener' of the function Start(). } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code -} -\seealso{ -\code{\link{NcCloser}}, \code{\link{NcDataReader}}, \code{\link{NcDimReader}}, \code{\link{NcVarReader}} +\description{ +This is a file opener function for NetCDF files, intended for use as parameter +file_opener in a Start() call. This function complies with the input/output +interface required by Start() defined in the documentation for the parameter +'file_opener'.\cr +This function uses the function NcOpen() in the package 'easyNCDF', which in +turn uses nc_open() in the package 'ncdf4'. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use NcOpener(). +data_path <- system.file('sample_data', package = 'startR') +path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') +connection <- NcOpener(path_obs) +NcCloser(connection) + } -\keyword{IO} -\keyword{array} -\keyword{manip} + diff --git a/man/NcVarReader.Rd b/man/NcVarReader.Rd index c8efec3..9ed22a4 100644 --- a/man/NcVarReader.Rd +++ b/man/NcVarReader.Rd @@ -1,46 +1,57 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/NcVarReader.R \name{NcVarReader} \alias{NcVarReader} -\title{NetCDF Variable Reader for 'startR'} -\description{ -This is an auxiliary variable reader function for NetCDF files, intended for use as parameter \code{file_var_reader} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \code{file_var_reader} of that function. -\cr\cr -This function uses the function \code{NcDataReader()} in the package 'startR', which in turn uses \code{NcToArray()} in the package 'easyNCDF', which in turn uses \code{nc_var_get()} in the package 'ncdf4'. -} +\title{NetCDF variable reader for 'startR'} \usage{ -NcVarReader(file_path = NULL, file_object = NULL, file_selectors = NULL, - var_name = NULL, synonims) +NcVarReader(file_path = NULL, file_object = NULL, file_selectors = NULL, + var_name = NULL, synonims) } \arguments{ - \item{file_path}{ -Character string with the path to the data file to read the variable from. See details in the documentation of the parameter \code{file_var_reader} of the function \code{Start()}. - } - \item{file_object}{ -Open connection to a NetCDF file, optionally with additional header information. See details in the documentation of the parameter \code{file_var_reader} of the function \code{Start()}. - } - \item{file_selectors}{ -Information on the path of the file to read data from. See details in the documentation of the parameter \code{file_var_reader} of the function \code{Start()}. - } - \item{var_name}{ -Character string with the name of the variable to be read. - } - \item{synonims}{ -Named list with synonims for the variable names to look for in the requested file, exactly as provided in the parameter \code{synonims} in a call to the function \code{Start()}. See details in the documentation of the parameter \code{file_var_reader} of the function \code{Start()}. - } +\item{file_path}{A character string indicating the path to the data file to +read the variable from. See details in the documentation of the parameter +'file_var_reader' of the function Start(). The default value is NULL.} + +\item{file_object}{An open connection to a NetCDF file, optionally with +additional header information. See details in the documentation of the +parameter 'file_var_reader' of the function Start(). The default value is +NULL.} + +\item{file_selectors}{A named list containing the information of the path of +the file to read data from. It is automatically provided by Start(). See +details in the documentation of the parameter 'file_var_reader' of the +function Start(). The default value is NULL.} + +\item{var_name}{A character string with the name of the variable to be read. +The default value is NULL.} + +\item{synonims}{A named list indicating the synonims for the dimension names +to look for in the requested file, exactly as provided in the parameter +'synonims' in a Start() call. See details in the documentation of the +parameter 'file_var_reader' of the function Start().} } \value{ -A multidimensional data array with the named dimensions, potentially with the attribute 'variables' with additional auxiliary data. See details in the documentation of the parameter \code{file_var_reader} of the function \code{Start()}. +A multidimensional data array with the named dimensions, potentially + with the attribute 'variables' with additional auxiliary data. See details + in the documentation of the parameter 'file_var_reader' of the function + Start(). } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code -} -\seealso{ -\code{\link{NcOpener}}, \code{\link{NcCloser}}, \code{\link{NcDataReader}}, \code{\link{NcDimReader}} +\description{ +This is an auxiliary variable reader function for NetCDF files, intended for +use as parameter 'file_var_reader' in a Start() call. It complies with the +input/output interface required by Start() defined in the documentation for +the parameter 'file_var_reader' of that function.\cr +This function uses the function NcDataReader() in the package 'startR', +which in turn uses NcToArray() in the package 'easyNCDF', which in turn uses +nc_var_get() in the package 'ncdf4'. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use NcVarReader(). + data_path <- system.file('sample_data', package = 'startR') + file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') + file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') + synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', + latitude = 'latitude', longitude = 'longitude') + var <- NcDataReader(file_to_open, NULL, file_selectors, + 'tos', synonims) } -\keyword{IO} -\keyword{array} -\keyword{manip} + diff --git a/man/SelectorChecker.Rd b/man/SelectorChecker.Rd index 2700782..6bbe17a 100644 --- a/man/SelectorChecker.Rd +++ b/man/SelectorChecker.Rd @@ -1,37 +1,53 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/SelectorChecker.R \name{SelectorChecker} \alias{SelectorChecker} -\title{Default Selector Checker for 'startR'} -\description{ -This is a selector checker function intended for use as parameter \code{selector_checker} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \code{selector_checker} of that function. -} +\title{Translate a set of selectors into a set of numeric indices} \usage{ -SelectorChecker(selectors, var = NULL, return_indices = TRUE, tolerance = NULL) +SelectorChecker(selectors, var = NULL, return_indices = TRUE, + tolerance = NULL) } \arguments{ - \item{selectors}{ -Numeric indices or variable values to be retrieved for a dimension, automatically provided by \code{Start()}. See details in the documentation of the parameters \code{selector_checker} and \dots of the function \code{Start()}. The indices or values can be provided in the form of a vector or in the form of a list with two elements. - } - \item{var}{ -Vector of values of a coordinate variable where to search matches with the provided indices or values in the parameter \code{selectors}, automatically provided by \code{Start()}. See details in the documentation of the parameters \code{selector_checker} and \dots of the function \code{Start()}. The parameter \code{var} is optional. When not specified, \code{SelectorChecker} simply returns the input indices. - } - \item{return_indices}{ -Boolean flag, automatically configured by \code{Start()}, telling whether to return numeric indices or coordinate variable values after doing the matching. - } - \item{tolerance}{ -Numeric value with a tolerance value to be used in the matching of the \code{selectors} and \code{var}. See documentation on \code{_tolerance} in \dots, in the documentation of the function \code{Start()}. - } +\item{selectors}{A vector or a list of two of numeric indices or variable +values to be retrieved for a dimension, automatically provided by Start(). +See details in the documentation of the parameters 'selector_checker' and +{\dots} of the function Start().} + +\item{var}{A vector of values of a coordinate variable for which to search +matches with the provided indices or values in the parameter 'selectors', +automatically provided by Start(). See details in the documentation of the +parameters 'selector_checker' and {\dots} of the function Start(). The +default value is NULL. When not specified, SelectorChecker() simply returns +the input indices.} + +\item{return_indices}{A logical value automatically configured by Start(), +telling whether to return the numeric indices or coordinate variable values +after the matching. The default value is TRUE.} + +\item{tolerance}{A numeric value indicating a tolerance value to be used in +the matching of 'selectors' and 'var'. See documentation on +_tolerance in {\dots} in the documentation of the function Start(). +The default value is NULL.} } \value{ -A vector of either the indices of the matching values (if \code{return_indices = TRUE}) or the matching values themselves (if \code{return_indices = FALSE}). +A vector of either the indices of the matching values (if + return_indices = TRUE) or the matching values themselves (if return_indices + = FALSE). } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code +\description{ +This is a selector checker function intended for use as parameter +'selector_checker' in a Start() call. It translates a set of selectors which is +the value for one dimension into a set of numeric indices corresponding to the +coordinate variable. The function complies with the input/output interface +required by Start() defined in the documentation for the parameter +'selector_checker' of Start(). } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use SelectorChecker(). +# Get the latitudes from 10 to 20 degree +sub_array_of_selectors <- list(10, 20) +# The latitude values from original file +sub_array_of_values <- seq(90, -90, length.out = 258)[2:257] +SelectorChecker(sub_array_of_selectors, sub_array_of_values) + } -\keyword{IO} -\keyword{array} -\keyword{manip} + diff --git a/man/Start.Rd b/man/Start.Rd index 52317d3..fd8c3db 100644 --- a/man/Start.Rd +++ b/man/Start.Rd @@ -1,68 +1,381 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Start.R \name{Start} \alias{Start} -\title{Declare, Discover, Subset and Retrieve Multidimensional Distributed Data Sets} -\description{ -See the \href{https://earth.bsc.es/gitlab/es/startR}{\code{startR} documentation and tutorial} for a step-by-step explanation on how to use \code{Start()}. -\cr\cr -Nowadays in the era of Big Data, large multidimensional data sets from diverse sources need to be combined and processed. Analysis of Big Data in any field is often highly complex and time-consuming. Taking subsets of these datasets (Divide) and processing them efficiently (and Conquer) becomes an indispensable practice. This technique is also known as Domain Decomposition, Map Reduce or, more commonly, 'chunking'. -\cr\cr -\code{startR} (Subset, TrAnsform, ReTrieve, arrange and process large multidimensional data sets in R) is an R project started at BSC with the aim to develop a tool that allows the user to automatically process large multidimensional distributed data sets. It is an open source project that is open to external collaboration and funding, and will continuously evolve to support as many data set formats as possible while maximizing its efficiency. -\cr\cr -\code{startR} provides a framework under which a data set (collection of one or multiple data files, potentially distributed over various remote servers) are perceived as if they all were part of a single large multidimensional array. Once such multidimensional array is declared, any user-defined function can be applied to the data in a \code{apply}-like fashion, where \code{startR} transparently implements the Map Reduce paradigm. The steps to follow in order to process a collection of Big Data sets are as follows: -\cr\cr +\title{Declare, discover, subset and retrieve multidimensional distributed data sets} +\usage{ +Start(..., return_vars = NULL, synonims = NULL, file_opener = NcOpener, + file_var_reader = NcVarReader, file_dim_reader = NcDimReader, + file_data_reader = NcDataReader, file_closer = NcCloser, + transform = NULL, transform_params = NULL, transform_vars = NULL, + transform_extra_cells = 2, apply_indices_after_transform = FALSE, + pattern_dims = NULL, metadata_dims = NULL, + selector_checker = SelectorChecker, merge_across_dims = FALSE, + merge_across_dims_narm = FALSE, split_multiselected_dims = FALSE, + path_glob_permissive = FALSE, retrieve = FALSE, num_procs = 1, + silent = FALSE, debug = FALSE) +} +\arguments{ +\item{return_vars}{A named list where the names are the names of the +variables to be fetched in the files, and the values are vectors of +character strings with the names of the file dimension which to retrieve each +variable for, or \code{NULL} if the variable has to be retrieved only once +from any (the first) of the involved files.\cr\cr +Apart from retrieving a multidimensional data array, retrieving auxiliary +variables inside the files can also be needed. The parameter +\code{return_vars} allows for requesting such variables, as long as a +\code{file_var_reader} function is also specified in the call to +\code{Start()} (see documentation on the corresponding parameter). +\cr\cr +In the case of the the item sales example (see documentation on parameter +\code{\dots)}, the store location variable is requested with the parameter +\code{return_vars = list(store_location = NULL)}. This will cause +\code{Start()} to fetch once the variable 'store_location' and return it in +the component \code{$Variables$common$store_location}, and will be an array +of character strings with the location names, with the dimensions +\code{c('store' = 100)}. Although useless in this example, we could ask +\code{Start()} to fetch and return such variable for each file along the +items dimension as follows: \cr +\code{return_vars = list(store_location = c('item'))}. In that case, the +variable will be fetched once from a file of each of the items, and will be +returned as an array with the dimensions \code{c('item' = 3, 'store' = 100)}. +\cr\cr +If a variable is requested along a file dimension that contains path pattern +specifications ('source' in the example), the fetched variable values will be +returned in the component \code{$Variables$$}. +For example: \cr -\itemize{ - \item{ -Declaring the data set, i.e. declaring the distribution of the data files involved, the dimensions and shape of the multidimensional array, and the boundaries of the tatget data. Numeric indices or coordinate values can be used when fixing the boundaries. Once a data set is declared, a list of involved files, dimension lengths, memory size and other metadata is made available. Optionally, the data set can be retrieved and loaded onto the current R session if it is small enough. This step can be performed with the \code{Start()} function. - } - \item{ -Declaring the workflow of operations to perform on the involved data set(s). This step can be performed with the \code{Step()} and \code{AddStep()} functions. - } - \item{ -Defining the computation settings. The mandatory settings include a) how many subsets to divide the data sets into and along which dimensions; b) which platform to perform the workflow of operations on (local machine, remote machine, remote HPC?), how to communicate with it (unidirectional or bidirectional connection? shared or separate file systems?), which queuing system it uses (slurm, PBS, LSF, none?); and c) how many parallel jobs and execution threads per job to use when running the calculations. This step can be performed when building up the call to the \code{Compute()} function. - } - \item{ -Running the computation. startR transparently implements the Map Reduce paradigm, according to the settings in the previous steps. The progress can optionally be monitored with the EC-Flow workflow management tool. When the computation ends, a report of performance timings is displayed. This step can be triggered with the \code{Compute()} function. - } +\command{ +\cr # data <- Start(source = list( +\cr # list(name = 'sourceA', +\cr # path = paste0('/sourceA/$variable$/', +\cr # '$section$/$item$.data')), +\cr # list(name = 'sourceB', +\cr # path = paste0('/sourceB/$section$/', +\cr # '$variable$/$item$.data')) +\cr # ), +\cr # variable = 'sales', +\cr # section = 'first', +\cr # item = indices(c(1, 3)), +\cr # item_depends = 'section', +\cr # store = 'Barcelona', +\cr # store_var = 'store_location', +\cr # month = 'all', +\cr # return_vars = list(store_location = c('source', +\cr # 'item'))) +\cr # # Checking the structure of the returned variables +\cr # str(found_data$Variables) +\cr # Named list +\cr # ..$common: NULL +\cr # ..$sourceA: Named list +\cr # .. ..$store_location: char[1:18(3d)] 'Barcelona' 'Barcelona' ... +\cr # ..$sourceB: Named list +\cr # .. ..$store_location: char[1:18(3d)] 'Barcelona' 'Barcelona' ... +\cr # # Checking the dimensions of the returned variable +\cr # # for the source A +\cr # dim(found_data$Variables$sourceA) +\cr # item store +\cr # 3 3 } -\code{startR} is not bound to a specific file format. Interface functions to custom file formats can be provided for \code{Start()} to read them. As of April 2017 \code{startR} includes interface functions to the following file formats: \cr\cr +The names of the requested variables do not necessarily have to match the +actual variable names inside the files. A list of alternative names to be +seeked can be specified via the parameter \code{synonims}.} + +\item{synonims}{A named list where the names are the requested variable or +dimension names, and the values are vectors of character strings with +alternative names to seek for such dimension or variable.\cr\cr +In some requests, data from different sources may follow different naming +conventions for the dimensions or variables, or even files in the same source +could have varying names. This parameter is in order for \code{Start()} to +properly identify the dimensions or variables with different names. +\cr\cr +In the example used in parameter \code{return_vars}, it may be the case that +the two involved data sources follow slightly different naming conventions. +For example, source A uses 'sect' as name for the sections dimension, whereas +source B uses 'section'; source A uses 'store_loc' as variable name for the +store locations, whereas source B uses 'store_location'. This can be taken +into account as follows: \cr -\itemize{ - \item{ -NetCDF - } -} -} -\usage{ -Start(..., - return_vars = NULL, - synonims = NULL, - file_opener = NcOpener, - file_var_reader = NcVarReader, - file_dim_reader = NcDimReader, - file_data_reader = NcDataReader, - file_closer = NcCloser, - transform = NULL, - transform_params = NULL, - transform_vars = NULL, - transform_extra_cells = 0, - apply_indices_after_transform = FALSE, - pattern_dims = NULL, - metadata_dims = NULL, - selector_checker = SelectorChecker, - merge_across_dims = FALSE, - split_multiselected_dims = FALSE, - path_glob_permissive = FALSE, - retrieve = FALSE, - num_procs = 1, - silent = FALSE, - debug = FALSE) +\command{ +\cr # data <- Start(source = list( +\cr # list(name = 'sourceA', +\cr # path = paste0('/sourceA/$variable$/', +\cr # '$section$/$item$.data')), +\cr # list(name = 'sourceB', +\cr # path = paste0('/sourceB/$section$/', +\cr # '$variable$/$item$.data')) +\cr # ), +\cr # variable = 'sales', +\cr # section = 'first', +\cr # item = indices(c(1, 3)), +\cr # item_depends = 'section', +\cr # store = 'Barcelona', +\cr # store_var = 'store_location', +\cr # month = 'all', +\cr # return_vars = list(store_location = c('source', +\cr # 'item')), +\cr # synonims = list( +\cr # section = c('sec', 'section'), +\cr # store_location = c('store_loc', +\cr # 'store_location') +\cr # )) } -\arguments{ - \item{\dots}{ -When willing to retrieve data from one or a collection of data sets, the involved data can be perceived as belonging to a large multi-dimensional array. For instance, let us consider an example case. We want to retrieve data from a source, which contains data for the number of monthly sales of various items, and also for their retail price each month. The data on source is stored as follows: -\cr +\cr} + +\item{file_opener}{A function that receives as a single parameter + (\code{file_path}) a character string with the path to a file to be opened, + and returns an object with an open connection to the file (optionally with + header information) on success, or returns \code{NULL} on failure. +\cr\cr +This parameter takes by default \code{NcOpener} (an opener function for NetCDF +files). +\cr\cr +See \code{NcOpener} for a template to build a file opener for your own file +format.} + +\item{file_var_reader}{A function with the header \code{file_path = NULL}, + \code{file_object = NULL}, \code{file_selectors = NULL}, \code{var_name}, + \code{synonims} that returns an array with auxiliary data (i.e. data from a + variable) inside a file. \code{Start()} will provide automatically either a + \code{file_path} or a \code{file_object} to the \code{file_var_reader} + function (the function has to be ready to work whichever of these two is + provided). The parameter \code{file_selectors} will also be provided + automatically to the variable reader, containing a named list where the + names are the names of the file dimensions of the queried data set (see + documentation on \dots) and the values are single character strings with the + components used to build the path to the file being read (the one provided + in \code{file_path} or \code{file_object}). The parameter \code{var_name} + will be filled in automatically by \code{Start()} also, with the name of one + of the variales to be read. The parameter \code{synonims} will be filled in + with exactly the same value as provided in the parameter \code{synonims} in + the call to \code{Start()}, and has to be used in the code of the variable + reader to check for alternative variable names inside the target file. The + \code{file_var_reader} must return a (multi)dimensional array with named + dimensions, and optionally with the attribute 'variales' with other + additional metadata on the retrieved variable. +\cr\cr +Usually, the \code{file_var_reader} should be a degenerate case of the +\code{file_data_reader} (see documentation on the corresponding parameter), +so it is recommended to code the \code{file_data_reder} in first place. +\cr\cr +This parameter takes by default \code{NcVarReader} (a variable reader function +for NetCDF files). +\cr\cr +See \code{NcVarReader} for a template to build a variale reader for your own +file format.} + +\item{file_dim_reader}{A function with the header \code{file_path = NULL}, + \code{file_object = NULL}, \code{file_selectors = NULL}, \code{synonims} + that returns a named numeric vector where the names are the names of the + dimensions of the multidimensional data array in the file and the values are + the sizes of such dimensions. \code{Start()} will provide automatically + either a \code{file_path} or a \code{file_object} to the + \code{file_dim_reader} function (the function has to be ready to work + whichever of these two is provided). The parameter \code{file_selectors} + will also be provided automatically to the dimension reader, containing a + named list where the names are the names of the file dimensions of the + queried data set (see documentation on \dots) and the values are single + character strings with the components used to build the path to the file + being read (the one provided in \code{file_path} or \code{file_object}). + The parameter \code{synonims} will be filled in with exactly the same value + as provided in the parameter \code{synonims} in the call to \code{Start()}, + and can optionally be used in advanced configurations. +\cr\cr +This parameter takes by default \code{NcDimReader} (a dimension reader +function for NetCDF files). +\cr\cr +See \code{NcDimReader} for (an advanced) template to build a dimension reader +for your own file format.} + +\item{file_data_reader}{A function with the header \code{file_path = NULL}, + \code{file_object = NULL}, \code{file_selectors = NULL}, + \code{inner_indices = NULL}, \code{synonims} that returns a subset of the + multidimensional data array inside a file (even if internally it is not an + array). \code{Start()} will provide automatically either a \code{file_path} + or a \code{file_object} to the \code{file_data_reader} function (the + function has to be ready to work whichever of these two is provided). The + parameter \code{file_selectors} will also be provided automatically to the + data reader, containing a named list where the names are the names of the + file dimensions of the queried data set (see documentation on \dots) and the + values are single character strings with the components used to build the + path to the file being read (the one provided in \code{file_path} or + \code{file_object}). The parameter \code{inner_indices} will be filled in + automatically by \code{Start()} also, with a named list of numeric vectors, + where the names are the names of all the expected inner dimensions in a file + to be read, and the numeric vectors are the indices to be taken from the + corresponding dimension (the indices may not be consecutive nor in order). + The parameter \code{synonims} will be filled in with exactly the same value + as provided in the parameter \code{synonims} in the call to \code{Start()}, + and has to be used in the code of the data reader to check for alternative + dimension names inside the target file. The \code{file_data_reader} must + return a (multi)dimensional array with named dimensions, and optionally with + the attribute 'variales' with other additional metadata on the retrieved + data. +\cr\cr +Usually, the \code{file_data_reader} should use the \code{file_dim_reader} +(see documentation on the corresponding parameter), so it is recommended to +code the \code{file_dim_reder} in first place. +\cr\cr +This parameter takes by default \code{NcDataReader} (a data reader function +for NetCDF files). +\cr\cr +See \code{NcDataReader} for a template to build a data reader for your own +file format.} + +\item{file_closer}{A function that receives as a single parameter + (\code{file_object}) an open connection (as returned by \code{file_opener}) + to one of the files to be read, optionally with header information, and + closes the open connection. Always returns \code{NULL}. +\cr\cr +This parameter takes by default \code{NcCloser} (a closer function for NetCDF +files). +\cr\cr +See \code{NcCloser} for a template to build a file closer for your own file +format.} + +\item{transform}{A function with the header \code{dara_array}, +\code{variables}, \code{file_selectors = NULL}, \code{\dots}. It receives as +input, through the parameter \code{data_array}, a subset of a +multidimensional array (as returned by \code{file_data_reader}), applies a +transformation to it and returns it, preserving the amount of dimensions but +potentially modifying their size. This transformation may require data from +other auxiliary variables, automatically provided to \code{transform} +through the parameter \code{variables}, in the form of a named list where +the names are the variable names and the values are (multi)dimensional +arrays. Which variables need to be sent to \code{transform} can be specified +with the parameter \code{transform_vars} in \code{Start()}. The parameter +\code{file_selectors} will also be provided automatically to +\code{transform}, containing a named list where the names are the names of +the file dimensions of the queried data set (see documentation on \dots) and +the values are single character strings with the components used to build +the path to the file the subset being processed belongs to. The parameter +\dots will be filled in with other additional parameters to adjust the +transformation, exactly as provided in the call to \code{Start()} via the +parameter \code{transform_params}.} + +\item{transform_params}{A named list with additional parameters to be sent to +the \code{transform} function (if specified). See documentation on +\code{transform} for details.} + +\item{transform_vars}{A vector of character strings with the names of +auxiliary variables to be sent to the \code{transform} function (if +specified). All the variables to be sent to \code{transform} must also +have been requested as return variables in the parameter \code{return_vars} +of \code{Start()}.} + +\item{transform_extra_cells}{An integer of extra indices to retrieve from the +data set, beyond the requested indices in \dots, in order for +\code{transform} to dispose of additional information to properly apply +whichever transformation (if needed). As many as +\code{transform_extra_cells} will be retrieved beyond each of the limits for +each of those inner dimensions associated to a coordinate variable and sent +to \code{transform} (i.e. present in \code{transform_vars}). After +\code{transform} has finished, \code{Start()} will take again and return a +subset of the result, for the returned data to fall within the specified +bounds in \dots. The default value is 2.} + +\item{apply_indices_after_transform}{A logical value indicating when a +\code{transform} is specified in \code{Start()} and numeric indices are +provided for any of the inner dimensions that depend on coordinate variables, +these numeric indices can be made effective (retrieved) before applying the +transformation or after. The boolean flag allows to adjust this behaviour. +It takes \code{FALSE} by default (numeric indices are applied before sending +data to \code{transform}).} + +\item{pattern_dims}{A character string indicating the name of the dimension +with path pattern specifications (see \dots for details). If not specified, +\code{Start()} assumes the first provided dimension is the pattern +dimension, with a warning.} + +\item{metadata_dims}{A vector of character strings with the names of the file +dimensions which to return metadata for. As noted in \code{file_data_reader}, +the data reader can optionally return auxiliary data via the attribute +'variables' of the returned array. \code{Start()} by default returns the +auxiliary data read for only the first file of each source (or data set) in +the pattern dimension (see \dots for info on what the pattern dimension is). +However it can be configured to return the metadata for all the files along +any set of file dimensions. The parameter \code{metadata_dims} allows to +configure this level of granularity of the returned metadata.} + +\item{selector_checker}{A function used internaly by \code{Start()} to +translate a set of selectors (values for a dimension associated to a +coordinate variable) into a set of numeric indices. It takes by default +\code{SelectorChecker} and, in principle, it should not be required to +change it for customized file formats. The option to replace it is left open +for more versatility. See the code of \code{SelectorChecker} for details on +the inputs, functioning and outputs of a selector checker.} + +\item{merge_across_dims}{A logical value indicating whether to merge +dimensions across which another dimension extends (according to the +\code{*_across} parameters). Takes the value \code{FALSE} by default. For +example, if the dimension 'time' extends across the dimension 'chunk' and +\code{merge_across_dims = TRUE}, the resulting data array will only contain +only the dimension 'time' as long as all the chunks together.} + +\item{split_multiselected_dims}{A logical value indicating whether to split a +dimension that has been selected with a multidimensional array of selectors +into as many dimensions as present in the selector array. The default value +is FALSE.} + +\item{path_glob_permissive}{A logical value or an integer specifying how many + folder levels in the path pattern, beginning from the end, the shell glob + expressions must be preserved and worked out for each file. The default + value is \code{FALSE}, which is equivalent to \code{0}. \code{TRUE} is + equivalent to \code{1}.\cr\cr +When specifying a path pattern for a dataset, it might contain shell glob +experissions. For each dataset, the first file matching the path pattern is +found, and the found file is used to work out fixed values for the glob +expressions that will be used for all the files of the dataset. However in +some cases the values of the shell glob expressions may not be constant for +all files in a dataset, and they need to be worked out for each file +involved.\cr\cr +For example, a path pattern could be as follows: +\code{'/path/to/dataset/$var$_*/$date$_*_foo.nc'}. Leaving +\code{path_glob_permissive = FALSE} will trigger automatic seek of the + contents to replace the asterisks (e.g. the first asterisk matches with + \code{'bar'} and the second with \code{'baz'}. The found contents will be + used for all files in the dataset (in the example, the path pattern will be + fixed to \code{'/path/to/dataset/$var$_bar/$date$_baz_foo.nc'}. However, if + any of the files in the dataset have other contents in the position of the + asterisks, \code{Start()} will not find them (in the example, a file like + \code{'/path/to/dataset/precipitation_bar/19901101_bin_foo.nc'} would not be + found). Setting \code{path_glob_permissive = 1} would preserve global + expressions in the latest level (in the example, the fixed path pattern + would be \code{'/path/to/dataset/$var$_bar/$date$_*_foo.nc'}, and the + problematic file mentioned before would be found), but of course this would + slow down the \code{Start()} call if the dataset involves a large number of + files. Setting \code{path_glob_permissive = 2} would leave the original path + pattern with the original glob expressions in the 1st and 2nd levels (in the + example, both asterisks would be preserved, thus would allow \code{Start()} + to recognize files such as + \code{'/path/to/dataset/precipitation_zzz/19901101_yyy_foo.nc'}).} + +\item{retrieve}{A logical value indicating whether to retrieve the data +defined in the \code{Start} call or to explore only its dimension lengths +and names, and the values for the file and inner dimensions. The default +value is FALSE.} + +\item{num_procs}{An integer of number of processes to be created for the +parallel execution of the retrieval / transformation / arrangement of the +multiple involved files in a call to \code{Start()}. If set to \code{NULL}, +takes the number of available cores (as detected by \code{detectCores()} in +the package 'future'). The default value is 1 (no parallel execution).} + +\item{silent}{A logical value of whether to display progress messages (FALSE) +or not (TRUE). The default value is FALSE.} + +\item{debug}{A logical value of whether to return detailed messages on the +progress and operations in a \code{Start} call (TRUE) or not (FALSE). The +default value is FALSE.} + +\item{{\dots}}{A selection of custemized parameters depending on the data +format. When we retrieve data from one or a collection of data sets, +the involved data can be perceived as belonging to a large multi-dimensional +array. For instance, let us consider an example case. We want to retrieve data +from a source, which contains data for the number of monthly sales of various +items, and also for their retail price each month. The data on source is +stored as follows:\cr \command{ \cr # /data/ \cr # |-> sales/ @@ -83,41 +396,55 @@ When willing to retrieve data from one or a collection of data sets, the involve \cr # |-> item_d.data \cr # |-> item_e.data \cr # |-> item_f.data -} -\cr\cr -Each item file contains data, stored in whichever format, for the sales or prices over a time period, e.g. for the past 24 months, registered at 100 different stores over the world. Whichever the format it is stored in, each file can be perceived as a container of a data array of 2 dimensions, time and store. Let us assume the '.data' format allows to keep a name for each of these dimensions, and the actual names are 'time' and 'store'. -\cr\cr -The different item files for sales or prices can be perceived as belonging to an 'item' dimension of length 3, and the two groups of three items to a 'section' dimension of length 2, and the two groups of two sections (one with the sales and the other with the prices) can be perceived as belonging also to another dimension 'variable' of length 2. Even the source can be perceived as belonging to a dimension 'source' of length 1. -\cr\cr -All in all, in this example, the whole data could be perceived as belonging to a multidimensional 'large array' of dimensions -\cr +}\cr\cr +Each item file contains data, stored in whichever format, for the sales or +prices over a time period, e.g. for the past 24 months, registered at 100 +different stores over the world. Whichever the format it is stored in, each +file can be perceived as a container of a data array of 2 dimensions, time and +store. Let us assume the '.data' format allows to keep a name for each of +these dimensions, and the actual names are 'time' and 'store'.\cr\cr +The different item files for sales or prices can be perceived as belonging to +an 'item' dimension of length 3, and the two groups of three items to a +'section' dimension of length 2, and the two groups of two sections (one with +the sales and the other with the prices) can be perceived as belonging also to +another dimension 'variable' of length 2. Even the source can be perceived as +belonging to a dimension 'source' of length 1.\cr\cr +All in all, in this example, the whole data could be perceived as belonging to +a multidimensional 'large array' of dimensions\cr \command{ \cr # source variable section item store month \cr # 1 2 2 3 100 24 } \cr\cr -The dimensions of this 'large array' can be classified in two types. The ones that group actual files (the file dimensions) and the ones that group data values inside the files (the inner dimensions). In the example, the file dimensions are 'source', 'variable', 'section' and 'item', whereas the inner dimensions are 'store' and 'month'. -\cr\cr -Having the dimensions of our target sources in mind, the parameter \dots expects to receive information on: - \itemize{ - \item{ -The names of the expected dimensions of the 'large dataset' we want to retrieve data from - } - \item{ +The dimensions of this 'large array' can be classified in two types. The ones +that group actual files (the file dimensions) and the ones that group data +values inside the files (the inner dimensions). In the example, the file +dimensions are 'source', 'variable', 'section' and 'item', whereas the inner +dimensions are 'store' and 'month'. +\cr\cr +Having the dimensions of our target sources in mind, the parameter \dots +expects to receive information on: + \itemize{ + \item{ +The names of the expected dimensions of the 'large dataset' we want to +retrieve data from + } + \item{ The indices to take from each dimension (and other constraints) - } - \item{ + } + \item{ How to reorder the dimension if needed - } - \item{ + } + \item{ The location and organization of the files of the data sets - } - } -For each dimension, the 3 first information items can be specified with a set of parameters to be provided through \dots. For a given dimension 'dimname', six parameters can be specified: -\cr + } + } +For each dimension, the 3 first information items can be specified with a set +of parameters to be provided through \dots. For a given dimension 'dimname', +six parameters can be specified:\cr \command{ \cr # dimname = , # 'all' / 'first' / 'last' / -\cr # # indices(c(1, 10, 20)) / +\cr # # indices(c(1, 10, 20)) / \cr # # indices(c(1:20)) / \cr # # indices(list(1, 20)) / \cr # # c(1, 10, 20) / c(1:20) / @@ -129,23 +456,92 @@ For each dimension, the 3 first information items can be specified with a set of \cr # dimname_across = } \cr\cr -The \bold{indices to take} can be specified in three possible formats (see code comments above for examples). The first format consists in using character tags, such as 'all' (take all the indices available for that dimension), 'first' (take only the first) and 'last' (only the last). The second format consists in using numeric indices, which have to be wrapped in a call to the \code{indices()} helper function. For the second format, either a vector of numeric indices can be provided, or a list with two numeric indices can be provided to take all the indices in the range between the two specified indices (both extremes inclusive). The third format consists in providing a vector character strings (for file dimensions) or of values of whichever type (for inner dimensions). For the file dimensions, the provided character strings in the third format will be used as components to build up the final path to the files (read further). For inner dimensions, the provided values in the third format will be compared to the values of an associated coordinate variable (must be specified in \code{dimname_reorder}, read further), and the indices of the closest values will be retrieved. When using the third format, a list with two values can also be provided to take all the indices of the values within the specified range. -\cr\cr -The \bold{name of the associated coordinate variable} must be a character string with the name of an associated coordinate variable to be found in the data files (in all* of them). For this to work, a \code{file_var_reader} function must be specified when calling \code{Start()} (see parameter 'file_var_reader'). The coordinate variable must also be requested in the parameter \code{return_vars} (see its section for details). This feature only works for inner dimensions. -\cr\cr -The \bold{tolerance value} is useful when indices for an inner dimension are specified in the third format (values of whichever type). In that case, the indices of the closest values in the coordinate variable are seeked. However the closest value might be too distant and we would want to consider no real match exists for such provided value. This is possible via the tolerance. which allows to specify a threshold beyond which not to seek for matching values and mark that index as missing value. -\cr\cr -The \bold{reorder_function} is useful when indices for an inner dimension are specified in the third fromat, and the retrieved indices need to be reordered in function of their provided associated variable values. A function can be provided, which receives as input a vector of values, and returns as outputs a list with the components \code{x} with the reordered values, and \code{ix} with the permutation indices. Two reordering functions are included in \code{startR}, the \code{Sort()} and the \code{CircularSort()}. -\cr\cr -The \bold{name of another dimension} to be specified in \code{dimname_depends}, only available for file dimensions, must be a character string with the name of another requested \bold{file dimension} in \dots, and will make \code{Start()} aware that the path components of a file dimension can vary in function of the path component of another file dimension. For instance, in the example above, specifying \code{item_depends = 'section'} will make \code{Start()} aware that the item names vary in function of the section, i.e. section 'electronics' has items 'a', 'b' and 'c' but section 'clothing' has items 'd', 'e', 'f'. Otherwise \code{Start()} would expect to find the same item names in all the sections. -\cr\cr -The \bold{name of another dimension} to be specified in \code{dimname_across}, only available for inner dimensions, must be a character string with the name of another requested \bold{inner dimension} in \dots, and will make \code{Start()} aware that an inner dimension extends along multiple files. For instance, let us imagine that in the example above, the records for each item are so large that it becomes necessary to split them in multiple files each one containing the registers for a different period of time, e.g. in 10 files with 100 months each ('item_a_period1.data', 'item_a_period2.data', and so on). In that case, the data can be perceived as having an extra file dimension, the 'period' dimension. The inner dimension 'month' would extend across multiple files, and providing the parameter \code{month = indices(1, 300)} would make \code{Start()} crash because it would perceive we have made a request out of bounds (each file contains 100 'month' indices, but we requested 1 to 300). This can be solved by specifying the parameter \code{month_across = period} (along with the full specification of the dimension 'period'). +The \bold{indices to take} can be specified in three possible formats (see +code comments above for examples). The first format consists in using +character tags, such as 'all' (take all the indices available for that +dimension), 'first' (take only the first) and 'last' (only the last). The +second format consists in using numeric indices, which have to be wrapped in a +call to the \code{indices()} helper function. For the second format, either a +vector of numeric indices can be provided, or a list with two numeric indices +can be provided to take all the indices in the range between the two specified +indices (both extremes inclusive). The third format consists in providing a +vector character strings (for file dimensions) or of values of whichever type +(for inner dimensions). For the file dimensions, the provided character +strings in the third format will be used as components to build up the final +path to the files (read further). For inner dimensions, the provided values in +the third format will be compared to the values of an associated coordinate +variable (must be specified in \code{dimname_reorder}, read further), and the +indices of the closest values will be retrieved. When using the third format, +a list with two values can also be provided to take all the indices of the +values within the specified range. +\cr\cr +The \bold{name of the associated coordinate variable} must be a character +string with the name of an associated coordinate variable to be found in the +data files (in all* of them). For this to work, a \code{file_var_reader} +function must be specified when calling \code{Start()} (see parameter +'file_var_reader'). The coordinate variable must also be requested in the +parameter \code{return_vars} (see its section for details). This feature only +works for inner dimensions. +\cr\cr +The \bold{tolerance value} is useful when indices for an inner dimension are +specified in the third format (values of whichever type). In that case, the +indices of the closest values in the coordinate variable are seeked. However +the closest value might be too distant and we would want to consider no real +match exists for such provided value. This is possible via the tolerance, +which allows to specify a threshold beyond which not to seek for matching +values and mark that index as missing value. +\cr\cr +The \bold{reorder_function} is useful when indices for an inner dimension are +specified in the third fromat, and the retrieved indices need to be reordered +in function of their provided associated variable values. A function can be +provided, which receives as input a vector of values, and returns as outputs a +list with the components \code{x} with the reordered values, and \code{ix} +with the permutation indices. Two reordering functions are included in +\code{startR}, the \code{Sort()} and the \code{CircularSort()}. +\cr\cr +The \bold{name of another dimension} to be specified in \code{dimname_depends}, +only available for file dimensions, must be a character string with the name +of another requested \bold{file dimension} in \dots, and will make +\code{Start()} aware that the path components of a file dimension can vary in +function of the path component of another file dimension. For instance, in the +example above, specifying \code{item_depends = 'section'} will make +\code{Start()} aware that the item names vary in function of the section, i.e. +section 'electronics' has items 'a', 'b' and 'c' but section 'clothing' has +items 'd', 'e', 'f'. Otherwise \code{Start()} would expect to find the same +item names in all the sections. +\cr\cr +The \bold{name of another dimension} to be specified in \code{dimname_across}, +only available for inner dimensions, must be a character string with the name +of another requested \bold{inner dimension} in \dots, and will make +\code{Start()} aware that an inner dimension extends along multiple files. For +instance, let us imagine that in the example above, the records for each item +are so large that it becomes necessary to split them in multiple files each +one containing the registers for a different period of time, e.g. in 10 files +with 100 months each ('item_a_period1.data', 'item_a_period2.data', and so on). +In that case, the data can be perceived as having an extra file dimension, the#''period' dimension. The inner dimension 'month' would extend across multiple +files, and providing the parameter \code{month = indices(1, 300)} would make +\code{Start()} crash because it would perceive we have made a request out of +bounds (each file contains 100 'month' indices, but we requested 1 to 300). +This can be solved by specifying the parameter \code{month_across = period} (a +long with the full specification of the dimension 'period'). \cr\cr \bold{Defining the path pattern} \cr -As mentioned above, the parameter \dots also expects to receive information with the location of the data files. In order to do this, a special dimension must be defined. In that special dimension, in place of specifying indices to take, a path pattern must be provided. The path pattern is a character string that encodes the way the files are organized in their source. It must be a path to one of the data set files in an accessible local or remote file system, or a URL to one of the files provided by a local or remote server. The regions of this path that vary across files (along the file dimensions) must be replaced by wildcards. The wildcards must match any of the defined file dimensions in the call to \code{Start()} and must be delimited with heading and trailing '$'. Shell globbing expressions can be used in the path pattern. See the next code snippet for an example of a path pattern. -\cr\cr -All in all, the call to \code{Start()} to load the entire data set in the example of store item sales, would look as follows: +As mentioned above, the parameter \dots also expects to receive information +with the location of the data files. In order to do this, a special dimension +must be defined. In that special dimension, in place of specifying indices to +take, a path pattern must be provided. The path pattern is a character string +that encodes the way the files are organized in their source. It must be a +path to one of the data set files in an accessible local or remote file system, +or a URL to one of the files provided by a local or remote server. The regions +of this path that vary across files (along the file dimensions) must be +replaced by wildcards. The wildcards must match any of the defined file +dimensions in the call to \code{Start()} and must be delimited with heading +and trailing '$'. Shell globbing expressions can be used in the path pattern. +See the next code snippet for an example of a path pattern. +\cr\cr +All in all, the call to \code{Start()} to load the entire data set in the +example of store item sales, would look as follows: \cr \command{ \cr # data <- Start(source = paste0('/data/$variable$/', @@ -158,16 +554,22 @@ All in all, the call to \code{Start()} to load the entire data set in the exampl \cr # month = 'all') } \cr\cr -Note that in this example it would still be pending to properly define the parameters \code{file_opener}, \code{file_closer}, \code{file_dim_reader}, \code{file_var_reader} and \code{file_data_reader} for the '.data' file format (see the corresponding sections). +Note that in this example it would still be pending to properly define the +parameters \code{file_opener}, \code{file_closer}, \code{file_dim_reader}, +\code{file_var_reader} and \code{file_data_reader} for the '.data' file format +(see the corresponding sections). \cr\cr -The call to \code{Start()} will return a multidimensional R array with the following dimensions: +The call to \code{Start()} will return a multidimensional R array with the +following dimensions: \cr \command{ \cr # source variable section item store month \cr # 1 2 2 3 100 24 } \cr -The dimension specifications in the \dots do not have to follow any particular order. The returned array will have the dimensions in the same order as they have been specified in the call. For example, the following call: +The dimension specifications in the \dots do not have to follow any particular +order. The returned array will have the dimensions in the same order as they +have been specified in the call. For example, the following call: \cr \command{ \cr # data <- Start(source = paste0('/data/$variable$/', @@ -187,7 +589,11 @@ would return an array with the following dimensions: \cr # 1 24 100 3 2 2 } \cr\cr -Next, a more advanced example to retrieve data for only the sales records, for the first section ('electronics'), for the 1st and 3rd items and for the stores located in Barcelona (assuming the files contain the variable 'store_location' with the name of the city each of the 100 stores are located at): +Next, a more advanced example to retrieve data for only the sales records, for +the first section ('electronics'), for the 1st and 3rd items and for the +stores located in Barcelona (assuming the files contain the variable +'store_location' with the name of the city each of the 100 stores are located +at): \cr \command{ \cr # data <- Start(source = paste0('/data/$variable$/', @@ -202,16 +608,22 @@ Next, a more advanced example to retrieve data for only the sales records, for t \cr # return_vars = list(store_location = NULL)) } \cr\cr -The defined names for the dimensions do not necessarily have to match the names of the dimensions inside the file. Lists of alternative names to be seeked can be defined in the parameter \code{synonims}. +The defined names for the dimensions do not necessarily have to match the +names of the dimensions inside the file. Lists of alternative names to be +seeked can be defined in the parameter \code{synonims}. \cr\cr -If data from multiple sources (not necessarily following the same structure) has to be retrieved, it can be done by providing a vector of character strings with path pattern specifications, or, in the extended form, by providing a list of lists with the components 'name' and 'path', and the name of the dataset and path pattern as values, respectively. For example: +If data from multiple sources (not necessarily following the same structure) +has to be retrieved, it can be done by providing a vector of character strings +with path pattern specifications, or, in the extended form, by providing a +list of lists with the components 'name' and 'path', and the name of the +dataset and path pattern as values, respectively. For example: \cr \command{ \cr # data <- Start(source = list( -\cr # list(name = 'sourceA', +\cr # list(name = 'sourceA', \cr # path = paste0('/sourceA/$variable$/', \cr # '$section$/$item$.data')), -\cr # list(name = 'sourceB', +\cr # list(name = 'sourceB', \cr # path = paste0('/sourceB/$section$/', \cr # '$variable$/$item$.data')) \cr # ), @@ -224,211 +636,162 @@ If data from multiple sources (not necessarily following the same structure) has \cr # month = 'all', \cr # return_vars = list(store_location = NULL)) } -\cr - } - \item{return_vars}{ -Apart from retrieving a multidimensional data array, retrieving auxiliary variables inside the files can also be needed. The parameter \code{return_vars} allows for requesting such variables, as long as a \code{file_var_reader} function is also specified in the call to \code{Start()} (see documentation on the corresponding parameter). -\cr\cr -This parameter expects to receive a named list where the names are the names of the variables to be fetched in the files, and the values are vectors of character strings with the names of the file dimension which to retrieve each variable for, or \code{NULL} if the variable has to be retrieved only once from any (the first) of the involved files. In the case of the the item sales example (see documentation on parameter \dots), the store location variable is requested with the parameter \cr \code{return_vars = list(store_location = NULL)}. This will cause \code{Start()} to fetch once the variable 'store_location' and return it in the component \cr \code{$Variables$common$store_location}, and will be an array of character strings with the location names, with the dimensions \code{c('store' = 100)}. Although useless in this example, we could ask \code{Start()} to fetch and return such variable for each file along the items dimension as follows: \cr \code{return_vars = list(store_location = c('item'))}. In that case, the variable will be fetched once from a file of each of the items, and will be returned as an array with the dimensions \code{c('item' = 3, 'store' = 100)}. -\cr\cr -If a variable is requested along a file dimension that contains path pattern specifications ('source' in the example), the fetched variable values will be returned in the component \code{$Variables$$}. For example: -\cr -\command{ -\cr # data <- Start(source = list( -\cr # list(name = 'sourceA', -\cr # path = paste0('/sourceA/$variable$/', -\cr # '$section$/$item$.data')), -\cr # list(name = 'sourceB', -\cr # path = paste0('/sourceB/$section$/', -\cr # '$variable$/$item$.data')) -\cr # ), -\cr # variable = 'sales', -\cr # section = 'first', -\cr # item = indices(c(1, 3)), -\cr # item_depends = 'section', -\cr # store = 'Barcelona', -\cr # store_var = 'store_location', -\cr # month = 'all', -\cr # return_vars = list(store_location = c('source', -\cr # 'item'))) -\cr # # Checking the structure of the returned variables -\cr # str(found_data$Variables) -\cr # Named list -\cr # ..$common: NULL -\cr # ..$sourceA: Named list -\cr # .. ..$store_location: char[1:18(3d)] 'Barcelona' 'Barcelona' ... -\cr # ..$sourceB: Named list -\cr # .. ..$store_location: char[1:18(3d)] 'Barcelona' 'Barcelona' ... -\cr # # Checking the dimensions of the returned variable -\cr # # for the source A -\cr # dim(found_data$Variables$sourceA) -\cr # item store -\cr # 3 3 -} -\cr\cr -The names of the requested variables do not necessarily have to match the actual variable names inside the files. A list of alternative names to be seeked can be specified via the parameter \code{synonims}. - } - \item{synonims}{ -In some requests, data from different sources may follow different naming conventions for the dimensions or variables, or even files in the same source could have varying names. In order for \code{Start()} to properly identify the dimensions or variables with different names, the parameter \code{synonims} can be specified as a named list where the names are requested variable or dimension names, and the values are vectors of character strings with alternative names to seek for such dimension or variable. -\cr\cr -In the example used in parameter \code{return_vars}, it may be the case that the two involved data sources follow slightly different naming conventions. For example, source A uses 'sect' as name for the sections dimension, whereas source B uses 'section'; source A uses 'store_loc' as variable name for the store locations, whereas source B uses 'store_location'. This can be taken into account as follows: -\cr -\command{ -\cr # data <- Start(source = list( -\cr # list(name = 'sourceA', -\cr # path = paste0('/sourceA/$variable$/', -\cr # '$section$/$item$.data')), -\cr # list(name = 'sourceB', -\cr # path = paste0('/sourceB/$section$/', -\cr # '$variable$/$item$.data')) -\cr # ), -\cr # variable = 'sales', -\cr # section = 'first', -\cr # item = indices(c(1, 3)), -\cr # item_depends = 'section', -\cr # store = 'Barcelona', -\cr # store_var = 'store_location', -\cr # month = 'all', -\cr # return_vars = list(store_location = c('source', -\cr # 'item')), -\cr # synonims = list( -\cr # section = c('sec', 'section'), -\cr # store_location = c('store_loc', -\cr # 'store_location') -\cr # )) +\cr} } -\cr - } - \item{file_opener}{ -A function that receives as a single parameter (\code{file_path}) a character string with the path to a file to be opened, and returns an object with an open connection to the file (optionally with header information) on success, or returns \code{NULL} on failure. -\cr\cr -This parameter takes by default \code{NcOpener} (an opener function for NetCDF files). -\cr\cr -See \code{NcOpener} for a template to build a file opener for your own file format. - } - \item{file_var_reader}{ -A function with the header \code{file_path = NULL}, \code{file_object = NULL}, \code{file_selectors = NULL}, \code{var_name}, \code{synonims} that returns an array with auxiliary data (i.e. data from a variable) inside a file. \code{Start()} will provide automatically either a \code{file_path} or a \code{file_object} to the \code{file_var_reader} function (the function has to be ready to work whichever of these two is provided). The parameter \code{file_selectors} will also be provided automatically to the variable reader, containing a named list where the names are the names of the file dimensions of the queried data set (see documentation on \dots) and the values are single character strings with the components used to build the path to the file being read (the one provided in \code{file_path} or \code{file_object}). The parameter \code{var_name} will be filled in automatically by \code{Start()} also, with the name of one of the variales to be read. The parameter \code{synonims} will be filled in with exactly the same value as provided in the parameter \code{synonims} in the call to \code{Start()}, and has to be used in the code of the variable reader to check for alternative variable names inside the target file. The \code{file_var_reader} must return a (multi)dimensional array with named dimensions, and optionally with the attribute 'variales' with other additional metadata on the retrieved variable. -\cr\cr -Usually, the \code{file_var_reader} should be a degenerate case of the \code{file_data_reader} (see documentation on the corresponding parameter), so it is recommended to code the \code{file_data_reder} in first place. -\cr\cr -This parameter takes by default \code{NcVarReader} (a variable reader function for NetCDF files). -\cr\cr -See \code{NcVarReader} for a template to build a variale reader for your own file format. - } - \item{file_dim_reader}{ -A function with the header \code{file_path = NULL}, \code{file_object = NULL}, \code{file_selectors = NULL}, \code{synonims} that returns a named numeric vector where the names are the names of the dimensions of the multidimensional data array in the file and the values are the sizes of such dimensions. \code{Start()} will provide automatically either a \code{file_path} or a \code{file_object} to the \code{file_dim_reader} function (the function has to be ready to work whichever of these two is provided). The parameter \code{file_selectors} will also be provided automatically to the dimension reader, containing a named list where the names are the names of the file dimensions of the queried data set (see documentation on \dots) and the values are single character strings with the components used to build the path to the file being read (the one provided in \code{file_path} or \code{file_object}). The parameter \code{synonims} will be filled in with exactly the same value as provided in the parameter \code{synonims} in the call to \code{Start()}, and can optionally be used in advanced configurations. -\cr\cr -This parameter takes by default \code{NcDimReader} (a dimension reader function for NetCDF files). -\cr\cr -See \code{NcDimReader} for a(n advanced) template to build a dimension reader for your own file format. - } - \item{file_data_reader}{ -A function with the header \code{file_path = NULL}, \code{file_object = NULL}, \code{file_selectors = NULL}, \code{inner_indices = NULL}, \code{synonims} that returns a subset of the multidimensional data array inside a file (even if internally it is not an array). \code{Start()} will provide automatically either a \code{file_path} or a \code{file_object} to the \code{file_data_reader} function (the function has to be ready to work whichever of these two is provided). The parameter \code{file_selectors} will also be provided automatically to the data reader, containing a named list where the names are the names of the file dimensions of the queried data set (see documentation on \dots) and the values are single character strings with the components used to build the path to the file being read (the one provided in \code{file_path} or \code{file_object}). The parameter \code{inner_indices} will be filled in automatically by \code{Start()} also, with a named list of numeric vectors, where the names are the names of all the expected inner dimensions in a file to be read, and the numeric vectors are the indices to be taken from the corresponding dimension (the indices may not be consecutive nor in order). The parameter \code{synonims} will be filled in with exactly the same value as provided in the parameter \code{synonims} in the call to \code{Start()}, and has to be used in the code of the data reader to check for alternative dimension names inside the target file. The \code{file_data_reader} must return a (multi)dimensional array with named dimensions, and optionally with the attribute 'variales' with other additional metadata on the retrieved data. -\cr\cr -Usually, the \code{file_data_reader} should use the \code{file_dim_reader} (see documentation on the corresponding parameter), so it is recommended to code the \code{file_dim_reder} in first place. -\cr\cr -This parameter takes by default \code{NcDataReader} (a data reader function for NetCDF files). -\cr\cr -See \code{NcDataReader} for a template to build a data reader for your own file format. - } - \item{file_closer}{ -A function that receives as a single parameter (\code{file_object}) an open connection (as returned by \code{file_opener}) to one of the files to be read, optionally with header information, and closes the open connection. Always returns \code{NULL}. -\cr\cr -This parameter takes by default \code{NcCloser} (a closer function for NetCDF files). -\cr\cr -See \code{NcCloser} for a template to build a file closer for your own file format. - } - \item{transform}{ -A function with the header \code{dara_array}, \code{variables}, \code{file_selectors = NULL}, \code{\dots}. It receives as input, through the parameter \code{data_array}, a subset of a multidimensional array (as returned by \code{file_data_reader}), applies a transformation to it and returns it, preserving the amount of dimensions but potentially modifying their size. This transformation may require data from other auxiliary variables, automatically provided to \code{transform} through the parameter \code{variables}, in the form of a named list where the names are the variable names and the values are (multi)dimensional arrays. Which variables need to be sent to \code{transform} can be specified with the parameter \code{transform_vars} in \code{Start()}. The parameter \code{file_selectors} will also be provided automatically to \code{transform}, containing a named list where the names are the names of the file dimensions of the queried data set (see documentation on \dots) and the values are single character strings with the components used to build the path to the file the subset being processed belongs to. The parameter \dots will be filled in with other additional parameters to adjust the transformation, exactly as provided in the call to \code{Start()} via the parameter \code{transform_params}. - } - \item{transform_params}{ -Named list with additional parameters to be sent to the \code{transform} function (if specified). See documentation on \code{transform} for details. - } - \item{transform_vars}{ -Vector of character strings with the names of auxiliary variables to be sent to the \code{transform} function (if specified). All the variables to be sent to \code{transform} must also have been requested as return variables in the parameter \code{return_vars} of \code{Start()}. - } - \item{transform_extra_cells}{ -Number of extra indices to retrieve from the data set, beyond the requested indices in \dots, in order for \code{transform} to dispose of additional information to properly apply whichever transformation (if needed). As many as \code{transform_extra_cells} will be retrieved beyond each of the limits for each of those inner dimensions associated to a coordinate variable and sent to \code{transform} (i.e. present in \code{transform_vars}). After \code{transform} has finished, \code{Start()} will take again and return a subset of the result, for the returned data to fall within the specified bounds in \dots. - } - \item{apply_indices_after_transform}{ -When a \code{transform} is specified in \code{Start()} and numeric indices are provided for any of the inner dimensions that depend on coordinate variables, these numeric indices can be made effective (retrieved) before applying the transformation or after. The boolean flab \code{apply_indices_after_transform} allows to adjust this behaviour. It takes \code{FALSE} by default (numeric indices are applied before sending data to \code{transform}). - } - \item{pattern_dims}{ -Name of the dimension with path pattern specifications (see \dots for details). If not specified, \code{Start()} assumes the first provided dimension is the pattern dimension, with a warning. - } - \item{metadata_dims}{ -It expects to receive a vector of character strings with the names of the file dimensions which to return metadata for. As noted in \code{file_data_reader}, the data reader can optionally return auxiliary data via the attribute 'variables' of the returned array. \code{Start()} by default returns the auxiliary data read for only the first file of each source (or data set) in the pattern dimension (see \dots for info on what the pattern dimension is). However it can be configured to return the metadata for all the files along any set of file dimensions. The parameter \code{metadata_dims} allows to configure this level of granularity of the returned metadata. - } - \item{selector_checker}{ -Function used internaly by \code{Start()} to translate a set of selectors (values for a dimension associated to a coordinate variable) into a set of numeric indices. It takes by default \code{SelectorChecker} and, in principle, it should not be required to change it for customized file formats. The option to replace it is left open for more versatility. See the code of \code{SelectorChecker} for details on the inputs, functioning and outputs of a selector checker. - } - \item{merge_across_dims}{ -Whether to merge dimensions across which another dimension extends (according to the \code{*_across} parameters). Takes the value \code{FALSE} by default. For example, if the dimension 'time' extends across the dimension 'chunk' and \code{merge_across_dims = TRUE}, the resulting data array will only contain only the dimension 'time' as long as all the chunks together. - } - \item{split_multiselected_dims}{ -Whether to split a dimension that has been selected with a multidimensional array of selectors into as many dimensions as present in the selector array. Takes the value \code{FALSE} by default. - } - \item{path_glob_permissive}{ -When specifying a path pattern for a dataset, it might contain shell glob experissions. For each dataset, the first file matching the path pattern is found, and the found file is used to work out fixed values for the glob expressions that will be used for all the files of the dataset. However in some cases the values of the shell glob expressions may not be constant for all files in a dataset, and they need to be worked out for each file involved. In this situation, the \code{path_glob_permissive} can be set to an integer value specifying for how many folder levels in the path pattern, beginning from the end, the shell glob expressions mut be preserved and worked out for each file.\cr The default value is \code{FALSE}, which is equivalent to \code{0}. Setting \code{TRUE} is equivalent to \code{1}.\cr For example, a path pattern could be as follows: \code{'/path/to/dataset/$var$_*/$date$_*_foo.nc'}. Leaving \code{path_glob_permissive = FALSE} will trigger automatic seek of the contents to replace the asterisks (e.g. the first asterisk matches with \code{'bar'} and the second with \code{'baz'}. The found contents will be used for all files in the dataset (in the example, the path pattern will be fixed to \code{'/path/to/dataset/$var$_bar/$date$_baz_foo.nc'}. However, if any of the files in the dataset have other contents in the position of the asterisks, \code{Start()} will not find them (in the example, a file like \code{'/path/to/dataset/precipitation_bar/19901101_bin_foo.nc'} would not be found). Setting \code{path_glob_permissive = 1} would preserve global expressions in the latest level (in the example, the fixed path pattern would be \code{'/path/to/dataset/$var$_bar/$date$_*_foo.nc'}, and the problematic file mentioned before would be found), but of course this would slow down the \code{Start()} call if the dataset involves a large number of files. Setting \code{path_glob_permissive = 2} would leave the original path pattern with the original glob expressions in the 1st and 2nd levels (in the example, both asterisks would be preserved, thus would allow \code{Start()} to recognize files such as \code{'/path/to/dataset/precipitation_zzz/19901101_yyy_foo.nc'}). - } - \item{retrieve}{ -Logical value telling whether to retrieve the data defined in the \code{Start} call or to explore only its dimension lengths and names, and the values for the file and inner dimensions. Takes FALSE by default. - } - \item{num_procs}{ -Number of processes to be created for the parallel execution of the retrieval / transformation / arrangement of the multiple involved files in a call to \code{Start()}. If set to \code{NULL}, takes the number of available cores (as detected by \code{detectCores()} in the package 'future'). Takes 1 by default (no parallel execution). - } - \item{silent}{ -Boolean flag, whether to display progress messages (FALSE; default) or not (TRUE). - } - \item{debug}{ -Whether to return detailed messages on the progress and operations in a \code{Start} call (TRUE) or not (FALSE; default). - } +\value{ +If \code{retrieve = TRUE} the involved data is loaded into RAM memory + and an object of the class 'startR_cube' with the following components is + returned:\cr + \item{Data}{ + Multidimensional data array with named dimensions, with the data values + requested via \dots and other parameters. This array can potentially contain + metadata in the attribute 'variables'. + } + \item{Variables}{ + Named list of 1 + N components, containing lists of retrieved variables (as + requested in \code{return_vars}) common to all the data sources (in the 1st + component, \code{$common}), and for each of the N dara sources (named after + the source name, as specified in \dots, or, if not specified, \code{$dat1}, + \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a + multidimensional array with named dimensions, and potentially with the + attribute 'variables' with additional auxiliary data. + } + \item{Files}{ + Multidimensonal character string array with named dimensions. Its dimensions + are the file dimensions (as requested in \dots). Each cell in this array + contains a path to a retrieved file, or \code{NULL} if the corresponding + file was not found. + } + \item{NotFoundFiles}{ + Array with the same shape as \code{$Files} but with \code{NULL} in the + positions for which the corresponding file was found, and a path to the + expected file in the positions for which the corresponding file was not + found. + } + \item{FileSelectors}{ + Multidimensional character string array with named dimensions, with the same + shape as \code{$Files} and \code{$NotFoundFiles}, which contains the + components used to build up the paths to each of the files in the data + sources. + } +If \code{retrieve = FALSE} the involved data is not loaded into RAM memory and +an object of the class 'startR_header' with the following components is +returned:\cr + \item{Dimensions}{ + Named vector with the dimension lengths and names of the data involved in + the \code{Start} call. + } + \item{Variales}{ + Named list of 1 + N components, containing lists of retrieved variables (as + requested in \code{return_vars}) common to all the data sources (in the 1st + component, \code{$common}), and for each of the N dara sources (named after + the source name, as specified in \dots, or, if not specified, \code{$dat1}, + \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a + multidimensional array with named dimensions, and potentially with the + attribute 'variables' with additional auxiliary data. + } + \item{Files}{ + Multidimensonal character string array with named dimensions. Its dimensions + are the file dimensions (as requested in \dots). Each cell in this array + contains a path to a file to be retrieved (which may exist or not). + } + \item{FileSelectors}{ + Multidimensional character string array with named dimensions, with the same + shape as \code{$Files} and \code{$NotFoundFiles}, which contains the + components used to build up the paths to each of the files in the data + sources. + } + \item{StartRCall}{ + List of parameters sent to the \code{Start} call, with the parameter + \code{retrieve} set to \code{TRUE}. Intended for calling in order to + retrieve the associated data a posteriori with a call to \code{do.call}. + } } -\details{ -Check \href{https://earth.bsc.es/gitlab/es/startR}{the startR website} for more information. +\description{ +See the \href{https://earth.bsc.es/gitlab/es/startR}{\code{startR} +documentation and tutorial} for a step-by-step explanation on how to use +\code{Start()}.\cr\cr +Nowadays in the era of big data, large multidimensional data sets from +diverse sources need to be combined and processed. Analysis of big data in any +field is often highly complex and time-consuming. Taking subsets of these data +sets and processing them efficiently become an indispensable practice. This +technique is also known as Domain Decomposition, Map Reduce or, more commonly, +'chunking'.\cr\cr +\code{startR} (Subset, TrAnsform, ReTrieve, arrange and process large +multidimensional data sets in R) is an R project started at BSC with the aim +to develop a tool that allows the user to automatically process large +multidimensional distributed data sets. It is an open source project that is +open to external collaboration and funding, and will continuously evolve to +support as many data set formats as possible while maximizing its efficiency.\cr\cr +\code{startR} provides a framework under which a data set (collection of one +or multiple data files, potentially distributed over various remote servers) +are perceived as if they all were part of a single large multidimensional +array. Once such multidimensional array is declared, any user-defined function +can be applied to the data in a \code{apply}-like fashion, where \code{startR} +transparently implements the Map Reduce paradigm. The steps to follow in order +to process a collection of big data sets are as follows:\cr +\itemize{ + \item{ +Declaring the data set, i.e. declaring the distribution of the data files +involved, the dimensions and shape of the multidimensional array, and the +boundaries of the target data. This step can be performed with the +\code{Start()} function. Numeric indices or coordinate values can be used when +fixing the boundaries. It is common having the need to apply transformations, +pre-processing or reordering to the data. Start() accepts user-defined +transformation or reordering functions to be applied for such purposes. Once a +data set is declared, a list of involved files, dimension lengths, memory size +and other metadata is made available. Optionally, the data set can be +retrieved and loaded onto the current R session if it is small enough. + } + \item{ +Declaring the workflow of operations to perform on the involved data set(s). +This step can be performed with the \code{Step()} and \code{AddStep()} +functions. + } + \item{ +Defining the computation settings. The mandatory settings include a) how many +subsets to divide the data sets into and along which dimensions; b) which +platform to perform the workflow of operations on (local machine or remote +machine/HPC?), how to communicate with it (unidirectional or bidirectional +connection? shared or separate file systems?), which queuing system it uses +(slurm, PBS, LSF, none?); and c) how many parallel jobs and execution threads +per job to use when running the calculations. This step can be performed when +building up the call to the \code{Compute()} function. + } + \item{ +Running the computation. startR transparently implements the Map Reduce +paradigm, according to the settings in the previous steps. The progress can +optionally be monitored with the EC-Flow workflow management tool. When the +computation ends, a report of performance timings is displayed. This step can +be triggered with the \code{Compute()} function. + } } -\value{ -If \code{retrieve = TRUE} the involved data is loaded into RAM memory and an object of the class 'startR_cube' with the following components is returned:\cr - \item{Data}{ -Multidimensional data array with named dimensions, with the data values requested via \dots and other parameters. This array can potentially contain metadata in the attribute 'variables'. - } - \item{Variales}{ -Named list of 1 + N components, containing lists of retrieved variables (as requested in \code{return_vars}) common to all the data sources (in the 1st component, \code{$common}), and for each of the N dara sources (named after the source name, as specified in \dots, or, if not specified, \code{$dat1}, \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a multidimensional array with named dimensions, and potentially with the attribute 'variables' with additional auxiliary data. - } - \item{Files}{ -Multidimensonal character string array with named dimensions. Its dimensions are the file dimensions (as requested in \dots). Each cell in this array contains a path to a retrieved file, or \code{NULL} if the corresponding file was not found. - } - \item{NotFoundFiles}{ -Array with the same shape as \code{$Files} but with \code{NULL} in the positions for which the corresponding file was found, and a path to the expected file in the positions for which the corresponding file was not found. - } - \item{FileSelectors}{ -Multidimensional character string array with named dimensions, with the same shape as \code{$Files} and \code{$NotFoundFiles}, which contains the components used to build up the paths to each of the files in the data sources. - } -If \code{retrieve = FALSE} the involved data is not loaded into RAM memory and an object of the class 'startR_header' with the following components is returned:\cr - \item{Dimensions}{ -Named vector with the dimension lengths and names of the data involved in the \code{Start} call. - } - \item{Variales}{ -Named list of 1 + N components, containing lists of retrieved variables (as requested in \code{return_vars}) common to all the data sources (in the 1st component, \code{$common}), and for each of the N dara sources (named after the source name, as specified in \dots, or, if not specified, \code{$dat1}, \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a multidimensional array with named dimensions, and potentially with the attribute 'variables' with additional auxiliary data. - } - \item{Files}{ -Multidimensonal character string array with named dimensions. Its dimensions are the file dimensions (as requested in \dots). Each cell in this array contains a path to a file to be retrieved (which may exist or not). - } - \item{FileSelectors}{ -Multidimensional character string array with named dimensions, with the same shape as \code{$Files} and \code{$NotFoundFiles}, which contains the components used to build up the paths to each of the files in the data sources. - } - \item{StartRCall}{ -List of parameters sent to the \code{Start} call, with the parameter \code{retrieve} set to \code{TRUE}. Intended for calling in order to retrieve the associated data a posteriori with a call to \code{do.call}. - } +\code{startR} is not bound to a specific file format. Interface functions to +custom file formats can be provided for \code{Start()} to read them. As this +version, \code{startR} includes interface functions to the following file formats: +\itemize{ + \item{ +NetCDF + } } -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code +Metadata and auxilliary data is also preserved and arranged by \code{Start()} +in the measure that it is retrieved by the interface functions for a specific +file format. } \examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start(). + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = 'all', + longitude = 'all', + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) + } -\keyword{IO} -\keyword{array} -\keyword{manip} + diff --git a/man/Subset.Rd b/man/Subset.Rd index b90def7..f6caca4 100644 --- a/man/Subset.Rd +++ b/man/Subset.Rd @@ -1,51 +1,62 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Subset.R \name{Subset} \alias{Subset} -\title{Subset a Data Array} +\title{Subset a data array} +\usage{ +Subset(x, along, indices, drop = FALSE) +} +\arguments{ +\item{x}{A multidimensional array to be sliced. It can have dimension names +either in \code{names(dim(x))} or either in the attribute 'dimensions'.} + +\item{along}{Vector with references to the dimensions to take the subset +from: either integers or dimension names.} + +\item{indices}{List of indices to take from each dimension specified in +'along'. If a single dimension is specified in 'along' the indices can be +directly provided as a single integer or as a vector.} + +\item{drop}{Whether to drop all the dimensions of length 1 in the resulting +array, none, only those that are specified in 'along', or only those that +are not specified in 'along'. The possible values are, respectively: 'all' +or TRUE, 'none' or FALSE, 'selected', and 'non-selected'.} +} +\value{ +An array same as the input 'x' except the dimensions being subsetted. +} \description{ This function allows to subset (i.e. slice, take a chunk of) an array, in a similar way as done in the function \code{take()} in the package plyr. There -are two main inprovements:\cr\cr +are two main inprovements:\cr The input array can have dimension names, either -in \code{names(dim(x))} or in the attribute 'dimensions', and the dimensions to -subset along can be specified via the parameter \code{along} either with -integer indices or either by their name.\cr\cr +in \code{names(dim(x))} or in the attribute 'dimensions', and the dimensions +to subset along can be specified via the parameter \code{along} either with +integer indices or either by their name.\cr There are additional ways to adjust which dimensions are dropped in the resulting array: either to drop all, to drop none, to drop only the ones that -have been sliced or to drop only the ones that have not been sliced.\cr\cr +have been sliced or to drop only the ones that have not been sliced.\cr If an array is provided without dimension names, dimension names taken from the parameter \code{dim_names} will be added to the array. } -\usage{ -Subset(x, along, indices, drop = FALSE) -} -\arguments{ - \item{x}{ -A multidimensional array to be sliced. It can have dimension names either -in \code{names(dim(x))} or either in the attribute 'dimensions'. - } - \item{along}{ -Vector with references to the dimensions to take the subset from: either -integers or dimension names. - } - \item{indices}{ -List of indices to take from each dimension specified in 'along'. If a single -dimension is specified in 'along' the indices can be directly provided as a -single integer or as a vector. - } - \item{drop}{ -Whether to drop all the dimensions of length 1 in the resulting array, none, -only those that are specified in 'along', or only those that are not specified -in 'along'. The possible values are, respectively: 'all' or TRUE, 'none' or -FALSE, 'selected', and 'non-selected'. - } -} \examples{ -sample_array <- array(1:24, dim = c(dataset = 1, sdate = 2, member = 3, ftime = 4)) -subset <- Subset(sample_array, c('dataset', 'sdate', 'member'), - list(1, 1, 1), drop = 'selected') -} -\author{ -History:\cr -0.0 - 2016-06 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code + data_path <- system.file('sample_data', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = 'all', + longitude = 'all', + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = TRUE) + + subset <- Subset(data, c('dat', 'var', 'time'), + list(1, 1, 1), drop = 'selected') + dim(subset) + } -\keyword{datagen} + -- GitLab From 535a4a15cd50d17454dfbba6f28981efe654142b Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 13:06:34 +0200 Subject: [PATCH 21/60] Add s2dverfication hidden functions .KnownLonNames and .KnownLatNames in Utils() --- R/Utils.R | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/R/Utils.R b/R/Utils.R index 8d06343..2c492ce 100644 --- a/R/Utils.R +++ b/R/Utils.R @@ -1,3 +1,4 @@ +#'@import abind indices <- function(x) { attr(x, 'indices') <- TRUE attr(x, 'values') <- FALSE @@ -725,7 +726,7 @@ chunk <- function(chunk, n_chunks, selectors) { } .MergeChunks <- function(shared_dir, suite_id, remove) { - MergeArrays <- startR:::.MergeArrays + MergeArrays <- .MergeArrays args <- NULL shared_dir <- paste0(shared_dir, '/STARTR_CHUNKING_', suite_id) @@ -826,7 +827,7 @@ chunk <- function(chunk, n_chunks, selectors) { } } - result[[component]] <- startR:::.MergeArrayOfArrays(array_of_chunks) + result[[component]] <- .MergeArrayOfArrays(array_of_chunks) rm(array_of_chunks) gc() } @@ -841,3 +842,11 @@ chunk <- function(chunk, n_chunks, selectors) { result } + +.KnownLonNames <- function() { + known_lon_names <- c('lon', 'longitude', 'x', 'i', 'nav_lon') +} + +.KnownLatNames <- function() { + known_lat_names <- c('lat', 'latitude', 'y', 'j', 'nav_lat') +} -- GitLab From d7541249ad5778a228c0c2ce2c58466c9554cb99 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 15:49:52 +0200 Subject: [PATCH 22/60] Change chunk() to .chunk() --- R/ByChunks.R | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/R/ByChunks.R b/R/ByChunks.R index b2cc6ca..f12715f 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -78,6 +78,7 @@ #' use_attributes = list(data = "Variables")) #' ByChunks(step, data) #' +#'@import multiApply #'@export ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', threads_load = 2, threads_compute = 1, @@ -104,7 +105,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', merge = NULL, total = NULL) - MergeArrays <- startR:::.MergeArrays + MergeArrays <- .MergeArrays # Check input headers if ('startR_cube' %in% class(cube_headers)) { @@ -276,7 +277,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', } cluster[['cores_per_job']] <- round(cluster[['cores_per_job']]) if (cluster[['cores_per_job']] > threads_compute) { - startR:::.message("WARNING: 'threads_compute' should be >= cluster[['cores_per_job']].") + .message("WARNING: 'threads_compute' should be >= cluster[['cores_per_job']].") } if (!is.list(cluster[['extra_queue_params']]) || !all(sapply(cluster[['extra_queue_params']], is.character))) { @@ -325,7 +326,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', if (is.null(all_dims_merged)) { all_dims_merged <- i } else { - all_dims_merged <- startR:::.MergeArrayDims(all_dims_merged, i)[[3]] + all_dims_merged <- .MergeArrayDims(all_dims_merged, i)[[3]] } } all_dimnames <- names(all_dims_merged) @@ -635,7 +636,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', timings[['job_setup']] <- 0 timings[['transfer_back']] <- 0 if (!silent) { - startR:::.message(paste0("Processing chunks... ", + .message(paste0("Processing chunks... ", "remaining time estimate soon...")) } time_before_first_chunk <- Sys.time() @@ -667,7 +668,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', if (!on_cluster) { if (!silent) { - startR:::.message(paste("Loading chunk", i, + .message(paste("Loading chunk", i, "out of", length(chunk_array), "...")) } data <- vector('list', length(cube_headers)) @@ -689,7 +690,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', split_dims_to_alter <- which(names(split_dims[[k]]) %in% names_dims_to_alter) chunks_split_dims[split_dims_to_alter] <- unlist(chunks[names(split_dims[[k]])[split_dims_to_alter]]) chunks_indices_split_dims[split_dims_to_alter] <- chunk_indices[names(split_dims[[k]])[split_dims_to_alter]] - start_call[[names(split_dims)[k]]] <- chunk(chunks_indices_split_dims, chunks_split_dims, + start_call[[names(split_dims)[k]]] <- .chunk(chunks_indices_split_dims, chunks_split_dims, eval(start_call[[names(split_dims)[k]]])) dims_to_alter_to_remove <- which(names_dims_to_alter %in% names(split_dims[[k]])) if (length(dims_to_alter_to_remove) > 0) { @@ -702,7 +703,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', if (length(dims_to_alter) > 0) { for (call_dim in names(attr(start_call, 'Dimensions'))[dims_to_alter]) { - start_call[[call_dim]] <- chunk(chunk_indices[call_dim], chunks[[call_dim]], + start_call[[call_dim]] <- .chunk(chunk_indices[call_dim], chunks[[call_dim]], eval(start_call[[call_dim]])) } } @@ -716,7 +717,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', timings[['load']] <- c(timings[['load']], as.numeric(difftime(t_end_load, t_begin_load, units = 'secs'))) if (!silent) { - startR:::.message(paste("Processing...")) + .message(paste("Processing...")) } #TODO: Find a better way to assign the names of data. When multiple steps for Compute is available, this way may fail. names(data) <- names(cube_headers) @@ -751,7 +752,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', time_before_first_chunk) * (length(chunk_array) - 1) units(estimate) <- 'mins' - startR:::.message( + .message( paste0("Remaining time estimate (at ", format(time_after_first_chunk), ") ", "(neglecting merge time): ", format(estimate)) ) @@ -817,7 +818,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', t_begin_bychunks_setup, units = 'secs')) if (!is_data_dir_shared) { t_begin_transfer <- Sys.time() - startR:::.message("Sending involved files to the cluster file system...") + .message("Sending involved files to the cluster file system...") files_to_send <- NULL #files_to_check <- NULL for (cube_header in 1:length(cube_headers)) { @@ -851,14 +852,14 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', system(paste0("rsync -Rrav '", file_spec, "' '", cluster[['queue_host']], ":", remote_data_dir, "/'")) } - startR:::.message("Files sent successfully.") + .message("Files sent successfully.") t_end_transfer <- Sys.time() timings[['transfer']] <- as.numeric(difftime(t_end_transfer, t_begin_transfer, units = 'secs')) } else { timings[['transfer']] <- 0 } if (!silent) { - startR:::.message(paste0("Processing chunks... ")) + .message(paste0("Processing chunks... ")) } time_begin_first_chunk <- Sys.time() # time_after_first_chunk <- NULL @@ -875,7 +876,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', class(startr_exec) <- 'startR_exec' if (wait) { if (!silent) { - startR:::.message(paste0("Remaining time estimate soon... ")) + .message(paste0("Remaining time estimate soon... ")) # while (is.null(time_after_first_chunk)) { # if (any(grepl('.*\\.Rds$', list.files(ecflow_suite_dir_suite)))) { # time_after_first_chunk <- Sys.time() @@ -884,7 +885,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', # ceiling((prod(unlist(chunks)) - cluster[['max_jobs']]) / # cluster[['max_jobs']]) # units(estimate) <- 'mins' - # startR:::.message( + # .message( # paste0('Remaining time estimate (neglecting queue and ', # 'merge time) (at ', format(time_after_first_chunk), # '): ', format(estimate), ' (', @@ -908,7 +909,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', startr_exec[['t_begin_first_chunk']] <- time_begin_first_chunk } result <- Collect(startr_exec, wait = TRUE) - startR:::.message("Computation ended successfully.") + .message("Computation ended successfully.") result } else { startr_exec @@ -918,7 +919,7 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', timings[['concurrent_chunks']] <- 1 t_begin_merge <- Sys.time() for (component in 1:length(arrays_of_results)) { - arrays_of_results[[component]] <- startR:::.MergeArrayOfArrays(arrays_of_results[[component]]) + arrays_of_results[[component]] <- .MergeArrayOfArrays(arrays_of_results[[component]]) } t_end_merge <- Sys.time() timings[['merge']] <- as.numeric(difftime(t_end_merge, t_begin_merge, units = 'secs')) -- GitLab From d8409624bb751f2d19854d266a4bb866106b1de5 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 17:32:50 +0200 Subject: [PATCH 23/60] Correct unit test for v1.0.3 --- tests/testthat/test-Start-split-merge.R | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/testthat/test-Start-split-merge.R b/tests/testthat/test-Start-split-merge.R index a88be8b..7a938a5 100644 --- a/tests/testthat/test-Start-split-merge.R +++ b/tests/testthat/test-Start-split-merge.R @@ -49,12 +49,12 @@ obs <- Start(dat = path.obs, ) expect_equal( obs[1, 1, 1, 1, 2, 2, 1:3], - c(6.802123, 7.110264, 7.584915), + c(6.968349, 6.604249, 7.563990), tolerance = 0.0001 ) expect_equal( mean(obs), - 5.751444, + 5.726787, tolerance = 0.0001 ) expect_equal( @@ -89,12 +89,12 @@ obs <- Start(dat = path.obs, ) expect_equal( obs[1, 1, 1, 1, 10:13], - c(4.076760, 7.644944, 4.589063, 4.402223), + c(3.777488, 7.563611, 3.737108, 4.478187), tolerance = 0.0001 ) expect_equal( mean(obs), - 5.751444, + 5.726787, tolerance = 0.0001 ) expect_equal( @@ -129,12 +129,12 @@ obs <- Start(dat = path.obs, ) expect_equal( obs[1, 1, 1, 1, 10:13], - c(4.076760, 7.644944, 4.589063, 4.402223), + c(3.777488, 7.563611, 3.737108, 4.478187), tolerance = 0.0001 ) expect_equal( mean(obs, na.rm = T), - 5.751444, + 5.726787, tolerance = 0.0001 ) expect_equal( -- GitLab From da9f806231a3ac3f44eaedb7f3e9878809fe6338 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 17:37:27 +0200 Subject: [PATCH 24/60] Revise for R CMD check --- .Rbuildignore | 17 ++++++++++++----- DESCRIPTION | 3 ++- R/AddStep.R | 8 ++++---- R/ByChunks.R | 4 ++-- R/CDORemapper.R | 6 +++--- R/Collect.R | 6 +++--- R/Sort.R | 5 +++-- R/Start.R | 38 +++++++++++++++++++++++--------------- R/Utils.R | 19 +++++++++++++++++-- man/CircularSort.Rd | 38 -------------------------------------- 10 files changed, 69 insertions(+), 75 deletions(-) delete mode 100644 man/CircularSort.Rd diff --git a/.Rbuildignore b/.Rbuildignore index 834c4fa..49c646d 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,5 +1,12 @@ -.git -.gitignore -.tar.gz -.pdf -./.nc +.*\.git$ +.*\.gitignore$ +.*\.tar.gz$ +.*\.pdf$ +.*^(?!inst)\.nc$ +sample_data +README\.Rmd$ +README\.md$ +\..*\.RData$ +vignettes +.gitlab-ci.yml + diff --git a/DESCRIPTION b/DESCRIPTION index 3278b6a..e29cc6a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -29,7 +29,8 @@ Imports: easyNCDF, s2dverification Suggests: - testthat + stats, + utils License: LGPL-3 URL: https://earth.bsc.es/gitlab/es/startR/ BugReports: https://earth.bsc.es/gitlab/es/startR/issues diff --git a/R/AddStep.R b/R/AddStep.R index c9b6520..918a26a 100644 --- a/R/AddStep.R +++ b/R/AddStep.R @@ -6,7 +6,7 @@ #'@param inputs One or a list of objects of the class 'startR_cube' returned by #' Start(), indicating the data to be processed. #'@param step_fun A startR step function as returned by Step(). -#'@param {\dots} Additional parameters for the inputs of function defined in +#'@param \code{\dots} Additional parameters for the inputs of function defined in #' 'step_fun' by Step(). #' #'@return A list of the class 'startR_workflow' containing all the objects @@ -98,7 +98,7 @@ AddStep <- function(inputs, step_fun, ...) { names(dims1) <- previous_target_dims dims2 <- rep(1, length(attr(inputs[[input]], 'TargetDims'))) names(dims2) <- attr(inputs[[input]], 'TargetDims') - previous_target_dims <- names(startR:::.MergeArrayDims(dims1, dims2)[[1]]) + previous_target_dims <- names(.MergeArrayDims(dims1, dims2)[[1]]) } } new_input_dims <- attr(inputs[[input]], 'Dimensions') @@ -108,7 +108,7 @@ AddStep <- function(inputs, step_fun, ...) { if (is.null(all_input_dims)) { all_input_dims <- new_input_dims } else { - all_input_dims <- startR:::.MergeArrayDims(all_input_dims, new_input_dims)[[1]] + all_input_dims <- .MergeArrayDims(all_input_dims, new_input_dims)[[1]] } } @@ -118,7 +118,7 @@ AddStep <- function(inputs, step_fun, ...) { names(dims1) <- previous_target_dims dims2 <- rep(1, length(new_target_dims)) names(dims2) <- new_target_dims - target_dims <- names(startR:::.MergeArrayDims(dims1, dims2)[[1]]) + target_dims <- names(.MergeArrayDims(dims1, dims2)[[1]]) for (output in 1:length(attr(step_fun, 'OutputDims'))) { workflow <- list(inputs = inputs, fun = step_fun, diff --git a/R/ByChunks.R b/R/ByChunks.R index f12715f..2b226ca 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -8,7 +8,7 @@ #' details of operation. #'@param cube_headers A list with the class 'startR_cube' returned by Start(). #' It contains the details of data to be operated. -#'@param {\dots} Additional parameters for the inputs of 'step_fun'. +#'@param \code{\dots} Additional parameters for the inputs of 'step_fun'. #'@param chunks A named list of dimensions which to split the data along and #' the number of chunks to make for each. The chunked dimension can only be #' those not required as the target dimension in function Step(). The default @@ -51,7 +51,7 @@ #' #'@examples #' # ByChunks() is internally used in Compute(), not intended to be used by -#' users. The example just illustrates the inputs of ByChunks(). +#' # users. The example just illustrates the inputs of ByChunks(). #' data_path <- system.file('sample_data', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') diff --git a/R/CDORemapper.R b/R/CDORemapper.R index 4985208..9e01b78 100644 --- a/R/CDORemapper.R +++ b/R/CDORemapper.R @@ -16,7 +16,7 @@ #'@param file_selectors A charcter vector indicating the information of the path of #' the file parameter 'data_array' comes from. See details in the documentation of #' the parameter 'transform' of the function Start(). The default value is NULL. -#'@param {\dots} A list of additional parameters to adjust the transform process, +#'@param \code{\dots} A list of additional parameters to adjust the transform process, #' as provided in the parameter 'transform_params' in a Start() call. See details #' in the documentation of the parameter 'transform' of the function Start(). #' @@ -47,8 +47,8 @@ #'@export CDORemapper <- function(data_array, variables, file_selectors = NULL, ...) { file_dims <- names(file_selectors) - known_lon_names <- s2dverification:::.KnownLonNames() - known_lat_names <- s2dverification:::.KnownLatNames() + known_lon_names <- .KnownLonNames() + known_lat_names <- .KnownLatNames() if (!any(known_lon_names %in% names(variables)) || !any(known_lat_names %in% names(variables))) { stop("The longitude and latitude variables must be requested in ", diff --git a/R/Collect.R b/R/Collect.R index 27a89b1..45449ff 100644 --- a/R/Collect.R +++ b/R/Collect.R @@ -151,7 +151,7 @@ Collect <- function(startr_exec, wait = TRUE, remove = TRUE) { ceiling((prod(unlist(chunks)) - cluster[['max_jobs']]) / cluster[['max_jobs']]) units(estimate) <- 'mins' - startR:::.message( + .message( paste0('Remaining time estimate (neglecting queue and ', 'merge time) (at ', format(time_after_first_chunk), '): ', format(estimate), ' (', @@ -224,7 +224,7 @@ Collect <- function(startr_exec, wait = TRUE, remove = TRUE) { ceiling((prod(unlist(chunks)) - cluster[['max_jobs']]) / cluster[['max_jobs']]) units(estimate) <- 'mins' - startR:::.message( + .message( paste0('Remaining time estimate (neglecting queue and ', 'merge time) (at ', format(time_after_first_chunk), '): ', format(estimate), ' (', @@ -256,7 +256,7 @@ Collect <- function(startr_exec, wait = TRUE, remove = TRUE) { "system. Store the result after Collect() ends if needed.") } t_begin_merge <- Sys.time() - result <- startR:::.MergeChunks(ecflow_suite_dir, suite_id, remove) + result <- .MergeChunks(ecflow_suite_dir, suite_id, remove) t_end_merge <- Sys.time() timings[['merge']] <- as.numeric(difftime(t_end_merge, t_begin_merge, units = 'secs')) received_files <- list.files(ecflow_suite_dir_suite, full.names = TRUE) diff --git a/R/Sort.R b/R/Sort.R index 9445f48..7882da8 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -10,10 +10,11 @@ #'values, where any values beyond the limits specified in the parameters #'\code{start} and \code{end} is applied a modulus to fall in the specified #'range. This is useful for circular coordinates such as the Earth longitudes. - +#'@name Sort +#'@alias CircularSort #'@param start A numeric indicating the lower bound of the circular range. #'@param end A numeric indicating the upper bound of the circular range. -#'@param {\dots} Additional parameters to adjust the reorderig (sent internally +#'@param \code{\dots} Additional parameters to adjust the reorderig (sent internally #' to the function \code{sort()}). #' #'@return diff --git a/R/Start.R b/R/Start.R index 1f3fb7a..ff8f367 100644 --- a/R/Start.R +++ b/R/Start.R @@ -70,7 +70,7 @@ #'in the measure that it is retrieved by the interface functions for a specific #'file format. #' -#'@param {\dots} A selection of custemized parameters depending on the data +#'@param \code{\dots} A selection of custemized parameters depending on the data #'format. When we retrieve data from one or a collection of data sets, #'the involved data can be perceived as belonging to a large multi-dimensional #'array. For instance, let us consider an example case. We want to retrieve data @@ -627,6 +627,13 @@ #' example, if the dimension 'time' extends across the dimension 'chunk' and #' \code{merge_across_dims = TRUE}, the resulting data array will only contain #' only the dimension 'time' as long as all the chunks together. +#'@param merge_across_dims_narm A logical value indicating whether to remove +#' the additional NAs from data when parameter 'merge_across_dims' is TRUE. +#' It is helpful when the length of the to-be-merged dimension is different +#' across another dimension. For example, if the dimension 'time' extends +#' across dimension 'chunk', and the time length along the first chunk is 2 +#' while along the second chunk is 10. Setting this parameter as TRUE can +#' remove the additional 8 NAs at position 3 to 10. The default value is FALSE. #'@param split_multiselected_dims A logical value indicating whether to split a #' dimension that has been selected with a multidimensional array of selectors #' into as many dimensions as present in the selector array. The default value @@ -761,6 +768,7 @@ #' time = 'sdate'), #' retrieve = FALSE) #' +#'@import bigmemory multiApply parallel abind future #'@export Start <- function(..., # dim = indices/selectors, # dim_var = 'var', @@ -2816,7 +2824,7 @@ Start <- function(..., # dim = indices/selectors, #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!") + stop("The case is goes_across_prime_meridian but no adjustion for the indices!") } if (any(is.na(sub_array_of_indices))) { @@ -3022,7 +3030,7 @@ Start <- function(..., # dim = indices/selectors, # Before changing crop, first we need to find the name of longitude. # NOTE: The potential bug here (also the bug for CDORemapper): the lon name # is limited (only the ones listed in .KnownLonNames() are available. - known_lon_names <- s2dverification:::.KnownLonNames() + known_lon_names <- .KnownLonNames() lon_name <- names(subset_vars_to_transform)[which(names(subset_vars_to_transform) %in% known_lon_names)[1]] # NOTE: The cases not considered: (1) if lon reorder(decreasing = T) @@ -3656,10 +3664,10 @@ Start <- function(..., # dim = indices/selectors, # TODO: try performance of storing all in cols instead of rows # Create the shared memory array, and a pointer to it, to be sent # to the work pieces. - data_array <- big.matrix(nrow = prod(final_dims), ncol = 1) - shared_matrix_pointer <- describe(data_array) + data_array <- bigmemory::big.matrix(nrow = prod(final_dims), ncol = 1) + shared_matrix_pointer <- bigmemory::describe(data_array) if (is.null(num_procs)) { - num_procs <- availableCores() + num_procs <- future::availableCores() } # Creating a shared tmp folder to store metadata from each chunk array_of_metadata_flags <- array(FALSE, dim = dim(array_of_files_to_load)) @@ -3877,18 +3885,18 @@ Start <- function(..., # dim = indices/selectors, transform_params = transform_params, silent = silent, debug = debug) } else { - cluster <- makeCluster(num_procs, outfile = "") + cluster <- parallel::makeCluster(num_procs, outfile = "") # Send the heavy work to the workers work_errors <- try({ - found_files <- clusterApplyLB(cluster, work_pieces, .LoadDataFile, - shared_matrix_pointer = shared_matrix_pointer, - file_data_reader = file_data_reader, - synonims = synonims, - transform = transform, - transform_params = transform_params, - silent = silent, debug = debug) + found_files <- parallel::clusterApplyLB(cluster, work_pieces, .LoadDataFile, + shared_matrix_pointer = shared_matrix_pointer, + file_data_reader = file_data_reader, + synonims = synonims, + transform = transform, + transform_params = transform_params, + silent = silent, debug = debug) }) - stopCluster(cluster) + parallel::stopCluster(cluster) } if (!silent) { diff --git a/R/Utils.R b/R/Utils.R index 2c492ce..62ce9cb 100644 --- a/R/Utils.R +++ b/R/Utils.R @@ -1,11 +1,26 @@ +#'@name indices +#'@aliases values chunk +#'@title Specify dimension selectors +#'@description The helper functions for use in a \code{Start()} call to define +#'the desired range of dimensions. \code{indices()} selects the indices of the +#'coordinate variable from original data, and \code{values()} specifies the +#'actual value to be matched with the coordinate variable. See details in the +#' documentation of the parameter \code{\dots} of the function \code{Start()}. +#'@param x A numeric vector or a list with two nemeric elements. +#'@return Same as input, but with additional attribute 'indices', 'values', and +#' 'chunk'. #'@import abind +#' +#'@rdname indices +#'@export indices <- function(x) { attr(x, 'indices') <- TRUE attr(x, 'values') <- FALSE attr(x, 'chunk') <- c(chunk = 1, n_chunks = 1) x } - +#'@rdname indices +#'@export values <- function(x) { attr(x, 'indices') <- FALSE attr(x, 'values') <- TRUE @@ -13,7 +28,7 @@ values <- function(x) { x } -chunk <- function(chunk, n_chunks, selectors) { +.chunk <- function(chunk, n_chunks, selectors) { if (any(chunk > n_chunks)) { stop("Requested chunk index out of bounds.") } diff --git a/man/CircularSort.Rd b/man/CircularSort.Rd deleted file mode 100644 index e0a7a5c..0000000 --- a/man/CircularSort.Rd +++ /dev/null @@ -1,38 +0,0 @@ -\name{CircularSort} -\alias{CircularSort} -\title{Circular Sort Dimension Reorder for 'startR'} -\description{ -This is a function that generates a reorder function intended for use as parameter \code{_reorder} in a call to the function \code{Start()} in the package 'startR'. This function complies with the input/output interface required by \code{Start()} defined in the documentation for the parameter \dots of that function. -\cr\cr -The applied reordering consists of a circular sort of the coordinate variable values, where any values beyond the limits specified in the parameters \code{start} and \code{end} is applied a modulus to fall in the specified range. This is useful for circular dimensions such as the Earth longitudes. -} -\usage{ -CircularSort(start, end, ...) -} -\arguments{ - \item{start}{ -Numeric lower bound of the circular range. - } - \item{end}{ -Numeric upper bound of the circular range. - } - \item{\dots}{ -Additional parameters to adjust the reorderig (sent internally to the function \code{sort()}). - } -} -\value{ -List with the reordered values in the component \code{$x} and the permutation indices in the component \code{$ix}. See details in the documentation of the parameter \dots of the function \code{Start()}. -} -\author{ -History:\cr -0.0 - 2017-04 (N. Manubens, \email{nicolau.manubens at bsc.es}) - Original code -} -\seealso{ -\code{\link[startR]{Sort}} -} -\examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use CircularSort(). -} -\keyword{array} -\keyword{manip} -- GitLab From e059d64568d538861342992c6cf781a6d0458b8d Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 17:38:06 +0200 Subject: [PATCH 25/60] Revise for R CMD check --- NAMESPACE | 7 +++++++ man/AddStep.Rd | 2 +- man/ByChunks.Rd | 4 ++-- man/CDORemapper.Rd | 2 +- man/Sort.Rd | 2 +- man/Start.Rd | 10 +++++++++- 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 49d546d..93b16a6 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -16,5 +16,12 @@ export(Sort) export(Start) export(Step) export(Subset) +export(indices) +export(values) +import(abind) +import(bigmemory) import(easyNCDF) +import(future) +import(multiApply) +import(parallel) importFrom(s2dverification,CDORemap) diff --git a/man/AddStep.Rd b/man/AddStep.Rd index 4e38414..c61d81c 100644 --- a/man/AddStep.Rd +++ b/man/AddStep.Rd @@ -12,7 +12,7 @@ Start(), indicating the data to be processed.} \item{step_fun}{A startR step function as returned by Step().} -\item{{\dots}}{Additional parameters for the inputs of function defined in +\item{\code{\dots}}{Additional parameters for the inputs of function defined in 'step_fun' by Step().} } \value{ diff --git a/man/ByChunks.Rd b/man/ByChunks.Rd index 880d759..7156084 100644 --- a/man/ByChunks.Rd +++ b/man/ByChunks.Rd @@ -59,7 +59,7 @@ object with all the information of the startR execution that can be stored in your disk. After that, the R session can be closed and the results can be collected later with the Collect() function. The default value is TRUE.} -\item{{\dots}}{Additional parameters for the inputs of 'step_fun'.} +\item{\code{\dots}}{Additional parameters for the inputs of 'step_fun'.} } \value{ A list of data arrays for the output returned by the last step in the @@ -73,7 +73,7 @@ profiling information. } \examples{ # ByChunks() is internally used in Compute(), not intended to be used by - users. The example just illustrates the inputs of ByChunks(). +# users. The example just illustrates the inputs of ByChunks(). data_path <- system.file('sample_data', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') diff --git a/man/CDORemapper.Rd b/man/CDORemapper.Rd index de394e3..fe159c2 100644 --- a/man/CDORemapper.Rd +++ b/man/CDORemapper.Rd @@ -18,7 +18,7 @@ parameter 'transform' of the function Start().} the file parameter 'data_array' comes from. See details in the documentation of the parameter 'transform' of the function Start(). The default value is NULL.} -\item{{\dots}}{A list of additional parameters to adjust the transform process, +\item{\code{\dots}}{A list of additional parameters to adjust the transform process, as provided in the parameter 'transform_params' in a Start() call. See details in the documentation of the parameter 'transform' of the function Start().} } diff --git a/man/Sort.Rd b/man/Sort.Rd index ea4d893..de2ec5b 100644 --- a/man/Sort.Rd +++ b/man/Sort.Rd @@ -14,7 +14,7 @@ CircularSort(start, end, ...) \item{end}{A numeric indicating the upper bound of the circular range.} -\item{{\dots}}{Additional parameters to adjust the reorderig (sent internally +\item{\code{\dots}}{Additional parameters to adjust the reorderig (sent internally to the function \code{sort()}).} } \value{ diff --git a/man/Start.Rd b/man/Start.Rd index fd8c3db..4534e03 100644 --- a/man/Start.Rd +++ b/man/Start.Rd @@ -313,6 +313,14 @@ example, if the dimension 'time' extends across the dimension 'chunk' and \code{merge_across_dims = TRUE}, the resulting data array will only contain only the dimension 'time' as long as all the chunks together.} +\item{merge_across_dims_narm}{A logical value indicating whether to remove +the additional NAs from data when parameter 'merge_across_dims' is TRUE. +It is helpful when the length of the to-be-merged dimension is different +across another dimension. For example, if the dimension 'time' extends +across dimension 'chunk', and the time length along the first chunk is 2 +while along the second chunk is 10. Setting this parameter as TRUE can +remove the additional 8 NAs at position 3 to 10. The default value is FALSE.} + \item{split_multiselected_dims}{A logical value indicating whether to split a dimension that has been selected with a multidimensional array of selectors into as many dimensions as present in the selector array. The default value @@ -369,7 +377,7 @@ or not (TRUE). The default value is FALSE.} progress and operations in a \code{Start} call (TRUE) or not (FALSE). The default value is FALSE.} -\item{{\dots}}{A selection of custemized parameters depending on the data +\item{\code{\dots}}{A selection of custemized parameters depending on the data format. When we retrieve data from one or a collection of data sets, the involved data can be perceived as belonging to a large multi-dimensional array. For instance, let us consider an example case. We want to retrieve data -- GitLab From 2324b60af903f75bbdd65ef41b680284ea629bae Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 17:58:23 +0200 Subject: [PATCH 26/60] Correct \dots in headers --- R/AddStep.R | 2 +- R/ByChunks.R | 2 +- R/CDORemapper.R | 2 +- R/SelectorChecker.R | 6 +++--- R/Sort.R | 4 ++-- R/Start.R | 2 +- R/Utils.R | 2 +- man/AddStep.Rd | 2 +- man/ByChunks.Rd | 2 +- man/CDORemapper.Rd | 2 +- man/SelectorChecker.Rd | 6 +++--- man/Sort.Rd | 2 +- man/Start.Rd | 2 +- man/indices.Rd | 33 ++++++++++++++++----------------- 14 files changed, 34 insertions(+), 35 deletions(-) diff --git a/R/AddStep.R b/R/AddStep.R index 918a26a..1601850 100644 --- a/R/AddStep.R +++ b/R/AddStep.R @@ -6,7 +6,7 @@ #'@param inputs One or a list of objects of the class 'startR_cube' returned by #' Start(), indicating the data to be processed. #'@param step_fun A startR step function as returned by Step(). -#'@param \code{\dots} Additional parameters for the inputs of function defined in +#'@param \dots Additional parameters for the inputs of function defined in #' 'step_fun' by Step(). #' #'@return A list of the class 'startR_workflow' containing all the objects diff --git a/R/ByChunks.R b/R/ByChunks.R index 2b226ca..9166a50 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -8,7 +8,7 @@ #' details of operation. #'@param cube_headers A list with the class 'startR_cube' returned by Start(). #' It contains the details of data to be operated. -#'@param \code{\dots} Additional parameters for the inputs of 'step_fun'. +#'@param \dots Additional parameters for the inputs of 'step_fun'. #'@param chunks A named list of dimensions which to split the data along and #' the number of chunks to make for each. The chunked dimension can only be #' those not required as the target dimension in function Step(). The default diff --git a/R/CDORemapper.R b/R/CDORemapper.R index 9e01b78..f805390 100644 --- a/R/CDORemapper.R +++ b/R/CDORemapper.R @@ -16,7 +16,7 @@ #'@param file_selectors A charcter vector indicating the information of the path of #' the file parameter 'data_array' comes from. See details in the documentation of #' the parameter 'transform' of the function Start(). The default value is NULL. -#'@param \code{\dots} A list of additional parameters to adjust the transform process, +#'@param \dots A list of additional parameters to adjust the transform process, #' as provided in the parameter 'transform_params' in a Start() call. See details #' in the documentation of the parameter 'transform' of the function Start(). #' diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index d5d90f9..a5c8a60 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -10,11 +10,11 @@ #'@param selectors A vector or a list of two of numeric indices or variable #' values to be retrieved for a dimension, automatically provided by Start(). #' See details in the documentation of the parameters 'selector_checker' and -#' {\dots} of the function Start(). +#' '\dots' of the function Start(). #'@param var A vector of values of a coordinate variable for which to search #' matches with the provided indices or values in the parameter 'selectors', #' automatically provided by Start(). See details in the documentation of the -#' parameters 'selector_checker' and {\dots} of the function Start(). The +#' parameters 'selector_checker' and '\dots' of the function Start(). The #' default value is NULL. When not specified, SelectorChecker() simply returns #' the input indices. #'@param return_indices A logical value automatically configured by Start(), @@ -22,7 +22,7 @@ #' after the matching. The default value is TRUE. #'@param tolerance A numeric value indicating a tolerance value to be used in #' the matching of 'selectors' and 'var'. See documentation on -#' _tolerance in {\dots} in the documentation of the function Start(). +#' _tolerance in \dots in the documentation of the function Start(). #' The default value is NULL. #' #'@return A vector of either the indices of the matching values (if diff --git a/R/Sort.R b/R/Sort.R index 7882da8..bf7789c 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -11,10 +11,10 @@ #'\code{start} and \code{end} is applied a modulus to fall in the specified #'range. This is useful for circular coordinates such as the Earth longitudes. #'@name Sort -#'@alias CircularSort +#'@aliases CircularSort #'@param start A numeric indicating the lower bound of the circular range. #'@param end A numeric indicating the upper bound of the circular range. -#'@param \code{\dots} Additional parameters to adjust the reorderig (sent internally +#'@param \dots Additional parameters to adjust the reorderig (sent internally #' to the function \code{sort()}). #' #'@return diff --git a/R/Start.R b/R/Start.R index ff8f367..5174100 100644 --- a/R/Start.R +++ b/R/Start.R @@ -70,7 +70,7 @@ #'in the measure that it is retrieved by the interface functions for a specific #'file format. #' -#'@param \code{\dots} A selection of custemized parameters depending on the data +#'@param \dots A selection of custemized parameters depending on the data #'format. When we retrieve data from one or a collection of data sets, #'the involved data can be perceived as belonging to a large multi-dimensional #'array. For instance, let us consider an example case. We want to retrieve data diff --git a/R/Utils.R b/R/Utils.R index 62ce9cb..c4e7039 100644 --- a/R/Utils.R +++ b/R/Utils.R @@ -1,5 +1,5 @@ #'@name indices -#'@aliases values chunk +#'@aliases values #'@title Specify dimension selectors #'@description The helper functions for use in a \code{Start()} call to define #'the desired range of dimensions. \code{indices()} selects the indices of the diff --git a/man/AddStep.Rd b/man/AddStep.Rd index c61d81c..d40208e 100644 --- a/man/AddStep.Rd +++ b/man/AddStep.Rd @@ -12,7 +12,7 @@ Start(), indicating the data to be processed.} \item{step_fun}{A startR step function as returned by Step().} -\item{\code{\dots}}{Additional parameters for the inputs of function defined in +\item{\dots}{Additional parameters for the inputs of function defined in 'step_fun' by Step().} } \value{ diff --git a/man/ByChunks.Rd b/man/ByChunks.Rd index 7156084..8d61fa1 100644 --- a/man/ByChunks.Rd +++ b/man/ByChunks.Rd @@ -59,7 +59,7 @@ object with all the information of the startR execution that can be stored in your disk. After that, the R session can be closed and the results can be collected later with the Collect() function. The default value is TRUE.} -\item{\code{\dots}}{Additional parameters for the inputs of 'step_fun'.} +\item{\dots}{Additional parameters for the inputs of 'step_fun'.} } \value{ A list of data arrays for the output returned by the last step in the diff --git a/man/CDORemapper.Rd b/man/CDORemapper.Rd index fe159c2..c5b2f4e 100644 --- a/man/CDORemapper.Rd +++ b/man/CDORemapper.Rd @@ -18,7 +18,7 @@ parameter 'transform' of the function Start().} the file parameter 'data_array' comes from. See details in the documentation of the parameter 'transform' of the function Start(). The default value is NULL.} -\item{\code{\dots}}{A list of additional parameters to adjust the transform process, +\item{\dots}{A list of additional parameters to adjust the transform process, as provided in the parameter 'transform_params' in a Start() call. See details in the documentation of the parameter 'transform' of the function Start().} } diff --git a/man/SelectorChecker.Rd b/man/SelectorChecker.Rd index 6bbe17a..d02c650 100644 --- a/man/SelectorChecker.Rd +++ b/man/SelectorChecker.Rd @@ -11,12 +11,12 @@ SelectorChecker(selectors, var = NULL, return_indices = TRUE, \item{selectors}{A vector or a list of two of numeric indices or variable values to be retrieved for a dimension, automatically provided by Start(). See details in the documentation of the parameters 'selector_checker' and -{\dots} of the function Start().} +'\dots' of the function Start().} \item{var}{A vector of values of a coordinate variable for which to search matches with the provided indices or values in the parameter 'selectors', automatically provided by Start(). See details in the documentation of the -parameters 'selector_checker' and {\dots} of the function Start(). The +parameters 'selector_checker' and '\dots' of the function Start(). The default value is NULL. When not specified, SelectorChecker() simply returns the input indices.} @@ -26,7 +26,7 @@ after the matching. The default value is TRUE.} \item{tolerance}{A numeric value indicating a tolerance value to be used in the matching of 'selectors' and 'var'. See documentation on -_tolerance in {\dots} in the documentation of the function Start(). +_tolerance in \dots in the documentation of the function Start(). The default value is NULL.} } \value{ diff --git a/man/Sort.Rd b/man/Sort.Rd index de2ec5b..3411f86 100644 --- a/man/Sort.Rd +++ b/man/Sort.Rd @@ -14,7 +14,7 @@ CircularSort(start, end, ...) \item{end}{A numeric indicating the upper bound of the circular range.} -\item{\code{\dots}}{Additional parameters to adjust the reorderig (sent internally +\item{\dots}{Additional parameters to adjust the reorderig (sent internally to the function \code{sort()}).} } \value{ diff --git a/man/Start.Rd b/man/Start.Rd index 4534e03..121e2c5 100644 --- a/man/Start.Rd +++ b/man/Start.Rd @@ -377,7 +377,7 @@ or not (TRUE). The default value is FALSE.} progress and operations in a \code{Start} call (TRUE) or not (FALSE). The default value is FALSE.} -\item{\code{\dots}}{A selection of custemized parameters depending on the data +\item{\dots}{A selection of custemized parameters depending on the data format. When we retrieve data from one or a collection of data sets, the involved data can be perceived as belonging to a large multi-dimensional array. For instance, let us consider an example case. We want to retrieve data diff --git a/man/indices.Rd b/man/indices.Rd index e5b086f..4bb890b 100644 --- a/man/indices.Rd +++ b/man/indices.Rd @@ -1,27 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Utils.R \name{indices} \alias{indices} -\title{Mark Dimension Selectors as Indices} -\description{ -Helper function intended for use in a call to the function \code{Start} in the package 'startR', to explicitly mark that a set of provided indices to subset one of the requested dimensions are actually indices and not values to be matched against a coordinate variable. See details in the documentation of the parameter \dots of the function \code{Start()}. -} +\alias{values} +\title{Specify dimension selectors} \usage{ indices(x) + +values(x) } \arguments{ - \item{x}{ -Numeric vector or list with two numeric elements. - } +\item{x}{A numeric vector or a list with two nemeric elements.} } \value{ -The same as the input, but with an additional attribute 'indices' with the value TRUE, marking the indices as numeric indices. +Same as input, but with additional attribute 'indices', 'values', and + 'chunk'. } -\author{ -See details in the documentation of the parameter \code{transform} of the function \code{Start()}. -} -\examples{ -## Check https://earth.bsc.es/gitlab/es/startR for step-by-step examples -## of Start() that use indices(). +\description{ +The helper functions for use in a \code{Start()} call to define +the desired range of dimensions. \code{indices()} selects the indices of the +coordinate variable from original data, and \code{values()} specifies the +actual value to be matched with the coordinate variable. See details in the +documentation of the parameter \code{\dots} of the function \code{Start()}. } -\keyword{IO} -\keyword{array} -\keyword{manip} + -- GitLab From 82bd35c4f947bbff2a37032d82aea30bd2bb6341 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 18:14:55 +0200 Subject: [PATCH 27/60] Rbuildignore tests/ and inst/doc/ --- .Rbuildignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 49c646d..b44a733 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -3,10 +3,10 @@ .*\.tar.gz$ .*\.pdf$ .*^(?!inst)\.nc$ -sample_data README\.Rmd$ README\.md$ \..*\.RData$ vignettes .gitlab-ci.yml - +^inst/doc/$ +^tests/$ -- GitLab From fe2b8434a9e5802d7231d7f654187783afd1ce84 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 19:35:52 +0200 Subject: [PATCH 28/60] Try fixing .Rbuildignore --- .Rbuildignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.Rbuildignore b/.Rbuildignore index b44a733..d632ce4 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -10,3 +10,7 @@ vignettes .gitlab-ci.yml ^inst/doc/$ ^tests/$ +^inst/doc/figures/$ +^inst/doc/usecase/$ +^tests/testthat/*$ +^inst/doc/usecase/*$ -- GitLab From ae9f326d0bebac274c54cea6ae124e92ee30a07a Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 29 Jul 2020 19:40:26 +0200 Subject: [PATCH 29/60] Try fixing .Rbuildignore --- .Rbuildignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index d632ce4..0b4e057 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,9 +8,11 @@ README\.md$ \..*\.RData$ vignettes .gitlab-ci.yml +^inst/chunking/$ ^inst/doc/$ +^inst/doc/*$ ^tests/$ ^inst/doc/figures/$ ^inst/doc/usecase/$ ^tests/testthat/*$ -^inst/doc/usecase/*$ +^inst/PlotProfiling\.R$ -- GitLab From 2a01e4eeac8a6cf9a834db305100a14f5365f3d7 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 10:27:04 +0200 Subject: [PATCH 30/60] Change sample_data/ to extdata/ --- R/AddStep.R | 2 +- R/ByChunks.R | 2 +- R/CDORemapper.R | 2 +- R/Collect.R | 2 +- R/Compute.R | 2 +- R/NcCloser.R | 2 +- R/NcDataReader.R | 2 +- R/NcDimReader.R | 2 +- R/NcOpener.R | 2 +- R/NcVarReader.R | 2 +- R/Sort.R | 2 +- R/Start.R | 2 +- R/Step.R | 2 +- R/Subset.R | 2 +- .../exp/monthly_mean/tos/tos_19851101.nc | Bin .../exp/monthly_mean/tos/tos_19901101.nc | Bin .../exp/monthly_mean/tos/tos_19951101.nc | Bin .../exp/monthly_mean/tos/tos_20001101.nc | Bin .../exp/monthly_mean/tos/tos_20051101.nc | Bin .../obs/monthly_mean/tos/tos_198511.nc | Bin .../obs/monthly_mean/tos/tos_198512.nc | Bin .../obs/monthly_mean/tos/tos_198601.nc | Bin .../obs/monthly_mean/tos/tos_198602.nc | Bin .../obs/monthly_mean/tos/tos_198603.nc | Bin .../obs/monthly_mean/tos/tos_198604.nc | Bin .../obs/monthly_mean/tos/tos_198605.nc | Bin .../obs/monthly_mean/tos/tos_198606.nc | Bin .../obs/monthly_mean/tos/tos_198607.nc | Bin .../obs/monthly_mean/tos/tos_198608.nc | Bin .../obs/monthly_mean/tos/tos_198609.nc | Bin .../obs/monthly_mean/tos/tos_198610.nc | Bin .../obs/monthly_mean/tos/tos_198611.nc | Bin .../obs/monthly_mean/tos/tos_198612.nc | Bin .../obs/monthly_mean/tos/tos_198701.nc | Bin .../obs/monthly_mean/tos/tos_198702.nc | Bin .../obs/monthly_mean/tos/tos_198703.nc | Bin .../obs/monthly_mean/tos/tos_198704.nc | Bin .../obs/monthly_mean/tos/tos_198705.nc | Bin .../obs/monthly_mean/tos/tos_198706.nc | Bin .../obs/monthly_mean/tos/tos_198707.nc | Bin .../obs/monthly_mean/tos/tos_198708.nc | Bin .../obs/monthly_mean/tos/tos_198709.nc | Bin .../obs/monthly_mean/tos/tos_198710.nc | Bin .../obs/monthly_mean/tos/tos_198711.nc | Bin .../obs/monthly_mean/tos/tos_198712.nc | Bin .../obs/monthly_mean/tos/tos_198801.nc | Bin .../obs/monthly_mean/tos/tos_198802.nc | Bin .../obs/monthly_mean/tos/tos_198803.nc | Bin .../obs/monthly_mean/tos/tos_198804.nc | Bin .../obs/monthly_mean/tos/tos_198805.nc | Bin .../obs/monthly_mean/tos/tos_198806.nc | Bin .../obs/monthly_mean/tos/tos_198807.nc | Bin .../obs/monthly_mean/tos/tos_198808.nc | Bin .../obs/monthly_mean/tos/tos_198809.nc | Bin .../obs/monthly_mean/tos/tos_198810.nc | Bin .../obs/monthly_mean/tos/tos_198811.nc | Bin .../obs/monthly_mean/tos/tos_198812.nc | Bin .../obs/monthly_mean/tos/tos_198901.nc | Bin .../obs/monthly_mean/tos/tos_198902.nc | Bin .../obs/monthly_mean/tos/tos_198903.nc | Bin .../obs/monthly_mean/tos/tos_198904.nc | Bin .../obs/monthly_mean/tos/tos_198905.nc | Bin .../obs/monthly_mean/tos/tos_198906.nc | Bin .../obs/monthly_mean/tos/tos_198907.nc | Bin .../obs/monthly_mean/tos/tos_198908.nc | Bin .../obs/monthly_mean/tos/tos_198909.nc | Bin .../obs/monthly_mean/tos/tos_198910.nc | Bin .../obs/monthly_mean/tos/tos_198911.nc | Bin .../obs/monthly_mean/tos/tos_198912.nc | Bin .../obs/monthly_mean/tos/tos_199001.nc | Bin .../obs/monthly_mean/tos/tos_199002.nc | Bin .../obs/monthly_mean/tos/tos_199003.nc | Bin .../obs/monthly_mean/tos/tos_199004.nc | Bin .../obs/monthly_mean/tos/tos_199005.nc | Bin .../obs/monthly_mean/tos/tos_199006.nc | Bin .../obs/monthly_mean/tos/tos_199007.nc | Bin .../obs/monthly_mean/tos/tos_199008.nc | Bin .../obs/monthly_mean/tos/tos_199009.nc | Bin .../obs/monthly_mean/tos/tos_199010.nc | Bin .../obs/monthly_mean/tos/tos_199011.nc | Bin .../obs/monthly_mean/tos/tos_199012.nc | Bin .../obs/monthly_mean/tos/tos_199101.nc | Bin .../obs/monthly_mean/tos/tos_199102.nc | Bin .../obs/monthly_mean/tos/tos_199103.nc | Bin .../obs/monthly_mean/tos/tos_199104.nc | Bin .../obs/monthly_mean/tos/tos_199105.nc | Bin .../obs/monthly_mean/tos/tos_199106.nc | Bin .../obs/monthly_mean/tos/tos_199107.nc | Bin .../obs/monthly_mean/tos/tos_199108.nc | Bin .../obs/monthly_mean/tos/tos_199109.nc | Bin .../obs/monthly_mean/tos/tos_199110.nc | Bin .../obs/monthly_mean/tos/tos_199111.nc | Bin .../obs/monthly_mean/tos/tos_199112.nc | Bin .../obs/monthly_mean/tos/tos_199201.nc | Bin .../obs/monthly_mean/tos/tos_199202.nc | Bin .../obs/monthly_mean/tos/tos_199203.nc | Bin .../obs/monthly_mean/tos/tos_199204.nc | Bin .../obs/monthly_mean/tos/tos_199205.nc | Bin .../obs/monthly_mean/tos/tos_199206.nc | Bin .../obs/monthly_mean/tos/tos_199207.nc | Bin .../obs/monthly_mean/tos/tos_199208.nc | Bin .../obs/monthly_mean/tos/tos_199209.nc | Bin .../obs/monthly_mean/tos/tos_199210.nc | Bin .../obs/monthly_mean/tos/tos_199211.nc | Bin .../obs/monthly_mean/tos/tos_199212.nc | Bin .../obs/monthly_mean/tos/tos_199301.nc | Bin .../obs/monthly_mean/tos/tos_199302.nc | Bin .../obs/monthly_mean/tos/tos_199303.nc | Bin .../obs/monthly_mean/tos/tos_199304.nc | Bin .../obs/monthly_mean/tos/tos_199305.nc | Bin .../obs/monthly_mean/tos/tos_199306.nc | Bin .../obs/monthly_mean/tos/tos_199307.nc | Bin .../obs/monthly_mean/tos/tos_199308.nc | Bin .../obs/monthly_mean/tos/tos_199309.nc | Bin .../obs/monthly_mean/tos/tos_199310.nc | Bin .../obs/monthly_mean/tos/tos_199311.nc | Bin .../obs/monthly_mean/tos/tos_199312.nc | Bin .../obs/monthly_mean/tos/tos_199401.nc | Bin .../obs/monthly_mean/tos/tos_199402.nc | Bin .../obs/monthly_mean/tos/tos_199403.nc | Bin .../obs/monthly_mean/tos/tos_199404.nc | Bin .../obs/monthly_mean/tos/tos_199405.nc | Bin .../obs/monthly_mean/tos/tos_199406.nc | Bin .../obs/monthly_mean/tos/tos_199407.nc | Bin .../obs/monthly_mean/tos/tos_199408.nc | Bin .../obs/monthly_mean/tos/tos_199409.nc | Bin .../obs/monthly_mean/tos/tos_199410.nc | Bin .../obs/monthly_mean/tos/tos_199411.nc | Bin .../obs/monthly_mean/tos/tos_199412.nc | Bin .../obs/monthly_mean/tos/tos_199501.nc | Bin .../obs/monthly_mean/tos/tos_199502.nc | Bin .../obs/monthly_mean/tos/tos_199503.nc | Bin .../obs/monthly_mean/tos/tos_199504.nc | Bin .../obs/monthly_mean/tos/tos_199505.nc | Bin .../obs/monthly_mean/tos/tos_199506.nc | Bin .../obs/monthly_mean/tos/tos_199507.nc | Bin .../obs/monthly_mean/tos/tos_199508.nc | Bin .../obs/monthly_mean/tos/tos_199509.nc | Bin .../obs/monthly_mean/tos/tos_199510.nc | Bin .../obs/monthly_mean/tos/tos_199511.nc | Bin .../obs/monthly_mean/tos/tos_199512.nc | Bin .../obs/monthly_mean/tos/tos_199601.nc | Bin .../obs/monthly_mean/tos/tos_199602.nc | Bin .../obs/monthly_mean/tos/tos_199603.nc | Bin .../obs/monthly_mean/tos/tos_199604.nc | Bin .../obs/monthly_mean/tos/tos_199605.nc | Bin .../obs/monthly_mean/tos/tos_199606.nc | Bin .../obs/monthly_mean/tos/tos_199607.nc | Bin .../obs/monthly_mean/tos/tos_199608.nc | Bin .../obs/monthly_mean/tos/tos_199609.nc | Bin .../obs/monthly_mean/tos/tos_199610.nc | Bin .../obs/monthly_mean/tos/tos_199611.nc | Bin .../obs/monthly_mean/tos/tos_199612.nc | Bin .../obs/monthly_mean/tos/tos_199701.nc | Bin .../obs/monthly_mean/tos/tos_199702.nc | Bin .../obs/monthly_mean/tos/tos_199703.nc | Bin .../obs/monthly_mean/tos/tos_199704.nc | Bin .../obs/monthly_mean/tos/tos_199705.nc | Bin .../obs/monthly_mean/tos/tos_199706.nc | Bin .../obs/monthly_mean/tos/tos_199707.nc | Bin .../obs/monthly_mean/tos/tos_199708.nc | Bin .../obs/monthly_mean/tos/tos_199709.nc | Bin .../obs/monthly_mean/tos/tos_199710.nc | Bin .../obs/monthly_mean/tos/tos_199711.nc | Bin .../obs/monthly_mean/tos/tos_199712.nc | Bin .../obs/monthly_mean/tos/tos_199801.nc | Bin .../obs/monthly_mean/tos/tos_199802.nc | Bin .../obs/monthly_mean/tos/tos_199803.nc | Bin .../obs/monthly_mean/tos/tos_199804.nc | Bin .../obs/monthly_mean/tos/tos_199805.nc | Bin .../obs/monthly_mean/tos/tos_199806.nc | Bin .../obs/monthly_mean/tos/tos_199807.nc | Bin .../obs/monthly_mean/tos/tos_199808.nc | Bin .../obs/monthly_mean/tos/tos_199809.nc | Bin .../obs/monthly_mean/tos/tos_199810.nc | Bin .../obs/monthly_mean/tos/tos_199811.nc | Bin .../obs/monthly_mean/tos/tos_199812.nc | Bin .../obs/monthly_mean/tos/tos_199901.nc | Bin .../obs/monthly_mean/tos/tos_199902.nc | Bin .../obs/monthly_mean/tos/tos_199903.nc | Bin .../obs/monthly_mean/tos/tos_199904.nc | Bin .../obs/monthly_mean/tos/tos_199905.nc | Bin .../obs/monthly_mean/tos/tos_199906.nc | Bin .../obs/monthly_mean/tos/tos_199907.nc | Bin .../obs/monthly_mean/tos/tos_199908.nc | Bin .../obs/monthly_mean/tos/tos_199909.nc | Bin .../obs/monthly_mean/tos/tos_199910.nc | Bin .../obs/monthly_mean/tos/tos_199911.nc | Bin .../obs/monthly_mean/tos/tos_199912.nc | Bin .../obs/monthly_mean/tos/tos_200001.nc | Bin .../obs/monthly_mean/tos/tos_200002.nc | Bin .../obs/monthly_mean/tos/tos_200003.nc | Bin .../obs/monthly_mean/tos/tos_200004.nc | Bin .../obs/monthly_mean/tos/tos_200005.nc | Bin .../obs/monthly_mean/tos/tos_200006.nc | Bin .../obs/monthly_mean/tos/tos_200007.nc | Bin .../obs/monthly_mean/tos/tos_200008.nc | Bin .../obs/monthly_mean/tos/tos_200009.nc | Bin .../obs/monthly_mean/tos/tos_200010.nc | Bin .../obs/monthly_mean/tos/tos_200011.nc | Bin .../obs/monthly_mean/tos/tos_200012.nc | Bin .../obs/monthly_mean/tos/tos_200101.nc | Bin .../obs/monthly_mean/tos/tos_200102.nc | Bin .../obs/monthly_mean/tos/tos_200103.nc | Bin .../obs/monthly_mean/tos/tos_200104.nc | Bin .../obs/monthly_mean/tos/tos_200105.nc | Bin .../obs/monthly_mean/tos/tos_200106.nc | Bin .../obs/monthly_mean/tos/tos_200107.nc | Bin .../obs/monthly_mean/tos/tos_200108.nc | Bin .../obs/monthly_mean/tos/tos_200109.nc | Bin .../obs/monthly_mean/tos/tos_200110.nc | Bin .../obs/monthly_mean/tos/tos_200111.nc | Bin .../obs/monthly_mean/tos/tos_200112.nc | Bin .../obs/monthly_mean/tos/tos_200201.nc | Bin .../obs/monthly_mean/tos/tos_200202.nc | Bin .../obs/monthly_mean/tos/tos_200203.nc | Bin .../obs/monthly_mean/tos/tos_200204.nc | Bin .../obs/monthly_mean/tos/tos_200205.nc | Bin .../obs/monthly_mean/tos/tos_200206.nc | Bin .../obs/monthly_mean/tos/tos_200207.nc | Bin .../obs/monthly_mean/tos/tos_200208.nc | Bin .../obs/monthly_mean/tos/tos_200209.nc | Bin .../obs/monthly_mean/tos/tos_200210.nc | Bin .../obs/monthly_mean/tos/tos_200211.nc | Bin .../obs/monthly_mean/tos/tos_200212.nc | Bin .../obs/monthly_mean/tos/tos_200301.nc | Bin .../obs/monthly_mean/tos/tos_200302.nc | Bin .../obs/monthly_mean/tos/tos_200303.nc | Bin .../obs/monthly_mean/tos/tos_200304.nc | Bin .../obs/monthly_mean/tos/tos_200305.nc | Bin .../obs/monthly_mean/tos/tos_200306.nc | Bin .../obs/monthly_mean/tos/tos_200307.nc | Bin .../obs/monthly_mean/tos/tos_200308.nc | Bin .../obs/monthly_mean/tos/tos_200309.nc | Bin .../obs/monthly_mean/tos/tos_200310.nc | Bin .../obs/monthly_mean/tos/tos_200311.nc | Bin .../obs/monthly_mean/tos/tos_200312.nc | Bin .../obs/monthly_mean/tos/tos_200401.nc | Bin .../obs/monthly_mean/tos/tos_200402.nc | Bin .../obs/monthly_mean/tos/tos_200403.nc | Bin .../obs/monthly_mean/tos/tos_200404.nc | Bin .../obs/monthly_mean/tos/tos_200405.nc | Bin .../obs/monthly_mean/tos/tos_200406.nc | Bin .../obs/monthly_mean/tos/tos_200407.nc | Bin .../obs/monthly_mean/tos/tos_200408.nc | Bin .../obs/monthly_mean/tos/tos_200409.nc | Bin .../obs/monthly_mean/tos/tos_200410.nc | Bin .../obs/monthly_mean/tos/tos_200411.nc | Bin .../obs/monthly_mean/tos/tos_200412.nc | Bin .../obs/monthly_mean/tos/tos_200501.nc | Bin .../obs/monthly_mean/tos/tos_200502.nc | Bin .../obs/monthly_mean/tos/tos_200503.nc | Bin .../obs/monthly_mean/tos/tos_200504.nc | Bin .../obs/monthly_mean/tos/tos_200505.nc | Bin .../obs/monthly_mean/tos/tos_200506.nc | Bin .../obs/monthly_mean/tos/tos_200507.nc | Bin .../obs/monthly_mean/tos/tos_200508.nc | Bin .../obs/monthly_mean/tos/tos_200509.nc | Bin .../obs/monthly_mean/tos/tos_200510.nc | Bin .../obs/monthly_mean/tos/tos_200511.nc | Bin .../obs/monthly_mean/tos/tos_200512.nc | Bin .../obs/monthly_mean/tos/tos_200601.nc | Bin .../obs/monthly_mean/tos/tos_200602.nc | Bin .../obs/monthly_mean/tos/tos_200603.nc | Bin .../obs/monthly_mean/tos/tos_200604.nc | Bin .../obs/monthly_mean/tos/tos_200605.nc | Bin .../obs/monthly_mean/tos/tos_200606.nc | Bin .../obs/monthly_mean/tos/tos_200607.nc | Bin .../obs/monthly_mean/tos/tos_200608.nc | Bin .../obs/monthly_mean/tos/tos_200609.nc | Bin .../obs/monthly_mean/tos/tos_200610.nc | Bin .../obs/monthly_mean/tos/tos_200611.nc | Bin .../obs/monthly_mean/tos/tos_200612.nc | Bin .../obs/monthly_mean/tos/tos_200701.nc | Bin .../obs/monthly_mean/tos/tos_200702.nc | Bin .../obs/monthly_mean/tos/tos_200703.nc | Bin .../obs/monthly_mean/tos/tos_200704.nc | Bin .../obs/monthly_mean/tos/tos_200705.nc | Bin .../obs/monthly_mean/tos/tos_200706.nc | Bin .../obs/monthly_mean/tos/tos_200707.nc | Bin .../obs/monthly_mean/tos/tos_200708.nc | Bin .../obs/monthly_mean/tos/tos_200709.nc | Bin .../obs/monthly_mean/tos/tos_200710.nc | Bin .../obs/monthly_mean/tos/tos_200711.nc | Bin .../obs/monthly_mean/tos/tos_200712.nc | Bin .../obs/monthly_mean/tos/tos_200801.nc | Bin .../obs/monthly_mean/tos/tos_200802.nc | Bin .../obs/monthly_mean/tos/tos_200803.nc | Bin .../obs/monthly_mean/tos/tos_200804.nc | Bin .../obs/monthly_mean/tos/tos_200805.nc | Bin .../obs/monthly_mean/tos/tos_200806.nc | Bin .../obs/monthly_mean/tos/tos_200807.nc | Bin .../obs/monthly_mean/tos/tos_200808.nc | Bin .../obs/monthly_mean/tos/tos_200809.nc | Bin .../obs/monthly_mean/tos/tos_200810.nc | Bin .../obs/monthly_mean/tos/tos_200811.nc | Bin .../obs/monthly_mean/tos/tos_200812.nc | Bin .../obs/monthly_mean/tos/tos_200901.nc | Bin .../obs/monthly_mean/tos/tos_200902.nc | Bin .../obs/monthly_mean/tos/tos_200903.nc | Bin .../obs/monthly_mean/tos/tos_200904.nc | Bin .../obs/monthly_mean/tos/tos_200905.nc | Bin .../obs/monthly_mean/tos/tos_200906.nc | Bin .../obs/monthly_mean/tos/tos_200907.nc | Bin .../obs/monthly_mean/tos/tos_200908.nc | Bin .../obs/monthly_mean/tos/tos_200909.nc | Bin .../obs/monthly_mean/tos/tos_200910.nc | Bin .../obs/monthly_mean/tos/tos_200911.nc | Bin .../obs/monthly_mean/tos/tos_200912.nc | Bin .../obs/monthly_mean/tos/tos_201001.nc | Bin .../obs/monthly_mean/tos/tos_201002.nc | Bin .../obs/monthly_mean/tos/tos_201003.nc | Bin .../obs/monthly_mean/tos/tos_201004.nc | Bin .../obs/monthly_mean/tos/tos_201005.nc | Bin .../obs/monthly_mean/tos/tos_201006.nc | Bin .../obs/monthly_mean/tos/tos_201007.nc | Bin .../obs/monthly_mean/tos/tos_201008.nc | Bin .../obs/monthly_mean/tos/tos_201009.nc | Bin .../obs/monthly_mean/tos/tos_201010.nc | Bin man/AddStep.Rd | 2 +- man/ByChunks.Rd | 2 +- man/CDORemapper.Rd | 2 +- man/Collect.Rd | 2 +- man/Compute.Rd | 2 +- man/NcCloser.Rd | 2 +- man/NcDataReader.Rd | 2 +- man/NcDimReader.Rd | 2 +- man/NcOpener.Rd | 2 +- man/NcVarReader.Rd | 2 +- man/Sort.Rd | 2 +- man/Start.Rd | 2 +- man/Step.Rd | 2 +- man/Subset.Rd | 2 +- 333 files changed, 28 insertions(+), 28 deletions(-) rename inst/{sample_data => extdata}/exp/monthly_mean/tos/tos_19851101.nc (100%) rename inst/{sample_data => extdata}/exp/monthly_mean/tos/tos_19901101.nc (100%) rename inst/{sample_data => extdata}/exp/monthly_mean/tos/tos_19951101.nc (100%) rename inst/{sample_data => extdata}/exp/monthly_mean/tos/tos_20001101.nc (100%) rename inst/{sample_data => extdata}/exp/monthly_mean/tos/tos_20051101.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198511.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198512.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198601.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198602.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198603.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198604.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198605.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198606.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198607.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198608.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198609.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198610.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198611.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198612.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198701.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198702.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198703.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198704.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198705.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198706.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198707.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198708.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198709.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198710.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198711.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198712.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198801.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198802.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198803.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198804.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198805.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198806.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198807.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198808.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198809.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198810.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198811.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198812.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198901.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198902.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198903.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198904.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198905.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198906.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198907.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198908.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198909.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198910.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198911.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_198912.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199001.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199002.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199003.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199004.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199005.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199006.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199007.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199008.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199009.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199010.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199011.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199012.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199101.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199102.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199103.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199104.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199105.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199106.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199107.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199108.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199109.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199110.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199111.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199112.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199201.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199202.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199203.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199204.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199205.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199206.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199207.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199208.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199209.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199210.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199211.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199212.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199301.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199302.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199303.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199304.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199305.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199306.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199307.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199308.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199309.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199310.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199311.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199312.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199401.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199402.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199403.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199404.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199405.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199406.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199407.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199408.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199409.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199410.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199411.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199412.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199501.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199502.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199503.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199504.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199505.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199506.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199507.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199508.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199509.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199510.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199511.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199512.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199601.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199602.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199603.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199604.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199605.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199606.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199607.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199608.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199609.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199610.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199611.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199612.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199701.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199702.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199703.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199704.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199705.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199706.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199707.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199708.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199709.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199710.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199711.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199712.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199801.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199802.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199803.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199804.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199805.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199806.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199807.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199808.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199809.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199810.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199811.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199812.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199901.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199902.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199903.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199904.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199905.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199906.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199907.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199908.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199909.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199910.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199911.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_199912.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200001.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200002.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200003.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200004.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200005.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200006.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200007.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200008.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200009.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200010.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200011.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200012.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200101.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200102.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200103.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200104.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200105.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200106.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200107.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200108.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200109.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200110.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200111.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200112.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200201.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200202.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200203.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200204.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200205.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200206.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200207.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200208.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200209.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200210.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200211.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200212.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200301.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200302.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200303.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200304.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200305.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200306.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200307.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200308.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200309.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200310.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200311.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200312.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200401.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200402.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200403.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200404.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200405.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200406.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200407.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200408.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200409.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200410.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200411.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200412.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200501.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200502.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200503.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200504.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200505.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200506.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200507.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200508.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200509.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200510.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200511.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200512.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200601.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200602.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200603.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200604.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200605.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200606.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200607.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200608.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200609.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200610.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200611.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200612.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200701.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200702.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200703.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200704.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200705.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200706.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200707.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200708.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200709.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200710.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200711.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200712.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200801.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200802.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200803.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200804.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200805.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200806.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200807.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200808.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200809.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200810.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200811.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200812.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200901.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200902.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200903.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200904.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200905.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200906.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200907.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200908.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200909.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200910.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200911.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_200912.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201001.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201002.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201003.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201004.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201005.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201006.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201007.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201008.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201009.nc (100%) rename inst/{sample_data => extdata}/obs/monthly_mean/tos/tos_201010.nc (100%) diff --git a/R/AddStep.R b/R/AddStep.R index 1601850..5c3fdaf 100644 --- a/R/AddStep.R +++ b/R/AddStep.R @@ -12,7 +12,7 @@ #'@return A list of the class 'startR_workflow' containing all the objects #' needed for the data operation. #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/R/ByChunks.R b/R/ByChunks.R index 9166a50..80cffe2 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -52,7 +52,7 @@ #'@examples #' # ByChunks() is internally used in Compute(), not intended to be used by #' # users. The example just illustrates the inputs of ByChunks(). -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/R/CDORemapper.R b/R/CDORemapper.R index f805390..ac1535b 100644 --- a/R/CDORemapper.R +++ b/R/CDORemapper.R @@ -22,7 +22,7 @@ #' #'@examples #'# Used in Start(): -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011') #' data <- Start(dat = path_obs, diff --git a/R/Collect.R b/R/Collect.R index 45449ff..2eca915 100644 --- a/R/Collect.R +++ b/R/Collect.R @@ -24,7 +24,7 @@ #'@return A list of merged data array. #' #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/R/Compute.R b/R/Compute.R index 5d441e0..63bc2ee 100644 --- a/R/Compute.R +++ b/R/Compute.R @@ -55,7 +55,7 @@ #' startR execution (wait = FALSE). The configuration details and profiling #' information are attached as attributes to the returned list of arrays. #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/R/NcCloser.R b/R/NcCloser.R index f7decab..3ec8d60 100644 --- a/R/NcCloser.R +++ b/R/NcCloser.R @@ -12,7 +12,7 @@ #' parameter 'file_closer' of the function Start(). #'@return This function returns NULL. #'@examples -#'data_path <- system.file('sample_data', package = 'startR') +#'data_path <- system.file('extdata', package = 'startR') #'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #'connection <- NcOpener(path_obs) #'NcCloser(connection) diff --git a/R/NcDataReader.R b/R/NcDataReader.R index 139a9d5..54b838a 100644 --- a/R/NcDataReader.R +++ b/R/NcDataReader.R @@ -33,7 +33,7 @@ #' additional auxiliary data. See details in the documentation of the parameter #' 'file_data_reader' of the function Start(). #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR', mustWork = TRUE) #' file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #' file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') #' first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) diff --git a/R/NcDimReader.R b/R/NcDimReader.R index 4e0874b..c1576f0 100644 --- a/R/NcDimReader.R +++ b/R/NcDimReader.R @@ -30,7 +30,7 @@ #'@return A named numeric vector with the names and sizes of the dimensions of #' the requested file. #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #' file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') #' first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) diff --git a/R/NcOpener.R b/R/NcOpener.R index ec44ac0..731b254 100644 --- a/R/NcOpener.R +++ b/R/NcOpener.R @@ -14,7 +14,7 @@ #' information as returned by nc_open() in the package 'ncdf4'. See details in #' the documentation of the parameter 'file_opener' of the function Start(). #'@examples -#'data_path <- system.file('sample_data', package = 'startR') +#'data_path <- system.file('extdata', package = 'startR') #'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #'connection <- NcOpener(path_obs) #'NcCloser(connection) diff --git a/R/NcVarReader.R b/R/NcVarReader.R index 3aa5bf9..ead15a1 100644 --- a/R/NcVarReader.R +++ b/R/NcVarReader.R @@ -31,7 +31,7 @@ #' in the documentation of the parameter 'file_var_reader' of the function #' Start(). #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #' file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') #' synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', diff --git a/R/Sort.R b/R/Sort.R index bf7789c..d023b0f 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -27,7 +27,7 @@ #'} #'@examples #' # Used in Start(): -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/R/Start.R b/R/Start.R index 5174100..7601e8e 100644 --- a/R/Start.R +++ b/R/Start.R @@ -754,7 +754,7 @@ #' } #' #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/R/Step.R b/R/Step.R index 1724332..829ddee 100644 --- a/R/Step.R +++ b/R/Step.R @@ -27,7 +27,7 @@ #'@return A closure that contains all the objects assigned. It serves as the #' input of Addstep(). #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/R/Subset.R b/R/Subset.R index 4b7ef42..b5b22f1 100644 --- a/R/Subset.R +++ b/R/Subset.R @@ -26,7 +26,7 @@ #' or TRUE, 'none' or FALSE, 'selected', and 'non-selected'. #'@return An array same as the input 'x' except the dimensions being subsetted. #'@examples -#' data_path <- system.file('sample_data', package = 'startR') +#' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') #' data <- Start(dat = path_obs, diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_19851101.nc b/inst/extdata/exp/monthly_mean/tos/tos_19851101.nc similarity index 100% rename from inst/sample_data/exp/monthly_mean/tos/tos_19851101.nc rename to inst/extdata/exp/monthly_mean/tos/tos_19851101.nc diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_19901101.nc b/inst/extdata/exp/monthly_mean/tos/tos_19901101.nc similarity index 100% rename from inst/sample_data/exp/monthly_mean/tos/tos_19901101.nc rename to inst/extdata/exp/monthly_mean/tos/tos_19901101.nc diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_19951101.nc b/inst/extdata/exp/monthly_mean/tos/tos_19951101.nc similarity index 100% rename from inst/sample_data/exp/monthly_mean/tos/tos_19951101.nc rename to inst/extdata/exp/monthly_mean/tos/tos_19951101.nc diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_20001101.nc b/inst/extdata/exp/monthly_mean/tos/tos_20001101.nc similarity index 100% rename from inst/sample_data/exp/monthly_mean/tos/tos_20001101.nc rename to inst/extdata/exp/monthly_mean/tos/tos_20001101.nc diff --git a/inst/sample_data/exp/monthly_mean/tos/tos_20051101.nc b/inst/extdata/exp/monthly_mean/tos/tos_20051101.nc similarity index 100% rename from inst/sample_data/exp/monthly_mean/tos/tos_20051101.nc rename to inst/extdata/exp/monthly_mean/tos/tos_20051101.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198511.nc b/inst/extdata/obs/monthly_mean/tos/tos_198511.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198511.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198511.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198512.nc b/inst/extdata/obs/monthly_mean/tos/tos_198512.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198512.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198512.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198601.nc b/inst/extdata/obs/monthly_mean/tos/tos_198601.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198601.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198601.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198602.nc b/inst/extdata/obs/monthly_mean/tos/tos_198602.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198602.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198602.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198603.nc b/inst/extdata/obs/monthly_mean/tos/tos_198603.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198603.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198603.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198604.nc b/inst/extdata/obs/monthly_mean/tos/tos_198604.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198604.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198604.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198605.nc b/inst/extdata/obs/monthly_mean/tos/tos_198605.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198605.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198605.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198606.nc b/inst/extdata/obs/monthly_mean/tos/tos_198606.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198606.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198606.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198607.nc b/inst/extdata/obs/monthly_mean/tos/tos_198607.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198607.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198607.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198608.nc b/inst/extdata/obs/monthly_mean/tos/tos_198608.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198608.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198608.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198609.nc b/inst/extdata/obs/monthly_mean/tos/tos_198609.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198609.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198609.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198610.nc b/inst/extdata/obs/monthly_mean/tos/tos_198610.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198610.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198610.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198611.nc b/inst/extdata/obs/monthly_mean/tos/tos_198611.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198611.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198611.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198612.nc b/inst/extdata/obs/monthly_mean/tos/tos_198612.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198612.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198612.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198701.nc b/inst/extdata/obs/monthly_mean/tos/tos_198701.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198701.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198701.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198702.nc b/inst/extdata/obs/monthly_mean/tos/tos_198702.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198702.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198702.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198703.nc b/inst/extdata/obs/monthly_mean/tos/tos_198703.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198703.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198703.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198704.nc b/inst/extdata/obs/monthly_mean/tos/tos_198704.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198704.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198704.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198705.nc b/inst/extdata/obs/monthly_mean/tos/tos_198705.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198705.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198705.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198706.nc b/inst/extdata/obs/monthly_mean/tos/tos_198706.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198706.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198706.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198707.nc b/inst/extdata/obs/monthly_mean/tos/tos_198707.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198707.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198707.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198708.nc b/inst/extdata/obs/monthly_mean/tos/tos_198708.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198708.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198708.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198709.nc b/inst/extdata/obs/monthly_mean/tos/tos_198709.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198709.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198709.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198710.nc b/inst/extdata/obs/monthly_mean/tos/tos_198710.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198710.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198710.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198711.nc b/inst/extdata/obs/monthly_mean/tos/tos_198711.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198711.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198711.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198712.nc b/inst/extdata/obs/monthly_mean/tos/tos_198712.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198712.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198712.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198801.nc b/inst/extdata/obs/monthly_mean/tos/tos_198801.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198801.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198801.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198802.nc b/inst/extdata/obs/monthly_mean/tos/tos_198802.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198802.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198802.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198803.nc b/inst/extdata/obs/monthly_mean/tos/tos_198803.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198803.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198803.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198804.nc b/inst/extdata/obs/monthly_mean/tos/tos_198804.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198804.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198804.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198805.nc b/inst/extdata/obs/monthly_mean/tos/tos_198805.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198805.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198805.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198806.nc b/inst/extdata/obs/monthly_mean/tos/tos_198806.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198806.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198806.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198807.nc b/inst/extdata/obs/monthly_mean/tos/tos_198807.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198807.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198807.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198808.nc b/inst/extdata/obs/monthly_mean/tos/tos_198808.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198808.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198808.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198809.nc b/inst/extdata/obs/monthly_mean/tos/tos_198809.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198809.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198809.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198810.nc b/inst/extdata/obs/monthly_mean/tos/tos_198810.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198810.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198810.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198811.nc b/inst/extdata/obs/monthly_mean/tos/tos_198811.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198811.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198811.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198812.nc b/inst/extdata/obs/monthly_mean/tos/tos_198812.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198812.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198812.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198901.nc b/inst/extdata/obs/monthly_mean/tos/tos_198901.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198901.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198901.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198902.nc b/inst/extdata/obs/monthly_mean/tos/tos_198902.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198902.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198902.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198903.nc b/inst/extdata/obs/monthly_mean/tos/tos_198903.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198903.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198903.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198904.nc b/inst/extdata/obs/monthly_mean/tos/tos_198904.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198904.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198904.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198905.nc b/inst/extdata/obs/monthly_mean/tos/tos_198905.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198905.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198905.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198906.nc b/inst/extdata/obs/monthly_mean/tos/tos_198906.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198906.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198906.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198907.nc b/inst/extdata/obs/monthly_mean/tos/tos_198907.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198907.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198907.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198908.nc b/inst/extdata/obs/monthly_mean/tos/tos_198908.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198908.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198908.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198909.nc b/inst/extdata/obs/monthly_mean/tos/tos_198909.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198909.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198909.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198910.nc b/inst/extdata/obs/monthly_mean/tos/tos_198910.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198910.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198910.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198911.nc b/inst/extdata/obs/monthly_mean/tos/tos_198911.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198911.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198911.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_198912.nc b/inst/extdata/obs/monthly_mean/tos/tos_198912.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_198912.nc rename to inst/extdata/obs/monthly_mean/tos/tos_198912.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199001.nc b/inst/extdata/obs/monthly_mean/tos/tos_199001.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199001.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199001.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199002.nc b/inst/extdata/obs/monthly_mean/tos/tos_199002.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199002.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199002.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199003.nc b/inst/extdata/obs/monthly_mean/tos/tos_199003.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199003.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199003.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199004.nc b/inst/extdata/obs/monthly_mean/tos/tos_199004.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199004.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199004.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199005.nc b/inst/extdata/obs/monthly_mean/tos/tos_199005.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199005.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199005.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199006.nc b/inst/extdata/obs/monthly_mean/tos/tos_199006.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199006.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199006.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199007.nc b/inst/extdata/obs/monthly_mean/tos/tos_199007.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199007.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199007.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199008.nc b/inst/extdata/obs/monthly_mean/tos/tos_199008.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199008.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199008.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199009.nc b/inst/extdata/obs/monthly_mean/tos/tos_199009.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199009.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199009.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199010.nc b/inst/extdata/obs/monthly_mean/tos/tos_199010.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199010.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199010.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199011.nc b/inst/extdata/obs/monthly_mean/tos/tos_199011.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199011.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199011.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199012.nc b/inst/extdata/obs/monthly_mean/tos/tos_199012.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199012.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199012.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199101.nc b/inst/extdata/obs/monthly_mean/tos/tos_199101.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199101.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199101.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199102.nc b/inst/extdata/obs/monthly_mean/tos/tos_199102.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199102.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199102.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199103.nc b/inst/extdata/obs/monthly_mean/tos/tos_199103.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199103.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199103.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199104.nc b/inst/extdata/obs/monthly_mean/tos/tos_199104.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199104.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199104.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199105.nc b/inst/extdata/obs/monthly_mean/tos/tos_199105.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199105.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199105.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199106.nc b/inst/extdata/obs/monthly_mean/tos/tos_199106.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199106.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199106.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199107.nc b/inst/extdata/obs/monthly_mean/tos/tos_199107.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199107.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199107.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199108.nc b/inst/extdata/obs/monthly_mean/tos/tos_199108.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199108.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199108.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199109.nc b/inst/extdata/obs/monthly_mean/tos/tos_199109.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199109.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199109.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199110.nc b/inst/extdata/obs/monthly_mean/tos/tos_199110.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199110.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199110.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199111.nc b/inst/extdata/obs/monthly_mean/tos/tos_199111.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199111.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199111.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199112.nc b/inst/extdata/obs/monthly_mean/tos/tos_199112.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199112.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199112.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199201.nc b/inst/extdata/obs/monthly_mean/tos/tos_199201.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199201.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199201.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199202.nc b/inst/extdata/obs/monthly_mean/tos/tos_199202.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199202.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199202.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199203.nc b/inst/extdata/obs/monthly_mean/tos/tos_199203.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199203.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199203.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199204.nc b/inst/extdata/obs/monthly_mean/tos/tos_199204.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199204.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199204.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199205.nc b/inst/extdata/obs/monthly_mean/tos/tos_199205.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199205.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199205.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199206.nc b/inst/extdata/obs/monthly_mean/tos/tos_199206.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199206.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199206.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199207.nc b/inst/extdata/obs/monthly_mean/tos/tos_199207.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199207.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199207.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199208.nc b/inst/extdata/obs/monthly_mean/tos/tos_199208.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199208.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199208.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199209.nc b/inst/extdata/obs/monthly_mean/tos/tos_199209.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199209.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199209.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199210.nc b/inst/extdata/obs/monthly_mean/tos/tos_199210.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199210.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199210.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199211.nc b/inst/extdata/obs/monthly_mean/tos/tos_199211.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199211.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199211.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199212.nc b/inst/extdata/obs/monthly_mean/tos/tos_199212.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199212.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199212.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199301.nc b/inst/extdata/obs/monthly_mean/tos/tos_199301.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199301.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199301.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199302.nc b/inst/extdata/obs/monthly_mean/tos/tos_199302.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199302.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199302.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199303.nc b/inst/extdata/obs/monthly_mean/tos/tos_199303.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199303.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199303.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199304.nc b/inst/extdata/obs/monthly_mean/tos/tos_199304.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199304.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199304.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199305.nc b/inst/extdata/obs/monthly_mean/tos/tos_199305.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199305.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199305.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199306.nc b/inst/extdata/obs/monthly_mean/tos/tos_199306.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199306.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199306.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199307.nc b/inst/extdata/obs/monthly_mean/tos/tos_199307.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199307.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199307.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199308.nc b/inst/extdata/obs/monthly_mean/tos/tos_199308.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199308.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199308.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199309.nc b/inst/extdata/obs/monthly_mean/tos/tos_199309.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199309.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199309.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199310.nc b/inst/extdata/obs/monthly_mean/tos/tos_199310.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199310.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199310.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199311.nc b/inst/extdata/obs/monthly_mean/tos/tos_199311.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199311.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199311.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199312.nc b/inst/extdata/obs/monthly_mean/tos/tos_199312.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199312.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199312.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199401.nc b/inst/extdata/obs/monthly_mean/tos/tos_199401.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199401.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199401.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199402.nc b/inst/extdata/obs/monthly_mean/tos/tos_199402.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199402.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199402.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199403.nc b/inst/extdata/obs/monthly_mean/tos/tos_199403.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199403.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199403.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199404.nc b/inst/extdata/obs/monthly_mean/tos/tos_199404.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199404.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199404.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199405.nc b/inst/extdata/obs/monthly_mean/tos/tos_199405.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199405.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199405.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199406.nc b/inst/extdata/obs/monthly_mean/tos/tos_199406.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199406.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199406.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199407.nc b/inst/extdata/obs/monthly_mean/tos/tos_199407.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199407.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199407.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199408.nc b/inst/extdata/obs/monthly_mean/tos/tos_199408.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199408.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199408.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199409.nc b/inst/extdata/obs/monthly_mean/tos/tos_199409.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199409.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199409.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199410.nc b/inst/extdata/obs/monthly_mean/tos/tos_199410.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199410.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199410.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199411.nc b/inst/extdata/obs/monthly_mean/tos/tos_199411.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199411.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199411.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199412.nc b/inst/extdata/obs/monthly_mean/tos/tos_199412.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199412.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199412.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199501.nc b/inst/extdata/obs/monthly_mean/tos/tos_199501.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199501.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199501.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199502.nc b/inst/extdata/obs/monthly_mean/tos/tos_199502.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199502.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199502.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199503.nc b/inst/extdata/obs/monthly_mean/tos/tos_199503.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199503.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199503.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199504.nc b/inst/extdata/obs/monthly_mean/tos/tos_199504.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199504.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199504.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199505.nc b/inst/extdata/obs/monthly_mean/tos/tos_199505.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199505.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199505.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199506.nc b/inst/extdata/obs/monthly_mean/tos/tos_199506.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199506.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199506.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199507.nc b/inst/extdata/obs/monthly_mean/tos/tos_199507.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199507.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199507.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199508.nc b/inst/extdata/obs/monthly_mean/tos/tos_199508.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199508.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199508.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199509.nc b/inst/extdata/obs/monthly_mean/tos/tos_199509.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199509.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199509.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199510.nc b/inst/extdata/obs/monthly_mean/tos/tos_199510.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199510.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199510.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199511.nc b/inst/extdata/obs/monthly_mean/tos/tos_199511.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199511.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199511.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199512.nc b/inst/extdata/obs/monthly_mean/tos/tos_199512.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199512.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199512.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199601.nc b/inst/extdata/obs/monthly_mean/tos/tos_199601.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199601.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199601.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199602.nc b/inst/extdata/obs/monthly_mean/tos/tos_199602.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199602.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199602.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199603.nc b/inst/extdata/obs/monthly_mean/tos/tos_199603.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199603.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199603.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199604.nc b/inst/extdata/obs/monthly_mean/tos/tos_199604.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199604.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199604.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199605.nc b/inst/extdata/obs/monthly_mean/tos/tos_199605.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199605.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199605.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199606.nc b/inst/extdata/obs/monthly_mean/tos/tos_199606.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199606.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199606.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199607.nc b/inst/extdata/obs/monthly_mean/tos/tos_199607.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199607.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199607.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199608.nc b/inst/extdata/obs/monthly_mean/tos/tos_199608.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199608.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199608.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199609.nc b/inst/extdata/obs/monthly_mean/tos/tos_199609.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199609.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199609.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199610.nc b/inst/extdata/obs/monthly_mean/tos/tos_199610.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199610.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199610.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199611.nc b/inst/extdata/obs/monthly_mean/tos/tos_199611.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199611.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199611.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199612.nc b/inst/extdata/obs/monthly_mean/tos/tos_199612.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199612.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199612.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199701.nc b/inst/extdata/obs/monthly_mean/tos/tos_199701.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199701.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199701.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199702.nc b/inst/extdata/obs/monthly_mean/tos/tos_199702.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199702.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199702.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199703.nc b/inst/extdata/obs/monthly_mean/tos/tos_199703.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199703.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199703.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199704.nc b/inst/extdata/obs/monthly_mean/tos/tos_199704.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199704.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199704.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199705.nc b/inst/extdata/obs/monthly_mean/tos/tos_199705.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199705.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199705.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199706.nc b/inst/extdata/obs/monthly_mean/tos/tos_199706.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199706.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199706.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199707.nc b/inst/extdata/obs/monthly_mean/tos/tos_199707.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199707.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199707.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199708.nc b/inst/extdata/obs/monthly_mean/tos/tos_199708.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199708.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199708.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199709.nc b/inst/extdata/obs/monthly_mean/tos/tos_199709.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199709.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199709.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199710.nc b/inst/extdata/obs/monthly_mean/tos/tos_199710.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199710.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199710.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199711.nc b/inst/extdata/obs/monthly_mean/tos/tos_199711.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199711.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199711.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199712.nc b/inst/extdata/obs/monthly_mean/tos/tos_199712.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199712.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199712.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199801.nc b/inst/extdata/obs/monthly_mean/tos/tos_199801.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199801.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199801.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199802.nc b/inst/extdata/obs/monthly_mean/tos/tos_199802.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199802.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199802.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199803.nc b/inst/extdata/obs/monthly_mean/tos/tos_199803.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199803.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199803.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199804.nc b/inst/extdata/obs/monthly_mean/tos/tos_199804.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199804.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199804.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199805.nc b/inst/extdata/obs/monthly_mean/tos/tos_199805.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199805.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199805.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199806.nc b/inst/extdata/obs/monthly_mean/tos/tos_199806.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199806.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199806.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199807.nc b/inst/extdata/obs/monthly_mean/tos/tos_199807.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199807.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199807.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199808.nc b/inst/extdata/obs/monthly_mean/tos/tos_199808.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199808.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199808.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199809.nc b/inst/extdata/obs/monthly_mean/tos/tos_199809.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199809.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199809.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199810.nc b/inst/extdata/obs/monthly_mean/tos/tos_199810.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199810.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199810.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199811.nc b/inst/extdata/obs/monthly_mean/tos/tos_199811.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199811.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199811.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199812.nc b/inst/extdata/obs/monthly_mean/tos/tos_199812.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199812.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199812.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199901.nc b/inst/extdata/obs/monthly_mean/tos/tos_199901.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199901.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199901.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199902.nc b/inst/extdata/obs/monthly_mean/tos/tos_199902.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199902.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199902.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199903.nc b/inst/extdata/obs/monthly_mean/tos/tos_199903.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199903.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199903.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199904.nc b/inst/extdata/obs/monthly_mean/tos/tos_199904.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199904.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199904.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199905.nc b/inst/extdata/obs/monthly_mean/tos/tos_199905.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199905.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199905.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199906.nc b/inst/extdata/obs/monthly_mean/tos/tos_199906.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199906.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199906.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199907.nc b/inst/extdata/obs/monthly_mean/tos/tos_199907.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199907.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199907.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199908.nc b/inst/extdata/obs/monthly_mean/tos/tos_199908.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199908.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199908.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199909.nc b/inst/extdata/obs/monthly_mean/tos/tos_199909.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199909.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199909.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199910.nc b/inst/extdata/obs/monthly_mean/tos/tos_199910.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199910.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199910.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199911.nc b/inst/extdata/obs/monthly_mean/tos/tos_199911.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199911.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199911.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_199912.nc b/inst/extdata/obs/monthly_mean/tos/tos_199912.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_199912.nc rename to inst/extdata/obs/monthly_mean/tos/tos_199912.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200001.nc b/inst/extdata/obs/monthly_mean/tos/tos_200001.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200001.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200001.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200002.nc b/inst/extdata/obs/monthly_mean/tos/tos_200002.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200002.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200002.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200003.nc b/inst/extdata/obs/monthly_mean/tos/tos_200003.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200003.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200003.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200004.nc b/inst/extdata/obs/monthly_mean/tos/tos_200004.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200004.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200004.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200005.nc b/inst/extdata/obs/monthly_mean/tos/tos_200005.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200005.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200005.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200006.nc b/inst/extdata/obs/monthly_mean/tos/tos_200006.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200006.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200006.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200007.nc b/inst/extdata/obs/monthly_mean/tos/tos_200007.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200007.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200007.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200008.nc b/inst/extdata/obs/monthly_mean/tos/tos_200008.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200008.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200008.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200009.nc b/inst/extdata/obs/monthly_mean/tos/tos_200009.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200009.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200009.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200010.nc b/inst/extdata/obs/monthly_mean/tos/tos_200010.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200010.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200010.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200011.nc b/inst/extdata/obs/monthly_mean/tos/tos_200011.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200011.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200011.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200012.nc b/inst/extdata/obs/monthly_mean/tos/tos_200012.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200012.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200012.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200101.nc b/inst/extdata/obs/monthly_mean/tos/tos_200101.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200101.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200101.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200102.nc b/inst/extdata/obs/monthly_mean/tos/tos_200102.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200102.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200102.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200103.nc b/inst/extdata/obs/monthly_mean/tos/tos_200103.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200103.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200103.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200104.nc b/inst/extdata/obs/monthly_mean/tos/tos_200104.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200104.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200104.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200105.nc b/inst/extdata/obs/monthly_mean/tos/tos_200105.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200105.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200105.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200106.nc b/inst/extdata/obs/monthly_mean/tos/tos_200106.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200106.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200106.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200107.nc b/inst/extdata/obs/monthly_mean/tos/tos_200107.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200107.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200107.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200108.nc b/inst/extdata/obs/monthly_mean/tos/tos_200108.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200108.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200108.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200109.nc b/inst/extdata/obs/monthly_mean/tos/tos_200109.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200109.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200109.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200110.nc b/inst/extdata/obs/monthly_mean/tos/tos_200110.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200110.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200110.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200111.nc b/inst/extdata/obs/monthly_mean/tos/tos_200111.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200111.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200111.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200112.nc b/inst/extdata/obs/monthly_mean/tos/tos_200112.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200112.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200112.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200201.nc b/inst/extdata/obs/monthly_mean/tos/tos_200201.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200201.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200201.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200202.nc b/inst/extdata/obs/monthly_mean/tos/tos_200202.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200202.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200202.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200203.nc b/inst/extdata/obs/monthly_mean/tos/tos_200203.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200203.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200203.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200204.nc b/inst/extdata/obs/monthly_mean/tos/tos_200204.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200204.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200204.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200205.nc b/inst/extdata/obs/monthly_mean/tos/tos_200205.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200205.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200205.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200206.nc b/inst/extdata/obs/monthly_mean/tos/tos_200206.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200206.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200206.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200207.nc b/inst/extdata/obs/monthly_mean/tos/tos_200207.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200207.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200207.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200208.nc b/inst/extdata/obs/monthly_mean/tos/tos_200208.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200208.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200208.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200209.nc b/inst/extdata/obs/monthly_mean/tos/tos_200209.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200209.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200209.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200210.nc b/inst/extdata/obs/monthly_mean/tos/tos_200210.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200210.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200210.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200211.nc b/inst/extdata/obs/monthly_mean/tos/tos_200211.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200211.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200211.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200212.nc b/inst/extdata/obs/monthly_mean/tos/tos_200212.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200212.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200212.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200301.nc b/inst/extdata/obs/monthly_mean/tos/tos_200301.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200301.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200301.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200302.nc b/inst/extdata/obs/monthly_mean/tos/tos_200302.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200302.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200302.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200303.nc b/inst/extdata/obs/monthly_mean/tos/tos_200303.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200303.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200303.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200304.nc b/inst/extdata/obs/monthly_mean/tos/tos_200304.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200304.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200304.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200305.nc b/inst/extdata/obs/monthly_mean/tos/tos_200305.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200305.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200305.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200306.nc b/inst/extdata/obs/monthly_mean/tos/tos_200306.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200306.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200306.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200307.nc b/inst/extdata/obs/monthly_mean/tos/tos_200307.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200307.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200307.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200308.nc b/inst/extdata/obs/monthly_mean/tos/tos_200308.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200308.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200308.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200309.nc b/inst/extdata/obs/monthly_mean/tos/tos_200309.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200309.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200309.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200310.nc b/inst/extdata/obs/monthly_mean/tos/tos_200310.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200310.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200310.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200311.nc b/inst/extdata/obs/monthly_mean/tos/tos_200311.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200311.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200311.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200312.nc b/inst/extdata/obs/monthly_mean/tos/tos_200312.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200312.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200312.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200401.nc b/inst/extdata/obs/monthly_mean/tos/tos_200401.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200401.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200401.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200402.nc b/inst/extdata/obs/monthly_mean/tos/tos_200402.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200402.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200402.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200403.nc b/inst/extdata/obs/monthly_mean/tos/tos_200403.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200403.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200403.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200404.nc b/inst/extdata/obs/monthly_mean/tos/tos_200404.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200404.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200404.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200405.nc b/inst/extdata/obs/monthly_mean/tos/tos_200405.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200405.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200405.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200406.nc b/inst/extdata/obs/monthly_mean/tos/tos_200406.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200406.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200406.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200407.nc b/inst/extdata/obs/monthly_mean/tos/tos_200407.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200407.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200407.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200408.nc b/inst/extdata/obs/monthly_mean/tos/tos_200408.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200408.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200408.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200409.nc b/inst/extdata/obs/monthly_mean/tos/tos_200409.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200409.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200409.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200410.nc b/inst/extdata/obs/monthly_mean/tos/tos_200410.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200410.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200410.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200411.nc b/inst/extdata/obs/monthly_mean/tos/tos_200411.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200411.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200411.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200412.nc b/inst/extdata/obs/monthly_mean/tos/tos_200412.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200412.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200412.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200501.nc b/inst/extdata/obs/monthly_mean/tos/tos_200501.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200501.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200501.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200502.nc b/inst/extdata/obs/monthly_mean/tos/tos_200502.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200502.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200502.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200503.nc b/inst/extdata/obs/monthly_mean/tos/tos_200503.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200503.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200503.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200504.nc b/inst/extdata/obs/monthly_mean/tos/tos_200504.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200504.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200504.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200505.nc b/inst/extdata/obs/monthly_mean/tos/tos_200505.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200505.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200505.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200506.nc b/inst/extdata/obs/monthly_mean/tos/tos_200506.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200506.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200506.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200507.nc b/inst/extdata/obs/monthly_mean/tos/tos_200507.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200507.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200507.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200508.nc b/inst/extdata/obs/monthly_mean/tos/tos_200508.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200508.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200508.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200509.nc b/inst/extdata/obs/monthly_mean/tos/tos_200509.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200509.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200509.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200510.nc b/inst/extdata/obs/monthly_mean/tos/tos_200510.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200510.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200510.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200511.nc b/inst/extdata/obs/monthly_mean/tos/tos_200511.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200511.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200511.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200512.nc b/inst/extdata/obs/monthly_mean/tos/tos_200512.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200512.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200512.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200601.nc b/inst/extdata/obs/monthly_mean/tos/tos_200601.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200601.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200601.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200602.nc b/inst/extdata/obs/monthly_mean/tos/tos_200602.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200602.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200602.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200603.nc b/inst/extdata/obs/monthly_mean/tos/tos_200603.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200603.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200603.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200604.nc b/inst/extdata/obs/monthly_mean/tos/tos_200604.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200604.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200604.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200605.nc b/inst/extdata/obs/monthly_mean/tos/tos_200605.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200605.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200605.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200606.nc b/inst/extdata/obs/monthly_mean/tos/tos_200606.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200606.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200606.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200607.nc b/inst/extdata/obs/monthly_mean/tos/tos_200607.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200607.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200607.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200608.nc b/inst/extdata/obs/monthly_mean/tos/tos_200608.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200608.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200608.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200609.nc b/inst/extdata/obs/monthly_mean/tos/tos_200609.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200609.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200609.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200610.nc b/inst/extdata/obs/monthly_mean/tos/tos_200610.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200610.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200610.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200611.nc b/inst/extdata/obs/monthly_mean/tos/tos_200611.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200611.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200611.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200612.nc b/inst/extdata/obs/monthly_mean/tos/tos_200612.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200612.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200612.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200701.nc b/inst/extdata/obs/monthly_mean/tos/tos_200701.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200701.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200701.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200702.nc b/inst/extdata/obs/monthly_mean/tos/tos_200702.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200702.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200702.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200703.nc b/inst/extdata/obs/monthly_mean/tos/tos_200703.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200703.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200703.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200704.nc b/inst/extdata/obs/monthly_mean/tos/tos_200704.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200704.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200704.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200705.nc b/inst/extdata/obs/monthly_mean/tos/tos_200705.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200705.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200705.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200706.nc b/inst/extdata/obs/monthly_mean/tos/tos_200706.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200706.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200706.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200707.nc b/inst/extdata/obs/monthly_mean/tos/tos_200707.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200707.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200707.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200708.nc b/inst/extdata/obs/monthly_mean/tos/tos_200708.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200708.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200708.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200709.nc b/inst/extdata/obs/monthly_mean/tos/tos_200709.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200709.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200709.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200710.nc b/inst/extdata/obs/monthly_mean/tos/tos_200710.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200710.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200710.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200711.nc b/inst/extdata/obs/monthly_mean/tos/tos_200711.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200711.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200711.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200712.nc b/inst/extdata/obs/monthly_mean/tos/tos_200712.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200712.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200712.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200801.nc b/inst/extdata/obs/monthly_mean/tos/tos_200801.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200801.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200801.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200802.nc b/inst/extdata/obs/monthly_mean/tos/tos_200802.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200802.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200802.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200803.nc b/inst/extdata/obs/monthly_mean/tos/tos_200803.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200803.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200803.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200804.nc b/inst/extdata/obs/monthly_mean/tos/tos_200804.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200804.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200804.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200805.nc b/inst/extdata/obs/monthly_mean/tos/tos_200805.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200805.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200805.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200806.nc b/inst/extdata/obs/monthly_mean/tos/tos_200806.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200806.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200806.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200807.nc b/inst/extdata/obs/monthly_mean/tos/tos_200807.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200807.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200807.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200808.nc b/inst/extdata/obs/monthly_mean/tos/tos_200808.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200808.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200808.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200809.nc b/inst/extdata/obs/monthly_mean/tos/tos_200809.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200809.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200809.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200810.nc b/inst/extdata/obs/monthly_mean/tos/tos_200810.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200810.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200810.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200811.nc b/inst/extdata/obs/monthly_mean/tos/tos_200811.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200811.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200811.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200812.nc b/inst/extdata/obs/monthly_mean/tos/tos_200812.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200812.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200812.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200901.nc b/inst/extdata/obs/monthly_mean/tos/tos_200901.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200901.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200901.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200902.nc b/inst/extdata/obs/monthly_mean/tos/tos_200902.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200902.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200902.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200903.nc b/inst/extdata/obs/monthly_mean/tos/tos_200903.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200903.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200903.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200904.nc b/inst/extdata/obs/monthly_mean/tos/tos_200904.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200904.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200904.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200905.nc b/inst/extdata/obs/monthly_mean/tos/tos_200905.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200905.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200905.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200906.nc b/inst/extdata/obs/monthly_mean/tos/tos_200906.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200906.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200906.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200907.nc b/inst/extdata/obs/monthly_mean/tos/tos_200907.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200907.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200907.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200908.nc b/inst/extdata/obs/monthly_mean/tos/tos_200908.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200908.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200908.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200909.nc b/inst/extdata/obs/monthly_mean/tos/tos_200909.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200909.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200909.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200910.nc b/inst/extdata/obs/monthly_mean/tos/tos_200910.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200910.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200910.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200911.nc b/inst/extdata/obs/monthly_mean/tos/tos_200911.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200911.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200911.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_200912.nc b/inst/extdata/obs/monthly_mean/tos/tos_200912.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_200912.nc rename to inst/extdata/obs/monthly_mean/tos/tos_200912.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201001.nc b/inst/extdata/obs/monthly_mean/tos/tos_201001.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201001.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201001.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201002.nc b/inst/extdata/obs/monthly_mean/tos/tos_201002.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201002.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201002.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201003.nc b/inst/extdata/obs/monthly_mean/tos/tos_201003.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201003.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201003.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201004.nc b/inst/extdata/obs/monthly_mean/tos/tos_201004.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201004.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201004.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201005.nc b/inst/extdata/obs/monthly_mean/tos/tos_201005.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201005.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201005.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201006.nc b/inst/extdata/obs/monthly_mean/tos/tos_201006.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201006.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201006.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201007.nc b/inst/extdata/obs/monthly_mean/tos/tos_201007.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201007.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201007.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201008.nc b/inst/extdata/obs/monthly_mean/tos/tos_201008.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201008.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201008.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201009.nc b/inst/extdata/obs/monthly_mean/tos/tos_201009.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201009.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201009.nc diff --git a/inst/sample_data/obs/monthly_mean/tos/tos_201010.nc b/inst/extdata/obs/monthly_mean/tos/tos_201010.nc similarity index 100% rename from inst/sample_data/obs/monthly_mean/tos/tos_201010.nc rename to inst/extdata/obs/monthly_mean/tos/tos_201010.nc diff --git a/man/AddStep.Rd b/man/AddStep.Rd index d40208e..a0ecfaf 100644 --- a/man/AddStep.Rd +++ b/man/AddStep.Rd @@ -24,7 +24,7 @@ The step that combines the previous declared data and operation together to create the complete workflow. It is the final step before data processing. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, diff --git a/man/ByChunks.Rd b/man/ByChunks.Rd index 8d61fa1..456f5a7 100644 --- a/man/ByChunks.Rd +++ b/man/ByChunks.Rd @@ -74,7 +74,7 @@ profiling information. \examples{ # ByChunks() is internally used in Compute(), not intended to be used by # users. The example just illustrates the inputs of ByChunks(). - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, diff --git a/man/CDORemapper.Rd b/man/CDORemapper.Rd index c5b2f4e..418bf5d 100644 --- a/man/CDORemapper.Rd +++ b/man/CDORemapper.Rd @@ -33,7 +33,7 @@ perform the interpolation, hence CDO is required to be installed. } \examples{ # Used in Start(): - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011') data <- Start(dat = path_obs, diff --git a/man/Collect.Rd b/man/Collect.Rd index a496c41..54c85ab 100644 --- a/man/Collect.Rd +++ b/man/Collect.Rd @@ -36,7 +36,7 @@ of results as one data array when the execution is done. See more details on \href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab}. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, diff --git a/man/Compute.Rd b/man/Compute.Rd index eb0efa6..a859cc2 100644 --- a/man/Compute.Rd +++ b/man/Compute.Rd @@ -76,7 +76,7 @@ return a single data object, including one or multiple multidimensional data arrays and additional metadata. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, diff --git a/man/NcCloser.Rd b/man/NcCloser.Rd index dbd8bca..df53096 100644 --- a/man/NcCloser.Rd +++ b/man/NcCloser.Rd @@ -23,7 +23,7 @@ This function uses the function NcClose() in the package 'easyNCDF', which in turn uses nc_close() in the package 'ncdf4'. } \examples{ -data_path <- system.file('sample_data', package = 'startR') +data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') connection <- NcOpener(path_obs) NcCloser(connection) diff --git a/man/NcDataReader.Rd b/man/NcDataReader.Rd index 493469a..dc167c1 100644 --- a/man/NcDataReader.Rd +++ b/man/NcDataReader.Rd @@ -48,7 +48,7 @@ This function uses the function NcToArray() in the package 'easyNCDF', which in turn uses nc_var_get() in the package 'ncdf4'. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR', mustWork = TRUE) file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) diff --git a/man/NcDimReader.Rd b/man/NcDimReader.Rd index 84d3394..b695176 100644 --- a/man/NcDimReader.Rd +++ b/man/NcDimReader.Rd @@ -45,7 +45,7 @@ interface required by Start() defined in the documentation for the parameter This function uses the function NcReadDims() in the package 'easyNCDF'. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') first_round_indices <- list(time = 1, latitude = 1:8, longitude = 1:16) diff --git a/man/NcOpener.Rd b/man/NcOpener.Rd index 3ab6764..7dabf24 100644 --- a/man/NcOpener.Rd +++ b/man/NcOpener.Rd @@ -25,7 +25,7 @@ This function uses the function NcOpen() in the package 'easyNCDF', which in turn uses nc_open() in the package 'ncdf4'. } \examples{ -data_path <- system.file('sample_data', package = 'startR') +data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') connection <- NcOpener(path_obs) NcCloser(connection) diff --git a/man/NcVarReader.Rd b/man/NcVarReader.Rd index 9ed22a4..0e24f2c 100644 --- a/man/NcVarReader.Rd +++ b/man/NcVarReader.Rd @@ -46,7 +46,7 @@ which in turn uses NcToArray() in the package 'easyNCDF', which in turn uses nc_var_get() in the package 'ncdf4'. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', diff --git a/man/Sort.Rd b/man/Sort.Rd index 3411f86..aa878bf 100644 --- a/man/Sort.Rd +++ b/man/Sort.Rd @@ -40,7 +40,7 @@ range. This is useful for circular coordinates such as the Earth longitudes. } \examples{ # Used in Start(): - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, diff --git a/man/Start.Rd b/man/Start.Rd index 121e2c5..86362c9 100644 --- a/man/Start.Rd +++ b/man/Start.Rd @@ -787,7 +787,7 @@ in the measure that it is retrieved by the interface functions for a specific file format. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, diff --git a/man/Step.Rd b/man/Step.Rd index 1d9d039..66c7870 100644 --- a/man/Step.Rd +++ b/man/Step.Rd @@ -43,7 +43,7 @@ If a different order is specified, startR will reorder the subset dimension to the expected order for this function./cr } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, diff --git a/man/Subset.Rd b/man/Subset.Rd index f6caca4..8d7120b 100644 --- a/man/Subset.Rd +++ b/man/Subset.Rd @@ -40,7 +40,7 @@ If an array is provided without dimension names, dimension names taken from the parameter \code{dim_names} will be added to the array. } \examples{ - data_path <- system.file('sample_data', package = 'startR') + data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') data <- Start(dat = path_obs, -- GitLab From f6c0752aef45693f74edde28d7868ea97bd28c09 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 12:12:14 +0200 Subject: [PATCH 31/60] Try fixing .Rbuildignore --- .Rbuildignore | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 0b4e057..8bf8735 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -3,16 +3,21 @@ .*\.tar.gz$ .*\.pdf$ .*^(?!inst)\.nc$ -README\.Rmd$ README\.md$ \..*\.RData$ -vignettes -.gitlab-ci.yml -^inst/chunking/$ +^vignettes$ +#^inst/chunking/$ ^inst/doc/$ ^inst/doc/*$ -^tests/$ +# ^tests/$ ^inst/doc/figures/$ ^inst/doc/usecase/$ ^tests/testthat/*$ -^inst/PlotProfiling\.R$ +#^inst/PlotProfiling\.R$ + +# Suggested by http://r-pkgs.had.co.nz/package.html +^.*\.Rproj$ # Automatically added by RStudio, +^\.Rproj\.user$ # used for temporary files. +^README\.Rmd$ # An Rmarkdown file used to generate README.md +^cran-comments\.md$ # Comments for CRAN submission +^NEWS\.md$ # A news file written in Markdown -- GitLab From 0266284f01e0542e97f541e7099ba8dee472ab10 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 12:35:45 +0200 Subject: [PATCH 32/60] Try fixing .Rbuildignore for CRAN --- .Rbuildignore | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 8bf8735..cc9648a 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -3,16 +3,16 @@ .*\.tar.gz$ .*\.pdf$ .*^(?!inst)\.nc$ -README\.md$ +^README\.md$ \..*\.RData$ ^vignettes$ #^inst/chunking/$ ^inst/doc/$ ^inst/doc/*$ -# ^tests/$ +^tests/$ ^inst/doc/figures/$ ^inst/doc/usecase/$ -^tests/testthat/*$ +#^tests/testthat/*$ #^inst/PlotProfiling\.R$ # Suggested by http://r-pkgs.had.co.nz/package.html -- GitLab From 61cac5b24f1c470562347e3238e589de04c4371c Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 12:43:11 +0200 Subject: [PATCH 33/60] Correct example in NcVarReader() --- R/NcVarReader.R | 2 +- man/NcVarReader.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/NcVarReader.R b/R/NcVarReader.R index ead15a1..b140d80 100644 --- a/R/NcVarReader.R +++ b/R/NcVarReader.R @@ -36,7 +36,7 @@ #' file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') #' synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', #' latitude = 'latitude', longitude = 'longitude') -#' var <- NcDataReader(file_to_open, NULL, file_selectors, +#' var <- NcVarReader(file_to_open, NULL, file_selectors, #' 'tos', synonims) #'@export NcVarReader <- function(file_path = NULL, file_object = NULL, diff --git a/man/NcVarReader.Rd b/man/NcVarReader.Rd index 0e24f2c..71bc78a 100644 --- a/man/NcVarReader.Rd +++ b/man/NcVarReader.Rd @@ -51,7 +51,7 @@ nc_var_get() in the package 'ncdf4'. file_selectors <- c(dat = 'dat1', var = 'tos', sdate = '200011') synonims <- list(dat = 'dat', var = 'var', sdate = 'sdate', time = 'time', latitude = 'latitude', longitude = 'longitude') - var <- NcDataReader(file_to_open, NULL, file_selectors, + var <- NcVarReader(file_to_open, NULL, file_selectors, 'tos', synonims) } -- GitLab From 7cab8fe79705f32bf63127896f873ec25b686a21 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 13:05:01 +0200 Subject: [PATCH 34/60] Change threads_compute to 2 for CRAN testing --- tests/testthat/test-Compute-NumChunks.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test-Compute-NumChunks.R b/tests/testthat/test-Compute-NumChunks.R index dbfcbd9..41d91b7 100644 --- a/tests/testthat/test-Compute-NumChunks.R +++ b/tests/testthat/test-Compute-NumChunks.R @@ -27,13 +27,13 @@ wf = AddStep(inputs = data, expect_equal(Compute(workflow = wf, chunks = list(lat = 2, lon = 2), - threads_load = 2, - threads_compute = 4), + threads_load = 1, + threads_compute = 2), Compute(workflow = wf, chunks = list(lat = 3, lon = 3), - threads_load = 2, - threads_compute = 4), + threads_load = 1, + threads_compute = 2), check.attributes = FALSE) }) -- GitLab From 0474c574d26ae13105204f3aa696a96a230ceb86 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 13:33:42 +0200 Subject: [PATCH 35/60] Add skip_on_cran() to all unit tests --- tests/testthat/test-AddStep-DimNames.R | 2 +- .../test-Start-global-lon-across_meridian.R | 2 +- .../test-Start-line_order-consistency.R | 4 ++-- tests/testthat/test-Start-multiple-sdates.R | 2 ++ tests/testthat/test-Start-reorder-lat.R | 18 +++++++++++++++ tests/testthat/test-Start-reorder-latCoarse.R | 18 +++++++++++++++ ...st-Start-reorder-lon-transform_-180to180.R | 21 +++++++++++++++++ .../test-Start-reorder-lon-transform_0to360.R | 22 ++++++++++++++++++ ...Start-reorder-lon-transform_0to360Coarse.R | 22 ++++++++++++++++++ .../test-Start-reorder-lon0to360Coarse.R | 18 +++++++++++++++ .../test-Start-reorder-lon_-180to180.R | 23 +++++++++++++++++++ .../testthat/test-Start-reorder-lon_0to360.R | 18 +++++++++++++++ tests/testthat/test-Start-reorder-retrieve.R | 4 ++-- tests/testthat/test-Start-split-merge.R | 6 ++--- ...test-Start-transform-lon-across_meridian.R | 2 +- 15 files changed, 172 insertions(+), 10 deletions(-) diff --git a/tests/testthat/test-AddStep-DimNames.R b/tests/testthat/test-AddStep-DimNames.R index 03e1d01..8b90ece 100644 --- a/tests/testthat/test-AddStep-DimNames.R +++ b/tests/testthat/test-AddStep-DimNames.R @@ -1,6 +1,6 @@ context("Error with bad dimensions tests.") test_that("Single File - Local execution", { - +skip_on_cran("Skip test on CRAN") data <- Start(dataset = '/esarchive/recon/jma/jra55/monthly_mean/$var$_f6h/$var$_$sdate$$month$.nc', var = 'tas', sdate = '2000', diff --git a/tests/testthat/test-Start-global-lon-across_meridian.R b/tests/testthat/test-Start-global-lon-across_meridian.R index aa1dc18..d2662a3 100644 --- a/tests/testthat/test-Start-global-lon-across_meridian.R +++ b/tests/testthat/test-Start-global-lon-across_meridian.R @@ -1,7 +1,7 @@ context("Start() across_meridia global lon length check") test_that("first test", { - +skip_on_cran("Skip test on CRAN") repos <- "/esarchive/exp/ecmwf/system5_m1/monthly_mean/tas_f6h/$var$_$sdate$.nc" var <- 'tas' diff --git a/tests/testthat/test-Start-line_order-consistency.R b/tests/testthat/test-Start-line_order-consistency.R index 1fe98ea..7bb5f67 100644 --- a/tests/testthat/test-Start-line_order-consistency.R +++ b/tests/testthat/test-Start-line_order-consistency.R @@ -10,7 +10,7 @@ context("Start() line order consistency check") lons.max <- 360 test_that("1. lon and lat order", { - +skip_on_cran("Skip test on CRAN") dat1 <- Start(dat = obs.path, var = variable, file_date = dates_file, @@ -61,7 +61,7 @@ test_that("1. lon and lat order", { test_that("2. dim length check: with/out reorder", { - +skip_on_cran("Skip test on CRAN") dat1 <- Start(dat = obs.path, var = variable, diff --git a/tests/testthat/test-Start-multiple-sdates.R b/tests/testthat/test-Start-multiple-sdates.R index cd5bac8..acc94e5 100644 --- a/tests/testthat/test-Start-multiple-sdates.R +++ b/tests/testthat/test-Start-multiple-sdates.R @@ -14,6 +14,7 @@ var100_name <- 'windagl100' sdates.seq <- c("20161222","20161229","20170105","20170112") test_that("1. ", { +skip_on_cran("Skip test on CRAN") hcst<-Start(dat = ecmwf_path_hc, var = var_name, sdate = sdates.seq, @@ -85,6 +86,7 @@ obs <- Start(dat = obs_path, }) test_that("2. change the file_date order", { +skip_on_cran("Skip test on CRAN") hcst<-Start(dat = ecmwf_path_hc, var = var_name, sdate = sdates.seq, diff --git a/tests/testthat/test-Start-reorder-lat.R b/tests/testthat/test-Start-reorder-lat.R index f53a9ec..71b9517 100644 --- a/tests/testthat/test-Start-reorder-lat.R +++ b/tests/testthat/test-Start-reorder-lat.R @@ -16,6 +16,7 @@ path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$. ############################################## test_that("1-1-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -78,6 +79,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -121,6 +123,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -162,6 +165,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -204,6 +208,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -266,6 +271,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-2-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -307,6 +313,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-3-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -347,6 +354,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-4-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -387,6 +395,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-3-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -428,6 +437,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-2-3-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -469,6 +479,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -530,6 +541,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -571,6 +583,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -612,6 +625,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-1-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -666,6 +680,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-2-2-1-1-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -714,6 +729,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-2-2-3-1-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -762,6 +778,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-3-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -811,6 +828,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-3-1-2-1", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-latCoarse.R b/tests/testthat/test-Start-reorder-latCoarse.R index bc6f480..96c60e6 100644 --- a/tests/testthat/test-Start-reorder-latCoarse.R +++ b/tests/testthat/test-Start-reorder-latCoarse.R @@ -18,6 +18,7 @@ path_exp <- '/esarchive/exp/ncar/cesm-dple/monthly_mean/$var$/$var$_$sdate$.nc' ## latitude: -90 o 90 {-90, -89.05759 ...} #192 values ############################################## test_that("1-1-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -80,6 +81,7 @@ res <- Start(dat = list(list(path = path_exp)), ############################################## test_that("1-2-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -123,6 +125,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -164,6 +167,7 @@ res <- Start(dat = list(list(path = path_exp)), }) ############################################## test_that("1-4-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -206,6 +210,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -268,6 +273,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-2-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -309,6 +315,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-3-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -349,6 +356,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-4-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -389,6 +397,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-3-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -430,6 +439,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-4-3-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -471,6 +481,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-4-2-2-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -532,6 +543,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-4-2-2-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -573,6 +585,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -614,6 +627,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-1-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -668,6 +682,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-4-2-1-1-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -716,6 +731,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-4-2-3-1-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -764,6 +780,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-3-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -813,6 +830,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-3-1-2-1", { +skip_on_cran("Skip test on CRAN") lons.min <- 40 lons.max <- 45 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R index 1b8a96b..12af7e3 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R @@ -17,6 +17,7 @@ sdate <- '199212' ############################################## test_that("1-1-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -59,6 +60,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -97,6 +99,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -135,6 +138,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -172,6 +176,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 170 lons.max <- 190 lats.min <- 10 @@ -211,6 +216,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -257,6 +263,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -304,6 +311,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -351,6 +359,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -392,6 +401,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -439,6 +449,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -481,6 +492,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -522,6 +534,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -571,6 +584,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -616,6 +630,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -662,6 +677,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -708,6 +724,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -750,6 +767,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -791,6 +809,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -837,6 +856,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -878,6 +898,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360.R b/tests/testthat/test-Start-reorder-lon-transform_0to360.R index 5ef5576..e0b09b1 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360.R @@ -17,6 +17,7 @@ sdate <- '19821201' ############################################## test_that("1-1-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -61,6 +62,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -100,6 +102,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -140,6 +143,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -179,6 +183,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -218,6 +223,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -259,6 +265,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -307,6 +314,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -356,6 +364,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -405,6 +414,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -448,6 +458,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -497,6 +508,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -541,6 +553,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -584,6 +597,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -635,6 +649,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -682,6 +697,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -730,6 +746,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -778,6 +795,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -822,6 +840,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -865,6 +884,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -913,6 +933,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -956,6 +977,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R index 262673b..aa89254 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R @@ -21,6 +21,7 @@ sdate <- '20001101' ############################################## test_that("1-1-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -65,6 +66,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -104,6 +106,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -144,6 +147,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -183,6 +187,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -222,6 +227,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-2-4", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -263,6 +269,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -311,6 +318,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -360,6 +368,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -409,6 +418,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -452,6 +462,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -501,6 +512,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -545,6 +557,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -588,6 +601,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-2-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -639,6 +653,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -686,6 +701,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -734,6 +750,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -782,6 +799,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -826,6 +844,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -869,6 +888,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -917,6 +937,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -960,6 +981,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-2-3", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon0to360Coarse.R b/tests/testthat/test-Start-reorder-lon0to360Coarse.R index 461042a..567ad94 100644 --- a/tests/testthat/test-Start-reorder-lon0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon0to360Coarse.R @@ -16,6 +16,7 @@ path_exp <- '/esarchive/exp/ncar/cesm-dple/monthly_mean/$var$/$var$_$sdate$.nc' ## latitude: -90 o 90 {-90, -89.05759 ...} #192 values ############################################## test_that("1-1-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -57,6 +58,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -87,6 +89,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -119,6 +122,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -150,6 +154,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-7-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -180,6 +185,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-4-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -212,6 +218,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-4-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -252,6 +259,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -288,6 +296,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-4-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -324,6 +333,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -361,6 +371,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-4-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -398,6 +409,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -430,6 +442,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-4-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -462,6 +475,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -495,6 +509,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-4-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -523,6 +538,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -556,6 +572,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-4-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -589,6 +606,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-4-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon_-180to180.R b/tests/testthat/test-Start-reorder-lon_-180to180.R index 38cd6b8..b4de39f 100644 --- a/tests/testthat/test-Start-reorder-lon_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon_-180to180.R @@ -18,6 +18,7 @@ sdate <- '199212' ############################################## test_that("1-1-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -57,6 +58,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -86,6 +88,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -116,6 +119,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-4-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -146,6 +150,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -176,6 +181,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -205,6 +211,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-8-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 170 lons.max <- 190 lats.min <- 10 @@ -235,6 +242,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -273,6 +281,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -307,6 +316,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -341,6 +351,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -376,6 +387,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -411,6 +423,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -441,6 +454,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -471,6 +485,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -501,6 +516,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -541,6 +557,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -571,6 +588,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -606,6 +624,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -645,6 +664,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -676,6 +696,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -712,6 +733,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-8-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -743,6 +765,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon_0to360.R b/tests/testthat/test-Start-reorder-lon_0to360.R index 67d0e90..0b5ab1f 100644 --- a/tests/testthat/test-Start-reorder-lon_0to360.R +++ b/tests/testthat/test-Start-reorder-lon_0to360.R @@ -16,6 +16,7 @@ path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$. ############################################## test_that("1-1-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -57,6 +58,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -87,6 +89,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -119,6 +122,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -150,6 +154,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-7-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -180,6 +185,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -212,6 +218,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -252,6 +259,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -288,6 +296,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -324,6 +333,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -361,6 +371,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -398,6 +409,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -430,6 +442,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -462,6 +475,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -495,6 +509,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -523,6 +538,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -556,6 +572,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-2-2-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -589,6 +606,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-1-x", { +skip_on_cran("Skip test on CRAN") lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-retrieve.R b/tests/testthat/test-Start-reorder-retrieve.R index 47412f5..cb21923 100644 --- a/tests/testthat/test-Start-reorder-retrieve.R +++ b/tests/testthat/test-Start-reorder-retrieve.R @@ -3,7 +3,7 @@ context("Start() lon Reorder non-transform retrieve test") ############################################## test_that("original range 0to360", { - +skip_on_cran("Skip test on CRAN") ## Origin longitude in file: [0:359.722222222222] path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$.nc' @@ -83,7 +83,7 @@ res2 <- Start(dat = path_exp, ############################################## test_that("original range -180to180", { - +skip_on_cran("Skip test on CRAN") ## Origin longitude in file: [0:359.722222222222] path_exp <- '/esarchive/recon/ecmwf/era5/original_files/reorder/daily_mean/$var$/$var$_$sdate$.nc' variable <- 'tas' diff --git a/tests/testthat/test-Start-split-merge.R b/tests/testthat/test-Start-split-merge.R index 7a938a5..ce8b1dc 100644 --- a/tests/testthat/test-Start-split-merge.R +++ b/tests/testthat/test-Start-split-merge.R @@ -25,7 +25,7 @@ path.obs <- '/esarchive/recon/ecmwf/era5/1hourly/$var$/$var$_$file_date$.nc' test_that("1. split + merge + narm", { - +skip_on_cran("Skip test on CRAN") obs <- Start(dat = path.obs, var = var_name, file_date = file_date, # a vector @@ -65,7 +65,7 @@ obs <- Start(dat = path.obs, test_that("2. no split + merge + narm", { - +skip_on_cran("Skip test on CRAN") obs <- Start(dat = path.obs, var = var_name, file_date = file_date, # a vector @@ -105,7 +105,7 @@ obs <- Start(dat = path.obs, test_that("3. no split + merge + no narm", { - +skip_on_cran("Skip test on CRAN") obs <- Start(dat = path.obs, var = var_name, file_date = file_date, # a vector diff --git a/tests/testthat/test-Start-transform-lon-across_meridian.R b/tests/testthat/test-Start-transform-lon-across_meridian.R index 96fc550..3b433a3 100644 --- a/tests/testthat/test-Start-transform-lon-across_meridian.R +++ b/tests/testthat/test-Start-transform-lon-across_meridian.R @@ -1,7 +1,7 @@ context("Start() transform across_meridian lon order check") test_that("first test", { - +skip_on_cran("Skip test on CRAN") repos <- "/esarchive/exp/ecmwf/system5_m1/monthly_mean/tas_f6h/$var$_$sdate$.nc" var <- 'tas' -- GitLab From 573bb7715d6715be5aad5d91c970cb21a425f1f8 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 13:43:15 +0200 Subject: [PATCH 36/60] Correct skip_on_cran() --- tests/testthat/test-AddStep-DimNames.R | 2 +- .../test-Start-global-lon-across_meridian.R | 2 +- .../test-Start-line_order-consistency.R | 4 +- tests/testthat/test-Start-multiple-sdates.R | 4 +- tests/testthat/test-Start-reorder-lat.R | 36 +++++++-------- tests/testthat/test-Start-reorder-latCoarse.R | 36 +++++++-------- ...st-Start-reorder-lon-transform_-180to180.R | 42 ++++++++--------- .../test-Start-reorder-lon-transform_0to360.R | 44 +++++++++--------- ...Start-reorder-lon-transform_0to360Coarse.R | 44 +++++++++--------- .../test-Start-reorder-lon0to360Coarse.R | 36 +++++++-------- .../test-Start-reorder-lon_-180to180.R | 46 +++++++++---------- .../testthat/test-Start-reorder-lon_0to360.R | 36 +++++++-------- tests/testthat/test-Start-reorder-retrieve.R | 4 +- tests/testthat/test-Start-split-merge.R | 6 +-- ...test-Start-transform-lon-across_meridian.R | 2 +- 15 files changed, 172 insertions(+), 172 deletions(-) diff --git a/tests/testthat/test-AddStep-DimNames.R b/tests/testthat/test-AddStep-DimNames.R index 8b90ece..a197e70 100644 --- a/tests/testthat/test-AddStep-DimNames.R +++ b/tests/testthat/test-AddStep-DimNames.R @@ -1,6 +1,6 @@ context("Error with bad dimensions tests.") test_that("Single File - Local execution", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() data <- Start(dataset = '/esarchive/recon/jma/jra55/monthly_mean/$var$_f6h/$var$_$sdate$$month$.nc', var = 'tas', sdate = '2000', diff --git a/tests/testthat/test-Start-global-lon-across_meridian.R b/tests/testthat/test-Start-global-lon-across_meridian.R index d2662a3..f233c4a 100644 --- a/tests/testthat/test-Start-global-lon-across_meridian.R +++ b/tests/testthat/test-Start-global-lon-across_meridian.R @@ -1,7 +1,7 @@ context("Start() across_meridia global lon length check") test_that("first test", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() repos <- "/esarchive/exp/ecmwf/system5_m1/monthly_mean/tas_f6h/$var$_$sdate$.nc" var <- 'tas' diff --git a/tests/testthat/test-Start-line_order-consistency.R b/tests/testthat/test-Start-line_order-consistency.R index 7bb5f67..f47f613 100644 --- a/tests/testthat/test-Start-line_order-consistency.R +++ b/tests/testthat/test-Start-line_order-consistency.R @@ -10,7 +10,7 @@ context("Start() line order consistency check") lons.max <- 360 test_that("1. lon and lat order", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() dat1 <- Start(dat = obs.path, var = variable, file_date = dates_file, @@ -61,7 +61,7 @@ skip_on_cran("Skip test on CRAN") test_that("2. dim length check: with/out reorder", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() dat1 <- Start(dat = obs.path, var = variable, diff --git a/tests/testthat/test-Start-multiple-sdates.R b/tests/testthat/test-Start-multiple-sdates.R index acc94e5..1a72667 100644 --- a/tests/testthat/test-Start-multiple-sdates.R +++ b/tests/testthat/test-Start-multiple-sdates.R @@ -14,7 +14,7 @@ var100_name <- 'windagl100' sdates.seq <- c("20161222","20161229","20170105","20170112") test_that("1. ", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() hcst<-Start(dat = ecmwf_path_hc, var = var_name, sdate = sdates.seq, @@ -86,7 +86,7 @@ obs <- Start(dat = obs_path, }) test_that("2. change the file_date order", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() hcst<-Start(dat = ecmwf_path_hc, var = var_name, sdate = sdates.seq, diff --git a/tests/testthat/test-Start-reorder-lat.R b/tests/testthat/test-Start-reorder-lat.R index 71b9517..375bd93 100644 --- a/tests/testthat/test-Start-reorder-lat.R +++ b/tests/testthat/test-Start-reorder-lat.R @@ -16,7 +16,7 @@ path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$. ############################################## test_that("1-1-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -79,7 +79,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -123,7 +123,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -165,7 +165,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -208,7 +208,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -271,7 +271,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-2-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -313,7 +313,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-3-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -354,7 +354,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-4-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -395,7 +395,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-3-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -437,7 +437,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-2-3-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -479,7 +479,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -541,7 +541,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -583,7 +583,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -625,7 +625,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-1-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -680,7 +680,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-2-2-1-1-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -729,7 +729,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-2-2-3-1-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -778,7 +778,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-3-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -828,7 +828,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-3-1-2-1", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-latCoarse.R b/tests/testthat/test-Start-reorder-latCoarse.R index 96c60e6..fe9d3cd 100644 --- a/tests/testthat/test-Start-reorder-latCoarse.R +++ b/tests/testthat/test-Start-reorder-latCoarse.R @@ -18,7 +18,7 @@ path_exp <- '/esarchive/exp/ncar/cesm-dple/monthly_mean/$var$/$var$_$sdate$.nc' ## latitude: -90 o 90 {-90, -89.05759 ...} #192 values ############################################## test_that("1-1-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -81,7 +81,7 @@ res <- Start(dat = list(list(path = path_exp)), ############################################## test_that("1-2-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -125,7 +125,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -167,7 +167,7 @@ res <- Start(dat = list(list(path = path_exp)), }) ############################################## test_that("1-4-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -210,7 +210,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -273,7 +273,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-2-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -315,7 +315,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-3-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -10 @@ -356,7 +356,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-4-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- -20 @@ -397,7 +397,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-3-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -439,7 +439,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("2-1-4-3-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -481,7 +481,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-4-2-2-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -543,7 +543,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-4-2-2-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 20 @@ -585,7 +585,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -627,7 +627,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("2-1-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -682,7 +682,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-4-2-1-1-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -731,7 +731,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-1-4-2-3-1-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -780,7 +780,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-3-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 @@ -830,7 +830,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-3-1-2-1", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 40 lons.max <- 45 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R index 12af7e3..e97a3f7 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R @@ -17,7 +17,7 @@ sdate <- '199212' ############################################## test_that("1-1-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -60,7 +60,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -99,7 +99,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -138,7 +138,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -176,7 +176,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 170 lons.max <- 190 lats.min <- 10 @@ -216,7 +216,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -263,7 +263,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -311,7 +311,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -359,7 +359,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -401,7 +401,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -449,7 +449,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -492,7 +492,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -534,7 +534,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -584,7 +584,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -630,7 +630,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -677,7 +677,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -724,7 +724,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -767,7 +767,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -809,7 +809,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -856,7 +856,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -898,7 +898,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360.R b/tests/testthat/test-Start-reorder-lon-transform_0to360.R index e0b09b1..d2e7cbf 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360.R @@ -17,7 +17,7 @@ sdate <- '19821201' ############################################## test_that("1-1-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -62,7 +62,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -102,7 +102,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -143,7 +143,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -183,7 +183,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -223,7 +223,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -265,7 +265,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -314,7 +314,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -364,7 +364,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -414,7 +414,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -458,7 +458,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -508,7 +508,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -553,7 +553,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -597,7 +597,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -649,7 +649,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -697,7 +697,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -746,7 +746,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -795,7 +795,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -840,7 +840,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -884,7 +884,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -933,7 +933,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -977,7 +977,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R index aa89254..008cd3a 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R @@ -21,7 +21,7 @@ sdate <- '20001101' ############################################## test_that("1-1-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -66,7 +66,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -106,7 +106,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -147,7 +147,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -187,7 +187,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -227,7 +227,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-2-4", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -269,7 +269,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -318,7 +318,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -368,7 +368,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -418,7 +418,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -462,7 +462,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -512,7 +512,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -557,7 +557,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -601,7 +601,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-2-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -653,7 +653,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -701,7 +701,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -750,7 +750,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -799,7 +799,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -844,7 +844,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -888,7 +888,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -937,7 +937,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -981,7 +981,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-2-3", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon0to360Coarse.R b/tests/testthat/test-Start-reorder-lon0to360Coarse.R index 567ad94..bf797f5 100644 --- a/tests/testthat/test-Start-reorder-lon0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon0to360Coarse.R @@ -16,7 +16,7 @@ path_exp <- '/esarchive/exp/ncar/cesm-dple/monthly_mean/$var$/$var$_$sdate$.nc' ## latitude: -90 o 90 {-90, -89.05759 ...} #192 values ############################################## test_that("1-1-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -58,7 +58,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -89,7 +89,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -122,7 +122,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -154,7 +154,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-7-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -185,7 +185,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-4-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -218,7 +218,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-4-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -259,7 +259,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -296,7 +296,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-4-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -333,7 +333,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -371,7 +371,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-4-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -409,7 +409,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -442,7 +442,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-4-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -475,7 +475,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -509,7 +509,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-4-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -538,7 +538,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -572,7 +572,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-4-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -606,7 +606,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-4-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon_-180to180.R b/tests/testthat/test-Start-reorder-lon_-180to180.R index b4de39f..96e98fb 100644 --- a/tests/testthat/test-Start-reorder-lon_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon_-180to180.R @@ -18,7 +18,7 @@ sdate <- '199212' ############################################## test_that("1-1-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -58,7 +58,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -88,7 +88,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -119,7 +119,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-4-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -150,7 +150,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -181,7 +181,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -211,7 +211,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-8-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 170 lons.max <- 190 lats.min <- 10 @@ -242,7 +242,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -281,7 +281,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -316,7 +316,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -351,7 +351,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -387,7 +387,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -423,7 +423,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -454,7 +454,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -485,7 +485,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -516,7 +516,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -557,7 +557,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -588,7 +588,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -624,7 +624,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- -10 lats.min <- 10 @@ -664,7 +664,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -696,7 +696,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-7-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -733,7 +733,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-8-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -765,7 +765,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-lon_0to360.R b/tests/testthat/test-Start-reorder-lon_0to360.R index 0b5ab1f..bd4749b 100644 --- a/tests/testthat/test-Start-reorder-lon_0to360.R +++ b/tests/testthat/test-Start-reorder-lon_0to360.R @@ -16,7 +16,7 @@ path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$. ############################################## test_that("1-1-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -58,7 +58,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-2-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -89,7 +89,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- 10 lats.min <- 10 @@ -122,7 +122,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- -10 lats.min <- 10 @@ -154,7 +154,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-7-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -185,7 +185,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-8-2-2-1-1-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -218,7 +218,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## ############################################## test_that("1-1-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -259,7 +259,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-1-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 10 lons.max <- 20 lats.min <- 10 @@ -296,7 +296,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -333,7 +333,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-2-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 20 lons.max <- 10 lats.min <- 10 @@ -371,7 +371,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-3-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -409,7 +409,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-3-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -10 lons.max <- -20 lats.min <- 10 @@ -442,7 +442,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -475,7 +475,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-4-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- -20 lons.max <- -10 lats.min <- 10 @@ -509,7 +509,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-5-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -538,7 +538,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-5-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 330 lons.max <- 350 lats.min <- 10 @@ -572,7 +572,7 @@ res <- Start(dat = list(list(path=path_exp)), ############################################## test_that("1-6-2-2-2-2-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 @@ -606,7 +606,7 @@ res <- Start(dat = list(list(path=path_exp)), }) ############################################## test_that("1-6-2-2-2-3-1-x", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() lons.min <- 350 lons.max <- 370 lats.min <- 10 diff --git a/tests/testthat/test-Start-reorder-retrieve.R b/tests/testthat/test-Start-reorder-retrieve.R index cb21923..4fc61bc 100644 --- a/tests/testthat/test-Start-reorder-retrieve.R +++ b/tests/testthat/test-Start-reorder-retrieve.R @@ -3,7 +3,7 @@ context("Start() lon Reorder non-transform retrieve test") ############################################## test_that("original range 0to360", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() ## Origin longitude in file: [0:359.722222222222] path_exp <- '/esarchive/exp/ecmwf/system5_m1/daily_mean/$var$_f6h/$var$_$sdate$.nc' @@ -83,7 +83,7 @@ res2 <- Start(dat = path_exp, ############################################## test_that("original range -180to180", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() ## Origin longitude in file: [0:359.722222222222] path_exp <- '/esarchive/recon/ecmwf/era5/original_files/reorder/daily_mean/$var$/$var$_$sdate$.nc' variable <- 'tas' diff --git a/tests/testthat/test-Start-split-merge.R b/tests/testthat/test-Start-split-merge.R index ce8b1dc..f1483d6 100644 --- a/tests/testthat/test-Start-split-merge.R +++ b/tests/testthat/test-Start-split-merge.R @@ -25,7 +25,7 @@ path.obs <- '/esarchive/recon/ecmwf/era5/1hourly/$var$/$var$_$file_date$.nc' test_that("1. split + merge + narm", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() obs <- Start(dat = path.obs, var = var_name, file_date = file_date, # a vector @@ -65,7 +65,7 @@ obs <- Start(dat = path.obs, test_that("2. no split + merge + narm", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() obs <- Start(dat = path.obs, var = var_name, file_date = file_date, # a vector @@ -105,7 +105,7 @@ obs <- Start(dat = path.obs, test_that("3. no split + merge + no narm", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() obs <- Start(dat = path.obs, var = var_name, file_date = file_date, # a vector diff --git a/tests/testthat/test-Start-transform-lon-across_meridian.R b/tests/testthat/test-Start-transform-lon-across_meridian.R index 3b433a3..94cc4b3 100644 --- a/tests/testthat/test-Start-transform-lon-across_meridian.R +++ b/tests/testthat/test-Start-transform-lon-across_meridian.R @@ -1,7 +1,7 @@ context("Start() transform across_meridian lon order check") test_that("first test", { -skip_on_cran("Skip test on CRAN") +skip_on_cran() repos <- "/esarchive/exp/ecmwf/system5_m1/monthly_mean/tas_f6h/$var$_$sdate$.nc" var <- 'tas' -- GitLab From 9c009998220af66df7569bb17218fc8ec89a02bb Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 13:43:42 +0200 Subject: [PATCH 37/60] Add testthat into 'Suggest' --- DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/DESCRIPTION b/DESCRIPTION index e29cc6a..41a3542 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -29,6 +29,7 @@ Imports: easyNCDF, s2dverification Suggests: + testthat, stats, utils License: LGPL-3 -- GitLab From a3c6f74aa8e9cd4e2e3506812a089b784234b328 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 13:54:44 +0200 Subject: [PATCH 38/60] Remove unused line --- .Rbuildignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index cc9648a..4371830 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -9,10 +9,8 @@ #^inst/chunking/$ ^inst/doc/$ ^inst/doc/*$ -^tests/$ ^inst/doc/figures/$ ^inst/doc/usecase/$ -#^tests/testthat/*$ #^inst/PlotProfiling\.R$ # Suggested by http://r-pkgs.had.co.nz/package.html -- GitLab From 52f32c9e7e56ce8c90e46850fc7d641384ef4574 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 14:18:17 +0200 Subject: [PATCH 39/60] Set environment 'NO_CRAN' as true if no specified --- tests/testthat/test-AddStep-DimNames.R | 2 ++ tests/testthat/test-Compute-NumChunks.R | 4 +++- tests/testthat/test-Start-global-lon-across_meridian.R | 2 ++ tests/testthat/test-Start-line_order-consistency.R | 2 ++ tests/testthat/test-Start-multiple-sdates.R | 2 ++ tests/testthat/test-Start-reorder-lat.R | 2 ++ tests/testthat/test-Start-reorder-latCoarse.R | 2 ++ tests/testthat/test-Start-reorder-lon-transform_-180to180.R | 2 ++ tests/testthat/test-Start-reorder-lon-transform_0to360.R | 2 ++ .../testthat/test-Start-reorder-lon-transform_0to360Coarse.R | 2 ++ tests/testthat/test-Start-reorder-lon0to360Coarse.R | 2 ++ tests/testthat/test-Start-reorder-lon_-180to180.R | 2 ++ tests/testthat/test-Start-reorder-lon_0to360.R | 2 ++ tests/testthat/test-Start-reorder-retrieve.R | 2 ++ tests/testthat/test-Start-split-merge.R | 3 +++ tests/testthat/test-Start-transform-lon-across_meridian.R | 2 ++ 16 files changed, 34 insertions(+), 1 deletion(-) diff --git a/tests/testthat/test-AddStep-DimNames.R b/tests/testthat/test-AddStep-DimNames.R index a197e70..dc40b97 100644 --- a/tests/testthat/test-AddStep-DimNames.R +++ b/tests/testthat/test-AddStep-DimNames.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Error with bad dimensions tests.") test_that("Single File - Local execution", { skip_on_cran() diff --git a/tests/testthat/test-Compute-NumChunks.R b/tests/testthat/test-Compute-NumChunks.R index 41d91b7..e516262 100644 --- a/tests/testthat/test-Compute-NumChunks.R +++ b/tests/testthat/test-Compute-NumChunks.R @@ -1,6 +1,8 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Number of chunks tests.") test_that("Single File - Local execution", { - +skip_on_cran() data <- Start(dataset = '/esarchive/recon/jma/jra55/monthly_mean/$var$_f6h/$var$_$sdate$$month$.nc', var = 'tas', sdate = '2000', diff --git a/tests/testthat/test-Start-global-lon-across_meridian.R b/tests/testthat/test-Start-global-lon-across_meridian.R index f233c4a..a35b4f4 100644 --- a/tests/testthat/test-Start-global-lon-across_meridian.R +++ b/tests/testthat/test-Start-global-lon-across_meridian.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() across_meridia global lon length check") test_that("first test", { diff --git a/tests/testthat/test-Start-line_order-consistency.R b/tests/testthat/test-Start-line_order-consistency.R index f47f613..ea38491 100644 --- a/tests/testthat/test-Start-line_order-consistency.R +++ b/tests/testthat/test-Start-line_order-consistency.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() line order consistency check") variable <- "tas" diff --git a/tests/testthat/test-Start-multiple-sdates.R b/tests/testthat/test-Start-multiple-sdates.R index 1a72667..25762d2 100644 --- a/tests/testthat/test-Start-multiple-sdates.R +++ b/tests/testthat/test-Start-multiple-sdates.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() multiple sdate with split + merge dim") # When certain values in one observation file are required more than once, diff --git a/tests/testthat/test-Start-reorder-lat.R b/tests/testthat/test-Start-reorder-lat.R index 375bd93..013d663 100644 --- a/tests/testthat/test-Start-reorder-lat.R +++ b/tests/testthat/test-Start-reorder-lat.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() lat Reorder test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-latCoarse.R b/tests/testthat/test-Start-reorder-latCoarse.R index fe9d3cd..e9329b3 100644 --- a/tests/testthat/test-Start-reorder-latCoarse.R +++ b/tests/testthat/test-Start-reorder-latCoarse.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() lat Reorder test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R index e97a3f7..90be0f8 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + 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] diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360.R b/tests/testthat/test-Start-reorder-lon-transform_0to360.R index d2e7cbf..30f63c7 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + 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] diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R index 008cd3a..7c490a7 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + 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] diff --git a/tests/testthat/test-Start-reorder-lon0to360Coarse.R b/tests/testthat/test-Start-reorder-lon0to360Coarse.R index bf797f5..5197493 100644 --- a/tests/testthat/test-Start-reorder-lon0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon0to360Coarse.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + 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] diff --git a/tests/testthat/test-Start-reorder-lon_-180to180.R b/tests/testthat/test-Start-reorder-lon_-180to180.R index 96e98fb..7d7048a 100644 --- a/tests/testthat/test-Start-reorder-lon_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon_-180to180.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + 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] diff --git a/tests/testthat/test-Start-reorder-lon_0to360.R b/tests/testthat/test-Start-reorder-lon_0to360.R index bd4749b..df7dd2f 100644 --- a/tests/testthat/test-Start-reorder-lon_0to360.R +++ b/tests/testthat/test-Start-reorder-lon_0to360.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + 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] diff --git a/tests/testthat/test-Start-reorder-retrieve.R b/tests/testthat/test-Start-reorder-retrieve.R index 4fc61bc..f03a37a 100644 --- a/tests/testthat/test-Start-reorder-retrieve.R +++ b/tests/testthat/test-Start-reorder-retrieve.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() lon Reorder non-transform retrieve test") diff --git a/tests/testthat/test-Start-split-merge.R b/tests/testthat/test-Start-split-merge.R index f1483d6..f29e88d 100644 --- a/tests/testthat/test-Start-split-merge.R +++ b/tests/testthat/test-Start-split-merge.R @@ -1,3 +1,6 @@ + +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() split + merge dim and value check") var_name <- 'sfcWind' diff --git a/tests/testthat/test-Start-transform-lon-across_meridian.R b/tests/testthat/test-Start-transform-lon-across_meridian.R index 94cc4b3..85971af 100644 --- a/tests/testthat/test-Start-transform-lon-across_meridian.R +++ b/tests/testthat/test-Start-transform-lon-across_meridian.R @@ -1,3 +1,5 @@ +if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') + context("Start() transform across_meridian lon order check") test_that("first test", { -- GitLab From 8be4d8f39a1990ccd057e3d453baa46feb07e84f Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 16:38:16 +0200 Subject: [PATCH 40/60] Try to fix NO_CRAN env setting --- tests/testthat/test-Start-split-merge.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/testthat/test-Start-split-merge.R b/tests/testthat/test-Start-split-merge.R index f29e88d..1b3f6de 100644 --- a/tests/testthat/test-Start-split-merge.R +++ b/tests/testthat/test-Start-split-merge.R @@ -1,5 +1,6 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +if (!identical(Sys.getenv("NOT_CRAN"), "false")){ context("Start() split + merge dim and value check") @@ -145,3 +146,5 @@ obs <- Start(dat = path.obs, 3600 ) }) + +} -- GitLab From 9098d3a8d983a056a62435ca35ba9cb83f128503 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 30 Jul 2020 17:15:53 +0200 Subject: [PATCH 41/60] Comment the first 'if' because it is unecessary --- tests/testthat/test-AddStep-DimNames.R | 2 +- tests/testthat/test-Compute-NumChunks.R | 2 +- tests/testthat/test-Start-global-lon-across_meridian.R | 2 +- tests/testthat/test-Start-line_order-consistency.R | 2 +- tests/testthat/test-Start-multiple-sdates.R | 2 +- tests/testthat/test-Start-reorder-lat.R | 2 +- tests/testthat/test-Start-reorder-latCoarse.R | 2 +- tests/testthat/test-Start-reorder-lon-transform_-180to180.R | 2 +- tests/testthat/test-Start-reorder-lon-transform_0to360.R | 2 +- tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R | 2 +- tests/testthat/test-Start-reorder-lon0to360Coarse.R | 2 +- tests/testthat/test-Start-reorder-lon_-180to180.R | 2 +- tests/testthat/test-Start-reorder-lon_0to360.R | 2 +- tests/testthat/test-Start-reorder-retrieve.R | 2 +- tests/testthat/test-Start-split-merge.R | 3 --- tests/testthat/test-Start-transform-lon-across_meridian.R | 2 +- 16 files changed, 15 insertions(+), 18 deletions(-) diff --git a/tests/testthat/test-AddStep-DimNames.R b/tests/testthat/test-AddStep-DimNames.R index dc40b97..5577ff5 100644 --- a/tests/testthat/test-AddStep-DimNames.R +++ b/tests/testthat/test-AddStep-DimNames.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Error with bad dimensions tests.") test_that("Single File - Local execution", { diff --git a/tests/testthat/test-Compute-NumChunks.R b/tests/testthat/test-Compute-NumChunks.R index e516262..319a18b 100644 --- a/tests/testthat/test-Compute-NumChunks.R +++ b/tests/testthat/test-Compute-NumChunks.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Number of chunks tests.") test_that("Single File - Local execution", { diff --git a/tests/testthat/test-Start-global-lon-across_meridian.R b/tests/testthat/test-Start-global-lon-across_meridian.R index a35b4f4..1650703 100644 --- a/tests/testthat/test-Start-global-lon-across_meridian.R +++ b/tests/testthat/test-Start-global-lon-across_meridian.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() across_meridia global lon length check") diff --git a/tests/testthat/test-Start-line_order-consistency.R b/tests/testthat/test-Start-line_order-consistency.R index ea38491..74ffae2 100644 --- a/tests/testthat/test-Start-line_order-consistency.R +++ b/tests/testthat/test-Start-line_order-consistency.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() line order consistency check") diff --git a/tests/testthat/test-Start-multiple-sdates.R b/tests/testthat/test-Start-multiple-sdates.R index 25762d2..832205a 100644 --- a/tests/testthat/test-Start-multiple-sdates.R +++ b/tests/testthat/test-Start-multiple-sdates.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() multiple sdate with split + merge dim") diff --git a/tests/testthat/test-Start-reorder-lat.R b/tests/testthat/test-Start-reorder-lat.R index 013d663..9c2729a 100644 --- a/tests/testthat/test-Start-reorder-lat.R +++ b/tests/testthat/test-Start-reorder-lat.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lat Reorder test") diff --git a/tests/testthat/test-Start-reorder-latCoarse.R b/tests/testthat/test-Start-reorder-latCoarse.R index e9329b3..4229b06 100644 --- a/tests/testthat/test-Start-reorder-latCoarse.R +++ b/tests/testthat/test-Start-reorder-latCoarse.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lat Reorder test") diff --git a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R index 90be0f8..efbe178 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon-transform_-180to180.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lon Reorder transform -180to180 test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360.R b/tests/testthat/test-Start-reorder-lon-transform_0to360.R index 30f63c7..0a973bc 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lon Reorder transform 0to360 test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R index 7c490a7..01b5d68 100644 --- a/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon-transform_0to360Coarse.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lon Reorder transform 0to360 test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-lon0to360Coarse.R b/tests/testthat/test-Start-reorder-lon0to360Coarse.R index 5197493..cb7649a 100644 --- a/tests/testthat/test-Start-reorder-lon0to360Coarse.R +++ b/tests/testthat/test-Start-reorder-lon0to360Coarse.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lon Reorder non-transform 0to360 test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-lon_-180to180.R b/tests/testthat/test-Start-reorder-lon_-180to180.R index 7d7048a..bdfc1da 100644 --- a/tests/testthat/test-Start-reorder-lon_-180to180.R +++ b/tests/testthat/test-Start-reorder-lon_-180to180.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lon Reorder non-transform -180to180 test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-lon_0to360.R b/tests/testthat/test-Start-reorder-lon_0to360.R index df7dd2f..5faf713 100644 --- a/tests/testthat/test-Start-reorder-lon_0to360.R +++ b/tests/testthat/test-Start-reorder-lon_0to360.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lon Reorder non-transform 0to360 test") #1 selector type 1-values(list) 2-values(vector) 3-indices 4-'all' 5-mix diff --git a/tests/testthat/test-Start-reorder-retrieve.R b/tests/testthat/test-Start-reorder-retrieve.R index f03a37a..cb6cfc6 100644 --- a/tests/testthat/test-Start-reorder-retrieve.R +++ b/tests/testthat/test-Start-reorder-retrieve.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() lon Reorder non-transform retrieve test") diff --git a/tests/testthat/test-Start-split-merge.R b/tests/testthat/test-Start-split-merge.R index 1b3f6de..e998844 100644 --- a/tests/testthat/test-Start-split-merge.R +++ b/tests/testthat/test-Start-split-merge.R @@ -1,6 +1,4 @@ - #if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') -if (!identical(Sys.getenv("NOT_CRAN"), "false")){ context("Start() split + merge dim and value check") @@ -147,4 +145,3 @@ obs <- Start(dat = path.obs, ) }) -} diff --git a/tests/testthat/test-Start-transform-lon-across_meridian.R b/tests/testthat/test-Start-transform-lon-across_meridian.R index 85971af..9ac0b8d 100644 --- a/tests/testthat/test-Start-transform-lon-across_meridian.R +++ b/tests/testthat/test-Start-transform-lon-across_meridian.R @@ -1,4 +1,4 @@ -if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') +#if (identical(Sys.getenv("NOT_CRAN"), "")) Sys.setenv(NOT_CRAN='true') context("Start() transform across_meridian lon order check") -- GitLab From ad616f8ef3bb9e25af4e8de1b183679c13d291e8 Mon Sep 17 00:00:00 2001 From: aho Date: Mon, 3 Aug 2020 14:45:46 +0200 Subject: [PATCH 42/60] Add @seealso and @return --- R/.nfs0000000001d0f55000000029 | Bin 0 -> 12288 bytes R/CDORemapper.R | 8 +++++++- R/NcCloser.R | 9 +++++---- 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 R/.nfs0000000001d0f55000000029 diff --git a/R/.nfs0000000001d0f55000000029 b/R/.nfs0000000001d0f55000000029 new file mode 100644 index 0000000000000000000000000000000000000000..1a94a3beb971728d562dbee143b79fce781b7cea GIT binary patch literal 12288 zcmeI2O=}b}7{^obru7vOZ;$pcyRe>Y5g-CY;KC5F-7)qFtG!fKe6MWB zj@u1th=&#8nua9L_I;>LH#N7-NZgUM1Tko z0U|&IhyW2F0z`la{0{>C>R|wqn_hcy>G|ATc?-7|#)<6c?e|jHI;*bc!qZ6zb0uu7 z)e#HWXA|DM-0SMhx?Y^R-Y_f<;af$i39S^y#UOPYKKydw+hVmVmCR~gZX+zfIFqVh z}cG} zaXyna&lJ3hVl#vXgFyrBjg=K2tpKxTJe5{v;1%peaT(eJ9fFPIq3620FI}q-oOlq# zjw4SXk~~1?ScN)Exf}FhT}lX~<#A$gqKFe{k*8AG!lDZ9$}IB3$hO0R0*!kCBO7Ej zaA-@5N2M@rpv546(u3XDMsCIU?nbeQij;2Yxsj$sr9`J#Sgqc#DyndMN(AAo=N5L9 zRpEYw!2o-8R8I(1?S*;n0ahk-lSaN6zjJyh(uJnor9v@ynhr!V}JQ6PF$flS^ Zu>cidjcyA00XOB&jMxq1piOns* Date: Mon, 3 Aug 2020 14:49:00 +0200 Subject: [PATCH 43/60] Format adjustment for CRAN --- DESCRIPTION | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 41a3542..6883649 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -9,15 +9,15 @@ Authors@R: c( person("Javier", "Vegas", , "javier.vegas@bsc.es", role = c("ctb")), person("Pierre-Antoine", "Bretonniere", , "pierre-antoine.bretonniere@bsc.es", role = c("ctb")), person("Roberto", "Serrano", , "rsnotivoli@gmal.com", role = c("ctb"))) -Description: Tool to automatically fetch, transform and arrange subsets of - multidimensional data sets (collections of files) stored in local and/or remote +Description: Tool to automatically fetch, transform and arrange subsets of multi- + dimensional data sets (collections of files) stored in local and/or remote file systems or servers, using multicore capabilities where possible. The tool provides an interface to perceive a collection of data sets as a single large multidimensional data array, and enables the user to request for automatic retrieval, processing and arrangement of subsets of the large array. Wrapper functions to add support for custom file formats can be plugged in/out, making - the tool suitable for any research field where large multidimensional data sets - are involved. + the tool suitable for any research field where large multidimensional data + sets are involved. Depends: R (>= 3.2.0) Imports: -- GitLab From 9a0f86ce87529e358e47ff95f1bff15d5e4f71db Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 10:40:41 +0200 Subject: [PATCH 44/60] Raise version to v2.0.0 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 6883649..5be095e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: startR Title: Automatically Retrieve Multidimensional Distributed Data Sets -Version: 1.0.3 +Version: 2.0.0 Authors@R: c( person("BSC-CNS", role = c("aut", "cph")), person("Nicolau", "Manubens", , "nicolau.manubens@bsc.es", role = c("aut")), -- GitLab From dcaaed618cb75fc11bf67911778430d2a41c01c8 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 10:42:30 +0200 Subject: [PATCH 45/60] Seperate indices() and values() from Utils.R --- R/.nfs0000000001d0f55000000029 | Bin 12288 -> 0 bytes R/Utils.R | 29 ---------------------- R/indices.R | 34 +++++++++++++++++++++++++ R/values.R | 35 ++++++++++++++++++++++++++ man/CDORemapper.Rd | 11 ++++++++- man/NcCloser.Rd | 11 ++++++--- man/indices.Rd | 38 +++++++++++++++++++--------- man/values.Rd | 44 +++++++++++++++++++++++++++++++++ 8 files changed, 157 insertions(+), 45 deletions(-) delete mode 100644 R/.nfs0000000001d0f55000000029 create mode 100644 R/indices.R create mode 100644 R/values.R create mode 100644 man/values.Rd diff --git a/R/.nfs0000000001d0f55000000029 b/R/.nfs0000000001d0f55000000029 deleted file mode 100644 index 1a94a3beb971728d562dbee143b79fce781b7cea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O=}b}7{^obru7vOZ;$pcyRe>Y5g-CY;KC5F-7)qFtG!fKe6MWB zj@u1th=&#8nua9L_I;>LH#N7-NZgUM1Tko z0U|&IhyW2F0z`la{0{>C>R|wqn_hcy>G|ATc?-7|#)<6c?e|jHI;*bc!qZ6zb0uu7 z)e#HWXA|DM-0SMhx?Y^R-Y_f<;af$i39S^y#UOPYKKydw+hVmVmCR~gZX+zfIFqVh z}cG} zaXyna&lJ3hVl#vXgFyrBjg=K2tpKxTJe5{v;1%peaT(eJ9fFPIq3620FI}q-oOlq# zjw4SXk~~1?ScN)Exf}FhT}lX~<#A$gqKFe{k*8AG!lDZ9$}IB3$hO0R0*!kCBO7Ej zaA-@5N2M@rpv546(u3XDMsCIU?nbeQij;2Yxsj$sr9`J#Sgqc#DyndMN(AAo=N5L9 zRpEYw!2o-8R8I(1?S*;n0ahk-lSaN6zjJyh(uJnor9v@ynhr!V}JQ6PF$flS^ Zu>cidjcyA00XOB&jMxq1piOns* n_chunks)) { stop("Requested chunk index out of bounds.") diff --git a/R/indices.R b/R/indices.R new file mode 100644 index 0000000..3277f0f --- /dev/null +++ b/R/indices.R @@ -0,0 +1,34 @@ +#'Specify dimension selectors with indices +#' +#'This is a helper function used in a Start() call to define the desired range +#'of dimensions. It selects the indices of the coordinate variable from +#'original data. See details in the documentation of the parameter \code{\dots} +#''indices to take' of the function Start(). +#' +#'@param x A numeric vector or a list with two nemerics to take all the +#' elements between the two specified indices (both extremes inclusive). +#'@return Same as input, but with additional attribute 'indices', 'values', and +#' 'chunk'. +#'@examples +#' # Used in Start(): +#' data_path <- system.file('extdata', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = indices(1:2), +#' longitude = indices(list(2, 14)), +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#'@seealso [values()] +#'@export +indices <- function(x) { + attr(x, 'indices') <- TRUE + attr(x, 'values') <- FALSE + attr(x, 'chunk') <- c(chunk = 1, n_chunks = 1) + x +} diff --git a/R/values.R b/R/values.R new file mode 100644 index 0000000..82c3ae2 --- /dev/null +++ b/R/values.R @@ -0,0 +1,35 @@ +#'Specify dimension selectors with actual values +#' +#'This is a helper function used in a Start() call to define the desired range +#'of dimensions. It specifies the actual value to be matched with the +#'coordinate variable. See details in the documentation of the parameter +#'\code{\dots} 'indices to take' of the function Start(). +#'@param x A numeric vector or a list with two nemerics to take all the element +#' between the two specified values (both extremes inclusive). +#'@return Same as input, but with additional attribute 'indices', 'values', and +#' 'chunk'. +#'@examples +#' # Used in Start(): +#' data_path <- system.file('extdata', package = 'startR') +#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' sdates <- c('200011', '200012') +#' data <- Start(dat = path_obs, +#' var = 'tos', +#' sdate = sdates, +#' time = 'all', +#' latitude = values(seq(-80, 80, 20)), +#' latitude_reorder = Sort(), +#' longitude = values(list(10, 300)), +#' longitude_reorder = CircularSort(0, 360), +#' return_vars = list(latitude = 'dat', +#' longitude = 'dat', +#' time = 'sdate'), +#' retrieve = FALSE) +#'@seealso [indices()] +#'@export +values <- function(x) { + attr(x, 'indices') <- FALSE + attr(x, 'values') <- TRUE + attr(x, 'chunk') <- c(chunk = 1, n_chunks = 1) + x +} diff --git a/man/CDORemapper.Rd b/man/CDORemapper.Rd index 418bf5d..984e127 100644 --- a/man/CDORemapper.Rd +++ b/man/CDORemapper.Rd @@ -22,12 +22,18 @@ the parameter 'transform' of the function Start(). The default value is NULL.} as provided in the parameter 'transform_params' in a Start() call. See details in the documentation of the parameter 'transform' of the function Start().} } +\value{ +An array with the same amount of dimensions as the input data array, + potentially with different sizes, and potentially with the attribute + 'variables' with additional auxiliary data. See details in the documentation + of the parameter 'transform' of the function \code{Start()}. +} \description{ This is a transform function that uses CDO software to remap longitude-latitude data subsets onto a specified target grid, intended for use as parameter 'transform' in a Start() call. This function complies with the input/output interface required by Start() defined in the documentation for the parameter -'transform' of function Start().\cr +'transform' of function Start().\cr\cr This function uses the function CDORemap() in the package 's2dverification' to perform the interpolation, hence CDO is required to be installed. } @@ -55,4 +61,7 @@ perform the interpolation, hence CDO is required to be installed. retrieve = FALSE) } +\seealso{ +\code{\link[s2dverification]{CDORemap}} +} diff --git a/man/NcCloser.Rd b/man/NcCloser.Rd index df53096..fbff623 100644 --- a/man/NcCloser.Rd +++ b/man/NcCloser.Rd @@ -16,11 +16,11 @@ This function returns NULL. } \description{ This is a file closer function for NetCDF files, intended for use as -parameter file_closer in a Start() call. This function complies with the +parameter 'file_closer' in a Start() call. This function complies with the input/output interface required by Start() defined in the documentation for -the parameter 'file_closer'.\cr -This function uses the function NcClose() in the package 'easyNCDF', which in -turn uses nc_close() in the package 'ncdf4'. +the parameter 'file_closer'.\cr\cr +This function uses the function \code{NcClose()} in the package 'easyNCDF', +which in turn uses \code{nc_close()} in the package 'ncdf4'. } \examples{ data_path <- system.file('extdata', package = 'startR') @@ -29,4 +29,7 @@ connection <- NcOpener(path_obs) NcCloser(connection) } +\seealso{ +\code{\link[easyNCDF]{NcClose}} +} diff --git a/man/indices.Rd b/man/indices.Rd index 4bb890b..498200d 100644 --- a/man/indices.Rd +++ b/man/indices.Rd @@ -1,26 +1,42 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/Utils.R +% Please edit documentation in R/indices.R \name{indices} \alias{indices} -\alias{values} -\title{Specify dimension selectors} +\title{Specify dimension selectors with indices} \usage{ indices(x) - -values(x) } \arguments{ -\item{x}{A numeric vector or a list with two nemeric elements.} +\item{x}{A numeric vector or a list with two nemerics to take all the +elements between the two specified indices (both extremes inclusive).} } \value{ Same as input, but with additional attribute 'indices', 'values', and 'chunk'. } \description{ -The helper functions for use in a \code{Start()} call to define -the desired range of dimensions. \code{indices()} selects the indices of the -coordinate variable from original data, and \code{values()} specifies the -actual value to be matched with the coordinate variable. See details in the -documentation of the parameter \code{\dots} of the function \code{Start()}. +This is a helper function used in a Start() call to define the desired range +of dimensions. It selects the indices of the coordinate variable from +original data. See details in the documentation of the parameter \code{\dots} +'indices to take' of the function Start(). +} +\examples{ +# Used in Start(): + data_path <- system.file('extdata', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = indices(1:2), + longitude = indices(list(2, 14)), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) +} +\seealso{ +[values()] } diff --git a/man/values.Rd b/man/values.Rd new file mode 100644 index 0000000..6ce9c66 --- /dev/null +++ b/man/values.Rd @@ -0,0 +1,44 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/values.R +\name{values} +\alias{values} +\title{Specify dimension selectors with actual values} +\usage{ +values(x) +} +\arguments{ +\item{x}{A numeric vector or a list with two nemerics to take all the element +between the two specified values (both extremes inclusive).} +} +\value{ +Same as input, but with additional attribute 'indices', 'values', and + 'chunk'. +} +\description{ +This is a helper function used in a Start() call to define the desired range +of dimensions. It specifies the actual value to be matched with the +coordinate variable. See details in the documentation of the parameter +\code{\dots} 'indices to take' of the function Start(). +} +\examples{ +# Used in Start(): + data_path <- system.file('extdata', package = 'startR') + path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') + sdates <- c('200011', '200012') + data <- Start(dat = path_obs, + var = 'tos', + sdate = sdates, + time = 'all', + latitude = values(seq(-80, 80, 20)), + latitude_reorder = Sort(), + longitude = values(list(10, 300)), + longitude_reorder = CircularSort(0, 360), + return_vars = list(latitude = 'dat', + longitude = 'dat', + time = 'sdate'), + retrieve = FALSE) +} +\seealso{ +[indices()] +} + -- GitLab From 0e0371a603e0d254b9718177868e685a30b7017b Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 10:57:49 +0200 Subject: [PATCH 46/60] Adjust doc format --- R/Compute.R | 2 +- man/Compute.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/Compute.R b/R/Compute.R index 63bc2ee..7e2125f 100644 --- a/R/Compute.R +++ b/R/Compute.R @@ -5,7 +5,7 @@ #'execution. The execution can be operated locally or on a remote machine. If #'it is the latter case, the configuration of the machine needs to be #'sepecified in the function, and the EC-Flow server is required to be -#'installed.\cr +#'installed.\cr\cr #'The execution can be operated by chunks to avoid overloading the RAM memory. #'After all the chunks are finished, Compute() will gather and merge them, and #'return a single data object, including one or multiple multidimensional data diff --git a/man/Compute.Rd b/man/Compute.Rd index a859cc2..956992b 100644 --- a/man/Compute.Rd +++ b/man/Compute.Rd @@ -69,7 +69,7 @@ AddStep(). This function specifies the execution parameters and triggers the execution. The execution can be operated locally or on a remote machine. If it is the latter case, the configuration of the machine needs to be sepecified in the function, and the EC-Flow server is required to be -installed.\cr +installed.\cr\cr The execution can be operated by chunks to avoid overloading the RAM memory. After all the chunks are finished, Compute() will gather and merge them, and return a single data object, including one or multiple multidimensional data -- GitLab From 5b54d605bde94de2dc2f54f4445ddfda9bb8a1fa Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 10:58:14 +0200 Subject: [PATCH 47/60] Remove @export in ByChunks() --- NAMESPACE | 1 - R/ByChunks.R | 10 +++++----- man/ByChunks.Rd | 9 +++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 93b16a6..619dfb1 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,7 +1,6 @@ # Generated by roxygen2: do not edit by hand export(AddStep) -export(ByChunks) export(CDORemapper) export(CircularSort) export(Collect) diff --git a/R/ByChunks.R b/R/ByChunks.R index 80cffe2..812192b 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -1,8 +1,8 @@ #'Execute the operation by chunks #' -#'This is a function used in Compute(), executing the operation by the chunks -#'specified in Compute(). It also returns the configuration details and -#'profiling information. +#'This is an internal function used in Compute(), executing the operation by +#'the chunks specified in Compute(). It also returns the configuration details +#'and profiling information. #' #'@param step_fun A function with the class 'startR_step_fun' containing the #' details of operation. @@ -20,7 +20,8 @@ #' to use for the computation. The default value is 1. #'@param cluster A list of components that define the configuration of the #' machine to be run on. The comoponents vary from the different machines. -#' Check https://earth.bsc.es/gitlab/es/startR/ for more details and examples. +#' Check \href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab} for more +#' details and examples. #' Only needed when the computation is not run locally. The default value is #' NULL. #'@param ecflow_suite_dir A character string indicating the path to a folder in @@ -79,7 +80,6 @@ #' ByChunks(step, data) #' #'@import multiApply -#'@export ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', threads_load = 2, threads_compute = 1, cluster = NULL, diff --git a/man/ByChunks.Rd b/man/ByChunks.Rd index 456f5a7..9c391ae 100644 --- a/man/ByChunks.Rd +++ b/man/ByChunks.Rd @@ -29,7 +29,8 @@ to use for the computation. The default value is 1.} \item{cluster}{A list of components that define the configuration of the machine to be run on. The comoponents vary from the different machines. -Check https://earth.bsc.es/gitlab/es/startR/ for more details and examples. +Check \href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab} for more +details and examples. Only needed when the computation is not run locally. The default value is NULL.} @@ -67,9 +68,9 @@ A list of data arrays for the output returned by the last step in the attached as attributes to the returned list of arrays. } \description{ -This is a function used in Compute(), executing the operation by the chunks -specified in Compute(). It also returns the configuration details and -profiling information. +This is an internal function used in Compute(), executing the operation by +the chunks specified in Compute(). It also returns the configuration details +and profiling information. } \examples{ # ByChunks() is internally used in Compute(), not intended to be used by -- GitLab From 4e26cc7e87a89a762d0c6507865c759361115c30 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 11:05:32 +0200 Subject: [PATCH 48/60] Remove Subset() and use ClimProjDiags::Subset instead --- NAMESPACE | 2 +- R/Start.R | 7 ++- R/Subset.R | 144 -------------------------------------------------- R/Utils.R | 5 +- man/Subset.Rd | 62 ---------------------- 5 files changed, 10 insertions(+), 210 deletions(-) delete mode 100644 R/Subset.R delete mode 100644 man/Subset.Rd diff --git a/NAMESPACE b/NAMESPACE index 619dfb1..81fe78c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -14,7 +14,6 @@ export(SelectorChecker) export(Sort) export(Start) export(Step) -export(Subset) export(indices) export(values) import(abind) @@ -23,4 +22,5 @@ import(easyNCDF) import(future) import(multiApply) import(parallel) +importFrom(ClimProjDiags,Subset) importFrom(s2dverification,CDORemap) diff --git a/R/Start.R b/R/Start.R index 7601e8e..987741e 100644 --- a/R/Start.R +++ b/R/Start.R @@ -768,7 +768,8 @@ #' time = 'sdate'), #' retrieve = FALSE) #' -#'@import bigmemory multiApply parallel abind future +#'@import bigmemory multiApply parallel abind future +#'@importFrom ClimProjDiags Subset #'@export Start <- function(..., # dim = indices/selectors, # dim_var = 'var', @@ -801,6 +802,10 @@ Start <- function(..., # dim = indices/selectors, #, config_file = NULL #dictionary_dim_names = , #dictionary_var_names = + + # Specify Subset() is from ClimProjDiags + Subset <- ClimProjDiags::Subset + dim_params <- list(...) # Take *_var parameters apart diff --git a/R/Subset.R b/R/Subset.R deleted file mode 100644 index b5b22f1..0000000 --- a/R/Subset.R +++ /dev/null @@ -1,144 +0,0 @@ -#'Subset a data array -#' -#'This function allows to subset (i.e. slice, take a chunk of) an array, in a -#'similar way as done in the function \code{take()} in the package plyr. There -#'are two main inprovements:\cr -#'The input array can have dimension names, either -#'in \code{names(dim(x))} or in the attribute 'dimensions', and the dimensions -#'to subset along can be specified via the parameter \code{along} either with -#'integer indices or either by their name.\cr -#'There are additional ways to adjust which dimensions are dropped in the -#'resulting array: either to drop all, to drop none, to drop only the ones that -#'have been sliced or to drop only the ones that have not been sliced.\cr -#'If an array is provided without dimension names, dimension names taken from -#'the parameter \code{dim_names} will be added to the array. -#' -#'@param x A multidimensional array to be sliced. It can have dimension names -#' either in \code{names(dim(x))} or either in the attribute 'dimensions'. -#'@param along Vector with references to the dimensions to take the subset -#' from: either integers or dimension names. -#'@param indices List of indices to take from each dimension specified in -#' 'along'. If a single dimension is specified in 'along' the indices can be -#' directly provided as a single integer or as a vector. -#'@param drop Whether to drop all the dimensions of length 1 in the resulting -#' array, none, only those that are specified in 'along', or only those that -#' are not specified in 'along'. The possible values are, respectively: 'all' -#' or TRUE, 'none' or FALSE, 'selected', and 'non-selected'. -#'@return An array same as the input 'x' except the dimensions being subsetted. -#'@examples -#' data_path <- system.file('extdata', package = 'startR') -#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') -#' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, -#' var = 'tos', -#' sdate = sdates, -#' time = 'all', -#' latitude = 'all', -#' longitude = 'all', -#' return_vars = list(latitude = 'dat', -#' longitude = 'dat', -#' time = 'sdate'), -#' retrieve = TRUE) -#' -#' subset <- Subset(data, c('dat', 'var', 'time'), -#' list(1, 1, 1), drop = 'selected') -#' dim(subset) -#' -#'@export -Subset <- function(x, along, indices, drop = FALSE) { - # Check x - if (!is.array(x)) { - stop("Input array 'x' must be a numeric array.") - } - - # Take the input array dimension names - dim_names <- attr(x, 'dimensions') - if (!is.character(dim_names)) { - dim_names <- names(dim(x)) - } - if (!is.character(dim_names)) { - if (any(sapply(along, is.character))) { - stop("The input array 'x' doesn't have labels for the dimensions but the parameter 'along' contains dimension names.") - } - } - - # Check along - if (any(sapply(along, function(x) !is.numeric(x) && !is.character(x)))) { - stop("All provided dimension indices in 'along' must be integers or character strings.") - } - if (any(sapply(along, is.character))) { - req_dimnames <- along[which(sapply(along, is.character))] - if (length(unique(req_dimnames)) < length(req_dimnames)) { - stop("The parameter 'along' must not contain repeated dimension names.") - } - along[which(sapply(along, is.character))] <- match(req_dimnames, dim_names) - if (any(is.na(along))) { - stop("Could not match all dimension names in 'indices' with dimension names in input array 'x'.") - } - along <- as.numeric(along) - } - - # Check indices - if (!is.list(indices)) { - indices <- list(indices) - } - - # Check parameter drop - dims_to_drop <- c() - if (is.character(drop)) { - if (drop == 'all') { - drop <- TRUE - } else if (any(drop %in% c('selected', 'non-selected', 'none'))) { - if (drop == 'selected') { - dims_to_drop <- along[which(sapply(indices, length) == 1)] - } else if (drop == 'non-selected') { - dims_to_drop <- dim(x) == 1 - dims_to_drop[along] <- FALSE - dims_to_drop <- which(dims_to_drop) - } - drop <- FALSE - } else { - stop("Parameter 'drop' must be one of TRUE, FALSE, 'all', 'selected', 'non-selected', 'none'.") - } - } else if (!is.logical(drop)) { - stop("Parameter 'drop' must be one of TRUE, FALSE, 'all', 'selected', 'non-selected', 'none'.") - } - - # Take the subset - nd <- length(dim(x)) - index <- as.list(rep(TRUE, nd)) - index[along] <- indices - subset <- eval(as.call(c(as.name("["), as.name("x"), index, drop = drop))) - # If dropped all dimensions, need to drop dimnames too - if (is.character(dim_names) && drop == TRUE) { - dim_names_to_remove <- unique(c(along[which(sapply(indices, length) == 1)], - which(dim(x) == 1))) - if (length(dim_names_to_remove) > 0) { - dim_names <- dim_names[-dim_names_to_remove] - } - } - - # Amend the final dimensions and put dimnames and attributes - metadata <- attributes(x) - metadata[['dim']] <- dim(subset) - if (length(dims_to_drop) > 0) { - metadata[['dim']] <- metadata[['dim']][-dims_to_drop] - if (is.character(dim_names)) { - names(metadata[['dim']]) <- dim_names[-dims_to_drop] - if ('dimensions' %in% names(attributes(x))) { - metadata[['dimensions']] <- dim_names[-dims_to_drop] - } - } - if (length(metadata[['dim']]) == 0) { - metadata['dim'] <- list(NULL) - metadata['dimensions'] <- list(NULL) - } - } else if (is.character(dim_names)) { - names(metadata[['dim']]) <- dim_names - if ('dimensions' %in% names(attributes(x))) { - metadata[['dimensions']] <- dim_names - } - } - attributes(subset) <- metadata - subset -} diff --git a/R/Utils.R b/R/Utils.R index 88a6749..a4255c1 100644 --- a/R/Utils.R +++ b/R/Utils.R @@ -1,4 +1,5 @@ #'@import abind +#'@importFrom ClimProjDiags Subset .chunk <- function(chunk, n_chunks, selectors) { if (any(chunk > n_chunks)) { stop("Requested chunk index out of bounds.") @@ -33,8 +34,8 @@ } old_indices <- attr(selectors, 'indices') old_values <- attr(selectors, 'values') - selectors <- Subset(selectors, 1:length(chunk), - lapply(1:length(chunk), + selectors <- ClimProjDiags::Subset(selectors, 1:length(chunk), + lapply(1:length(chunk), function(x) { n_indices <- dim(selectors)[x] chunk_sizes <- rep(floor(n_indices / n_chunks[x]), n_chunks[x]) diff --git a/man/Subset.Rd b/man/Subset.Rd deleted file mode 100644 index 8d7120b..0000000 --- a/man/Subset.Rd +++ /dev/null @@ -1,62 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/Subset.R -\name{Subset} -\alias{Subset} -\title{Subset a data array} -\usage{ -Subset(x, along, indices, drop = FALSE) -} -\arguments{ -\item{x}{A multidimensional array to be sliced. It can have dimension names -either in \code{names(dim(x))} or either in the attribute 'dimensions'.} - -\item{along}{Vector with references to the dimensions to take the subset -from: either integers or dimension names.} - -\item{indices}{List of indices to take from each dimension specified in -'along'. If a single dimension is specified in 'along' the indices can be -directly provided as a single integer or as a vector.} - -\item{drop}{Whether to drop all the dimensions of length 1 in the resulting -array, none, only those that are specified in 'along', or only those that -are not specified in 'along'. The possible values are, respectively: 'all' -or TRUE, 'none' or FALSE, 'selected', and 'non-selected'.} -} -\value{ -An array same as the input 'x' except the dimensions being subsetted. -} -\description{ -This function allows to subset (i.e. slice, take a chunk of) an array, in a -similar way as done in the function \code{take()} in the package plyr. There -are two main inprovements:\cr -The input array can have dimension names, either -in \code{names(dim(x))} or in the attribute 'dimensions', and the dimensions -to subset along can be specified via the parameter \code{along} either with -integer indices or either by their name.\cr -There are additional ways to adjust which dimensions are dropped in the -resulting array: either to drop all, to drop none, to drop only the ones that -have been sliced or to drop only the ones that have not been sliced.\cr -If an array is provided without dimension names, dimension names taken from -the parameter \code{dim_names} will be added to the array. -} -\examples{ - data_path <- system.file('extdata', package = 'startR') - path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') - sdates <- c('200011', '200012') - data <- Start(dat = path_obs, - var = 'tos', - sdate = sdates, - time = 'all', - latitude = 'all', - longitude = 'all', - return_vars = list(latitude = 'dat', - longitude = 'dat', - time = 'sdate'), - retrieve = TRUE) - - subset <- Subset(data, c('dat', 'var', 'time'), - list(1, 1, 1), drop = 'selected') - dim(subset) - -} - -- GitLab From cbde227d8ab53b71b17703cff453e9eebbcee39f Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 12:19:41 +0200 Subject: [PATCH 49/60] Add ClimProjDiags in DESCRIPTION --- .Rbuildignore | 10 +- DESCRIPTION | 3 +- R/NcCloser.R | 2 +- R/NcDataReader.R | 10 +- R/NcDimReader.R | 4 +- R/NcOpener.R | 6 +- R/NcVarReader.R | 2 +- R/SelectorChecker.R | 10 +- R/Sort.R | 22 +-- R/Start.R | 338 ++++++++++++++++++++--------------------- R/Step.R | 2 +- man/NcCloser.Rd | 3 +- man/NcDataReader.Rd | 12 +- man/NcDimReader.Rd | 6 +- man/NcOpener.Rd | 8 +- man/NcVarReader.Rd | 2 +- man/SelectorChecker.Rd | 10 +- man/Sort.Rd | 22 +-- man/Start.Rd | 338 ++++++++++++++++++++--------------------- man/Step.Rd | 2 +- 20 files changed, 408 insertions(+), 404 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 4371830..e90141b 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -4,13 +4,13 @@ .*\.pdf$ .*^(?!inst)\.nc$ ^README\.md$ -\..*\.RData$ -^vignettes$ +#\..*\.RData$ +#^vignettes$ #^inst/chunking/$ ^inst/doc/$ -^inst/doc/*$ -^inst/doc/figures/$ -^inst/doc/usecase/$ +#^inst/doc/*$ +#^inst/doc/figures/$ +#^inst/doc/usecase/$ #^inst/PlotProfiling\.R$ # Suggested by http://r-pkgs.had.co.nz/package.html diff --git a/DESCRIPTION b/DESCRIPTION index 5be095e..457c13d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -27,7 +27,8 @@ Imports: multiApply (>= 2.1.1), parallel, easyNCDF, - s2dverification + s2dverification, + ClimProjDiags Suggests: testthat, stats, diff --git a/R/NcCloser.R b/R/NcCloser.R index 74e9155..7ee8f89 100644 --- a/R/NcCloser.R +++ b/R/NcCloser.R @@ -17,7 +17,7 @@ #'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #'connection <- NcOpener(path_obs) #'NcCloser(connection) -#' +#'@seealso [NcOpener()] [NcDimReader()] [NcDataReader()] [NcVarReader()] #'@import easyNCDF #'@export NcCloser <- function(file_object) { diff --git a/R/NcDataReader.R b/R/NcDataReader.R index 54b838a..806550f 100644 --- a/R/NcDataReader.R +++ b/R/NcDataReader.R @@ -3,7 +3,7 @@ #'This is a data reader function for NetCDF files, intended for use as parameter #'file_data_reader in a Start() call. This function complies with the #'input/output interface required by Start() defined in the documentation for -#'the parameter 'file_data_reader'.\cr +#'the parameter 'file_data_reader'.\cr\cr #'This function uses the function NcToArray() in the package 'easyNCDF', which #'in turn uses nc_var_get() in the package 'ncdf4'. #' @@ -29,9 +29,9 @@ #' parameter 'file_data_reader' of the function Start(). #' #'@return A multidimensional data array with the named dimensions and indices -#' requested in inner_indices, potentially with the attribute 'variables' with -#' additional auxiliary data. See details in the documentation of the parameter -#' 'file_data_reader' of the function Start(). +#' requested in 'inner_indices', potentially with the attribute 'variables' +#' with additional auxiliary data. See details in the documentation of the +#' parameter 'file_data_reader' of the function Start(). #'@examples #' data_path <- system.file('extdata', package = 'startR', mustWork = TRUE) #' file_to_open <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') @@ -41,7 +41,7 @@ #' latitude = 'latitude', longitude = 'longitude') #' sub_array <- NcDataReader(file_to_open, NULL, file_selectors, #' first_round_indices, synonims) -#' +#'@seealso [NcOpener()] [NcDimReader()] [NcCloser()] [NcVarReader()] #'@import easyNCDF #'@export NcDataReader <- function(file_path = NULL, file_object = NULL, diff --git a/R/NcDimReader.R b/R/NcDimReader.R index c1576f0..e3f090a 100644 --- a/R/NcDimReader.R +++ b/R/NcDimReader.R @@ -3,7 +3,7 @@ #'A dimension reader function for NetCDF files, intended for use as parameter #''file_dim_reader' in a Start() call. It complies with the input/output #'interface required by Start() defined in the documentation for the parameter -#''file_dim_reader' of that function./cr +#''file_dim_reader' of that function.\cr\cr #'This function uses the function NcReadDims() in the package 'easyNCDF'. #' #'@param file_path A character string indicating the path to the data file to @@ -38,7 +38,7 @@ #' latitude = 'latitude', longitude = 'longitude') #' dim_of_file <- NcDimReader(file_to_open, NULL, file_selectors, #' first_round_indices, synonims) -#' +#'@seealso [NcOpener()] [NcCloser()] [NcDataReader()] [NcVarReader()] #'@import easyNCDF #'@export NcDimReader <- function(file_path = NULL, file_object = NULL, diff --git a/R/NcOpener.R b/R/NcOpener.R index 731b254..b9cceb2 100644 --- a/R/NcOpener.R +++ b/R/NcOpener.R @@ -1,9 +1,9 @@ #'NetCDF file opener for 'startR' #' #'This is a file opener function for NetCDF files, intended for use as parameter -#'file_opener in a Start() call. This function complies with the input/output +#''file_opener' in a Start() call. This function complies with the input/output #'interface required by Start() defined in the documentation for the parameter -#''file_opener'.\cr +#''file_opener'.\cr\cr #'This function uses the function NcOpen() in the package 'easyNCDF', which in #'turn uses nc_open() in the package 'ncdf4'. #' @@ -18,7 +18,7 @@ #'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #'connection <- NcOpener(path_obs) #'NcCloser(connection) -#' +#'@seealso [NcCloser()] [NcDimReader()] [NcDataReader()] [NcVarReader()] #'@import easyNCDF #'@export NcOpener <- function(file_path) { diff --git a/R/NcVarReader.R b/R/NcVarReader.R index b140d80..3cc8410 100644 --- a/R/NcVarReader.R +++ b/R/NcVarReader.R @@ -3,7 +3,7 @@ #'This is an auxiliary variable reader function for NetCDF files, intended for #'use as parameter 'file_var_reader' in a Start() call. It complies with the #'input/output interface required by Start() defined in the documentation for -#'the parameter 'file_var_reader' of that function.\cr +#'the parameter 'file_var_reader' of that function.\cr\cr #'This function uses the function NcDataReader() in the package 'startR', #'which in turn uses NcToArray() in the package 'easyNCDF', which in turn uses #'nc_var_get() in the package 'ncdf4'. diff --git a/R/SelectorChecker.R b/R/SelectorChecker.R index a5c8a60..81ec488 100644 --- a/R/SelectorChecker.R +++ b/R/SelectorChecker.R @@ -1,9 +1,9 @@ #'Translate a set of selectors into a set of numeric indices #' #'This is a selector checker function intended for use as parameter -#''selector_checker' in a Start() call. It translates a set of selectors which is -#'the value for one dimension into a set of numeric indices corresponding to the -#'coordinate variable. The function complies with the input/output interface +#''selector_checker' in a Start() call. It translates a set of selectors which +#'is the value for one dimension into a set of numeric indices corresponding to +#'the coordinate variable. The function complies with the input/output interface #'required by Start() defined in the documentation for the parameter #''selector_checker' of Start(). #' @@ -22,8 +22,8 @@ #' after the matching. The default value is TRUE. #'@param tolerance A numeric value indicating a tolerance value to be used in #' the matching of 'selectors' and 'var'. See documentation on -#' _tolerance in \dots in the documentation of the function Start(). -#' The default value is NULL. +#' '_tolerance' in \code{\dots} in the documentation of the function +#' Start(). The default value is NULL. #' #'@return A vector of either the indices of the matching values (if #' return_indices = TRUE) or the matching values themselves (if return_indices diff --git a/R/Sort.R b/R/Sort.R index d023b0f..4bcaa2c 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -1,21 +1,21 @@ -#'Sort the coordinate variable values in a call to the function startR::Start +#'Sort the coordinate variable values in a Start() call #' -#'The reorder function intended for use as parameter \code{_reorder} -#'in a call to the function \code{Start()}. This function complies with the -#'input/output interface required by \code{Start()} defined in the documentation -#'for the parameter \dots of that function.\cr -#'The coordinate applied to \code{Sort()} consists of an increasing or decreasing -#'sort of the values. It is useful for adjusting the latitude order.\cr -#'The coordinate applied to \code{CircularSort()} consists of a circular sort of +#'The reorder function intended for use as parameter '_reorder' +#'in a call to the function Start(). This function complies with the +#'input/output interface required by Start() defined in the documentation +#'for the parameter \code{\dots} of that function.\cr\cr +#'The coordinate applied to Sort() consists of an increasing or decreasing +#'sort of the values. It is useful for adjusting the latitude order.\cr\cr +#'The coordinate applied to CircularSort() consists of a circular sort of #'values, where any values beyond the limits specified in the parameters -#'\code{start} and \code{end} is applied a modulus to fall in the specified +#''start' and 'end' is applied a modulus to fall in the specified #'range. This is useful for circular coordinates such as the Earth longitudes. #'@name Sort #'@aliases CircularSort #'@param start A numeric indicating the lower bound of the circular range. #'@param end A numeric indicating the upper bound of the circular range. -#'@param \dots Additional parameters to adjust the reorderig (sent internally -#' to the function \code{sort()}). +#'@param \dots Additional parameters to adjust the reorderig. See function +#' sort() for more details. #' #'@return #'A list of 2 containing: diff --git a/R/Start.R b/R/Start.R index 987741e..9bd03ae 100644 --- a/R/Start.R +++ b/R/Start.R @@ -1,25 +1,24 @@ #'Declare, discover, subset and retrieve multidimensional distributed data sets #' -#'See the \href{https://earth.bsc.es/gitlab/es/startR}{\code{startR} -#'documentation and tutorial} for a step-by-step explanation on how to use -#'\code{Start()}.\cr\cr +#'See the \href{https://earth.bsc.es/gitlab/es/startR}{startR documentation and +#'tutorial} for a step-by-step explanation on how to use Start().\cr\cr #'Nowadays in the era of big data, large multidimensional data sets from #'diverse sources need to be combined and processed. Analysis of big data in any #'field is often highly complex and time-consuming. Taking subsets of these data #'sets and processing them efficiently become an indispensable practice. This #'technique is also known as Domain Decomposition, Map Reduce or, more commonly, #''chunking'.\cr\cr -#'\code{startR} (Subset, TrAnsform, ReTrieve, arrange and process large +#'startR (Subset, TrAnsform, ReTrieve, arrange and process large #'multidimensional data sets in R) is an R project started at BSC with the aim #'to develop a tool that allows the user to automatically process large #'multidimensional distributed data sets. It is an open source project that is #'open to external collaboration and funding, and will continuously evolve to #'support as many data set formats as possible while maximizing its efficiency.\cr\cr -#'\code{startR} provides a framework under which a data set (collection of one +#'startR provides a framework under which a data set (collection of one #'or multiple data files, potentially distributed over various remote servers) #'are perceived as if they all were part of a single large multidimensional #'array. Once such multidimensional array is declared, any user-defined function -#'can be applied to the data in a \code{apply}-like fashion, where \code{startR} +#'can be applied to the data in a \code{apply}-like fashion, where startR #'transparently implements the Map Reduce paradigm. The steps to follow in order #'to process a collection of big data sets are as follows:\cr #'\itemize{ @@ -27,7 +26,7 @@ #'Declaring the data set, i.e. declaring the distribution of the data files #'involved, the dimensions and shape of the multidimensional array, and the #'boundaries of the target data. This step can be performed with the -#'\code{Start()} function. Numeric indices or coordinate values can be used when +#'Start() function. Numeric indices or coordinate values can be used when #'fixing the boundaries. It is common having the need to apply transformations, #'pre-processing or reordering to the data. Start() accepts user-defined #'transformation or reordering functions to be applied for such purposes. Once a @@ -37,8 +36,7 @@ #' } #' \item{ #'Declaring the workflow of operations to perform on the involved data set(s). -#'This step can be performed with the \code{Step()} and \code{AddStep()} -#'functions. +#'This step can be performed with the Step() and AddStep() functions. #' } #' \item{ #'Defining the computation settings. The mandatory settings include a) how many @@ -48,25 +46,25 @@ #'connection? shared or separate file systems?), which queuing system it uses #'(slurm, PBS, LSF, none?); and c) how many parallel jobs and execution threads #'per job to use when running the calculations. This step can be performed when -#'building up the call to the \code{Compute()} function. +#'building up the call to the Compute() function. #' } #' \item{ #'Running the computation. startR transparently implements the Map Reduce #'paradigm, according to the settings in the previous steps. The progress can #'optionally be monitored with the EC-Flow workflow management tool. When the #'computation ends, a report of performance timings is displayed. This step can -#'be triggered with the \code{Compute()} function. +#'be triggered with the Compute() function. #' } #'} -#'\code{startR} is not bound to a specific file format. Interface functions to -#'custom file formats can be provided for \code{Start()} to read them. As this -#'version, \code{startR} includes interface functions to the following file formats: +#'startR is not bound to a specific file format. Interface functions to +#'custom file formats can be provided for Start() to read them. As this +#'version, startR includes interface functions to the following file formats: #'\itemize{ #' \item{ #'NetCDF #' } #'} -#'Metadata and auxilliary data is also preserved and arranged by \code{Start()} +#'Metadata and auxilliary data is also preserved and arranged by Start() #'in the measure that it is retrieved by the interface functions for a specific #'file format. #' @@ -76,7 +74,7 @@ #'array. For instance, let us consider an example case. We want to retrieve data #'from a source, which contains data for the number of monthly sales of various #'items, and also for their retail price each month. The data on source is -#'stored as follows:\cr +#'stored as follows:\cr\cr #'\command{ #'\cr # /data/ #'\cr # |-> sales/ @@ -123,7 +121,7 @@ #'dimensions are 'source', 'variable', 'section' and 'item', whereas the inner #'dimensions are 'store' and 'month'. #'\cr\cr -#'Having the dimensions of our target sources in mind, the parameter \dots +#'Having the dimensions of our target sources in mind, the parameter \code{\dots} #'expects to receive information on: #' \itemize{ #' \item{ @@ -141,8 +139,8 @@ #' } #' } #'For each dimension, the 3 first information items can be specified with a set -#'of parameters to be provided through \dots. For a given dimension 'dimname', -#'six parameters can be specified:\cr +#'of parameters to be provided through \code{\dots}. For a given dimension +#''dimname', six parameters can be specified:\cr #'\command{ #'\cr # dimname = , # 'all' / 'first' / 'last' / #'\cr # # indices(c(1, 10, 20)) / @@ -162,7 +160,7 @@ #'character tags, such as 'all' (take all the indices available for that #'dimension), 'first' (take only the first) and 'last' (only the last). The #'second format consists in using numeric indices, which have to be wrapped in a -#'call to the \code{indices()} helper function. For the second format, either a +#'call to the indices() helper function. For the second format, either a #'vector of numeric indices can be provided, or a list with two numeric indices #'can be provided to take all the indices in the range between the two specified #'indices (both extremes inclusive). The third format consists in providing a @@ -171,17 +169,17 @@ #'strings in the third format will be used as components to build up the final #'path to the files (read further). For inner dimensions, the provided values in #'the third format will be compared to the values of an associated coordinate -#'variable (must be specified in \code{dimname_reorder}, read further), and the +#'variable (must be specified in '_reorder', read further), and the #'indices of the closest values will be retrieved. When using the third format, #'a list with two values can also be provided to take all the indices of the #'values within the specified range. #'\cr\cr #'The \bold{name of the associated coordinate variable} must be a character #'string with the name of an associated coordinate variable to be found in the -#'data files (in all* of them). For this to work, a \code{file_var_reader} -#'function must be specified when calling \code{Start()} (see parameter +#'data files (in all* of them). For this to work, a 'file_var_reader' +#'function must be specified when calling Start() (see parameter #''file_var_reader'). The coordinate variable must also be requested in the -#'parameter \code{return_vars} (see its section for details). This feature only +#'parameter 'return_vars' (see its section for details). This feature only #'works for inner dimensions. #'\cr\cr #'The \bold{tolerance value} is useful when indices for an inner dimension are @@ -196,32 +194,33 @@ #'specified in the third fromat, and the retrieved indices need to be reordered #'in function of their provided associated variable values. A function can be #'provided, which receives as input a vector of values, and returns as outputs a -#'list with the components \code{x} with the reordered values, and \code{ix} +#'list with the components \code{$x} with the reordered values, and \code{$ix} #'with the permutation indices. Two reordering functions are included in -#'\code{startR}, the \code{Sort()} and the \code{CircularSort()}. +#'startR, the Sort() and the CircularSort(). #'\cr\cr -#'The \bold{name of another dimension} to be specified in \code{dimname_depends}, +#'The \bold{name of another dimension} to be specified in _depends, #'only available for file dimensions, must be a character string with the name -#'of another requested \bold{file dimension} in \dots, and will make -#'\code{Start()} aware that the path components of a file dimension can vary in +#'of another requested \bold{file dimension} in \code{\dots}, and will make +#'Start() aware that the path components of a file dimension can vary in #'function of the path component of another file dimension. For instance, in the #'example above, specifying \code{item_depends = 'section'} will make -#'\code{Start()} aware that the item names vary in function of the section, i.e. +#'Start() aware that the item names vary in function of the section, i.e. #'section 'electronics' has items 'a', 'b' and 'c' but section 'clothing' has -#'items 'd', 'e', 'f'. Otherwise \code{Start()} would expect to find the same +#'items 'd', 'e', 'f'. Otherwise Start() would expect to find the same #'item names in all the sections. #'\cr\cr -#'The \bold{name of another dimension} to be specified in \code{dimname_across}, +#'The \bold{name of another dimension} to be specified in '_across', #'only available for inner dimensions, must be a character string with the name -#'of another requested \bold{inner dimension} in \dots, and will make -#'\code{Start()} aware that an inner dimension extends along multiple files. For +#'of another requested \bold{inner dimension} in \code{\dots}, and will make +#'Start() aware that an inner dimension extends along multiple files. For #'instance, let us imagine that in the example above, the records for each item #'are so large that it becomes necessary to split them in multiple files each #'one containing the registers for a different period of time, e.g. in 10 files #'with 100 months each ('item_a_period1.data', 'item_a_period2.data', and so on). -#'In that case, the data can be perceived as having an extra file dimension, the#''period' dimension. The inner dimension 'month' would extend across multiple +#'In that case, the data can be perceived as having an extra file dimension, the +#''period' dimension. The inner dimension 'month' would extend across multiple #'files, and providing the parameter \code{month = indices(1, 300)} would make -#'\code{Start()} crash because it would perceive we have made a request out of +#'Start() crash because it would perceive we have made a request out of #'bounds (each file contains 100 'month' indices, but we requested 1 to 300). #'This can be solved by specifying the parameter \code{month_across = period} (a #'long with the full specification of the dimension 'period'). @@ -237,11 +236,11 @@ #'or a URL to one of the files provided by a local or remote server. The regions #'of this path that vary across files (along the file dimensions) must be #'replaced by wildcards. The wildcards must match any of the defined file -#'dimensions in the call to \code{Start()} and must be delimited with heading +#'dimensions in the call to Start() and must be delimited with heading #'and trailing '$'. Shell globbing expressions can be used in the path pattern. #'See the next code snippet for an example of a path pattern. #'\cr\cr -#'All in all, the call to \code{Start()} to load the entire data set in the +#'All in all, the call to Start() to load the entire data set in the #'example of store item sales, would look as follows: #'\cr #'\command{ @@ -256,11 +255,11 @@ #'} #'\cr\cr #'Note that in this example it would still be pending to properly define the -#'parameters \code{file_opener}, \code{file_closer}, \code{file_dim_reader}, -#'\code{file_var_reader} and \code{file_data_reader} for the '.data' file format +#'parameters 'file_opener', 'file_closer', 'file_dim_reader', +#''file_var_reader' and 'file_data_reader' for the '.data' file format #'(see the corresponding sections). #'\cr\cr -#'The call to \code{Start()} will return a multidimensional R array with the +#'The call to Start() will return a multidimensional R array with the #'following dimensions: #'\cr #'\command{ @@ -268,9 +267,9 @@ #'\cr # 1 2 2 3 100 24 #'} #'\cr -#'The dimension specifications in the \dots do not have to follow any particular -#'order. The returned array will have the dimensions in the same order as they -#'have been specified in the call. For example, the following call: +#'The dimension specifications in the \code{\dots} do not have to follow any +#'particular order. The returned array will have the dimensions in the same order +#'as they have been specified in the call. For example, the following call: #'\cr #'\command{ #'\cr # data <- Start(source = paste0('/data/$variable$/', @@ -311,7 +310,7 @@ #'\cr\cr #'The defined names for the dimensions do not necessarily have to match the #'names of the dimensions inside the file. Lists of alternative names to be -#'seeked can be defined in the parameter \code{synonims}. +#'seeked can be defined in the parameter 'synonims'. #'\cr\cr #'If data from multiple sources (not necessarily following the same structure) #'has to be retrieved, it can be done by providing a vector of character strings @@ -342,18 +341,18 @@ #'@param return_vars A named list where the names are the names of the #'variables to be fetched in the files, and the values are vectors of #'character strings with the names of the file dimension which to retrieve each -#'variable for, or \code{NULL} if the variable has to be retrieved only once +#'variable for, or NULL if the variable has to be retrieved only once #'from any (the first) of the involved files.\cr\cr #'Apart from retrieving a multidimensional data array, retrieving auxiliary #'variables inside the files can also be needed. The parameter -#'\code{return_vars} allows for requesting such variables, as long as a -#'\code{file_var_reader} function is also specified in the call to -#'\code{Start()} (see documentation on the corresponding parameter). +#''return_vars' allows for requesting such variables, as long as a +#''file_var_reader' function is also specified in the call to +#'Start() (see documentation on the corresponding parameter). #'\cr\cr #'In the case of the the item sales example (see documentation on parameter #'\code{\dots)}, the store location variable is requested with the parameter #'\code{return_vars = list(store_location = NULL)}. This will cause -#'\code{Start()} to fetch once the variable 'store_location' and return it in +#'Start() to fetch once the variable 'store_location' and return it in #'the component \code{$Variables$common$store_location}, and will be an array #'of character strings with the location names, with the dimensions #'\code{c('store' = 100)}. Although useless in this example, we could ask @@ -403,17 +402,17 @@ #'\cr\cr #'The names of the requested variables do not necessarily have to match the #'actual variable names inside the files. A list of alternative names to be -#'seeked can be specified via the parameter \code{synonims}. +#'seeked can be specified via the parameter 'synonims'. #' #'@param synonims A named list where the names are the requested variable or #'dimension names, and the values are vectors of character strings with #'alternative names to seek for such dimension or variable.\cr\cr #'In some requests, data from different sources may follow different naming #'conventions for the dimensions or variables, or even files in the same source -#'could have varying names. This parameter is in order for \code{Start()} to +#'could have varying names. This parameter is in order for Start() to #'properly identify the dimensions or variables with different names. #'\cr\cr -#'In the example used in parameter \code{return_vars}, it may be the case that +#'In the example used in parameter 'return_vars', it may be the case that #'the two involved data sources follow slightly different naming conventions. #'For example, source A uses 'sect' as name for the sections dimension, whereas #'source B uses 'section'; source A uses 'store_loc' as variable name for the @@ -447,114 +446,114 @@ #'\cr #' #'@param file_opener A function that receives as a single parameter -#' (\code{file_path}) a character string with the path to a file to be opened, +#' 'file_path' a character string with the path to a file to be opened, #' and returns an object with an open connection to the file (optionally with -#' header information) on success, or returns \code{NULL} on failure. +#' header information) on success, or returns NULL on failure. #'\cr\cr -#'This parameter takes by default \code{NcOpener} (an opener function for NetCDF +#'This parameter takes by default NcOpener() (an opener function for NetCDF #'files). #'\cr\cr -#'See \code{NcOpener} for a template to build a file opener for your own file +#'See NcOpener() for a template to build a file opener for your own file #'format. #' #'@param file_var_reader A function with the header \code{file_path = NULL}, #' \code{file_object = NULL}, \code{file_selectors = NULL}, \code{var_name}, #' \code{synonims} that returns an array with auxiliary data (i.e. data from a -#' variable) inside a file. \code{Start()} will provide automatically either a -#' \code{file_path} or a \code{file_object} to the \code{file_var_reader} +#' variable) inside a file. Start() will provide automatically either a +#' 'file_path' or a 'file_object' to the 'file_var_reader' #' function (the function has to be ready to work whichever of these two is -#' provided). The parameter \code{file_selectors} will also be provided +#' provided). The parameter 'file_selectors' will also be provided #' automatically to the variable reader, containing a named list where the #' names are the names of the file dimensions of the queried data set (see -#' documentation on \dots) and the values are single character strings with the -#' components used to build the path to the file being read (the one provided -#' in \code{file_path} or \code{file_object}). The parameter \code{var_name} -#' will be filled in automatically by \code{Start()} also, with the name of one -#' of the variales to be read. The parameter \code{synonims} will be filled in -#' with exactly the same value as provided in the parameter \code{synonims} in -#' the call to \code{Start()}, and has to be used in the code of the variable +#' documentation on \code{\dots}) and the values are single character strings +#' with the components used to build the path to the file being read (the one +#' provided in 'file_path' or 'file_object'). The parameter 'var_name' +#' will be filled in automatically by Start() also, with the name of one +#' of the variales to be read. The parameter 'synonims' will be filled in +#' with exactly the same value as provided in the parameter 'synonims' in +#' the call to Start(), and has to be used in the code of the variable #' reader to check for alternative variable names inside the target file. The -#' \code{file_var_reader} must return a (multi)dimensional array with named +#' 'file_var_reader' must return a (multi)dimensional array with named #' dimensions, and optionally with the attribute 'variales' with other #' additional metadata on the retrieved variable. #'\cr\cr -#'Usually, the \code{file_var_reader} should be a degenerate case of the -#'\code{file_data_reader} (see documentation on the corresponding parameter), -#'so it is recommended to code the \code{file_data_reder} in first place. +#'Usually, the 'file_var_reader' should be a degenerate case of the +#''file_data_reader' (see documentation on the corresponding parameter), +#'so it is recommended to code the 'file_data_reder' in first place. #'\cr\cr -#'This parameter takes by default \code{NcVarReader} (a variable reader function +#'This parameter takes by default NcVarReader() (a variable reader function #'for NetCDF files). #'\cr\cr -#'See \code{NcVarReader} for a template to build a variale reader for your own +#'See NcVarReader() for a template to build a variale reader for your own #'file format. #' #'@param file_dim_reader A function with the header \code{file_path = NULL}, #' \code{file_object = NULL}, \code{file_selectors = NULL}, \code{synonims} #' that returns a named numeric vector where the names are the names of the #' dimensions of the multidimensional data array in the file and the values are -#' the sizes of such dimensions. \code{Start()} will provide automatically -#' either a \code{file_path} or a \code{file_object} to the -#' \code{file_dim_reader} function (the function has to be ready to work -#' whichever of these two is provided). The parameter \code{file_selectors} +#' the sizes of such dimensions. Start() will provide automatically +#' either a 'file_path' or a 'file_object' to the +#' 'file_dim_reader' function (the function has to be ready to work +#' whichever of these two is provided). The parameter 'file_selectors' #' will also be provided automatically to the dimension reader, containing a #' named list where the names are the names of the file dimensions of the -#' queried data set (see documentation on \dots) and the values are single -#' character strings with the components used to build the path to the file -#' being read (the one provided in \code{file_path} or \code{file_object}). -#' The parameter \code{synonims} will be filled in with exactly the same value -#' as provided in the parameter \code{synonims} in the call to \code{Start()}, +#' queried data set (see documentation on \code{\dots}) and the values are +#' single character strings with the components used to build the path to the +#' file being read (the one provided in 'file_path' or 'file_object'). +#' The parameter 'synonims' will be filled in with exactly the same value +#' as provided in the parameter 'synonims' in the call to Start(), #' and can optionally be used in advanced configurations. #'\cr\cr -#'This parameter takes by default \code{NcDimReader} (a dimension reader +#'This parameter takes by default NcDimReader() (a dimension reader #'function for NetCDF files). #'\cr\cr -#'See \code{NcDimReader} for (an advanced) template to build a dimension reader +#'See NcDimReader() for (an advanced) template to build a dimension reader #'for your own file format. #' #'@param file_data_reader A function with the header \code{file_path = NULL}, #' \code{file_object = NULL}, \code{file_selectors = NULL}, #' \code{inner_indices = NULL}, \code{synonims} that returns a subset of the #' multidimensional data array inside a file (even if internally it is not an -#' array). \code{Start()} will provide automatically either a \code{file_path} -#' or a \code{file_object} to the \code{file_data_reader} function (the +#' array). Start() will provide automatically either a 'file_path' +#' or a 'file_object' to the 'file_data_reader' function (the #' function has to be ready to work whichever of these two is provided). The -#' parameter \code{file_selectors} will also be provided automatically to the +#' parameter 'file_selectors' will also be provided automatically to the #' data reader, containing a named list where the names are the names of the -#' file dimensions of the queried data set (see documentation on \dots) and the -#' values are single character strings with the components used to build the -#' path to the file being read (the one provided in \code{file_path} or -#' \code{file_object}). The parameter \code{inner_indices} will be filled in -#' automatically by \code{Start()} also, with a named list of numeric vectors, +#' file dimensions of the queried data set (see documentation on \code{\dots}) +#' and the values are single character strings with the components used to +#' build the path to the file being read (the one provided in 'file_path' or +#' 'file_object'). The parameter 'inner_indices' will be filled in +#' automatically by Start() also, with a named list of numeric vectors, #' where the names are the names of all the expected inner dimensions in a file #' to be read, and the numeric vectors are the indices to be taken from the #' corresponding dimension (the indices may not be consecutive nor in order). -#' The parameter \code{synonims} will be filled in with exactly the same value -#' as provided in the parameter \code{synonims} in the call to \code{Start()}, +#' The parameter 'synonims' will be filled in with exactly the same value +#' as provided in the parameter 'synonims' in the call to Start(), #' and has to be used in the code of the data reader to check for alternative -#' dimension names inside the target file. The \code{file_data_reader} must +#' dimension names inside the target file. The 'file_data_reader' must #' return a (multi)dimensional array with named dimensions, and optionally with -#' the attribute 'variales' with other additional metadata on the retrieved +#' the attribute 'variables' with other additional metadata on the retrieved #' data. #'\cr\cr -#'Usually, the \code{file_data_reader} should use the \code{file_dim_reader} +#'Usually, 'file_data_reader' should use 'file_dim_reader' #'(see documentation on the corresponding parameter), so it is recommended to -#'code the \code{file_dim_reder} in first place. +#'code 'file_dim_reder' in first place. #'\cr\cr -#'This parameter takes by default \code{NcDataReader} (a data reader function +#'This parameter takes by default NcDataReader() (a data reader function #'for NetCDF files). #'\cr\cr -#'See \code{NcDataReader} for a template to build a data reader for your own +#'See NcDataReader() for a template to build a data reader for your own #'file format. #' #'@param file_closer A function that receives as a single parameter -#' (\code{file_object}) an open connection (as returned by \code{file_opener}) +#' 'file_object' an open connection (as returned by 'file_opener') #' to one of the files to be read, optionally with header information, and -#' closes the open connection. Always returns \code{NULL}. +#' closes the open connection. Always returns NULL. #'\cr\cr -#'This parameter takes by default \code{NcCloser} (a closer function for NetCDF +#'This parameter takes by default NcCloser() (a closer function for NetCDF #'files). #'\cr\cr -#'See \code{NcCloser} for a template to build a file closer for your own file +#'See NcCloser() for a template to build a file closer for your own file #'format. #' #'@param transform A function with the header \code{dara_array}, @@ -563,67 +562,67 @@ #' multidimensional array (as returned by \code{file_data_reader}), applies a #' transformation to it and returns it, preserving the amount of dimensions but #' potentially modifying their size. This transformation may require data from -#' other auxiliary variables, automatically provided to \code{transform} -#' through the parameter \code{variables}, in the form of a named list where +#' other auxiliary variables, automatically provided to 'transform' +#' through the parameter 'variables', in the form of a named list where #' the names are the variable names and the values are (multi)dimensional -#' arrays. Which variables need to be sent to \code{transform} can be specified -#' with the parameter \code{transform_vars} in \code{Start()}. The parameter -#' \code{file_selectors} will also be provided automatically to -#' \code{transform}, containing a named list where the names are the names of -#' the file dimensions of the queried data set (see documentation on \dots) and -#' the values are single character strings with the components used to build -#' the path to the file the subset being processed belongs to. The parameter -#' \dots will be filled in with other additional parameters to adjust the -#' transformation, exactly as provided in the call to \code{Start()} via the -#' parameter \code{transform_params}. +#' arrays. Which variables need to be sent to 'transform' can be specified +#' with the parameter 'transform_vars' in Start(). The parameter +#' 'file_selectors' will also be provided automatically to +#' 'transform', containing a named list where the names are the names of +#' the file dimensions of the queried data set (see documentation on +#' \code{\dots}) and the values are single character strings with the +#' components used to build the path to the file the subset being processed +#' belongs to. The parameter \code{\dots} will be filled in with other +#' additional parameters to adjust the transformation, exactly as provided in +#' the call to Start() via the parameter 'transform_params'. #'@param transform_params A named list with additional parameters to be sent to -#' the \code{transform} function (if specified). See documentation on -#' \code{transform} for details. +#' the 'transform' function (if specified). See documentation on parameter +#' 'transform' for details. #'@param transform_vars A vector of character strings with the names of -#' auxiliary variables to be sent to the \code{transform} function (if -#' specified). All the variables to be sent to \code{transform} must also -#' have been requested as return variables in the parameter \code{return_vars} -#' of \code{Start()}. +#' auxiliary variables to be sent to the 'transform' function (if +#' specified). All the variables to be sent to 'transform' must also +#' have been requested as return variables in the parameter 'return_vars' +#' of Start(). #'@param transform_extra_cells An integer of extra indices to retrieve from the -#' data set, beyond the requested indices in \dots, in order for -#' \code{transform} to dispose of additional information to properly apply +#' data set, beyond the requested indices in \code{\dots}, in order for +#' 'transform' to dispose of additional information to properly apply #' whichever transformation (if needed). As many as -#' \code{transform_extra_cells} will be retrieved beyond each of the limits for +#' 'transform_extra_cells' will be retrieved beyond each of the limits for #' each of those inner dimensions associated to a coordinate variable and sent -#' to \code{transform} (i.e. present in \code{transform_vars}). After -#' \code{transform} has finished, \code{Start()} will take again and return a +#' to 'transform' (i.e. present in 'transform_vars'). After +#' 'transform' has finished, Start() will take again and return a #' subset of the result, for the returned data to fall within the specified -#' bounds in \dots. The default value is 2. +#' bounds in \code{\dots}. The default value is 2. #'@param apply_indices_after_transform A logical value indicating when a -#' \code{transform} is specified in \code{Start()} and numeric indices are +#' 'transform' is specified in Start() and numeric indices are #' provided for any of the inner dimensions that depend on coordinate variables, #' these numeric indices can be made effective (retrieved) before applying the #' transformation or after. The boolean flag allows to adjust this behaviour. -#' It takes \code{FALSE} by default (numeric indices are applied before sending -#' data to \code{transform}). +#' It takes FALSE by default (numeric indices are applied before sending +#' data to 'transform'). #'@param pattern_dims A character string indicating the name of the dimension -#' with path pattern specifications (see \dots for details). If not specified, -#' \code{Start()} assumes the first provided dimension is the pattern +#' with path pattern specifications (see \code{\dots} for details). If not +#' specified, Start() assumes the first provided dimension is the pattern #' dimension, with a warning. #'@param metadata_dims A vector of character strings with the names of the file -#' dimensions which to return metadata for. As noted in \code{file_data_reader}, +#' dimensions which to return metadata for. As noted in 'file_data_reader', #' the data reader can optionally return auxiliary data via the attribute -#' 'variables' of the returned array. \code{Start()} by default returns the +#' 'variables' of the returned array. Start() by default returns the #' auxiliary data read for only the first file of each source (or data set) in -#' the pattern dimension (see \dots for info on what the pattern dimension is). -#' However it can be configured to return the metadata for all the files along -#' any set of file dimensions. The parameter \code{metadata_dims} allows to -#' configure this level of granularity of the returned metadata. -#'@param selector_checker A function used internaly by \code{Start()} to +#' the pattern dimension (see \code{\dots} for info on what the pattern +#' dimension is). However it can be configured to return the metadata for all +#' the files along any set of file dimensions. The parameter 'metadata_dims' +#' allows to configure this level of granularity of the returned metadata. +#'@param selector_checker A function used internaly by Start() to #' translate a set of selectors (values for a dimension associated to a #' coordinate variable) into a set of numeric indices. It takes by default -#' \code{SelectorChecker} and, in principle, it should not be required to +#' SelectorChecker() and, in principle, it should not be required to #' change it for customized file formats. The option to replace it is left open -#' for more versatility. See the code of \code{SelectorChecker} for details on +#' for more versatility. See the code of SelectorChecker() for details on #' the inputs, functioning and outputs of a selector checker. #'@param merge_across_dims A logical value indicating whether to merge #' dimensions across which another dimension extends (according to the -#' \code{*_across} parameters). Takes the value \code{FALSE} by default. For +#' '_across' parameters). Takes the value FALSE by default. For #' example, if the dimension 'time' extends across the dimension 'chunk' and #' \code{merge_across_dims = TRUE}, the resulting data array will only contain #' only the dimension 'time' as long as all the chunks together. @@ -641,8 +640,7 @@ #'@param path_glob_permissive A logical value or an integer specifying how many #' folder levels in the path pattern, beginning from the end, the shell glob #' expressions must be preserved and worked out for each file. The default -#' value is \code{FALSE}, which is equivalent to \code{0}. \code{TRUE} is -#' equivalent to \code{1}.\cr\cr +#' value is FALSE, which is equivalent to 0. TRUE is equivalent to 1.\cr\cr #'When specifying a path pattern for a dataset, it might contain shell glob #'experissions. For each dataset, the first file matching the path pattern is #'found, and the found file is used to work out fixed values for the glob @@ -650,39 +648,39 @@ #'some cases the values of the shell glob expressions may not be constant for #'all files in a dataset, and they need to be worked out for each file #'involved.\cr\cr -#'For example, a path pattern could be as follows: -#'\code{'/path/to/dataset/$var$_*/$date$_*_foo.nc'}. Leaving +#'For example, a path pattern could be as follows: \cr +#'\code{'/path/to/dataset/$var$_*/$date$_*_foo.nc'}. \cr Leaving #'\code{path_glob_permissive = FALSE} will trigger automatic seek of the #' contents to replace the asterisks (e.g. the first asterisk matches with #' \code{'bar'} and the second with \code{'baz'}. The found contents will be #' used for all files in the dataset (in the example, the path pattern will be -#' fixed to \code{'/path/to/dataset/$var$_bar/$date$_baz_foo.nc'}. However, if +#' fixed to\cr \code{'/path/to/dataset/$var$_bar/$date$_baz_foo.nc'}. However, if #' any of the files in the dataset have other contents in the position of the -#' asterisks, \code{Start()} will not find them (in the example, a file like +#' asterisks, Start() will not find them (in the example, a file like \cr #' \code{'/path/to/dataset/precipitation_bar/19901101_bin_foo.nc'} would not be #' found). Setting \code{path_glob_permissive = 1} would preserve global #' expressions in the latest level (in the example, the fixed path pattern -#' would be \code{'/path/to/dataset/$var$_bar/$date$_*_foo.nc'}, and the +#' would be\cr \code{'/path/to/dataset/$var$_bar/$date$_*_foo.nc'}, and the #' problematic file mentioned before would be found), but of course this would -#' slow down the \code{Start()} call if the dataset involves a large number of +#' slow down the Start() call if the dataset involves a large number of #' files. Setting \code{path_glob_permissive = 2} would leave the original path #' pattern with the original glob expressions in the 1st and 2nd levels (in the -#' example, both asterisks would be preserved, thus would allow \code{Start()} -#' to recognize files such as +#' example, both asterisks would be preserved, thus would allow Start() +#' to recognize files such as \cr #' \code{'/path/to/dataset/precipitation_zzz/19901101_yyy_foo.nc'}). #'@param retrieve A logical value indicating whether to retrieve the data -#' defined in the \code{Start} call or to explore only its dimension lengths +#' defined in the Start() call or to explore only its dimension lengths #' and names, and the values for the file and inner dimensions. The default #' value is FALSE. #'@param num_procs An integer of number of processes to be created for the -#' parallel execution of the retrieval / transformation / arrangement of the -#' multiple involved files in a call to \code{Start()}. If set to \code{NULL}, -#' takes the number of available cores (as detected by \code{detectCores()} in +#' parallel execution of the retrieval/transformation/arrangement of the +#' multiple involved files in a call to Start(). If set to NULL, +#' takes the number of available cores (as detected by detectCores() in #' the package 'future'). The default value is 1 (no parallel execution). #'@param silent A logical value of whether to display progress messages (FALSE) #' or not (TRUE). The default value is FALSE. #'@param debug A logical value of whether to return detailed messages on the -#' progress and operations in a \code{Start} call (TRUE) or not (FALSE). The +#' progress and operations in a Start() call (TRUE) or not (FALSE). The #' default value is FALSE. #' #'@return If \code{retrieve = TRUE} the involved data is loaded into RAM memory @@ -690,12 +688,12 @@ #' returned:\cr #' \item{Data}{ #' Multidimensional data array with named dimensions, with the data values -#' requested via \dots and other parameters. This array can potentially contain -#' metadata in the attribute 'variables'. +#' requested via \code{\dots} and other parameters. This array can potentially +#' contain metadata in the attribute 'variables'. #' } #' \item{Variables}{ #' Named list of 1 + N components, containing lists of retrieved variables (as -#' requested in \code{return_vars}) common to all the data sources (in the 1st +#' requested in 'return_vars') common to all the data sources (in the 1st #' component, \code{$common}), and for each of the N dara sources (named after #' the source name, as specified in \dots, or, if not specified, \code{$dat1}, #' \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a @@ -704,12 +702,12 @@ #' } #' \item{Files}{ #' Multidimensonal character string array with named dimensions. Its dimensions -#' are the file dimensions (as requested in \dots). Each cell in this array -#' contains a path to a retrieved file, or \code{NULL} if the corresponding +#' are the file dimensions (as requested in \code{\dots}). Each cell in this +#' array contains a path to a retrieved file, or NULL if the corresponding #' file was not found. #' } #' \item{NotFoundFiles}{ -#' Array with the same shape as \code{$Files} but with \code{NULL} in the +#' Array with the same shape as \code{$Files} but with NULL in the #' positions for which the corresponding file was found, and a path to the #' expected file in the positions for which the corresponding file was not #' found. @@ -725,11 +723,11 @@ #' returned:\cr #' \item{Dimensions}{ #' Named vector with the dimension lengths and names of the data involved in -#' the \code{Start} call. +#' the Start() call. #' } -#' \item{Variales}{ +#' \item{Variables}{ #' Named list of 1 + N components, containing lists of retrieved variables (as -#' requested in \code{return_vars}) common to all the data sources (in the 1st +#' requested in 'return_vars') common to all the data sources (in the 1st #' component, \code{$common}), and for each of the N dara sources (named after #' the source name, as specified in \dots, or, if not specified, \code{$dat1}, #' \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a @@ -748,9 +746,9 @@ #' sources. #' } #' \item{StartRCall}{ -#' List of parameters sent to the \code{Start} call, with the parameter -#' \code{retrieve} set to \code{TRUE}. Intended for calling in order to -#' retrieve the associated data a posteriori with a call to \code{do.call}. +#' List of parameters sent to the Start() call, with the parameter +#' 'retrieve' set to TRUE. Intended for calling in order to +#' retrieve the associated data a posteriori with a call to do.call(). #' } #' #'@examples diff --git a/R/Step.R b/R/Step.R index 829ddee..1dd6829 100644 --- a/R/Step.R +++ b/R/Step.R @@ -5,7 +5,7 @@ #'dimensions of data array for the function. Ideally, it expects the dimension #'name to be in the same order as the one requested in the Start() call. #'If a different order is specified, startR will reorder the subset dimension -#'to the expected order for this function./cr +#'to the expected order for this function. #' #'@param fun A function in R format defining the operation to be applied to the #' data declared by a Start() call. It should only work on the essential diff --git a/man/NcCloser.Rd b/man/NcCloser.Rd index fbff623..fb4831e 100644 --- a/man/NcCloser.Rd +++ b/man/NcCloser.Rd @@ -27,9 +27,10 @@ data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') connection <- NcOpener(path_obs) NcCloser(connection) - } \seealso{ \code{\link[easyNCDF]{NcClose}} + +[NcOpener()] [NcDimReader()] [NcDataReader()] [NcVarReader()] } diff --git a/man/NcDataReader.Rd b/man/NcDataReader.Rd index dc167c1..96e7391 100644 --- a/man/NcDataReader.Rd +++ b/man/NcDataReader.Rd @@ -35,15 +35,15 @@ parameter 'file_data_reader' of the function Start().} } \value{ A multidimensional data array with the named dimensions and indices - requested in inner_indices, potentially with the attribute 'variables' with - additional auxiliary data. See details in the documentation of the parameter - 'file_data_reader' of the function Start(). + requested in 'inner_indices', potentially with the attribute 'variables' + with additional auxiliary data. See details in the documentation of the + parameter 'file_data_reader' of the function Start(). } \description{ This is a data reader function for NetCDF files, intended for use as parameter file_data_reader in a Start() call. This function complies with the input/output interface required by Start() defined in the documentation for -the parameter 'file_data_reader'.\cr +the parameter 'file_data_reader'.\cr\cr This function uses the function NcToArray() in the package 'easyNCDF', which in turn uses nc_var_get() in the package 'ncdf4'. } @@ -56,6 +56,8 @@ in turn uses nc_var_get() in the package 'ncdf4'. latitude = 'latitude', longitude = 'longitude') sub_array <- NcDataReader(file_to_open, NULL, file_selectors, first_round_indices, synonims) - +} +\seealso{ +[NcOpener()] [NcDimReader()] [NcCloser()] [NcVarReader()] } diff --git a/man/NcDimReader.Rd b/man/NcDimReader.Rd index b695176..3260d6d 100644 --- a/man/NcDimReader.Rd +++ b/man/NcDimReader.Rd @@ -41,7 +41,7 @@ A named numeric vector with the names and sizes of the dimensions of A dimension reader function for NetCDF files, intended for use as parameter 'file_dim_reader' in a Start() call. It complies with the input/output interface required by Start() defined in the documentation for the parameter -'file_dim_reader' of that function./cr +'file_dim_reader' of that function.\cr\cr This function uses the function NcReadDims() in the package 'easyNCDF'. } \examples{ @@ -53,6 +53,8 @@ This function uses the function NcReadDims() in the package 'easyNCDF'. latitude = 'latitude', longitude = 'longitude') dim_of_file <- NcDimReader(file_to_open, NULL, file_selectors, first_round_indices, synonims) - +} +\seealso{ +[NcOpener()] [NcCloser()] [NcDataReader()] [NcVarReader()] } diff --git a/man/NcOpener.Rd b/man/NcOpener.Rd index 7dabf24..fb0239a 100644 --- a/man/NcOpener.Rd +++ b/man/NcOpener.Rd @@ -18,9 +18,9 @@ An open connection to a NetCDF file with additional header } \description{ This is a file opener function for NetCDF files, intended for use as parameter -file_opener in a Start() call. This function complies with the input/output +'file_opener' in a Start() call. This function complies with the input/output interface required by Start() defined in the documentation for the parameter -'file_opener'.\cr +'file_opener'.\cr\cr This function uses the function NcOpen() in the package 'easyNCDF', which in turn uses nc_open() in the package 'ncdf4'. } @@ -29,6 +29,8 @@ data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') connection <- NcOpener(path_obs) NcCloser(connection) - +} +\seealso{ +[NcCloser()] [NcDimReader()] [NcDataReader()] [NcVarReader()] } diff --git a/man/NcVarReader.Rd b/man/NcVarReader.Rd index 71bc78a..c5a7ab8 100644 --- a/man/NcVarReader.Rd +++ b/man/NcVarReader.Rd @@ -40,7 +40,7 @@ A multidimensional data array with the named dimensions, potentially This is an auxiliary variable reader function for NetCDF files, intended for use as parameter 'file_var_reader' in a Start() call. It complies with the input/output interface required by Start() defined in the documentation for -the parameter 'file_var_reader' of that function.\cr +the parameter 'file_var_reader' of that function.\cr\cr This function uses the function NcDataReader() in the package 'startR', which in turn uses NcToArray() in the package 'easyNCDF', which in turn uses nc_var_get() in the package 'ncdf4'. diff --git a/man/SelectorChecker.Rd b/man/SelectorChecker.Rd index d02c650..ef83575 100644 --- a/man/SelectorChecker.Rd +++ b/man/SelectorChecker.Rd @@ -26,8 +26,8 @@ after the matching. The default value is TRUE.} \item{tolerance}{A numeric value indicating a tolerance value to be used in the matching of 'selectors' and 'var'. See documentation on -_tolerance in \dots in the documentation of the function Start(). -The default value is NULL.} +'_tolerance' in \code{\dots} in the documentation of the function +Start(). The default value is NULL.} } \value{ A vector of either the indices of the matching values (if @@ -36,9 +36,9 @@ A vector of either the indices of the matching values (if } \description{ This is a selector checker function intended for use as parameter -'selector_checker' in a Start() call. It translates a set of selectors which is -the value for one dimension into a set of numeric indices corresponding to the -coordinate variable. The function complies with the input/output interface +'selector_checker' in a Start() call. It translates a set of selectors which +is the value for one dimension into a set of numeric indices corresponding to +the coordinate variable. The function complies with the input/output interface required by Start() defined in the documentation for the parameter 'selector_checker' of Start(). } diff --git a/man/Sort.Rd b/man/Sort.Rd index aa878bf..2b8d6f6 100644 --- a/man/Sort.Rd +++ b/man/Sort.Rd @@ -3,7 +3,7 @@ \name{Sort} \alias{CircularSort} \alias{Sort} -\title{Sort the coordinate variable values in a call to the function startR::Start} +\title{Sort the coordinate variable values in a Start() call} \usage{ Sort(...) @@ -14,8 +14,8 @@ CircularSort(start, end, ...) \item{end}{A numeric indicating the upper bound of the circular range.} -\item{\dots}{Additional parameters to adjust the reorderig (sent internally -to the function \code{sort()}).} +\item{\dots}{Additional parameters to adjust the reorderig. See function +sort() for more details.} } \value{ A list of 2 containing: @@ -27,15 +27,15 @@ A list of 2 containing: } } \description{ -The reorder function intended for use as parameter \code{_reorder} -in a call to the function \code{Start()}. This function complies with the -input/output interface required by \code{Start()} defined in the documentation -for the parameter \dots of that function.\cr -The coordinate applied to \code{Sort()} consists of an increasing or decreasing -sort of the values. It is useful for adjusting the latitude order.\cr -The coordinate applied to \code{CircularSort()} consists of a circular sort of +The reorder function intended for use as parameter '_reorder' +in a call to the function Start(). This function complies with the +input/output interface required by Start() defined in the documentation +for the parameter \code{\dots} of that function.\cr\cr +The coordinate applied to Sort() consists of an increasing or decreasing +sort of the values. It is useful for adjusting the latitude order.\cr\cr +The coordinate applied to CircularSort() consists of a circular sort of values, where any values beyond the limits specified in the parameters -\code{start} and \code{end} is applied a modulus to fall in the specified +'start' and 'end' is applied a modulus to fall in the specified range. This is useful for circular coordinates such as the Earth longitudes. } \examples{ diff --git a/man/Start.Rd b/man/Start.Rd index 86362c9..b8cdf35 100644 --- a/man/Start.Rd +++ b/man/Start.Rd @@ -19,18 +19,18 @@ Start(..., return_vars = NULL, synonims = NULL, file_opener = NcOpener, \item{return_vars}{A named list where the names are the names of the variables to be fetched in the files, and the values are vectors of character strings with the names of the file dimension which to retrieve each -variable for, or \code{NULL} if the variable has to be retrieved only once +variable for, or NULL if the variable has to be retrieved only once from any (the first) of the involved files.\cr\cr Apart from retrieving a multidimensional data array, retrieving auxiliary variables inside the files can also be needed. The parameter -\code{return_vars} allows for requesting such variables, as long as a -\code{file_var_reader} function is also specified in the call to -\code{Start()} (see documentation on the corresponding parameter). +'return_vars' allows for requesting such variables, as long as a +'file_var_reader' function is also specified in the call to +Start() (see documentation on the corresponding parameter). \cr\cr In the case of the the item sales example (see documentation on parameter \code{\dots)}, the store location variable is requested with the parameter \code{return_vars = list(store_location = NULL)}. This will cause -\code{Start()} to fetch once the variable 'store_location' and return it in +Start() to fetch once the variable 'store_location' and return it in the component \code{$Variables$common$store_location}, and will be an array of character strings with the location names, with the dimensions \code{c('store' = 100)}. Although useless in this example, we could ask @@ -80,17 +80,17 @@ For example: \cr\cr The names of the requested variables do not necessarily have to match the actual variable names inside the files. A list of alternative names to be -seeked can be specified via the parameter \code{synonims}.} +seeked can be specified via the parameter 'synonims'.} \item{synonims}{A named list where the names are the requested variable or dimension names, and the values are vectors of character strings with alternative names to seek for such dimension or variable.\cr\cr In some requests, data from different sources may follow different naming conventions for the dimensions or variables, or even files in the same source -could have varying names. This parameter is in order for \code{Start()} to +could have varying names. This parameter is in order for Start() to properly identify the dimensions or variables with different names. \cr\cr -In the example used in parameter \code{return_vars}, it may be the case that +In the example used in parameter 'return_vars', it may be the case that the two involved data sources follow slightly different naming conventions. For example, source A uses 'sect' as name for the sections dimension, whereas source B uses 'section'; source A uses 'store_loc' as variable name for the @@ -124,114 +124,114 @@ into account as follows: \cr} \item{file_opener}{A function that receives as a single parameter - (\code{file_path}) a character string with the path to a file to be opened, + 'file_path' a character string with the path to a file to be opened, and returns an object with an open connection to the file (optionally with - header information) on success, or returns \code{NULL} on failure. + header information) on success, or returns NULL on failure. \cr\cr -This parameter takes by default \code{NcOpener} (an opener function for NetCDF +This parameter takes by default NcOpener() (an opener function for NetCDF files). \cr\cr -See \code{NcOpener} for a template to build a file opener for your own file +See NcOpener() for a template to build a file opener for your own file format.} \item{file_var_reader}{A function with the header \code{file_path = NULL}, \code{file_object = NULL}, \code{file_selectors = NULL}, \code{var_name}, \code{synonims} that returns an array with auxiliary data (i.e. data from a - variable) inside a file. \code{Start()} will provide automatically either a - \code{file_path} or a \code{file_object} to the \code{file_var_reader} + variable) inside a file. Start() will provide automatically either a + 'file_path' or a 'file_object' to the 'file_var_reader' function (the function has to be ready to work whichever of these two is - provided). The parameter \code{file_selectors} will also be provided + provided). The parameter 'file_selectors' will also be provided automatically to the variable reader, containing a named list where the names are the names of the file dimensions of the queried data set (see - documentation on \dots) and the values are single character strings with the - components used to build the path to the file being read (the one provided - in \code{file_path} or \code{file_object}). The parameter \code{var_name} - will be filled in automatically by \code{Start()} also, with the name of one - of the variales to be read. The parameter \code{synonims} will be filled in - with exactly the same value as provided in the parameter \code{synonims} in - the call to \code{Start()}, and has to be used in the code of the variable + documentation on \code{\dots}) and the values are single character strings + with the components used to build the path to the file being read (the one + provided in 'file_path' or 'file_object'). The parameter 'var_name' + will be filled in automatically by Start() also, with the name of one + of the variales to be read. The parameter 'synonims' will be filled in + with exactly the same value as provided in the parameter 'synonims' in + the call to Start(), and has to be used in the code of the variable reader to check for alternative variable names inside the target file. The - \code{file_var_reader} must return a (multi)dimensional array with named + 'file_var_reader' must return a (multi)dimensional array with named dimensions, and optionally with the attribute 'variales' with other additional metadata on the retrieved variable. \cr\cr -Usually, the \code{file_var_reader} should be a degenerate case of the -\code{file_data_reader} (see documentation on the corresponding parameter), -so it is recommended to code the \code{file_data_reder} in first place. +Usually, the 'file_var_reader' should be a degenerate case of the +'file_data_reader' (see documentation on the corresponding parameter), +so it is recommended to code the 'file_data_reder' in first place. \cr\cr -This parameter takes by default \code{NcVarReader} (a variable reader function +This parameter takes by default NcVarReader() (a variable reader function for NetCDF files). \cr\cr -See \code{NcVarReader} for a template to build a variale reader for your own +See NcVarReader() for a template to build a variale reader for your own file format.} \item{file_dim_reader}{A function with the header \code{file_path = NULL}, \code{file_object = NULL}, \code{file_selectors = NULL}, \code{synonims} that returns a named numeric vector where the names are the names of the dimensions of the multidimensional data array in the file and the values are - the sizes of such dimensions. \code{Start()} will provide automatically - either a \code{file_path} or a \code{file_object} to the - \code{file_dim_reader} function (the function has to be ready to work - whichever of these two is provided). The parameter \code{file_selectors} + the sizes of such dimensions. Start() will provide automatically + either a 'file_path' or a 'file_object' to the + 'file_dim_reader' function (the function has to be ready to work + whichever of these two is provided). The parameter 'file_selectors' will also be provided automatically to the dimension reader, containing a named list where the names are the names of the file dimensions of the - queried data set (see documentation on \dots) and the values are single - character strings with the components used to build the path to the file - being read (the one provided in \code{file_path} or \code{file_object}). - The parameter \code{synonims} will be filled in with exactly the same value - as provided in the parameter \code{synonims} in the call to \code{Start()}, + queried data set (see documentation on \code{\dots}) and the values are + single character strings with the components used to build the path to the + file being read (the one provided in 'file_path' or 'file_object'). + The parameter 'synonims' will be filled in with exactly the same value + as provided in the parameter 'synonims' in the call to Start(), and can optionally be used in advanced configurations. \cr\cr -This parameter takes by default \code{NcDimReader} (a dimension reader +This parameter takes by default NcDimReader() (a dimension reader function for NetCDF files). \cr\cr -See \code{NcDimReader} for (an advanced) template to build a dimension reader +See NcDimReader() for (an advanced) template to build a dimension reader for your own file format.} \item{file_data_reader}{A function with the header \code{file_path = NULL}, \code{file_object = NULL}, \code{file_selectors = NULL}, \code{inner_indices = NULL}, \code{synonims} that returns a subset of the multidimensional data array inside a file (even if internally it is not an - array). \code{Start()} will provide automatically either a \code{file_path} - or a \code{file_object} to the \code{file_data_reader} function (the + array). Start() will provide automatically either a 'file_path' + or a 'file_object' to the 'file_data_reader' function (the function has to be ready to work whichever of these two is provided). The - parameter \code{file_selectors} will also be provided automatically to the + parameter 'file_selectors' will also be provided automatically to the data reader, containing a named list where the names are the names of the - file dimensions of the queried data set (see documentation on \dots) and the - values are single character strings with the components used to build the - path to the file being read (the one provided in \code{file_path} or - \code{file_object}). The parameter \code{inner_indices} will be filled in - automatically by \code{Start()} also, with a named list of numeric vectors, + file dimensions of the queried data set (see documentation on \code{\dots}) + and the values are single character strings with the components used to + build the path to the file being read (the one provided in 'file_path' or + 'file_object'). The parameter 'inner_indices' will be filled in + automatically by Start() also, with a named list of numeric vectors, where the names are the names of all the expected inner dimensions in a file to be read, and the numeric vectors are the indices to be taken from the corresponding dimension (the indices may not be consecutive nor in order). - The parameter \code{synonims} will be filled in with exactly the same value - as provided in the parameter \code{synonims} in the call to \code{Start()}, + The parameter 'synonims' will be filled in with exactly the same value + as provided in the parameter 'synonims' in the call to Start(), and has to be used in the code of the data reader to check for alternative - dimension names inside the target file. The \code{file_data_reader} must + dimension names inside the target file. The 'file_data_reader' must return a (multi)dimensional array with named dimensions, and optionally with - the attribute 'variales' with other additional metadata on the retrieved + the attribute 'variables' with other additional metadata on the retrieved data. \cr\cr -Usually, the \code{file_data_reader} should use the \code{file_dim_reader} +Usually, 'file_data_reader' should use 'file_dim_reader' (see documentation on the corresponding parameter), so it is recommended to -code the \code{file_dim_reder} in first place. +code 'file_dim_reder' in first place. \cr\cr -This parameter takes by default \code{NcDataReader} (a data reader function +This parameter takes by default NcDataReader() (a data reader function for NetCDF files). \cr\cr -See \code{NcDataReader} for a template to build a data reader for your own +See NcDataReader() for a template to build a data reader for your own file format.} \item{file_closer}{A function that receives as a single parameter - (\code{file_object}) an open connection (as returned by \code{file_opener}) + 'file_object' an open connection (as returned by 'file_opener') to one of the files to be read, optionally with header information, and - closes the open connection. Always returns \code{NULL}. + closes the open connection. Always returns NULL. \cr\cr -This parameter takes by default \code{NcCloser} (a closer function for NetCDF +This parameter takes by default NcCloser() (a closer function for NetCDF files). \cr\cr -See \code{NcCloser} for a template to build a file closer for your own file +See NcCloser() for a template to build a file closer for your own file format.} \item{transform}{A function with the header \code{dara_array}, @@ -240,75 +240,75 @@ input, through the parameter \code{data_array}, a subset of a multidimensional array (as returned by \code{file_data_reader}), applies a transformation to it and returns it, preserving the amount of dimensions but potentially modifying their size. This transformation may require data from -other auxiliary variables, automatically provided to \code{transform} -through the parameter \code{variables}, in the form of a named list where +other auxiliary variables, automatically provided to 'transform' +through the parameter 'variables', in the form of a named list where the names are the variable names and the values are (multi)dimensional -arrays. Which variables need to be sent to \code{transform} can be specified -with the parameter \code{transform_vars} in \code{Start()}. The parameter -\code{file_selectors} will also be provided automatically to -\code{transform}, containing a named list where the names are the names of -the file dimensions of the queried data set (see documentation on \dots) and -the values are single character strings with the components used to build -the path to the file the subset being processed belongs to. The parameter -\dots will be filled in with other additional parameters to adjust the -transformation, exactly as provided in the call to \code{Start()} via the -parameter \code{transform_params}.} +arrays. Which variables need to be sent to 'transform' can be specified +with the parameter 'transform_vars' in Start(). The parameter +'file_selectors' will also be provided automatically to +'transform', containing a named list where the names are the names of +the file dimensions of the queried data set (see documentation on +\code{\dots}) and the values are single character strings with the +components used to build the path to the file the subset being processed +belongs to. The parameter \code{\dots} will be filled in with other +additional parameters to adjust the transformation, exactly as provided in +the call to Start() via the parameter 'transform_params'.} \item{transform_params}{A named list with additional parameters to be sent to -the \code{transform} function (if specified). See documentation on -\code{transform} for details.} +the 'transform' function (if specified). See documentation on parameter +'transform' for details.} \item{transform_vars}{A vector of character strings with the names of -auxiliary variables to be sent to the \code{transform} function (if -specified). All the variables to be sent to \code{transform} must also -have been requested as return variables in the parameter \code{return_vars} -of \code{Start()}.} +auxiliary variables to be sent to the 'transform' function (if +specified). All the variables to be sent to 'transform' must also +have been requested as return variables in the parameter 'return_vars' +of Start().} \item{transform_extra_cells}{An integer of extra indices to retrieve from the -data set, beyond the requested indices in \dots, in order for -\code{transform} to dispose of additional information to properly apply +data set, beyond the requested indices in \code{\dots}, in order for +'transform' to dispose of additional information to properly apply whichever transformation (if needed). As many as -\code{transform_extra_cells} will be retrieved beyond each of the limits for +'transform_extra_cells' will be retrieved beyond each of the limits for each of those inner dimensions associated to a coordinate variable and sent -to \code{transform} (i.e. present in \code{transform_vars}). After -\code{transform} has finished, \code{Start()} will take again and return a +to 'transform' (i.e. present in 'transform_vars'). After +'transform' has finished, Start() will take again and return a subset of the result, for the returned data to fall within the specified -bounds in \dots. The default value is 2.} +bounds in \code{\dots}. The default value is 2.} \item{apply_indices_after_transform}{A logical value indicating when a -\code{transform} is specified in \code{Start()} and numeric indices are +'transform' is specified in Start() and numeric indices are provided for any of the inner dimensions that depend on coordinate variables, these numeric indices can be made effective (retrieved) before applying the transformation or after. The boolean flag allows to adjust this behaviour. -It takes \code{FALSE} by default (numeric indices are applied before sending -data to \code{transform}).} +It takes FALSE by default (numeric indices are applied before sending +data to 'transform').} \item{pattern_dims}{A character string indicating the name of the dimension -with path pattern specifications (see \dots for details). If not specified, -\code{Start()} assumes the first provided dimension is the pattern +with path pattern specifications (see \code{\dots} for details). If not +specified, Start() assumes the first provided dimension is the pattern dimension, with a warning.} \item{metadata_dims}{A vector of character strings with the names of the file -dimensions which to return metadata for. As noted in \code{file_data_reader}, +dimensions which to return metadata for. As noted in 'file_data_reader', the data reader can optionally return auxiliary data via the attribute -'variables' of the returned array. \code{Start()} by default returns the +'variables' of the returned array. Start() by default returns the auxiliary data read for only the first file of each source (or data set) in -the pattern dimension (see \dots for info on what the pattern dimension is). -However it can be configured to return the metadata for all the files along -any set of file dimensions. The parameter \code{metadata_dims} allows to -configure this level of granularity of the returned metadata.} +the pattern dimension (see \code{\dots} for info on what the pattern +dimension is). However it can be configured to return the metadata for all +the files along any set of file dimensions. The parameter 'metadata_dims' + allows to configure this level of granularity of the returned metadata.} -\item{selector_checker}{A function used internaly by \code{Start()} to +\item{selector_checker}{A function used internaly by Start() to translate a set of selectors (values for a dimension associated to a coordinate variable) into a set of numeric indices. It takes by default -\code{SelectorChecker} and, in principle, it should not be required to +SelectorChecker() and, in principle, it should not be required to change it for customized file formats. The option to replace it is left open -for more versatility. See the code of \code{SelectorChecker} for details on +for more versatility. See the code of SelectorChecker() for details on the inputs, functioning and outputs of a selector checker.} \item{merge_across_dims}{A logical value indicating whether to merge dimensions across which another dimension extends (according to the -\code{*_across} parameters). Takes the value \code{FALSE} by default. For +'_across' parameters). Takes the value FALSE by default. For example, if the dimension 'time' extends across the dimension 'chunk' and \code{merge_across_dims = TRUE}, the resulting data array will only contain only the dimension 'time' as long as all the chunks together.} @@ -329,8 +329,7 @@ is FALSE.} \item{path_glob_permissive}{A logical value or an integer specifying how many folder levels in the path pattern, beginning from the end, the shell glob expressions must be preserved and worked out for each file. The default - value is \code{FALSE}, which is equivalent to \code{0}. \code{TRUE} is - equivalent to \code{1}.\cr\cr + value is FALSE, which is equivalent to 0. TRUE is equivalent to 1.\cr\cr When specifying a path pattern for a dataset, it might contain shell glob experissions. For each dataset, the first file matching the path pattern is found, and the found file is used to work out fixed values for the glob @@ -338,43 +337,43 @@ expressions that will be used for all the files of the dataset. However in some cases the values of the shell glob expressions may not be constant for all files in a dataset, and they need to be worked out for each file involved.\cr\cr -For example, a path pattern could be as follows: -\code{'/path/to/dataset/$var$_*/$date$_*_foo.nc'}. Leaving +For example, a path pattern could be as follows: \cr +\code{'/path/to/dataset/$var$_*/$date$_*_foo.nc'}. \cr Leaving \code{path_glob_permissive = FALSE} will trigger automatic seek of the contents to replace the asterisks (e.g. the first asterisk matches with \code{'bar'} and the second with \code{'baz'}. The found contents will be used for all files in the dataset (in the example, the path pattern will be - fixed to \code{'/path/to/dataset/$var$_bar/$date$_baz_foo.nc'}. However, if + fixed to\cr \code{'/path/to/dataset/$var$_bar/$date$_baz_foo.nc'}. However, if any of the files in the dataset have other contents in the position of the - asterisks, \code{Start()} will not find them (in the example, a file like + asterisks, Start() will not find them (in the example, a file like \cr \code{'/path/to/dataset/precipitation_bar/19901101_bin_foo.nc'} would not be found). Setting \code{path_glob_permissive = 1} would preserve global expressions in the latest level (in the example, the fixed path pattern - would be \code{'/path/to/dataset/$var$_bar/$date$_*_foo.nc'}, and the + would be\cr \code{'/path/to/dataset/$var$_bar/$date$_*_foo.nc'}, and the problematic file mentioned before would be found), but of course this would - slow down the \code{Start()} call if the dataset involves a large number of + slow down the Start() call if the dataset involves a large number of files. Setting \code{path_glob_permissive = 2} would leave the original path pattern with the original glob expressions in the 1st and 2nd levels (in the - example, both asterisks would be preserved, thus would allow \code{Start()} - to recognize files such as + example, both asterisks would be preserved, thus would allow Start() + to recognize files such as \cr \code{'/path/to/dataset/precipitation_zzz/19901101_yyy_foo.nc'}).} \item{retrieve}{A logical value indicating whether to retrieve the data -defined in the \code{Start} call or to explore only its dimension lengths +defined in the Start() call or to explore only its dimension lengths and names, and the values for the file and inner dimensions. The default value is FALSE.} \item{num_procs}{An integer of number of processes to be created for the -parallel execution of the retrieval / transformation / arrangement of the -multiple involved files in a call to \code{Start()}. If set to \code{NULL}, -takes the number of available cores (as detected by \code{detectCores()} in +parallel execution of the retrieval/transformation/arrangement of the +multiple involved files in a call to Start(). If set to NULL, +takes the number of available cores (as detected by detectCores() in the package 'future'). The default value is 1 (no parallel execution).} \item{silent}{A logical value of whether to display progress messages (FALSE) or not (TRUE). The default value is FALSE.} \item{debug}{A logical value of whether to return detailed messages on the -progress and operations in a \code{Start} call (TRUE) or not (FALSE). The +progress and operations in a Start() call (TRUE) or not (FALSE). The default value is FALSE.} \item{\dots}{A selection of custemized parameters depending on the data @@ -383,7 +382,7 @@ the involved data can be perceived as belonging to a large multi-dimensional array. For instance, let us consider an example case. We want to retrieve data from a source, which contains data for the number of monthly sales of various items, and also for their retail price each month. The data on source is -stored as follows:\cr +stored as follows:\cr\cr \command{ \cr # /data/ \cr # |-> sales/ @@ -430,7 +429,7 @@ values inside the files (the inner dimensions). In the example, the file dimensions are 'source', 'variable', 'section' and 'item', whereas the inner dimensions are 'store' and 'month'. \cr\cr -Having the dimensions of our target sources in mind, the parameter \dots +Having the dimensions of our target sources in mind, the parameter \code{\dots} expects to receive information on: \itemize{ \item{ @@ -448,8 +447,8 @@ The location and organization of the files of the data sets } } For each dimension, the 3 first information items can be specified with a set -of parameters to be provided through \dots. For a given dimension 'dimname', -six parameters can be specified:\cr +of parameters to be provided through \code{\dots}. For a given dimension +'dimname', six parameters can be specified:\cr \command{ \cr # dimname = , # 'all' / 'first' / 'last' / \cr # # indices(c(1, 10, 20)) / @@ -469,7 +468,7 @@ code comments above for examples). The first format consists in using character tags, such as 'all' (take all the indices available for that dimension), 'first' (take only the first) and 'last' (only the last). The second format consists in using numeric indices, which have to be wrapped in a -call to the \code{indices()} helper function. For the second format, either a +call to the indices() helper function. For the second format, either a vector of numeric indices can be provided, or a list with two numeric indices can be provided to take all the indices in the range between the two specified indices (both extremes inclusive). The third format consists in providing a @@ -478,17 +477,17 @@ vector character strings (for file dimensions) or of values of whichever type strings in the third format will be used as components to build up the final path to the files (read further). For inner dimensions, the provided values in the third format will be compared to the values of an associated coordinate -variable (must be specified in \code{dimname_reorder}, read further), and the +variable (must be specified in '_reorder', read further), and the indices of the closest values will be retrieved. When using the third format, a list with two values can also be provided to take all the indices of the values within the specified range. \cr\cr The \bold{name of the associated coordinate variable} must be a character string with the name of an associated coordinate variable to be found in the -data files (in all* of them). For this to work, a \code{file_var_reader} -function must be specified when calling \code{Start()} (see parameter +data files (in all* of them). For this to work, a 'file_var_reader' +function must be specified when calling Start() (see parameter 'file_var_reader'). The coordinate variable must also be requested in the -parameter \code{return_vars} (see its section for details). This feature only +parameter 'return_vars' (see its section for details). This feature only works for inner dimensions. \cr\cr The \bold{tolerance value} is useful when indices for an inner dimension are @@ -503,32 +502,33 @@ The \bold{reorder_function} is useful when indices for an inner dimension are specified in the third fromat, and the retrieved indices need to be reordered in function of their provided associated variable values. A function can be provided, which receives as input a vector of values, and returns as outputs a -list with the components \code{x} with the reordered values, and \code{ix} +list with the components \code{$x} with the reordered values, and \code{$ix} with the permutation indices. Two reordering functions are included in -\code{startR}, the \code{Sort()} and the \code{CircularSort()}. +startR, the Sort() and the CircularSort(). \cr\cr -The \bold{name of another dimension} to be specified in \code{dimname_depends}, +The \bold{name of another dimension} to be specified in _depends, only available for file dimensions, must be a character string with the name -of another requested \bold{file dimension} in \dots, and will make -\code{Start()} aware that the path components of a file dimension can vary in +of another requested \bold{file dimension} in \code{\dots}, and will make +Start() aware that the path components of a file dimension can vary in function of the path component of another file dimension. For instance, in the example above, specifying \code{item_depends = 'section'} will make -\code{Start()} aware that the item names vary in function of the section, i.e. +Start() aware that the item names vary in function of the section, i.e. section 'electronics' has items 'a', 'b' and 'c' but section 'clothing' has -items 'd', 'e', 'f'. Otherwise \code{Start()} would expect to find the same +items 'd', 'e', 'f'. Otherwise Start() would expect to find the same item names in all the sections. \cr\cr -The \bold{name of another dimension} to be specified in \code{dimname_across}, +The \bold{name of another dimension} to be specified in '_across', only available for inner dimensions, must be a character string with the name -of another requested \bold{inner dimension} in \dots, and will make -\code{Start()} aware that an inner dimension extends along multiple files. For +of another requested \bold{inner dimension} in \code{\dots}, and will make +Start() aware that an inner dimension extends along multiple files. For instance, let us imagine that in the example above, the records for each item are so large that it becomes necessary to split them in multiple files each one containing the registers for a different period of time, e.g. in 10 files with 100 months each ('item_a_period1.data', 'item_a_period2.data', and so on). -In that case, the data can be perceived as having an extra file dimension, the#''period' dimension. The inner dimension 'month' would extend across multiple +In that case, the data can be perceived as having an extra file dimension, the +'period' dimension. The inner dimension 'month' would extend across multiple files, and providing the parameter \code{month = indices(1, 300)} would make -\code{Start()} crash because it would perceive we have made a request out of +Start() crash because it would perceive we have made a request out of bounds (each file contains 100 'month' indices, but we requested 1 to 300). This can be solved by specifying the parameter \code{month_across = period} (a long with the full specification of the dimension 'period'). @@ -544,11 +544,11 @@ path to one of the data set files in an accessible local or remote file system, or a URL to one of the files provided by a local or remote server. The regions of this path that vary across files (along the file dimensions) must be replaced by wildcards. The wildcards must match any of the defined file -dimensions in the call to \code{Start()} and must be delimited with heading +dimensions in the call to Start() and must be delimited with heading and trailing '$'. Shell globbing expressions can be used in the path pattern. See the next code snippet for an example of a path pattern. \cr\cr -All in all, the call to \code{Start()} to load the entire data set in the +All in all, the call to Start() to load the entire data set in the example of store item sales, would look as follows: \cr \command{ @@ -563,11 +563,11 @@ example of store item sales, would look as follows: } \cr\cr Note that in this example it would still be pending to properly define the -parameters \code{file_opener}, \code{file_closer}, \code{file_dim_reader}, -\code{file_var_reader} and \code{file_data_reader} for the '.data' file format +parameters 'file_opener', 'file_closer', 'file_dim_reader', +'file_var_reader' and 'file_data_reader' for the '.data' file format (see the corresponding sections). \cr\cr -The call to \code{Start()} will return a multidimensional R array with the +The call to Start() will return a multidimensional R array with the following dimensions: \cr \command{ @@ -575,9 +575,9 @@ following dimensions: \cr # 1 2 2 3 100 24 } \cr -The dimension specifications in the \dots do not have to follow any particular -order. The returned array will have the dimensions in the same order as they -have been specified in the call. For example, the following call: +The dimension specifications in the \code{\dots} do not have to follow any +particular order. The returned array will have the dimensions in the same order +as they have been specified in the call. For example, the following call: \cr \command{ \cr # data <- Start(source = paste0('/data/$variable$/', @@ -618,7 +618,7 @@ at): \cr\cr The defined names for the dimensions do not necessarily have to match the names of the dimensions inside the file. Lists of alternative names to be -seeked can be defined in the parameter \code{synonims}. +seeked can be defined in the parameter 'synonims'. \cr\cr If data from multiple sources (not necessarily following the same structure) has to be retrieved, it can be done by providing a vector of character strings @@ -652,12 +652,12 @@ If \code{retrieve = TRUE} the involved data is loaded into RAM memory returned:\cr \item{Data}{ Multidimensional data array with named dimensions, with the data values - requested via \dots and other parameters. This array can potentially contain - metadata in the attribute 'variables'. + requested via \code{\dots} and other parameters. This array can potentially + contain metadata in the attribute 'variables'. } \item{Variables}{ Named list of 1 + N components, containing lists of retrieved variables (as - requested in \code{return_vars}) common to all the data sources (in the 1st + requested in 'return_vars') common to all the data sources (in the 1st component, \code{$common}), and for each of the N dara sources (named after the source name, as specified in \dots, or, if not specified, \code{$dat1}, \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a @@ -666,12 +666,12 @@ If \code{retrieve = TRUE} the involved data is loaded into RAM memory } \item{Files}{ Multidimensonal character string array with named dimensions. Its dimensions - are the file dimensions (as requested in \dots). Each cell in this array - contains a path to a retrieved file, or \code{NULL} if the corresponding + are the file dimensions (as requested in \code{\dots}). Each cell in this + array contains a path to a retrieved file, or NULL if the corresponding file was not found. } \item{NotFoundFiles}{ - Array with the same shape as \code{$Files} but with \code{NULL} in the + Array with the same shape as \code{$Files} but with NULL in the positions for which the corresponding file was found, and a path to the expected file in the positions for which the corresponding file was not found. @@ -687,11 +687,11 @@ an object of the class 'startR_header' with the following components is returned:\cr \item{Dimensions}{ Named vector with the dimension lengths and names of the data involved in - the \code{Start} call. + the Start() call. } - \item{Variales}{ + \item{Variables}{ Named list of 1 + N components, containing lists of retrieved variables (as - requested in \code{return_vars}) common to all the data sources (in the 1st + requested in 'return_vars') common to all the data sources (in the 1st component, \code{$common}), and for each of the N dara sources (named after the source name, as specified in \dots, or, if not specified, \code{$dat1}, \code{$dat2}, ..., \code{$datN}). Each of the variables are contained in a @@ -710,32 +710,31 @@ returned:\cr sources. } \item{StartRCall}{ - List of parameters sent to the \code{Start} call, with the parameter - \code{retrieve} set to \code{TRUE}. Intended for calling in order to - retrieve the associated data a posteriori with a call to \code{do.call}. + List of parameters sent to the Start() call, with the parameter + 'retrieve' set to TRUE. Intended for calling in order to + retrieve the associated data a posteriori with a call to do.call(). } } \description{ -See the \href{https://earth.bsc.es/gitlab/es/startR}{\code{startR} -documentation and tutorial} for a step-by-step explanation on how to use -\code{Start()}.\cr\cr +See the \href{https://earth.bsc.es/gitlab/es/startR}{startR documentation and +tutorial} for a step-by-step explanation on how to use Start().\cr\cr Nowadays in the era of big data, large multidimensional data sets from diverse sources need to be combined and processed. Analysis of big data in any field is often highly complex and time-consuming. Taking subsets of these data sets and processing them efficiently become an indispensable practice. This technique is also known as Domain Decomposition, Map Reduce or, more commonly, 'chunking'.\cr\cr -\code{startR} (Subset, TrAnsform, ReTrieve, arrange and process large +startR (Subset, TrAnsform, ReTrieve, arrange and process large multidimensional data sets in R) is an R project started at BSC with the aim to develop a tool that allows the user to automatically process large multidimensional distributed data sets. It is an open source project that is open to external collaboration and funding, and will continuously evolve to support as many data set formats as possible while maximizing its efficiency.\cr\cr -\code{startR} provides a framework under which a data set (collection of one +startR provides a framework under which a data set (collection of one or multiple data files, potentially distributed over various remote servers) are perceived as if they all were part of a single large multidimensional array. Once such multidimensional array is declared, any user-defined function -can be applied to the data in a \code{apply}-like fashion, where \code{startR} +can be applied to the data in a \code{apply}-like fashion, where startR transparently implements the Map Reduce paradigm. The steps to follow in order to process a collection of big data sets are as follows:\cr \itemize{ @@ -743,7 +742,7 @@ to process a collection of big data sets are as follows:\cr Declaring the data set, i.e. declaring the distribution of the data files involved, the dimensions and shape of the multidimensional array, and the boundaries of the target data. This step can be performed with the -\code{Start()} function. Numeric indices or coordinate values can be used when +Start() function. Numeric indices or coordinate values can be used when fixing the boundaries. It is common having the need to apply transformations, pre-processing or reordering to the data. Start() accepts user-defined transformation or reordering functions to be applied for such purposes. Once a @@ -753,8 +752,7 @@ retrieved and loaded onto the current R session if it is small enough. } \item{ Declaring the workflow of operations to perform on the involved data set(s). -This step can be performed with the \code{Step()} and \code{AddStep()} -functions. +This step can be performed with the Step() and AddStep() functions. } \item{ Defining the computation settings. The mandatory settings include a) how many @@ -764,25 +762,25 @@ machine/HPC?), how to communicate with it (unidirectional or bidirectional connection? shared or separate file systems?), which queuing system it uses (slurm, PBS, LSF, none?); and c) how many parallel jobs and execution threads per job to use when running the calculations. This step can be performed when -building up the call to the \code{Compute()} function. +building up the call to the Compute() function. } \item{ Running the computation. startR transparently implements the Map Reduce paradigm, according to the settings in the previous steps. The progress can optionally be monitored with the EC-Flow workflow management tool. When the computation ends, a report of performance timings is displayed. This step can -be triggered with the \code{Compute()} function. +be triggered with the Compute() function. } } -\code{startR} is not bound to a specific file format. Interface functions to -custom file formats can be provided for \code{Start()} to read them. As this -version, \code{startR} includes interface functions to the following file formats: +startR is not bound to a specific file format. Interface functions to +custom file formats can be provided for Start() to read them. As this +version, startR includes interface functions to the following file formats: \itemize{ \item{ NetCDF } } -Metadata and auxilliary data is also preserved and arranged by \code{Start()} +Metadata and auxilliary data is also preserved and arranged by Start() in the measure that it is retrieved by the interface functions for a specific file format. } diff --git a/man/Step.Rd b/man/Step.Rd index 66c7870..47b6c39 100644 --- a/man/Step.Rd +++ b/man/Step.Rd @@ -40,7 +40,7 @@ identifies the operation (i.e., function) and the target and output dimensions of data array for the function. Ideally, it expects the dimension name to be in the same order as the one requested in the Start() call. If a different order is specified, startR will reorder the subset dimension -to the expected order for this function./cr +to the expected order for this function. } \examples{ data_path <- system.file('extdata', package = 'startR') -- GitLab From dcea1d1fc06f55e7a23339dc928b2e7670168847 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 12:49:50 +0200 Subject: [PATCH 50/60] Remove ByChunk.Rd and adjust .Rbuildigore --- .Rbuildignore | 6 +-- R/ByChunks.R | 51 +++++++++++------------ man/ByChunks.Rd | 105 ------------------------------------------------ 3 files changed, 29 insertions(+), 133 deletions(-) delete mode 100644 man/ByChunks.Rd diff --git a/.Rbuildignore b/.Rbuildignore index e90141b..c95a25e 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,9 +8,9 @@ #^vignettes$ #^inst/chunking/$ ^inst/doc/$ -#^inst/doc/*$ -#^inst/doc/figures/$ -#^inst/doc/usecase/$ +^inst/doc/*$ +^inst/doc/figures/$ +^inst/doc/usecase/$ #^inst/PlotProfiling\.R$ # Suggested by http://r-pkgs.had.co.nz/package.html diff --git a/R/ByChunks.R b/R/ByChunks.R index 812192b..1ae49e2 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -53,33 +53,34 @@ #'@examples #' # ByChunks() is internally used in Compute(), not intended to be used by #' # users. The example just illustrates the inputs of ByChunks(). -#' data_path <- system.file('extdata', package = 'startR') -#' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') -#' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, -#' var = 'tos', -#' sdate = sdates, -#' time = 'all', -#' latitude = 'all', -#' longitude = 'all', -#' return_vars = list(latitude = 'dat', -#' longitude = 'dat', -#' time = 'sdate'), -#' retrieve = FALSE) -#' fun <- function(x) { -#' lat = attributes(x)$Variables$dat1$latitude -#' weight = sqrt(cos(lat * pi / 180)) -#' corrected = Apply(list(x), target_dims = "latitude", -#' fun = function(x) {x * weight}) -#' } -#' step <- Step(fun = fun, -#' target_dims = 'latitude', -#' output_dims = 'latitude', -#' use_libraries = c('multiApply'), -#' use_attributes = list(data = "Variables")) -#' ByChunks(step, data) +#' # data_path <- system.file('extdata', package = 'startR') +#' # path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') +#' # sdates <- c('200011', '200012') +#' # data <- Start(dat = path_obs, +#' # var = 'tos', +#' # sdate = sdates, +#' # time = 'all', +#' # latitude = 'all', +#' # longitude = 'all', +#' # return_vars = list(latitude = 'dat', +#' # longitude = 'dat', +#' # time = 'sdate'), +#' # retrieve = FALSE) +#' # fun <- function(x) { +#' # lat = attributes(x)$Variables$dat1$latitude +#' # weight = sqrt(cos(lat * pi / 180)) +#' # corrected = Apply(list(x), target_dims = "latitude", +#' # fun = function(x) {x * weight}) +#' # } +#' # step <- Step(fun = fun, +#' # target_dims = 'latitude', +#' # output_dims = 'latitude', +#' # use_libraries = c('multiApply'), +#' # use_attributes = list(data = "Variables")) +#' #ByChunks(step, data) #' #'@import multiApply +#'@noRd ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', threads_load = 2, threads_compute = 1, cluster = NULL, diff --git a/man/ByChunks.Rd b/man/ByChunks.Rd deleted file mode 100644 index 9c391ae..0000000 --- a/man/ByChunks.Rd +++ /dev/null @@ -1,105 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/ByChunks.R -\name{ByChunks} -\alias{ByChunks} -\title{Execute the operation by chunks} -\usage{ -ByChunks(step_fun, cube_headers, ..., chunks = "auto", threads_load = 2, - threads_compute = 1, cluster = NULL, ecflow_suite_dir = NULL, - ecflow_server = NULL, silent = FALSE, debug = FALSE, wait = TRUE) -} -\arguments{ -\item{step_fun}{A function with the class 'startR_step_fun' containing the -details of operation.} - -\item{cube_headers}{A list with the class 'startR_cube' returned by Start(). -It contains the details of data to be operated.} - -\item{chunks}{A named list of dimensions which to split the data along and -the number of chunks to make for each. The chunked dimension can only be -those not required as the target dimension in function Step(). The default -value is 'auto', which lists all the non-target dimensions and each one has -one chunk.} - -\item{threads_load}{An integer indicating the number of execution threads to -use for the data retrieval stage. The default value is 1.} - -\item{threads_compute}{An integer indicating the number of execution threads -to use for the computation. The default value is 1.} - -\item{cluster}{A list of components that define the configuration of the -machine to be run on. The comoponents vary from the different machines. -Check \href{https://earth.bsc.es/gitlab/es/startR/}{startR GitLab} for more -details and examples. -Only needed when the computation is not run locally. The default value is -NULL.} - -\item{ecflow_suite_dir}{A character string indicating the path to a folder in -the local workstation where to store temporary files generated for the -automatic management of the workflow. Only needed when the execution is run -remotely. The default value is NULL.} - -\item{ecflow_server}{A named vector indicating the host and port of the -EC-Flow server. The vector form should be -\code{c(host = 'hostname', port = port_number)}. Only needed when the -execution is run remotely. The default value is NULL.} - -\item{silent}{A logical value deciding whether to print the computation -progress (FALSE) on the R session or not (TRUE). It only works when the -execution runs locally or the parameter 'wait' is TRUE. The default value -is FALSE.} - -\item{debug}{A logical value deciding whether to return detailed messages on -the progress and operations in a Compute() call (TRUE) or not (FALSE). -Automatically changed to FALSE if parameter 'silent' is TRUE. The default -value is FALSE.} - -\item{wait}{A logical value deciding whether the R session waits for the -Compute() call to finish (TRUE) or not (FALSE). If FALSE, it will return an -object with all the information of the startR execution that can be stored -in your disk. After that, the R session can be closed and the results can -be collected later with the Collect() function. The default value is TRUE.} - -\item{\dots}{Additional parameters for the inputs of 'step_fun'.} -} -\value{ -A list of data arrays for the output returned by the last step in the - specified workflow. The configuration details and profiling information are - attached as attributes to the returned list of arrays. -} -\description{ -This is an internal function used in Compute(), executing the operation by -the chunks specified in Compute(). It also returns the configuration details -and profiling information. -} -\examples{ -# ByChunks() is internally used in Compute(), not intended to be used by -# users. The example just illustrates the inputs of ByChunks(). - data_path <- system.file('extdata', package = 'startR') - path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') - sdates <- c('200011', '200012') - data <- Start(dat = path_obs, - var = 'tos', - sdate = sdates, - time = 'all', - latitude = 'all', - longitude = 'all', - return_vars = list(latitude = 'dat', - longitude = 'dat', - time = 'sdate'), - retrieve = FALSE) - fun <- function(x) { - lat = attributes(x)$Variables$dat1$latitude - weight = sqrt(cos(lat * pi / 180)) - corrected = Apply(list(x), target_dims = "latitude", - fun = function(x) {x * weight}) - } - step <- Step(fun = fun, - target_dims = 'latitude', - output_dims = 'latitude', - use_libraries = c('multiApply'), - use_attributes = list(data = "Variables")) - ByChunks(step, data) - -} - -- GitLab From 12a82effdb4c740514ab8771e17093a07af06d63 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 13:31:34 +0200 Subject: [PATCH 51/60] Renew pdf v2.0.0 --- startR-manual.pdf | Bin 143983 -> 149993 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/startR-manual.pdf b/startR-manual.pdf index dac7899e68eedb61e1475b499a208d22950b4714..b3e3adf386c85742fdbaa93f6f4967b3d4bbf209 100644 GIT binary patch delta 145980 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 delta 140070 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 rf&^UYZd#r}RIGqaqUJl1~!W6)#| -- GitLab From af054d6d245b6a100e43f709cc2b189feafd99a1 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 14:15:14 +0200 Subject: [PATCH 52/60] Correct seealso link --- R/NcCloser.R | 3 ++- R/NcDataReader.R | 3 ++- R/NcDimReader.R | 3 ++- R/NcOpener.R | 3 ++- R/NcVarReader.R | 2 ++ R/indices.R | 2 +- R/values.R | 2 +- man/NcCloser.Rd | 3 ++- man/NcDataReader.Rd | 3 ++- man/NcDimReader.Rd | 3 ++- man/NcOpener.Rd | 3 ++- man/NcVarReader.Rd | 4 ++++ man/indices.Rd | 2 +- man/values.Rd | 2 +- 14 files changed, 26 insertions(+), 12 deletions(-) diff --git a/R/NcCloser.R b/R/NcCloser.R index 7ee8f89..770bdec 100644 --- a/R/NcCloser.R +++ b/R/NcCloser.R @@ -17,7 +17,8 @@ #'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #'connection <- NcOpener(path_obs) #'NcCloser(connection) -#'@seealso [NcOpener()] [NcDimReader()] [NcDataReader()] [NcVarReader()] +#'@seealso \code{\link{NcOpener}} \code{\link{NcDataReader}} +#' \code{\link{NcDimReader}} \code{\link{NcVarReader}} #'@import easyNCDF #'@export NcCloser <- function(file_object) { diff --git a/R/NcDataReader.R b/R/NcDataReader.R index 806550f..0dfe0b2 100644 --- a/R/NcDataReader.R +++ b/R/NcDataReader.R @@ -41,7 +41,8 @@ #' latitude = 'latitude', longitude = 'longitude') #' sub_array <- NcDataReader(file_to_open, NULL, file_selectors, #' first_round_indices, synonims) -#'@seealso [NcOpener()] [NcDimReader()] [NcCloser()] [NcVarReader()] +#'@seealso \code{\link{NcOpener}} \code{\link{NcDimReader}} +#' \code{\link{NcCloser}} \code{\link{NcVarReader}} #'@import easyNCDF #'@export NcDataReader <- function(file_path = NULL, file_object = NULL, diff --git a/R/NcDimReader.R b/R/NcDimReader.R index e3f090a..7f8fab1 100644 --- a/R/NcDimReader.R +++ b/R/NcDimReader.R @@ -38,7 +38,8 @@ #' latitude = 'latitude', longitude = 'longitude') #' dim_of_file <- NcDimReader(file_to_open, NULL, file_selectors, #' first_round_indices, synonims) -#'@seealso [NcOpener()] [NcCloser()] [NcDataReader()] [NcVarReader()] +#'@seealso \code{\link{NcOpener}} \code{\link{NcDataReader}} +#' \code{\link{NcCloser}} \code{\link{NcVarReader}} #'@import easyNCDF #'@export NcDimReader <- function(file_path = NULL, file_object = NULL, diff --git a/R/NcOpener.R b/R/NcOpener.R index b9cceb2..a301432 100644 --- a/R/NcOpener.R +++ b/R/NcOpener.R @@ -18,7 +18,8 @@ #'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') #'connection <- NcOpener(path_obs) #'NcCloser(connection) -#'@seealso [NcCloser()] [NcDimReader()] [NcDataReader()] [NcVarReader()] +#'@seealso \code{\link{NcDimReader}} \code{\link{NcDataReader}} +#' \code{\link{NcCloser}} \code{\link{NcVarReader}} #'@import easyNCDF #'@export NcOpener <- function(file_path) { diff --git a/R/NcVarReader.R b/R/NcVarReader.R index 3cc8410..b78e89e 100644 --- a/R/NcVarReader.R +++ b/R/NcVarReader.R @@ -38,6 +38,8 @@ #' latitude = 'latitude', longitude = 'longitude') #' var <- NcVarReader(file_to_open, NULL, file_selectors, #' 'tos', synonims) +#'@seealso \code{\link{NcOpener}} \code{\link{NcDataReader}} +#' \code{\link{NcCloser}} \code{\link{NcDimReader}} #'@export NcVarReader <- function(file_path = NULL, file_object = NULL, file_selectors = NULL, var_name = NULL, diff --git a/R/indices.R b/R/indices.R index 3277f0f..ddcf063 100644 --- a/R/indices.R +++ b/R/indices.R @@ -24,7 +24,7 @@ #' longitude = 'dat', #' time = 'sdate'), #' retrieve = FALSE) -#'@seealso [values()] +#'@seealso \code{\link{values}} #'@export indices <- function(x) { attr(x, 'indices') <- TRUE diff --git a/R/values.R b/R/values.R index 82c3ae2..2b4927b 100644 --- a/R/values.R +++ b/R/values.R @@ -25,7 +25,7 @@ #' longitude = 'dat', #' time = 'sdate'), #' retrieve = FALSE) -#'@seealso [indices()] +#'@seealso \code{\link{indices}} #'@export values <- function(x) { attr(x, 'indices') <- FALSE diff --git a/man/NcCloser.Rd b/man/NcCloser.Rd index fb4831e..a565d4b 100644 --- a/man/NcCloser.Rd +++ b/man/NcCloser.Rd @@ -31,6 +31,7 @@ NcCloser(connection) \seealso{ \code{\link[easyNCDF]{NcClose}} -[NcOpener()] [NcDimReader()] [NcDataReader()] [NcVarReader()] +\code{\link{NcOpener}} \code{\link{NcDataReader}} + \code{\link{NcDimReader}} \code{\link{NcVarReader}} } diff --git a/man/NcDataReader.Rd b/man/NcDataReader.Rd index 96e7391..a6d32c7 100644 --- a/man/NcDataReader.Rd +++ b/man/NcDataReader.Rd @@ -58,6 +58,7 @@ in turn uses nc_var_get() in the package 'ncdf4'. first_round_indices, synonims) } \seealso{ -[NcOpener()] [NcDimReader()] [NcCloser()] [NcVarReader()] +\code{\link{NcOpener}} \code{\link{NcDimReader}} + \code{\link{NcCloser}} \code{\link{NcVarReader}} } diff --git a/man/NcDimReader.Rd b/man/NcDimReader.Rd index 3260d6d..d539ffd 100644 --- a/man/NcDimReader.Rd +++ b/man/NcDimReader.Rd @@ -55,6 +55,7 @@ This function uses the function NcReadDims() in the package 'easyNCDF'. first_round_indices, synonims) } \seealso{ -[NcOpener()] [NcCloser()] [NcDataReader()] [NcVarReader()] +\code{\link{NcOpener}} \code{\link{NcDataReader}} + \code{\link{NcCloser}} \code{\link{NcVarReader}} } diff --git a/man/NcOpener.Rd b/man/NcOpener.Rd index fb0239a..e46384c 100644 --- a/man/NcOpener.Rd +++ b/man/NcOpener.Rd @@ -31,6 +31,7 @@ connection <- NcOpener(path_obs) NcCloser(connection) } \seealso{ -[NcCloser()] [NcDimReader()] [NcDataReader()] [NcVarReader()] +\code{\link{NcDimReader}} \code{\link{NcDataReader}} + \code{\link{NcCloser}} \code{\link{NcVarReader}} } diff --git a/man/NcVarReader.Rd b/man/NcVarReader.Rd index c5a7ab8..c601907 100644 --- a/man/NcVarReader.Rd +++ b/man/NcVarReader.Rd @@ -54,4 +54,8 @@ nc_var_get() in the package 'ncdf4'. var <- NcVarReader(file_to_open, NULL, file_selectors, 'tos', synonims) } +\seealso{ +\code{\link{NcOpener}} \code{\link{NcDataReader}} + \code{\link{NcCloser}} \code{\link{NcDimReader}} +} diff --git a/man/indices.Rd b/man/indices.Rd index 498200d..20f2d99 100644 --- a/man/indices.Rd +++ b/man/indices.Rd @@ -37,6 +37,6 @@ original data. See details in the documentation of the parameter \code{\dots} retrieve = FALSE) } \seealso{ -[values()] +\code{\link{values}} } diff --git a/man/values.Rd b/man/values.Rd index 6ce9c66..517963c 100644 --- a/man/values.Rd +++ b/man/values.Rd @@ -39,6 +39,6 @@ coordinate variable. See details in the documentation of the parameter retrieve = FALSE) } \seealso{ -[indices()] +\code{\link{indices}} } -- GitLab From 4d70f77aca207a36171563800711750008d0047a Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 14:28:01 +0200 Subject: [PATCH 53/60] Adjust doc format --- R/CDORemapper.R | 2 +- R/NcCloser.R | 4 ++-- R/Start.R | 16 ++++++++-------- man/CDORemapper.Rd | 2 +- man/NcCloser.Rd | 4 ++-- man/Start.Rd | 16 ++++++++-------- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/R/CDORemapper.R b/R/CDORemapper.R index 303e42c..544847a 100644 --- a/R/CDORemapper.R +++ b/R/CDORemapper.R @@ -23,7 +23,7 @@ #'@return An array with the same amount of dimensions as the input data array, #' potentially with different sizes, and potentially with the attribute #' 'variables' with additional auxiliary data. See details in the documentation -#' of the parameter 'transform' of the function \code{Start()}. +#' of the parameter 'transform' of the function Start(). #'@seealso \code{\link[s2dverification]{CDORemap}} #' #'@examples diff --git a/R/NcCloser.R b/R/NcCloser.R index 770bdec..da38a5c 100644 --- a/R/NcCloser.R +++ b/R/NcCloser.R @@ -4,8 +4,8 @@ #'parameter 'file_closer' in a Start() call. This function complies with the #'input/output interface required by Start() defined in the documentation for #'the parameter 'file_closer'.\cr\cr -#'This function uses the function \code{NcClose()} in the package 'easyNCDF', -#'which in turn uses \code{nc_close()} in the package 'ncdf4'. +#'This function uses the function NcClose() in the package 'easyNCDF', +#'which in turn uses nc_close() in the package 'ncdf4'. #' #'@param file_object An open connection to a NetCDF file, optionally with #' additional header information. See details in the documentation of the diff --git a/R/Start.R b/R/Start.R index 9bd03ae..773f9e7 100644 --- a/R/Start.R +++ b/R/Start.R @@ -350,21 +350,21 @@ #'Start() (see documentation on the corresponding parameter). #'\cr\cr #'In the case of the the item sales example (see documentation on parameter -#'\code{\dots)}, the store location variable is requested with the parameter -#'\code{return_vars = list(store_location = NULL)}. This will cause +#'\code{\dots)}, the store location variable is requested with the parameter\cr +#'\code{return_vars = list(store_location = NULL)}.\cr This will cause #'Start() to fetch once the variable 'store_location' and return it in -#'the component \code{$Variables$common$store_location}, and will be an array -#'of character strings with the location names, with the dimensions +#'the component\cr \code{$Variables$common$store_location},\cr and will be an +#'array of character strings with the location names, with the dimensions #'\code{c('store' = 100)}. Although useless in this example, we could ask -#'\code{Start()} to fetch and return such variable for each file along the +#'Start() to fetch and return such variable for each file along the #'items dimension as follows: \cr -#'\code{return_vars = list(store_location = c('item'))}. In that case, the +#'\code{return_vars = list(store_location = c('item'))}.\cr In that case, the #'variable will be fetched once from a file of each of the items, and will be #'returned as an array with the dimensions \code{c('item' = 3, 'store' = 100)}. #'\cr\cr #'If a variable is requested along a file dimension that contains path pattern #'specifications ('source' in the example), the fetched variable values will be -#'returned in the component \code{$Variables$$}. +#'returned in the component\cr \code{$Variables$$}.\cr #'For example: #'\cr #'\command{ @@ -559,7 +559,7 @@ #'@param transform A function with the header \code{dara_array}, #' \code{variables}, \code{file_selectors = NULL}, \code{\dots}. It receives as #' input, through the parameter \code{data_array}, a subset of a -#' multidimensional array (as returned by \code{file_data_reader}), applies a +#' multidimensional array (as returned by 'file_data_reader'), applies a #' transformation to it and returns it, preserving the amount of dimensions but #' potentially modifying their size. This transformation may require data from #' other auxiliary variables, automatically provided to 'transform' diff --git a/man/CDORemapper.Rd b/man/CDORemapper.Rd index 984e127..d3f6770 100644 --- a/man/CDORemapper.Rd +++ b/man/CDORemapper.Rd @@ -26,7 +26,7 @@ in the documentation of the parameter 'transform' of the function Start().} An array with the same amount of dimensions as the input data array, potentially with different sizes, and potentially with the attribute 'variables' with additional auxiliary data. See details in the documentation - of the parameter 'transform' of the function \code{Start()}. + of the parameter 'transform' of the function Start(). } \description{ This is a transform function that uses CDO software to remap longitude-latitude diff --git a/man/NcCloser.Rd b/man/NcCloser.Rd index a565d4b..ec377b5 100644 --- a/man/NcCloser.Rd +++ b/man/NcCloser.Rd @@ -19,8 +19,8 @@ This is a file closer function for NetCDF files, intended for use as parameter 'file_closer' in a Start() call. This function complies with the input/output interface required by Start() defined in the documentation for the parameter 'file_closer'.\cr\cr -This function uses the function \code{NcClose()} in the package 'easyNCDF', -which in turn uses \code{nc_close()} in the package 'ncdf4'. +This function uses the function NcClose() in the package 'easyNCDF', +which in turn uses nc_close() in the package 'ncdf4'. } \examples{ data_path <- system.file('extdata', package = 'startR') diff --git a/man/Start.Rd b/man/Start.Rd index b8cdf35..ba88828 100644 --- a/man/Start.Rd +++ b/man/Start.Rd @@ -28,21 +28,21 @@ variables inside the files can also be needed. The parameter Start() (see documentation on the corresponding parameter). \cr\cr In the case of the the item sales example (see documentation on parameter -\code{\dots)}, the store location variable is requested with the parameter -\code{return_vars = list(store_location = NULL)}. This will cause +\code{\dots)}, the store location variable is requested with the parameter\cr +\code{return_vars = list(store_location = NULL)}.\cr This will cause Start() to fetch once the variable 'store_location' and return it in -the component \code{$Variables$common$store_location}, and will be an array -of character strings with the location names, with the dimensions +the component\cr \code{$Variables$common$store_location},\cr and will be an +array of character strings with the location names, with the dimensions \code{c('store' = 100)}. Although useless in this example, we could ask -\code{Start()} to fetch and return such variable for each file along the +Start() to fetch and return such variable for each file along the items dimension as follows: \cr -\code{return_vars = list(store_location = c('item'))}. In that case, the +\code{return_vars = list(store_location = c('item'))}.\cr In that case, the variable will be fetched once from a file of each of the items, and will be returned as an array with the dimensions \code{c('item' = 3, 'store' = 100)}. \cr\cr If a variable is requested along a file dimension that contains path pattern specifications ('source' in the example), the fetched variable values will be -returned in the component \code{$Variables$$}. +returned in the component\cr \code{$Variables$$}.\cr For example: \cr \command{ @@ -237,7 +237,7 @@ format.} \item{transform}{A function with the header \code{dara_array}, \code{variables}, \code{file_selectors = NULL}, \code{\dots}. It receives as input, through the parameter \code{data_array}, a subset of a -multidimensional array (as returned by \code{file_data_reader}), applies a +multidimensional array (as returned by 'file_data_reader'), applies a transformation to it and returns it, preserving the amount of dimensions but potentially modifying their size. This transformation may require data from other auxiliary variables, automatically provided to 'transform' -- GitLab From e57592c3e61437c0ddb5125db0f892a21b84c47a Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 14:34:02 +0200 Subject: [PATCH 54/60] Renew pdf v2.0.0 --- startR-manual.pdf | Bin 149993 -> 151649 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/startR-manual.pdf b/startR-manual.pdf index b3e3adf386c85742fdbaa93f6f4967b3d4bbf209..64a80a517de94959fdef9a5a0031f7e10bd2fe11 100644 GIT binary patch delta 70398 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 Date: Wed, 5 Aug 2020 14:40:05 +0200 Subject: [PATCH 55/60] Revise @seealso --- R/NcCloser.R | 1 - man/NcCloser.Rd | 2 -- 2 files changed, 3 deletions(-) diff --git a/R/NcCloser.R b/R/NcCloser.R index da38a5c..476592e 100644 --- a/R/NcCloser.R +++ b/R/NcCloser.R @@ -11,7 +11,6 @@ #' additional header information. See details in the documentation of the #' parameter 'file_closer' of the function Start(). #'@return This function returns NULL. -#'@seealso \code{\link[easyNCDF]{NcClose}} #'@examples #'data_path <- system.file('extdata', package = 'startR') #'path_obs <- file.path(data_path, 'obs/monthly_mean/tos/tos_200011.nc') diff --git a/man/NcCloser.Rd b/man/NcCloser.Rd index ec377b5..65beab8 100644 --- a/man/NcCloser.Rd +++ b/man/NcCloser.Rd @@ -29,8 +29,6 @@ connection <- NcOpener(path_obs) NcCloser(connection) } \seealso{ -\code{\link[easyNCDF]{NcClose}} - \code{\link{NcOpener}} \code{\link{NcDataReader}} \code{\link{NcDimReader}} \code{\link{NcVarReader}} } -- GitLab From 49485bd169f8b7aed2678d02f059283932200067 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 14:42:06 +0200 Subject: [PATCH 56/60] Renew pdf --- startR-manual.pdf | Bin 151649 -> 151586 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/startR-manual.pdf b/startR-manual.pdf index 64a80a517de94959fdef9a5a0031f7e10bd2fe11..a3579f50eb1ac4a6b394a2d2f21f97bf6f3afc88 100644 GIT binary patch delta 11260 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 delta 11390 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 Krj}HeLjGS=9fn^3 -- GitLab From 9cdedb45ca6ce1c810dfe29848fa50eccbf2c57d Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 16:09:54 +0200 Subject: [PATCH 57/60] Change maintainer --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 457c13d..f27bdd1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -4,8 +4,8 @@ Version: 2.0.0 Authors@R: c( person("BSC-CNS", role = c("aut", "cph")), person("Nicolau", "Manubens", , "nicolau.manubens@bsc.es", role = c("aut")), - person("An-Chi", "Ho", , "an.ho@bsc.es", role = c("ctb")), - person("Nuria", "Perez-Zanon", , "nuria.perez@bsc.es", role = c("ctb", "cre"), comment = c(ORCID = "0000-0001-8568-3071")), + person("An-Chi", "Ho", , "an.ho@bsc.es", role = c("ctb", "cre")), + person("Nuria", "Perez-Zanon", , "nuria.perez@bsc.es", role = c("ctb"), comment = c(ORCID = "0000-0001-8568-3071")), person("Javier", "Vegas", , "javier.vegas@bsc.es", role = c("ctb")), person("Pierre-Antoine", "Bretonniere", , "pierre-antoine.bretonniere@bsc.es", role = c("ctb")), person("Roberto", "Serrano", , "rsnotivoli@gmal.com", role = c("ctb"))) -- GitLab From 115bb074f5aeec7634fa0ccc81a9fd9fd57f8de6 Mon Sep 17 00:00:00 2001 From: aho Date: Wed, 5 Aug 2020 16:14:05 +0200 Subject: [PATCH 58/60] Renew pdf --- startR-manual.pdf | Bin 151586 -> 151587 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/startR-manual.pdf b/startR-manual.pdf index a3579f50eb1ac4a6b394a2d2f21f97bf6f3afc88..3417b13eaf55bc8c3e82ee68bf29c1c3900d2704 100644 GIT binary patch delta 2691 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 Date: Thu, 6 Aug 2020 13:17:59 +0200 Subject: [PATCH 59/60] Modify for CRAN win-builder check --- .Rbuildignore | 10 +++++----- DESCRIPTION | 4 ++-- NAMESPACE | 3 +++ R/AddStep.R | 2 +- R/ByChunks.R | 2 +- R/CDORemapper.R | 5 +++-- R/Collect.R | 2 +- R/Compute.R | 2 +- R/NcDimReader.R | 1 + R/Sort.R | 2 +- R/Start.R | 10 ++++++---- R/Step.R | 2 +- R/indices.R | 2 +- R/values.R | 2 +- man/AddStep.Rd | 2 +- man/CDORemapper.Rd | 5 +++-- man/Collect.Rd | 2 +- man/Compute.Rd | 2 +- man/Sort.Rd | 2 +- man/Start.Rd | 2 +- man/Step.Rd | 2 +- man/indices.Rd | 2 +- man/values.Rd | 2 +- 23 files changed, 39 insertions(+), 31 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index c95a25e..eeac7b8 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -6,11 +6,11 @@ ^README\.md$ #\..*\.RData$ #^vignettes$ -#^inst/chunking/$ -^inst/doc/$ -^inst/doc/*$ -^inst/doc/figures/$ -^inst/doc/usecase/$ +^tests$ +^inst/doc$ +#^inst/doc/*$ +#^inst/doc/figures/$ +#^inst/doc/usecase/$ #^inst/PlotProfiling\.R$ # Suggested by http://r-pkgs.had.co.nz/package.html diff --git a/DESCRIPTION b/DESCRIPTION index f27bdd1..b1b9425 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -30,11 +30,11 @@ Imports: s2dverification, ClimProjDiags Suggests: - testthat, stats, utils License: LGPL-3 URL: https://earth.bsc.es/gitlab/es/startR/ -BugReports: https://earth.bsc.es/gitlab/es/startR/issues +BugReports: https://earth.bsc.es/gitlab/es/startR/-/issues LazyData: true +SystemRequirements: cdo RoxygenNote: 5.0.0 diff --git a/NAMESPACE b/NAMESPACE index 81fe78c..a3ad75f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -24,3 +24,6 @@ import(multiApply) import(parallel) importFrom(ClimProjDiags,Subset) importFrom(s2dverification,CDORemap) +importFrom(stats,na.omit) +importFrom(stats,setNames) +importFrom(utils,str) diff --git a/R/AddStep.R b/R/AddStep.R index 5c3fdaf..037bd58 100644 --- a/R/AddStep.R +++ b/R/AddStep.R @@ -15,7 +15,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', diff --git a/R/ByChunks.R b/R/ByChunks.R index 1ae49e2..5f0bba5 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -56,7 +56,7 @@ #' # data_path <- system.file('extdata', package = 'startR') #' # path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' # sdates <- c('200011', '200012') -#' # data <- Start(dat = path_obs, +#' # data <- Start(dat = list(list(path = path_obs)), #' # var = 'tos', #' # sdate = sdates, #' # time = 'all', diff --git a/R/CDORemapper.R b/R/CDORemapper.R index 544847a..815b92a 100644 --- a/R/CDORemapper.R +++ b/R/CDORemapper.R @@ -31,7 +31,8 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011') -#' data <- Start(dat = path_obs, +#' \donttest{ +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', @@ -48,7 +49,7 @@ #' longitude = 'dat', #' time = 'sdate'), #' retrieve = FALSE) -#' +#' } #'@importFrom s2dverification CDORemap #'@export CDORemapper <- function(data_array, variables, file_selectors = NULL, ...) { diff --git a/R/Collect.R b/R/Collect.R index 2eca915..bf38729 100644 --- a/R/Collect.R +++ b/R/Collect.R @@ -27,7 +27,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', diff --git a/R/Compute.R b/R/Compute.R index 7e2125f..0e8d42c 100644 --- a/R/Compute.R +++ b/R/Compute.R @@ -58,7 +58,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', diff --git a/R/NcDimReader.R b/R/NcDimReader.R index 7f8fab1..9b11a59 100644 --- a/R/NcDimReader.R +++ b/R/NcDimReader.R @@ -41,6 +41,7 @@ #'@seealso \code{\link{NcOpener}} \code{\link{NcDataReader}} #' \code{\link{NcCloser}} \code{\link{NcVarReader}} #'@import easyNCDF +#'@importFrom stats setNames #'@export NcDimReader <- function(file_path = NULL, file_object = NULL, file_selectors = NULL, inner_indices = NULL, diff --git a/R/Sort.R b/R/Sort.R index 4bcaa2c..4f74d68 100644 --- a/R/Sort.R +++ b/R/Sort.R @@ -30,7 +30,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', diff --git a/R/Start.R b/R/Start.R index 773f9e7..62d7e8c 100644 --- a/R/Start.R +++ b/R/Start.R @@ -755,7 +755,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', @@ -766,7 +766,9 @@ #' time = 'sdate'), #' retrieve = FALSE) #' -#'@import bigmemory multiApply parallel abind future +#'@import bigmemory multiApply parallel abind future +#'@importFrom utils str +#'@importFrom stats na.omit setNames #'@importFrom ClimProjDiags Subset #'@export Start <- function(..., # dim = indices/selectors, @@ -1456,7 +1458,7 @@ Start <- function(..., # dim = indices/selectors, if (!(dim_name %in% pattern_dims)) { if (is.null(attr(dat_selectors[[dim_name]], 'values')) || is.null(attr(dat_selectors[[dim_name]], 'indices'))) { - flag <- ((dat_selectors[[dim_name]] %in% c('all', 'first', 'last')) || + flag <- ((any(dat_selectors[[dim_name]] %in% c('all', 'first', 'last'))) || (is.numeric(unlist(dat_selectors[[dim_name]])))) attr(dat_selectors[[dim_name]], 'values') <- !flag attr(dat_selectors[[dim_name]], 'indices') <- flag @@ -2317,7 +2319,7 @@ Start <- function(..., # dim = indices/selectors, # In the special case that the selectors for a dimension are 'all', 'first', ... # and chunking (dividing in more than 1 chunk) is requested, the selectors are # replaced for equivalent indices. - if ((dat[[i]][['selectors']][[inner_dim]][[1]] %in% c('all', 'first', 'last')) && + if ((any(dat[[i]][['selectors']][[inner_dim]][[1]] %in% c('all', 'first', 'last'))) && (chunks[[inner_dim]]['n_chunks'] != 1)) { selectors <- dat[[i]][['selectors']][[inner_dim]][[1]] if (selectors == 'all') { diff --git a/R/Step.R b/R/Step.R index 1dd6829..e5d7304 100644 --- a/R/Step.R +++ b/R/Step.R @@ -30,7 +30,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', diff --git a/R/indices.R b/R/indices.R index ddcf063..a7ad7a0 100644 --- a/R/indices.R +++ b/R/indices.R @@ -14,7 +14,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', diff --git a/R/values.R b/R/values.R index 2b4927b..592aa1d 100644 --- a/R/values.R +++ b/R/values.R @@ -13,7 +13,7 @@ #' data_path <- system.file('extdata', package = 'startR') #' path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') #' sdates <- c('200011', '200012') -#' data <- Start(dat = path_obs, +#' data <- Start(dat = list(list(path = path_obs)), #' var = 'tos', #' sdate = sdates, #' time = 'all', diff --git a/man/AddStep.Rd b/man/AddStep.Rd index a0ecfaf..3eece05 100644 --- a/man/AddStep.Rd +++ b/man/AddStep.Rd @@ -27,7 +27,7 @@ create the complete workflow. It is the final step before data processing. data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', diff --git a/man/CDORemapper.Rd b/man/CDORemapper.Rd index d3f6770..4f56baa 100644 --- a/man/CDORemapper.Rd +++ b/man/CDORemapper.Rd @@ -42,7 +42,8 @@ perform the interpolation, hence CDO is required to be installed. data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011') - data <- Start(dat = path_obs, + \donttest{ + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', @@ -59,7 +60,7 @@ perform the interpolation, hence CDO is required to be installed. longitude = 'dat', time = 'sdate'), retrieve = FALSE) - +} } \seealso{ \code{\link[s2dverification]{CDORemap}} diff --git a/man/Collect.Rd b/man/Collect.Rd index 54c85ab..44a7dee 100644 --- a/man/Collect.Rd +++ b/man/Collect.Rd @@ -39,7 +39,7 @@ of results as one data array when the execution is done. See more details on data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', diff --git a/man/Compute.Rd b/man/Compute.Rd index 956992b..e07106a 100644 --- a/man/Compute.Rd +++ b/man/Compute.Rd @@ -79,7 +79,7 @@ arrays and additional metadata. data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', diff --git a/man/Sort.Rd b/man/Sort.Rd index 2b8d6f6..9ab516e 100644 --- a/man/Sort.Rd +++ b/man/Sort.Rd @@ -43,7 +43,7 @@ range. This is useful for circular coordinates such as the Earth longitudes. data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', diff --git a/man/Start.Rd b/man/Start.Rd index ba88828..d69562c 100644 --- a/man/Start.Rd +++ b/man/Start.Rd @@ -788,7 +788,7 @@ file format. data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', diff --git a/man/Step.Rd b/man/Step.Rd index 47b6c39..65f0c72 100644 --- a/man/Step.Rd +++ b/man/Step.Rd @@ -46,7 +46,7 @@ to the expected order for this function. data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', diff --git a/man/indices.Rd b/man/indices.Rd index 20f2d99..a3d85ea 100644 --- a/man/indices.Rd +++ b/man/indices.Rd @@ -25,7 +25,7 @@ original data. See details in the documentation of the parameter \code{\dots} data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', diff --git a/man/values.Rd b/man/values.Rd index 517963c..3300f19 100644 --- a/man/values.Rd +++ b/man/values.Rd @@ -25,7 +25,7 @@ coordinate variable. See details in the documentation of the parameter data_path <- system.file('extdata', package = 'startR') path_obs <- file.path(data_path, 'obs/monthly_mean/$var$/$var$_$sdate$.nc') sdates <- c('200011', '200012') - data <- Start(dat = path_obs, + data <- Start(dat = list(list(path = path_obs)), var = 'tos', sdate = sdates, time = 'all', -- GitLab From 0a5f5f1358df5792109bd9fa3e6c813c9ed7a6f4 Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 6 Aug 2020 13:27:28 +0200 Subject: [PATCH 60/60] Update NEWS.md for v2.0.0 --- NEWS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NEWS.md b/NEWS.md index baf436e..e38cd18 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# startR v2.0.0 (Release date: 2020-08-06) +- Adopt Roxygen2 documentation format +- Remove Subset() to avoid duplicated function. Use ClimProjDiags::Subset instead. + # startR v1.0.3 (Release date: 2020-06-19) - Bugfix for requiring the repetitive values from a single file when using 'merge_across_dims' and 'split_multiselected_dims'. The value positions were not -- GitLab