def test_neighbor_average_waveform(toymodel): waveforms, subarray, telid, _, _, _ = toymodel neighbors = subarray.tel[telid].camera.geometry.neighbor_matrix_sparse average_wf = neighbor_average_waveform( waveforms, neighbors_indices=neighbors.indices, neighbors_indptr=neighbors.indptr, lwt=0, ) pixel = 0 _, nei_pixel = np.where(neighbors[pixel].A) expected_average = waveforms[nei_pixel].sum(0) / len(nei_pixel) assert_allclose(average_wf[pixel], expected_average, rtol=1e-3) lwt = 4 average_wf = neighbor_average_waveform( waveforms, neighbors_indices=neighbors.indices, neighbors_indptr=neighbors.indptr, lwt=lwt, ) pixel = 1 _, nei_pixel = np.where(neighbors[pixel].A) nei_pixel = np.concatenate([nei_pixel, [pixel] * lwt]) expected_average = waveforms[nei_pixel].sum(0) / len(nei_pixel) assert_allclose(average_wf[pixel], expected_average, rtol=1e-3)
def test_neighbor_average_waveform(camera_waveforms): waveforms, subarray = camera_waveforms nei = subarray.tel[1].camera.neighbor_matrix_where average_wf = neighbor_average_waveform(waveforms, nei, 0) assert_allclose(average_wf[0, 48], 28.690154, rtol=1e-3) average_wf = neighbor_average_waveform(waveforms, nei, 4) assert_allclose(average_wf[0, 48], 98.565743, rtol=1e-3)
def test_neighbor_average_waveform(camera_waveforms): waveforms, camera = camera_waveforms nei = camera.neighbor_matrix_where average_wf = neighbor_average_waveform(waveforms, nei, 0) assert_allclose(average_wf[0, 0, 48], 28.690154, rtol=1e-3) assert_allclose(average_wf[1, 0, 48], 2.221035, rtol=1e-3) average_wf = neighbor_average_waveform(waveforms, nei, 4) assert_allclose(average_wf[0, 0, 48], 98.565743, rtol=1e-3) assert_allclose(average_wf[1, 0, 48], 9.578896, rtol=1e-3)
def test_neighbor_average_waveform(toymodel): waveforms, subarray, telid, _, _, _ = toymodel nei = subarray.tel[telid].camera.geometry.neighbor_matrix_where average_wf = neighbor_average_waveform(waveforms, nei, 0) pixel = 0 nei_pixel = list((np.unique(nei[np.where(nei == pixel)[0]]))) nei_pixel.remove(pixel) expected_average = waveforms[nei_pixel].sum(0) / len(nei_pixel) assert_allclose(average_wf[pixel], expected_average, rtol=1e-3) pixel = 1 nei_pixel = list((np.unique(nei[np.where(nei == pixel)[0]]))) nei_pixel.extend([pixel] * 3) expected_average = waveforms[nei_pixel].sum(0) / len(nei_pixel) average_wf = neighbor_average_waveform(waveforms, nei, 4) assert_allclose(average_wf[pixel], expected_average, rtol=1e-3)
def obtain_peak_index_from_neighbours(self, waveforms): average_wfs = neighbor_average_waveform( waveforms, neighbors_indices=self.neighbours.indices, neighbors_indptr=self.neighbours.indptr, lwt=0, ) return average_wfs.argmax(axis=-1)