def test_1dsprectraldecomp(self): # test 1d dt = 1.0 / self.fs f = (self.f1, self.f2, self.f3) test = spectraldecomp(self.data, window_length=1.0, f=f, dt=dt) self.assertAlmostEquals(test[5, 0] / test[5, 1], self.a1 / self.a2) self.assertAlmostEquals(test[5, 0] / test[5, 2], self.a1 / self.a3)
def test_2dspectraldecomp(self): dt = 1.0 / self.fs f = (self.f1, self.f2, self.f3) data = np.zeros((int(self.data.size), 2)) data[:, 0] = self.data data[:, 1] = self.data test = spectraldecomp(data, window_length=1, f=f, dt=dt) self.assertAlmostEquals(test[5, 0, 0] / test[5, 0, 1], self.a1/self.a2) self.assertAlmostEquals(test[5, 0, 0] / test[5, 0, 2], self.a1/self.a3) self.assertAlmostEquals(test[5, 1, 0] / test[5, 1, 1], self.a1/self.a2) self.assertAlmostEquals(test[5, 1, 0] / test[5, 1, 2], self.a1/self.a3)
def test_1dsprectraldecomp( self ): # test 1d dt = 1.0 / self.fs f = (self.f1, self.f2, self.f3) test = spectraldecomp( self.data,window_length = 1.0, f=f, dt=dt ) self.assertAlmostEquals( test[5,0] / test[5,1], self.a1/self.a2) self.assertAlmostEquals( test[5,0] / test[5,2], self.a1/self.a3)
def test_2dspectraldecomp(self): dt = 1.0 / self.fs f = (self.f1, self.f2, self.f3) data = np.zeros((int(self.data.size), 2)) data[:, 0] = self.data data[:, 1] = self.data test = spectraldecomp(data, window_length=1, f=f, dt=dt) self.assertAlmostEquals(test[5, 0, 0] / test[5, 0, 1], self.a1 / self.a2) self.assertAlmostEquals(test[5, 0, 0] / test[5, 0, 2], self.a1 / self.a3) self.assertAlmostEquals(test[5, 1, 0] / test[5, 1, 1], self.a1 / self.a2) self.assertAlmostEquals(test[5, 1, 0] / test[5, 1, 2], self.a1 / self.a3)
#hhpf = -hhpf #hhpf[(N - 1) / 2] += 1 # Convolve both filters. #h = np.convolve(hlpf, hhpf) #Applying the filter h to the seismic cube c #cfilt = np.convolve(c, h) #plt.imshow(cfilt[100].T, cmap='Greys') from bruges.attribute import spectraldecomp sub_volume = c[100:200, 100:200, 950:] out = [] print(c.shape) freqs = np.arange(2, 10, 4) for freq in freqs: for i, section in enumerate(sub_volume): d = spectraldecomp(section, f=(freq, freq), window_length=0.064, dt=0.004) print('done processing inline: ', i) out.append(d) tiles = np.array(out) tiles = tiles[..., 0] np.save(f'Piedras{freq}Hz.npy', tiles) plt.imshow(d[..., 0].T, cmap='Reds', alpha=0.3) #plt.imshow(d[...,1].T, cmap='Greens', alpha=0.3) #plt.imshow(d[...,2].T, cmap='Blues', alpha=0.3)