0%Error in ArrayToNetCDF
hi @aho
I have an issue that for sure it is related to my bad configuration. The script is
library(boot)
library(s2dv)
library(abind)
library(s2dverification)
library(startR)
library(ncdf4)
library(multiApply)
library(SpecsVerification)
lonmin <- -270
lonmax <- 50
latmin <- -60
latmax <- 50
sdates.test <- paste0(c(2001:2002), '0501')
# exp
repos_a33d <- paste0('/esarchive/scratch/eexarcho/Eleftheria/TRIATLAS/Analysis_a33d_a33e_a33f/',
'Data/a33d/$var$/',
'$var$_Omon_EC-Earth3-CC_historical_s$sdate$-$member$_r360x180_$chunk$.nc')
a33d <- Start(dat = repos_a33d,
var = 'chlos',
member = 'all',
sdate = sdates.test,
chunk = 'all',
# time = 'all',
time = indices(1:12), #first time step per day
chunk_depends = 'sdate',
time_across = 'chunk',
merge_across_dims = TRUE,
lat = values(list(latmin, latmax)),
lat_reorder = Sort(), ##1
lon = values(list(lonmin, lonmax)),
lon_reorder = CircularSort(-180, 180), ##2
# transform = CDORemapper,
# transform_extra_cells = 2,
# transform_params = list(grid = 'r360x180',
# method = 'conservative',
# crop = c(lonmin, lonmax, latmin, latmax)),
# transform_vars = c('lat', 'lon'),
synonims = list(lat = c('lat', 'latitude'),
lon = c('lon', 'longitude')),
return_vars = list(lon = 'dat', ##3
lat = 'dat', ##3
time = 'sdate'),
retrieve = T)
lons <- as.vector(attr(a33d, 'Variables')$dat1$lon)
lats <- as.vector(attr(a33d, 'Variables')$dat1$lat)
dates <- attr(a33d, 'Variables')$common$time
dates_file <- sort(unique(gsub('-', '', sapply(as.character(dates), substr, 1, 7))))
## obs
repos_obs <- '/esarchive/obs/esa/occci-v5.0/monthly_mean/$var$/$var$_$date$.nc'
obs.data <- Start(dat = repos_obs,
var = 'chlos',
date = dates_file,
# time = 'all',
# time_across = 'date',
# merge_across_dims = TRUE,
# merge_across_dims_narm = TRUE,
## -----------------------------------------------------------------------
time = values(dates), #dim: [sdate = 2, time = 12]
#because time is assigned by 'values', set the tolerance to avoid too distinct match
time_var = 'time',
# time_tolerance = as.difftime(372, units = 'hours'),
#time values are across all the files
time_across = 'date',
#combine time and file_date dims
merge_across_dims = TRUE,
#exclude the additional NAs generated by merge_across_dims
merge_across_dims_narm = TRUE,
#split time dim, because it is two-dimensional
split_multiselected_dims = TRUE,
## -----------------------------------------------------------------------
lon_reorder = CircularSort(-180, 180),
lat = values(lats),
lon = values(lons),
#---------transform to get identical lat and lon------------ ##4
transform = CDORemapper,
transform_extra_cells = 2,
transform_params = list(grid = 't170grid',
method = 'conservative',
crop = c(lonmin, lonmax, latmin, latmax)),
transform_vars = c('lat', 'lon'),
#-----------------------------------------------------------
synonims = list(lat = c('lat', 'latitude'),
lon = c('lon', 'longitude')),
return_vars = list(lat = NULL, ##3
lon = NULL, ##3
time = 'date'),
retrieve = TRUE)
the error is
Progress: 0%Error in ArrayToNetCDF(setNames(list(data_array, lons, lats), c("var", :
The dimension 'lon' is defined or used more than once in the provided data but the dimension specifications do not match.
Do you know why? Thank you, Eleftheria