59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
import h5py
|
|
|
|
|
|
def loadDataset(filename):
|
|
hid = h5py.File(filename, "r")
|
|
snap = loadSnap(hid)
|
|
data = loadData(hid)
|
|
act = loadActuator(hid)
|
|
hid.close()
|
|
return data,act,snap
|
|
|
|
def loadSnap(hid):
|
|
snap={}
|
|
if not 'experiment' in hid.keys():
|
|
return None
|
|
for key1 in hid['experiment'].keys():
|
|
if isinstance(hid['experiment'][key1],h5py.Group):
|
|
for key2 in hid['experiment'][key1].keys():
|
|
val = hid['experiment'][key1][key2][()]
|
|
snap[key1+':'+key2]=val
|
|
else:
|
|
snap[key1]=hid['experiment'][key1][()]
|
|
return snap
|
|
|
|
def loadData(hid,scanrun=1):
|
|
run='scan_%d' % scanrun
|
|
data = {}
|
|
for key1 in hid[run]['data'].keys():
|
|
if isinstance(hid[run]['data'][key1],h5py.Group):
|
|
for key2 in hid[run]['data'][key1].keys():
|
|
val = hid[run]['data'][key1][key2][()]
|
|
data[key1+':'+key2]=val
|
|
else:
|
|
data[key1]=hid[run]['data'][key1][()]
|
|
return data
|
|
|
|
def loadActuator(hid,scanrun=1):
|
|
run='scan_%d' % scanrun
|
|
data = {}
|
|
if 'actuators' in hid[run]['method'].keys():
|
|
for key1 in hid[run]['method']['actuators'].keys():
|
|
if isinstance(hid[run]['method']['actuators'][key1],h5py.Group):
|
|
for key2 in hid[run]['method']['actuators'][key1].keys():
|
|
val = hid[run]['method']['actuators'][key1][key2][()]
|
|
data[key1+':'+key2]={'val':val}
|
|
else:
|
|
data[key1]=hid[run]['method']['actuators'][key1][()]
|
|
return data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|