【发布时间】:2016-11-21 17:23:24
【问题描述】:
我有 HDF5 数据文件要使用以下 DataType 读取
HDF5 "testFile.be01" {
GROUP "/" {
DATATYPE "DRx3" H5T_COMPOUND {
H5T_ARRAY { [5] H5T_STD_U32LE } "guid";
H5T_STD_I32LE "version";
H5T_IEEE_F64LE "d_tot";
H5T_STD_U32LE "dwl_start_sec";
..... // More single item elements left out
H5T_STD_U32LE "clock_dec_factor";
H5T_STD_U32LE "num_samps_per_swp";
H5T_STD_U32LE "sweep_index";
H5T_STD_U32LE "sequence_dummy";
H5T_ARRAY { [1000] H5T_COMPOUND {
H5T_IEEE_F32LE "f_i";
H5T_IEEE_F32LE "f_q";
} } "wb_data";
}
如您所见,在我的 H5T_COMPOUND 中有 2 个 H5T_ARRAY 对象。此示例中的第一个表示它的大小为 5,第二个表示大小为 1000。如果我有 DataType 对象来告诉这些数组的维度,有没有办法?我更喜欢使用 C++ 库,但 C 代码也可以。
// Open the file and datatype
std::string path = "/data/testFile.be01";
H5::H5File file(path, H5F_ACC_RDONLY);
H5::DataType datatype = file.openDataType("DRx3");
【问题讨论】: