Как мне прочитать ссылку на объект HDF5 в C ++ - PullRequest
0 голосов
/ 31 мая 2019

Я хотел бы прочитать файл HDF5, используя c ++, который имеет массив ссылок на объекты. Я могу получить правильные результаты в Python, но у меня были проблемы с C ++.

Я попробовал несколько примеров c из учебной документации, но похоже, что обёртки c ++ отсутствуют, и пробелы заполнить сложно.

H5File file = H5File("example.h5", H5F_ACC_RDONLY);  
DataSet dataset = file.openDataSet("units/electrode_group");  
H5T_class_t type_class = dataset.getTypeClass();  
cout << type_class << endl; // correctly obtains H5T_REFERENCE.    
// Need to read and apply the references next.

Следующий код на python делает все, что я хочу, но мне нужна версия c ++.

import h5py               
FileName = 'example.h5'    
myHDF5file = h5py.File(FileName)  
ElectrodeGroup = myHDF5file['units/electrode_group']  
for electrodeRef in ElectrodeGroup:  
    print(myHDF5file[electrodeRef].name) 



The python code correctly prints:  
/general/extracellular_ephys/shank1  
/general/extracellular_ephys/shank1  
/general/extracellular_ephys/shank2   
/general/extracellular_ephys/shank3
...