Частично проблема может заключаться в использовании вами ncdump
.
. Я могу создать простой файл и установить метку dims
для набора данных:
In [420]: import h5py
In [421]: f = h5py.File('testdim.h5','w')
In [422]: ds = f.create_dataset('grp1/varname', data = np.arange(10))
In [423]: ds
Out[423]: <HDF5 dataset "varname": shape (10,), type "<i8">
Посмотрите наатрибут dims
:
In [424]: ds.dims
Out[424]: <Dimensions of HDF5 object at 140382697336904>
In [426]: ds.dims[0]
Out[426]: <"" dimension 0 of HDF5 dataset at 140382697336904>
In [427]: ds.dims[0].label
Out[427]: ''
In [428]: ds.dims[0].label = 'm'
In [436]: dd=ds.dims[0]
In [437]: dd?
Type: DimensionProxy
String form: <"m" dimension 0 of HDF5 dataset at 140382697336904>
Length: 0
File: ~/.local/lib/python3.6/site-packages/h5py/_hl/dims.py
Docstring: Represents an HDF5 "dimension".
In [439]: dd.values()
Out[439]: []
In [440]: dd.label
Out[440]: 'm'
Группа не имеет dims
:
In [442]: g = f['grp1']
In [443]: g
Out[443]: <HDF5 group "/grp1" (1 members)>
In [444]: g.dims
AttributeError: 'Group' object has no attribute 'dims'
In [446]: f.flush()
С h5dump
:
1902:~/mypy$ h5dump testdim.h5
HDF5 "testdim.h5" {
GROUP "/" {
GROUP "grp1" {
DATASET "varname" {
DATATYPE H5T_STD_I64LE
DATASPACE SIMPLE { ( 10 ) / ( 10 ) }
DATA {
(0): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
}
ATTRIBUTE "DIMENSION_LABELS" {
DATATYPE H5T_STRING {
STRSIZE H5T_VARIABLE;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASCII;
CTYPE H5T_C_S1;
}
DATASPACE SIMPLE { ( 1 ) / ( 1 ) }
DATA {
(0): "m"
}
}
}
}
}
}
С ncdump
, который предназначен для показа netcdf
файлов:
1902:~/mypy$ ncdump -h testdim.h5
netcdf testdim {
group: grp1 {
dimensions:
phony_dim_0 = 10 ;
variables:
int64 varname(phony_dim_0) ;
string varname:DIMENSION_LABELS = "m" ;
} // group grp1
}
Насколько я понимаю, формат h5df
не имеет групповых измерений;ncdump
создает для этого фиктивный атрибут.
Чтобы повторить ответ на предыдущий вопрос, документация по размерам HDF5:
http://docs.h5py.org/en/latest/high/dims.html
https://www.unidata.ucar.edu/software/netcdf/docs/interoperability_hdf5.html
Для файла HDF5
Если шкалы измерений не используются, то netCDF-4 все еще может редактировать файл и изобретать анонимные размеры для каждой переменной формы.
NETCDF имеет общие размеры, HDF5 имеет размерные шкалы.Они не совсем одинаковые.
http://www.stcorp.nl/beat/documentation/harp/conventions/hdf5.html
В модели данных HDF5 отсутствует понятие общих измерений (в отличие от netCDF).Форма набора данных HDF5 указывается в виде списка длин измерений.Однако библиотека netCDF-4 использует HDF5 в качестве внутреннего хранилища.Он представляет общие размеры с использованием шкал размеров HDF5.