diff --git a/R/CDORemap.R b/R/CDORemap.R index 55f12904cc86274ee2ba8b81424543d636233c2e..11aa2a0670dcbacf177329ea4931502ae98a215a 100644 --- a/R/CDORemap.R +++ b/R/CDORemap.R @@ -433,12 +433,13 @@ CDORemap <- function(data_array = NULL, lons, lats, grid, method, if (length(other_dims) > 1 || (length(other_dims) > 0 && (is_irregular))) { if (!(length(dim(data_array)) %in% other_dims)) { if (avoid_writes || is_irregular) { - dim_to_move <- max(other_dims) + dims_mod <- dim(data_array) + dims_mod[which(names(dim(data_array)) %in% + c(lon_dim, lat_dim))] <- 0 + dim_to_move <- which.max(dims_mod) permutation <- (1:length(dim(data_array)))[-dim_to_move] permutation <- c(permutation, dim_to_move) - permutation_back <- 1:length(dim(data_array)) - permutation_back[dim_to_move] <- length(dim(data_array)) - permutation_back[length(dim(data_array))] <- dim_to_move + permutation_back <- sort(permutation, index.return = TRUE)$ix dim_backup <- dim(data_array) data_array <- aperm(data_array, permutation) dim(data_array) <- dim_backup[permutation] @@ -460,6 +461,7 @@ CDORemap <- function(data_array = NULL, lons, lats, grid, method, } if ((other_dims_per_chunk > 1) || (other_dims_per_chunk > 0 && is_irregular)) { unlimited_dim <- tail(sort(tail(other_dims_ordered_by_size, other_dims_per_chunk)), 1) + #unlimited_dim <- tail(other_dims) } }