56 def __init__(self, filename: str, verbosity: int = 0, batch_mode: bool =
False) ->
None:
58 Loads a given HDF5 file.
61 filename (str): HDF5 file to open.
62 verbosity (int): Verbose level. 0: Only errors. 1: Warnings. 2: All.
66 super().
__init__(filename, verbosity, batch_mode)
95 Read from the given data fragment path.
97 Returns a np.ndarray of the first TC that was read and appends all TCs in the fragment to :self.tc_data:.
101 print(f
"INFO: Reading from the path\n{fragment_path}")
103 fragment = self.
_h5_file.get_frag(fragment_path)
104 fragment_data_size = fragment.get_data_size()
105 trigger_number = fragment.get_trigger_number()
107 if fragment_data_size == 0:
113 +
"WARNING: Empty fragment."
117 return np.array([], dtype=self.
tc_dt)
121 while byte_idx < fragment_data_size:
123 print(f
"INFO: Fragment Index: {tc_idx}.")
125 print(f
"INFO: Byte Index / Frag Size: {byte_idx} / {fragment_data_size}")
128 tc_datum = trgdataformats.TriggerCandidate(fragment.get_data(byte_idx))
129 np_tc_datum = np.array([(
130 tc_datum.data.algorithm,
133 tc_datum.data.time_candidate,
134 tc_datum.data.time_end,
135 tc_datum.data.time_start,
137 tc_datum.data.version,
143 byte_idx += tc_datum.sizeof()
145 print(f
"INFO: Upcoming byte index: {byte_idx}.")
148 np_ta_data = np.zeros(np_tc_datum[
'num_tas'], dtype=self.
ta_dt)
149 for ta_idx, ta
in enumerate(tc_datum):
150 np_ta_data[ta_idx] = np.array([(
165 self.
ta_data.append(np_ta_data)
168 print(
"INFO: Finished reading.")