dotfiles

config files for my linux setup
git clone git://edryd.org/dotfiles
Log | Files | Refs | README

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)']