Source code for linefinder.analyze_data.ids

#!/usr/bin/env python
'''Tools for reading worldline data

@author: Zach Hafen
@contact: zachary.h.hafen@gmail.com
@status: Development
'''

import h5py
import os

import galaxy_dive.utils.utilities as utilities

########################################################################
########################################################################


[docs]class IDs( object ): '''Loads and analyzes data created by select.py ''' @utilities.store_parameters def __init__( self, data_dir, tag ): ''' Args: data_dir (str) : Data directory for the classified data tag (str) : Identifying tag for the data to load. ''' # Open the file ids_filepath = os.path.join( data_dir, 'ids_{}.hdf5'.format( tag ) ) with h5py.File( ids_filepath, 'r' ) as f: # Store the data self.data = {} for key in f.keys(): if key != 'parameters': self.data[key] = f[key][...] # Store the data attributes self.data_attrs = {} for key in f.attrs.keys(): self.data_attrs[key] = f.attrs[key] # Store the parameters self.parameters = {} param_grp = f['parameters'] for key in param_grp.attrs.keys(): self.parameters[key] = utilities.check_and_decode_bytes( param_grp.attrs[key] ) # Store the parameters self.snapshot_parameters = {} snap_param_grp = f['parameters/snapshot_parameters'] for key in snap_param_grp.attrs.keys(): self.snapshot_parameters[key] = utilities.check_and_decode_bytes( snap_param_grp.attrs[key] ) # Store the used data filters self.data_filters = {} try: filters_grp = f['parameters/data_filters'] for filters_subset in filters_grp.keys(): subgroup = filters_grp[filters_subset] self.data_filters[filters_subset] = {} for key in subgroup.attrs.keys(): self.data_filters[filters_subset][key] = \ subgroup.attrs[key] except KeyError: print( "Failed to load data_filters. Using older data?" )