def test_polarization(self): self.mat = np.array([[1,0,0],[0,-1,1],[1,1,1]]) l1, l2, l3 = np.sqrt(2), 1, -np.sqrt(2) expRect = 1 - (l2+l3)/(2*l1) expPlan = 1 - (2*l3)/(l1+l2) rect, plan, lambda_max = polarization_analysis(self.mat,plot=False) self.assertAlmostEquals(lambda_max,l1,places=6) self.assertAlmostEquals(rect,expRect,places=6) self.assertAlmostEquals(plan,expPlan,places=6) file = "/home/nadege/waveloc/data/Piton/2011-02-02/2011-02-02T00:00:00.YA.UV15.HHZ.filt.mseed" cmin = utcdatetime.UTCDateTime("2011-02-02T00:58:47.720000Z")-15 cmax = utcdatetime.UTCDateTime("2011-02-02T00:58:47.720000Z")+135 ponset = 1400 st_z = read(file,starttime=cmin,endtime=cmax) tr_z = st_z[0].data[ponset-10:ponset+30] file_n = "%s/HHN/*%s*HHN*.filt.*"%(os.path.dirname(file),st_z[0].stats.station) file_e = "%s/HHE/*%s*HHE*.filt.*"%(os.path.dirname(file),st_z[0].stats.station) st_n = read(file_n,starttime=cmin,endtime=cmax) st_e = read(file_e,starttime=cmin,endtime=cmax) tr_n = st_n[0].data[ponset-10:ponset+30] tr_e = st_e[0].data[ponset-10:ponset+30] x=np.array([tr_z,tr_n,tr_e]) print tr_e.shape mat = np.cov(x) rect, plan, lambda_max = polarization_analysis(mat,plot=True) from obspy.signal.polarization import eigval leigenv1, leigenv2, leigenv3, rect, plan, dleigenv, drect, dplan = eigval(tr_e,tr_n,tr_z,[1,1,1,1,1]) print lambda_max print leigenv1, leigenv2, leigenv3
def test_polarization(self): """ """ pol = polarization.eigval(self.data_win_e, self.data_win_n, self.data_win_z, self.fk, self.norm) rms = np.sqrt(np.sum((pol[0] - self.res[:, 34]) ** 2) / np.sum(self.res[:, 34] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[1] - self.res[:, 35]) ** 2) / np.sum(self.res[:, 35] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[2] - self.res[:, 36]) ** 2) / np.sum(self.res[:, 36] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[3] - self.res[:, 40]) ** 2) / np.sum(self.res[:, 40] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[4] - self.res[:, 42]) ** 2) / np.sum(self.res[:, 42] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[5][:, 0] - self.res[:, 37]) ** 2) / np.sum(self.res[:, 37] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[5][:, 1] - self.res[:, 38]) ** 2) / np.sum(self.res[:, 38] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[5][:, 2] - self.res[:, 39]) ** 2) / np.sum(self.res[:, 39] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[6] - self.res[:, 41]) ** 2) / np.sum(self.res[:, 41] ** 2)) self.assertEqual(rms < 1.0e-5, True) rms = np.sqrt(np.sum((pol[7] - self.res[:, 43]) ** 2) / np.sum(self.res[:, 43] ** 2)) self.assertEqual(rms < 1.0e-5, True)
def test_polarization_1d(self): """ 1 dimenstional input --- regression test case for bug #919 """ pol = polarization.eigval( self.data_win_e[100, :], self.data_win_n[100, :], self.data_win_z[100, :], self.fk, self.norm ) pol_5_ref = [2.81387533e-04, 3.18409580e-04, 6.74030846e-04, 5.55067015e-01, 4.32938188e-01] self.assertTrue(np.allclose(np.concatenate(pol[:5]), pol_5_ref))
def test_polarization1D(self): """ 1 dimenstional input --- regression test case for bug #919 """ pol = polarization.eigval(self.data_win_e[100, :], self.data_win_n[100, :], self.data_win_z[100, :], self.fk, self.norm) pol_5_ref = [2.81387533e-04, 3.18409580e-04, 6.74030846e-04, 5.55067015e-01, 4.32938188e-01] self.assertTrue(np.allclose(np.concatenate(pol[:5]), pol_5_ref))