def test_xcorr_obspy(self): N = 1001 data1 = np.sin(np.arange(N) / 100.) data2 = np.e ** (-(np.arange(N) - 500) ** 2 / 100.) - np.e ** (-(np.arange(N) - 50) ** 2 / 100.) + 5 * np.e ** (-(np.arange(N) - 950) ** 2 / 100.) data1[:] = data1[:] - np.mean(data1) data2[:] = data2[:] - np.mean(data2) cor1 = correlate(data1, data2, 'same') cor2 = xcorr_obspy(data1, data2, N // 2) #cor3 = xcorr_obspy(data1, data1, N) cor1 *= max(cor2) / max(cor1)
def test_xcorr_obspy(self): N = 1001 data1 = np.sin(np.arange(N) / 100.) data2 = np.e**(-(np.arange(N) - 500)**2 / 100.) - np.e**( -(np.arange(N) - 50)**2 / 100.) + 5 * np.e**(-(np.arange(N) - 950)**2 / 100.) data1[:] = data1[:] - np.mean(data1) data2[:] = data2[:] - np.mean(data2) cor1 = correlate(data1, data2, 'same') cor2 = xcorr_obspy(data1, data2, N // 2) #cor3 = xcorr_obspy(data1, data1, N) cor1 *= max(cor2) / max(cor1)
def test_xcorr_all_again(self): seed(42) data1 = random(1200) * np.sin(np.arange(1200)) * np.arange(1200) - 0.5 data2 = random(1000) * np.sin(np.arange(1000) * 0.4) * 500 - 0.5 data1 -= np.mean(data1[100:1100]) data2 -= np.mean(data2) data2_pad = np.hstack((np.zeros(100), data2, np.zeros(100))) cor1a = correlate(data1, data2, 'valid') cor1a2 = xcorr_obspy(data1, data2_pad, 100) cor1b = xcorrt(data1, data2, 100) cor1c = xcorrf(data1, data2, 100) cor1a *= max(cor1b) / max(cor1a) cor1a2 *= max(cor1b) / max(cor1a2) cor3 = xcorrf(data2, data1, 100)[::-1] #@UnusedVariable cor4 = xcorrt(data1, data2, 100, demean=False, normalize=False) cor5 = xcorrf(data1, data2, 100, demean=False, normalize=False) val = max (cor4) cor4 /= val cor5 /= val cor6 = xcorrt(data1, data2, 100, shift_zero=100) cor7 = xcorrf(data1, data2, 100, shift_zero=100) cor8 = xcorrt(data1, data2, 500, window=200) cor9 = xcorrf(data1, data2, 500, window=200) # from pylab import plot, show, subplot, legend # subplot(411) # plot(data1) # plot(data2) # subplot(412) # plot(cor1a, label='convolve') # plot(cor1b, label='xcorrt') # plot(cor1c, label='xcorrf') # plot(cor1a2, label='xcorr_obspy') # plot(cor6, label='xcorrt shift') # plot(cor7, label='xcorrf shift') # legend() # subplot(413) # plot(cor4, label='xcorrt all not demeaned not normalized') # plot(cor5, label='xcorrf') # legend() # subplot(414) # plot(cor8, label='xcorrt window') # plot(cor9, label='xcorrf window') # legend() # show() np.testing.assert_array_almost_equal(cor1a, cor1b) np.testing.assert_array_almost_equal(cor1a, cor1a2) np.testing.assert_array_almost_equal(cor1b, cor1c) np.testing.assert_array_almost_equal(cor1c[20:30], cor7[120:130]) np.testing.assert_array_almost_equal(cor4, cor5) np.testing.assert_array_almost_equal(cor6, cor7) np.testing.assert_array_almost_equal(cor8, cor9)
def test_xcorr_all_again(self): seed(42) data1 = random(1200) * np.sin(np.arange(1200)) * np.arange(1200) - 0.5 data2 = random(1000) * np.sin(np.arange(1000) * 0.4) * 500 - 0.5 data1 -= np.mean(data1[100:1100]) data2 -= np.mean(data2) data2_pad = np.hstack((np.zeros(100), data2, np.zeros(100))) cor1a = correlate(data1, data2, 'valid') cor1a2 = xcorr_obspy(data1, data2_pad, 100) cor1b = xcorrt(data1, data2, 100) cor1c = xcorrf(data1, data2, 100) cor1a *= max(cor1b) / max(cor1a) cor1a2 *= max(cor1b) / max(cor1a2) cor3 = xcorrf(data2, data1, 100)[::-1] #@UnusedVariable cor4 = xcorrt(data1, data2, 100, demean=False, normalize=False) cor5 = xcorrf(data1, data2, 100, demean=False, normalize=False) val = max(cor4) cor4 /= val cor5 /= val cor6 = xcorrt(data1, data2, 100, shift_zero=100) cor7 = xcorrf(data1, data2, 100, shift_zero=100) cor8 = xcorrt(data1, data2, 500, window=200) cor9 = xcorrf(data1, data2, 500, window=200) # from pylab import plot, show, subplot, legend # subplot(411) # plot(data1) # plot(data2) # subplot(412) # plot(cor1a, label='convolve') # plot(cor1b, label='xcorrt') # plot(cor1c, label='xcorrf') # plot(cor1a2, label='xcorr_obspy') # plot(cor6, label='xcorrt shift') # plot(cor7, label='xcorrf shift') # legend() # subplot(413) # plot(cor4, label='xcorrt all not demeaned not normalized') # plot(cor5, label='xcorrf') # legend() # subplot(414) # plot(cor8, label='xcorrt window') # plot(cor9, label='xcorrf window') # legend() # show() np.testing.assert_array_almost_equal(cor1a, cor1b) np.testing.assert_array_almost_equal(cor1a, cor1a2) np.testing.assert_array_almost_equal(cor1b, cor1c) np.testing.assert_array_almost_equal(cor1c[20:30], cor7[120:130]) np.testing.assert_array_almost_equal(cor4, cor5) np.testing.assert_array_almost_equal(cor6, cor7) np.testing.assert_array_almost_equal(cor8, cor9)