diff --git a/R/as.s2dv_cube.R b/R/as.s2dv_cube.R index 5f01ec7faec3abb3c4c024ebf31eabdbdad343d4..e39e5cadb2130830631c994291c8a30ec19a71f6 100644 --- a/R/as.s2dv_cube.R +++ b/R/as.s2dv_cube.R @@ -168,8 +168,14 @@ as.s2dv_cube <- function(object, remove_attrs_coords = FALSE, obj_i$coords$member <- 1:obj_i$dims['member'] if (!remove_attrs_coords) attr(obj_i$coords$member, 'indices') <- TRUE # dataset - obj_i$coords$dataset <- 1:obj_i$dims['dataset'] - if (!remove_attrs_coords) attr(obj_i$coords$dataset, 'indices') <- TRUE + if (!is.null(names(obj_i$attrs$Datasets))) { + obj_i$coords$dataset <- names(obj_i$attrs$Datasets) + if (!remove_attrs_coords) attr(obj_i$coords$dataset, 'indices') <- FALSE + obj_i$attrs$Datasets <- names(obj_i$attrs$Datasets) + } else { + obj_i$coords$dataset <- 1:obj_i$dims['dataset'] + if (!remove_attrs_coords) attr(obj_i$coords$dataset, 'indices') <- TRUE + } # ftime obj_i$coords$ftime <- 1:obj_i$dims['ftime'] if (!remove_attrs_coords) attr(obj_i$coords$ftime, 'indices') <- TRUE @@ -217,6 +223,7 @@ as.s2dv_cube <- function(object, remove_attrs_coords = FALSE, coord_in_fileselector <- FileSelector[[dat]][which(i_coord == names(FileSelector[[dat]]))] if (length(coord_in_fileselector) == 1) { if (length(coord_in_fileselector[[i_coord]][[1]]) == dims[i_coord]) { + # TO DO: add var_dim parameter if (i_coord %in% c('var', 'vars')) { varName <- as.vector(coord_in_fileselector[[i_coord]][[1]]) } @@ -280,12 +287,6 @@ as.s2dv_cube <- function(object, remove_attrs_coords = FALSE, result$coords[[i_coord]] <- 1:dims[i_coord] if (!remove_attrs_coords) attr(result$coords[[i_coord]], 'indices') <- TRUE } - # if (any('variables' %in% names(attributes(result$coord[[i_coord]])))) { - # vars_attributes <- attributes(result$coord[[i_coord]])$variables[[1]] - # for (k in 1:length(vars_attributes)) { - # attr(result$coord[[i_coord]], names(vars_attributes)[k]) <- vars_attributes[[k]] - # } - # } } # attrs @@ -318,6 +319,12 @@ as.s2dv_cube <- function(object, remove_attrs_coords = FALSE, known_lat_names <- .KnownLatNames() lat_name_dat <- names(dims)[which(names(dims) %in% known_lat_names)] result$attrs$Datasets <- names(FileSelector) + # TO DO: add dat_dim parameter + if (any(names(dims) %in% c('dat', 'dataset'))) { + dat_dim <- names(dims)[which(names(dims) %in% c('dat', 'dataset'))] + result$coords[[dat_dim]] <- names(FileSelector) + if (!remove_attrs_coords) attr(result$coords[[dat_dim]], 'indices') <- FALSE + } for (i in 2:length(names(FileSelector))) { if (!is.null(lon_name_dat)) { if (any(result$coords[[lon_name_dat]] != as.vector(attributes(object)$Variables[[names(FileSelector)[i]]][[lon_name_dat]]))) { diff --git a/data/lonlat_prec.rda b/data/lonlat_prec.rda index 9104952dbacd441d3c7ac5b9cf4e921fd6b47f5f..db5f1f06b3f4be4c9336de8d7281d3d43f8cc59e 100644 Binary files a/data/lonlat_prec.rda and b/data/lonlat_prec.rda differ diff --git a/data/lonlat_temp.rda b/data/lonlat_temp.rda index f6fe7e7c126f4fa0d445c78228a46b2be58f0143..94db7af93b455d8899346cfd62977e051489bb4e 100644 Binary files a/data/lonlat_temp.rda and b/data/lonlat_temp.rda differ