Пример #1
0
    def test_gaussian_filter(self):
        from am_signal import gaussian_filter
        from obspy.signal.freqattributes import cfrequency
        import matplotlib.pyplot as plt

        dt = 0.01
        width = 1.0

        gauss1, t1 = gaussian_filter(width, 1.0, dt)
        gauss5, t5 = gaussian_filter(width, 5.0, dt)

        npts1 = len(gauss1)
        npts5 = len(gauss5)
        self.assertEquals(npts1, npts5)
        self.assertAlmostEquals(t1, t5)

        self.assertAlmostEquals(np.argmax(gauss1), t1 / dt)
        self.assertAlmostEquals(np.argmax(gauss5), t5 / dt)

        data_trace5 = self.data_trace.copy()
        data_trace5.data = np.real(
            np.convolve(data_trace5.data, gauss5, 'same'))

        cf5 = cfrequency(data_trace5.data, 1 / dt, 0, 0)
        self.assertAlmostEquals(cf5, 5.0, 0)
Пример #2
0
    def test_bp_filterbank(self):
        from obspy.signal.freqattributes import cfrequency

        st = Stream()
        fst = Stream()
        data_trace = self.data_trace.copy()
        dt = data_trace.stats.delta
        data_trace.data = np.zeros(400)
        data_trace.data[200] = 1 * 2 * np.pi
        freqmin = 1.0
        freqmax = 4.0
        freq_step = (freqmax - freqmin) / 2.0
        n_bank = 5
        for i in xrange(n_bank):
            dtrace = data_trace.copy()
            fr_min = freqmin + i * freq_step
            fr_max = freqmax + i * freq_step
            dtrace.filter('bandpass',
                          freqmin=fr_min,
                          freqmax=fr_max,
                          zerophase=True)
            st.append(dtrace)
            ftrace = self.data_trace.copy()
            ftrace.data = np.real(np.convolve(ftrace.data, dtrace.data,
                                              'same'))
            cf = cfrequency(ftrace.data, 1 / dt, 0, 0)
            self.assertTrue(cf > fr_min and cf < fr_max)
Пример #3
0
 def test_cfrequency(self):
     """
     """
     cfreq = freqattributes.cfrequency(self.data_win_bc, self.fs,
                                       self.smoothie, self.fk)
     rms = np.sqrt(np.sum((cfreq[0] - self.res[:, 18]) ** 2) /
                   np.sum(self.res[:, 18] ** 2))
     self.assertEqual(rms < 1.0e-5, True)
     rms = np.sqrt(np.sum((cfreq[1] - self.res[:, 19]) ** 2) /
                   np.sum(self.res[:, 19] ** 2))
     self.assertEqual(rms < 1.0e-5, True)
Пример #4
0
 def test_cfrequency(self):
     """
     """
     cfreq = freqattributes.cfrequency(self.data_win_bc, self.fs,
                                       self.smoothie, self.fk)
     rms = np.sqrt(
         np.sum(
             (cfreq[0] - self.res[:, 18])**2) / np.sum(self.res[:, 18]**2))
     self.assertEqual(rms < 1.0e-5, True)
     rms = np.sqrt(
         np.sum(
             (cfreq[1] - self.res[:, 19])**2) / np.sum(self.res[:, 19]**2))
     self.assertEqual(rms < 1.0e-5, True)
Пример #5
0
    def test_bp_filterbank(self):
        from obspy.signal.freqattributes import cfrequency

        st=Stream()
        fst=Stream()
        data_trace=self.data_trace.copy()
        dt=data_trace.stats.delta
        data_trace.data=np.zeros(400)
        data_trace.data[200]=1*2*np.pi
        freqmin=1.0
        freqmax=4.0
        freq_step=(freqmax-freqmin)/2.0
        n_bank=5
        for i in xrange(n_bank):
            dtrace=data_trace.copy()
            fr_min=freqmin+i*freq_step
            fr_max=freqmax+i*freq_step
            dtrace.filter('bandpass',freqmin=fr_min, freqmax=fr_max, zerophase=True)
            st.append(dtrace)
            ftrace=self.data_trace.copy()
            ftrace.data=np.real(np.convolve(ftrace.data,dtrace.data,'same'))
            cf=cfrequency(ftrace.data,1/dt,0,0)
            self.assertTrue(cf > fr_min and cf < fr_max)
Пример #6
0
    def test_gaussian_filter(self):
        from am_signal import gaussian_filter
        from obspy.signal.freqattributes import cfrequency
        import matplotlib.pyplot as plt

        dt=0.01
        width=1.0

        gauss1, t1=gaussian_filter(width, 1.0, dt)
        gauss5, t5=gaussian_filter(width, 5.0, dt)

        npts1=len(gauss1)
        npts5=len(gauss5)
        self.assertEquals(npts1,npts5)
        self.assertAlmostEquals(t1,t5)

        self.assertAlmostEquals(np.argmax(gauss1),t1/dt)
        self.assertAlmostEquals(np.argmax(gauss5),t5/dt)

        data_trace5=self.data_trace.copy()
        data_trace5.data=np.real(np.convolve(data_trace5.data,gauss5,'same'))

        cf5=cfrequency(data_trace5.data,1/dt,0,0)
        self.assertAlmostEquals(cf5,5.0,0)
Пример #7
0
 def test_cfrequency_no_win(self):
     cfreq = freqattributes.cfrequency(self.data_win_bc[0], self.fs,
                                       self.smoothie, self.fk)
     rms = (cfreq - self.res[0, 18]) / self.res[0, 18]
     self.assertTrue(rms < 1.0e-5)
Пример #8
0
 def test_cfrequency_no_win(self):
     cfreq = freqattributes.cfrequency(self.data_win_bc[0], self.fs,
                                       self.smoothie, self.fk)
     rms = (cfreq - self.res[0, 18]) / self.res[0, 18]
     self.assertTrue(rms < 1.0e-5)