Skip to content

Start(): the missing dimension cannot be detected when retrieve = FALSE

In Start(), all the inner dimension should be specified. When retrieve = TRUE, if certain inner dimension (e.g., time) is missing, it returns error like:

Error in file_data_reader(file_to_open, NULL, work_piece"file_selectors", : Unexpected extra dimensions (of length > 1) in the file.
Expected: ensemble, latitude, longitude
Found: longitude, latitude, ensemble, time

However, if retrieve = FALSE, no error is returned. The message is like below:

* Detected dimension sizes:
*         dat:  1
*         var:  1
*       sdate:  1
*    ensemble: 51
*    latitude: 40
*   longitude: 49
* Total size of involved data:
*   1 x 1 x 1 x 51 x 40 x 49 x 8 bytes = 780.9 Kb
* Successfully discovered data dimensions.

The 'time' dimension is directly ignored, and the estimated dimension size is therefore wrong.

The testing script:

library(startR)
  repos <- "/esarchive/exp/ecmwf/system5_m1/monthly_mean/tas_f6h/$var$_$sdate$.nc"
  var <- 'tas'
  sdate <- '20170101'

  data <- Start(dat = repos,
                var = var,
                sdate = '20170101',
                ensemble = 'all', #indices(c(1:5)),
                # time = 'all',  #not assign this dim on purpose
                latitude = indices(1:40),
                longitude = indices(1:49),
                return_vars = list(longitude = NULL, latitude = NULL),
                retrieve = TRUE
               )
  # no error returns when retrieve = FALSE