Преобразование hdf5 в netcdf и переименование размеров - PullRequest
0 голосов
/ 09 июля 2020

У меня есть набор файлов 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) ;

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

1 Ответ

0 голосов
/ 10 июля 2020

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

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

...