def extract(self, data, s_aligned): s = int(s_aligned) # Get block of given size around peak sample. waveform = _get_padded(data, s - self._extract_before - 1, s + self._extract_after + 2) return waveform
def _extract_wave(traces, start, mask, wave_len=None, mask_threshold=.5): n_samples, n_channels = traces.shape assert mask.shape == (n_channels,) channels = np.nonzero(mask > mask_threshold)[0] # There should be at least one non-masked channel. if not len(channels): return # pragma: no cover i, j = start, start + wave_len a, b = max(0, i), min(j, n_samples - 1) data = traces[a:b, channels] data = _get_padded(data, i - a, i - a + wave_len) assert data.shape == (wave_len, len(channels)) return data, channels