Объединение файлов NetCDF, когда время указано как смещение от базового времени

#python #netcdf #python-xarray

Вопрос:

Я хотел бы объединить несколько файлов NetCDF, используя измерение времени. Файлы идентичны, но время указывается с помощью «time_offset» из «базового времени», где «базовое время» отличается в каждом файле.

В частности, в моем случае у меня есть один файл на каждый день, «базовое время» — это начало этого дня, т. Е.:

     <class 'netCDF4._netCDF4.Variable'>
int32 base_time()
    string: 1-Jan-2019, 00:00:00 GMT
    long_name: Base time in Epoch
    units: seconds since 1970-1-1 0:00:00 0:00
    unlimited dimensions: 
    current shape = ()
    filling on, default _FillValue of -2147483647 used
 

и «time_offset» — это смещение от этого базового времени в секундах, т. е.:

 <class 'netCDF4._netCDF4.Variable'>
float64 time_offset(time)
    long_name: Time offset from base_time
    units: seconds since 2019-1-1 00:00:00 0:00
unlimited dimensions: time
current shape = (826,)
filling on, default _FillValue of 9.969209968386869e 36 used
 

Таким образом, единицы измерения «time_offset» каждый день разные, потому что «базовое время» разное.

Я попробовал следующее:

 test = xarray.open_mfdataset(all_files,decode_cf=True,concat_dim='time')
 

Но я получаю следующую ошибку:

 ValueError: Could not find any dimension coordinates to use to order the datasets for concatenation
 

Я новичок в xarray и не совсем уверен, как с этим справиться, любой совет был бы полезен 🙂