Newer
Older
aho
committed
test_that("1. Chunk along non-lat/lon dim", {
path <- '/esarchive/exp/ecearth/a1ua/cmorfiles/DCPP/EC-Earth-Consortium/EC-Earth3/dcppA-hindcast/$member$/Amon/$var$/gr/v20190713/$var$_Amon_*_s$sdate$-$member$_gr_$fyear$.nc'
suppressWarnings(
data <- Start(dat = path,
var = 'tos',
sdate = paste0(1960),
time = indices(1:2), #'all',
lat = 'all',
lon = 'all',
fyear = indices(1),
member = indices(1:2),
transform = CDORemapper,
transform_extra_cells = 2,
transform_params = list(grid = 'r100x50', method = 'conservative'),
transform_vars = c('lat', 'lon'),
synonims = list(lon = c('lon', 'longitude'), lat = c('lat', 'latitude')),
return_vars = list(lat = 'dat', lon = 'dat', time = 'sdate'),
retrieve = FALSE)
)
func <- function(x) {
return(x)
}
step <- Step(func, target_dims = c('time'),
output_dims = 'time')
wf <- AddStep(data, step)
#---
resT <- eval(data)
)
suppressWarnings(
res1 <- Compute(wf, chunks = list(member = 2))
dim(res1$output1),
c(time = 2, dat = 1, var = 1, sdate = 1, lat = 50, lon = 100, fyear = 1, member = 2)
as.vector(resT),
as.vector(res1$output1)
aho
committed
test_that("2. chunk along lon", {
#NOTE: the results are not identical when exp has extra cells = 2
suppressWarnings(
exp <- Start(dat = '/esarchive/exp/ecmwf/system5_m1/monthly_mean/$var$_f6h/$var$_$sdate$.nc',
var = 'tas',
sdate = '20000101',
aho
committed
latitude = 'all',
aho
committed
longitude = 'all',
transform = CDORemapper,
transform_params = list(grid = 'r100x50',
method = 'con'),
# crop = FALSE),
synonims = list(latitude = c('lat', 'latitude'),
longitude = c('longitude', 'lon')),
return_vars = list(latitude = 'dat',#NULL,
longitude = 'dat',#NULL,
time = 'sdate'),
retrieve = F)
)
func <- function(x) {
step <- Step(func, target_dims = 'time', output_dims = 'time')
resT <- eval(exp)
res1 <- Compute(wf, chunks = list(longitude = 2))$output1
#suppressWarnings(
# res2 <- Compute(wf, chunks = list(ensemble = 1))
#)
suppressWarnings(
res3 <- Compute(wf, chunks = list(longitude = 2, latitude = 2))$output1
res4 <- Compute(wf, chunks = list(longitude = 3))$output1
as.vector(resT),
as.vector(res1)
)
expect_equal(
res1,
res3
)
expect_equal(
res1,
res4