I HDF5 Daten erhalten Dateien mit dem folgenden DatentypWie Array-Größe von HDF5 Datentyp in C/C++
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";
}
Wie Sie sehen können zu lesen, in meinem H5T_COMPOUND Ich habe 2 H5T_ARRAY Objekte. Die erste in diesem Beispiel sagt, es ist Größe 5 und die zweite ist Größe 1000. Gibt es eine Möglichkeit, wenn ich das DataType-Objekt habe, um die Dimensionen dieser Arrays zu bestimmen? Ich würde lieber die C++ - Bibliothek verwenden, aber C-Code ist auch in Ordnung.
// Open the file and datatype
std::string path = "/data/testFile.be01";
H5::H5File file(path, H5F_ACC_RDONLY);
H5::DataType datatype = file.openDataType("DRx3");