Преобразование hdf5 в netcdf и переименование размеров

У меня есть набор файлов HDF5 со следующим заголовком:

netcdf control-A-2017-05-12-090000-g1 {
dimensions:
        phony_dim_0 = 16 ;
        phony_dim_1 = 16 ;
        phony_dim_2 = 200 ;
        phony_dim_3 = 2 ;
        phony_dim_4 = 1 ;
        phony_dim_5 = 4 ;
variables:
        ...

Поскольку это HDF5, размеры создаются как phony_dim_x. В этом случае phony_dim_0 и phony_dim_1 - это координаты y и x соответственно. Я хотел бы соответственно переименовать размеры. Поскольку переименование размеров в HDF5 невозможно (поскольку они технически не существуют), мне нужно сначала преобразовать в netcdf. для этого я использую ncks in.h5 out.nc.

Однако информация заголовка преобразованного файла:

netcdf control-A-2017-05-12-090500-g1 {
dimensions:
        phony_dim_0 = 16 ;
        phony_dim_1 = 200 ;
        phony_dim_2 = 2 ;
        phony_dim_3 = 1 ;
        phony_dim_4 = 4 ;
variables:
        ...

Вот важная часть: два phony_dim_[0,1] измерения были объединены в одно измерение phony_dim_0. Я предполагаю, что это потому, что они имеют одинаковое значение, и поэтому преобразование netcdf предполагает, что они одинаковы.

Переменная, которая была указана в файле hdf5 как ACCPA(phony_dim_0, phony_dim_1) ;, теперь равна ACCPA(phony_dim_0, phony_dim_0) ; с двумя идентичными размерами.

Таким образом, я не могу переименовывать размеры по отдельности. Если я сделаю ncrename -d phony_dim_0,y out.nc, я получу ACCPA(y, y) ;

Может ли кто-нибудь указать мне правильное направление, чтобы обойти это?


person lsterzinger    schedule 09.07.2020    source источник


Ответы (1)


Проблема оказалась в ncks. Преобразование файла с ncks, что приводит к повторяющимся измерениям (например, ACCPA(phony_dim_0, phony_dim_0) ;)

Используя вместо этого nccopy, преобразованный файл netCDF не давал повторяющихся измерений (ACCPA(phony_dim_0, phony_dim_1) ;)

person lsterzinger    schedule 10.07.2020