h5meta (1659B)
1 #!/usr/bin/env python3 2 """ 3 Print metadata from H5 files. 4 Specially designed for Pocar Lab DAQ data files. 5 6 Created on June 22, 2023 7 8 @author: Ed van Bruggen (evanbruggen@umass.edu) 9 """ 10 11 import sys 12 import h5py 13 import pprint 14 import argparse 15 16 parser = argparse.ArgumentParser() 17 parser.add_argument('h5file', nargs='+') 18 parser.add_argument('-q', dest='quite_mode', action='store_true') 19 parser.add_argument('-v', dest='quite_mode', action='store_false') 20 parser.add_argument('-V', dest='volt_mode', action='store_true') 21 parser.set_defaults(quite_mode=False) 22 args = parser.parse_args() 23 24 extra_attrs = [ 'AcquisitionMode', 'LowerLevel', 'Offset', 'OffsetTime', 'Preamp', 'Quota', 25 'Range', 'SampleTime', 'Shaper', 'ShaperGain1', 'ShaperGain2', 'SlowControlUser', 26 # 'TemperatureMean', 'TemperatureStdDev', 'Xe(g)', 27 'TriggerSlope', 'TriggerSource'] 28 29 # Print all group's metadata 30 for f in args.h5file: 31 with h5py.File(f, 'r') as hdf: 32 if args.volt_mode: # print just the bias voltage 33 print(f, end=': ') 34 print(hdf['RunData'][next(iter(hdf['RunData'].keys()))].attrs['Bias(V)']) 35 continue 36 print(f"Run metadata: {dict(hdf['RunData'].attrs)}") 37 for groupname in list(hdf['RunData'].keys()): 38 metadata = dict(hdf['RunData'][groupname].attrs) 39 print(f"{groupname}:") 40 print(f"size: {hdf['RunData'][groupname][:].shape[1]}") 41 if args.quite_mode: # if in quite mode don't print extra attributes 42 for attr in extra_attrs: 43 metadata.pop(attr) 44 pprint.pprint(metadata) # ['Bias(V)']