def test_read_container(temp_h5_file): r0tel1 = R0CameraContainer() r0tel2 = R0CameraContainer() mc = MCEventContainer() reader = HDF5TableReader(str(temp_h5_file)) # get the generators for each table mctab = reader.read('/R0/MC', mc) r0tab1 = reader.read('/R0/tel_001', r0tel1) r0tab2 = reader.read('/R0/tel_002', r0tel2) # read all 3 tables in sync for ii in range(3): m = next(mctab) r0_1 = next(r0tab1) r0_2 = next(r0tab2) print("MC:", m) print("t0:", r0_1.image) print("t1:", r0_2.image) print("---------------------------") assert 'test_attribute' in r0_1.meta assert r0_1.meta['date'] == "2020-10-10" reader.close()
def test_read_container(temp_h5_file): r0tel1 = R0CameraContainer() r0tel2 = R0CameraContainer() mc = MCEventContainer() with HDF5TableReader(temp_h5_file) as reader: # get the generators for each table mctab = reader.read("/R0/MC", mc) r0tab1 = reader.read("/R0/tel_001", r0tel1) r0tab2 = reader.read("/R0/tel_002", r0tel2) # read all 3 tables in sync for ii in range(3): m = next(mctab) r0_1 = next(r0tab1) r0_2 = next(r0tab2) print("MC:", m) print("t0:", r0_1.waveform) print("t1:", r0_2.waveform) print("---------------------------") assert "test_attribute" in r0_1.meta assert r0_1.meta["date"] == "2020-10-10"
def test_write_container(temp_h5_file): r0tel = R0CameraContainer() mc = MCEventContainer() mc.reset() r0tel.waveform = np.random.uniform(size=(50, 10)) r0tel.image = np.random.uniform(size=50) r0tel.num_samples = 10 r0tel.meta['test_attribute'] = 3.14159 r0tel.meta['date'] = "2020-10-10" writer = HDF5TableWriter(str(temp_h5_file), group_name='R0', filters=tables.Filters(complevel=7)) writer.exclude("tel_002", ".*samples") # test exclusion of columns for ii in range(100): r0tel.waveform[:] = np.random.uniform(size=(50, 10)) r0tel.image[:] = np.random.uniform(size=50) r0tel.num_samples = 10 mc.energy = 10**np.random.uniform(1, 2) * u.TeV mc.core_x = np.random.uniform(-1, 1) * u.m mc.core_y = np.random.uniform(-1, 1) * u.m writer.write("tel_001", r0tel) writer.write("tel_002", r0tel) # write a second table too writer.write("MC", mc) writer.close()
def test_read_container(temp_h5_file): r0tel1 = R0CameraContainer() r0tel2 = R0CameraContainer() mc = MCEventContainer() reader = SimpleHDF5TableReader(str(temp_h5_file)) # get the generators for each table mctab = reader.read('/R0/MC', mc) r0tab1 = reader.read('/R0/tel_001', r0tel1) r0tab2 = reader.read('/R0/tel_002', r0tel2) # read all 3 tables in sync for ii in range(3): print("MC:", next(mctab)) print("t0:", next(r0tab1).adc_sums) print("t1:", next(r0tab2).adc_sums) print("---------------------------")