def test_find_peaks(): scalar = Scalar('scalar', range(9)) time = UTS(0, .1, 12) v = NDVar(np.zeros((9, 12)), (scalar, time)) wsize = [0, 0, 1, 2, 3, 2, 1, 0, 0] for i, s in enumerate(wsize): if s: v.x[i, 5 - s: 5 + s] += np.hamming(2 * s) peaks = find_peaks(v) x, y = np.where(peaks.x) assert_array_equal(x, [4]) assert_array_equal(y, [5])
def find_peak_times(y, y_mask): y = y.smooth('time', 0.15) peak_t = find_peaks(y).nonzero()[0] peak_v = [y[t] for t in peak_t] baseline_v = y[0] return [t for i, t in enumerate(peak_t) if peak_v[i] > baseline_v and y_mask.sub(time=t)]