diff --git a/R/Analogs.R b/R/Analogs.R index f0ebd610721f0a7ddcabfbec495436bb4d12ef26..ee6e0fcf4de89f31acf510abc9922bf96db22703 100644 --- a/R/Analogs.R +++ b/R/Analogs.R @@ -394,6 +394,11 @@ Analogs <- function(exp, obs, exp_lats, exp_lons, obs_lats, obs_lons, grid_exp, obs_train_interpolated <- .generate_window(obj = obs_interpolated$data, sdate_dim = sdate_dim, time_dim = time_dim, loocv = loocv_window, ncores = ncores) obs_hres <- .generate_window(obj = obs, sdate_dim = sdate_dim, time_dim = time_dim, loocv = loocv_window, ncores = ncores) + } else { + obs_train_interpolated <- obs_interpolated$data + dim(obs_train_interpolated) <- dim(obs_train_interpolated)[-which(names(dim(obs_train_interpolated))=="time")] + obs_hres <- obs + dim(obs_hres) <- dim(obs_hres)[-which(names(dim(obs_hres))=="time")] } #----------------------------------- @@ -524,13 +529,13 @@ Analogs <- function(exp, obs, exp_lats, exp_lons, obs_lats, obs_lons, grid_exp, fun = as.vector, output_dims = "time", ncores = ncores )$output1 if (loocv) { - obj_window <- Apply(list(obj_new, rtimes, rsdates), target_dims = list(c(time_dim, sdate_dim), NULL, NULL), - fun = function(x, t, s) as.vector(x[(ntimes + t - size):(ntimes + t + size), -s]), + obj_window <- Apply(list(obj_new, rsdates), target_dims = list(c(time_dim, sdate_dim), NULL), + fun = function(x, s) as.vector(x[(ntimes + min(rtimes) - size):(ntimes + max(rtimes) + size), -s]), output_dims = 'window', ncores = ncores)$output1 names(dim(obj_window))[(length(names(dim(obj_window))) - 1):length(names(dim(obj_window)))] <- c(time_dim, sdate_dim) } else { obj_window <- Apply(obj_new, target_dims = c(time_dim, sdate_dim), - fun = function(x) sapply(rtimes, function(t) as.vector(x[(ntimes + t - size):(ntimes + t + size), ])), + fun = function(x) sapply(rtimes, function(t) as.vector(x[(ntimes + min(rtimes) - size):(ntimes + max(rtimes) + size), ])), output_dims = c('window', time_dim), ncores = ncores)$output1 }