def test_mergePreviews2(self): """ Test case for issue #84. """ # Note: explicitly creating np.ones instead of np.empty in order to # prevent NumPy warnings related to max function tr1 = Trace(data=np.ones(2880)) tr1.stats.starttime = UTCDateTime("2010-01-01T00:00:00.670000Z") tr1.stats.delta = 30.0 tr1.stats.preview = True tr1.verify() tr2 = Trace(data=np.ones(2881)) tr2.stats.starttime = UTCDateTime("2010-01-01T23:59:30.670000Z") tr2.stats.delta = 30.0 tr2.stats.preview = True tr2.verify() st1 = Stream([tr1, tr2]) st1.verify() # merge st2 = mergePreviews(st1) st2.verify() # check self.assertTrue(st2[0].stats.preview) self.assertEqual(st2[0].stats.starttime, tr1.stats.starttime) self.assertEqual(st2[0].stats.endtime, tr2.stats.endtime) self.assertEqual(st2[0].stats.npts, 5760) self.assertEqual(len(st2[0]), 5760)
def test_addTraceWithGap(self): """ Tests __add__ method of the Trace class. """ # set up tr1 = Trace(data=np.arange(1000)) tr1.stats.sampling_rate = 200 start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) tr1.stats.starttime = start tr2 = Trace(data=np.arange(0, 1000)[::-1]) tr2.stats.sampling_rate = 200 tr2.stats.starttime = start + 10 # verify tr1.verify() tr2.verify() # add trace = tr1 + tr2 # stats self.assertEquals(trace.stats.starttime, start) self.assertEquals(trace.stats.endtime, start + 14.995) self.assertEquals(trace.stats.sampling_rate, 200) self.assertEquals(trace.stats.npts, 3000) # data self.assertEquals(len(trace), 3000) self.assertEquals(trace[0], 0) self.assertEquals(trace[999], 999) self.assertTrue(is_masked(trace[1000])) self.assertTrue(is_masked(trace[1999])) self.assertEquals(trace[2000], 999) self.assertEquals(trace[2999], 0) # verify trace.verify()
def test_mergePreviews2(self): """ Test case for issue #84. """ # Note: explicitly creating np.ones instead of np.empty in order to # prevent NumPy warnings related to max function tr1 = Trace(data=np.ones(2880)) tr1.stats.starttime = UTCDateTime("2010-01-01T00:00:00.670000Z") tr1.stats.delta = 30.0 tr1.stats.preview = True tr1.verify() tr2 = Trace(data=np.ones(2881)) tr2.stats.starttime = UTCDateTime("2010-01-01T23:59:30.670000Z") tr2.stats.delta = 30.0 tr2.stats.preview = True tr2.verify() st1 = Stream([tr1, tr2]) st1.verify() # merge st2 = mergePreviews(st1) st2.verify() # check self.assertTrue(st2[0].stats.preview) self.assertEqual(st2[0].stats.starttime, tr1.stats.starttime) self.assertEqual(st2[0].stats.endtime, tr2.stats.endtime) self.assertEqual(st2[0].stats.npts, 5760) self.assertEqual(len(st2[0]), 5760)
def test_addTraceWithGap(self): """ Tests __add__ method of the Trace class. """ # set up tr1 = Trace(data=np.arange(1000)) tr1.stats.sampling_rate = 200 start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) tr1.stats.starttime = start tr2 = Trace(data=np.arange(0, 1000)[::-1]) tr2.stats.sampling_rate = 200 tr2.stats.starttime = start + 10 # verify tr1.verify() tr2.verify() # add trace = tr1 + tr2 # stats self.assertEquals(trace.stats.starttime, start) self.assertEquals(trace.stats.endtime, start + 14.995) self.assertEquals(trace.stats.sampling_rate, 200) self.assertEquals(trace.stats.npts, 3000) # data self.assertEquals(len(trace), 3000) self.assertEquals(trace[0], 0) self.assertEquals(trace[999], 999) self.assertTrue(is_masked(trace[1000])) self.assertTrue(is_masked(trace[1999])) self.assertEquals(trace[2000], 999) self.assertEquals(trace[2999], 0) # verify trace.verify()
def test_trim(self): """ Tests the trim method of the Trace class. """ # set up trace = Trace(data=np.arange(1001)) start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) trace.stats.starttime = start trace.stats.sampling_rate = 200.0 end = UTCDateTime(2000, 1, 1, 0, 0, 5, 0) trace.verify() # rtrim 100 samples trace.trim(0.5, 0.5) trace.verify() np.testing.assert_array_equal(trace.data[-5:], np.array([896, 897, 898, 899, 900])) np.testing.assert_array_equal(trace.data[:5], np.array([100, 101, 102, 103, 104])) self.assertEquals(len(trace.data), 801) self.assertEquals(trace.stats.npts, 801) self.assertEquals(trace.stats.sampling_rate, 200.0) self.assertEquals(trace.stats.starttime, start + 0.5) self.assertEquals(trace.stats.endtime, end - 0.5)
def test_trim(self): """ Tests the trim method of the Trace class. """ # set up trace = Trace(data=np.arange(1001)) start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) trace.stats.starttime = start trace.stats.sampling_rate = 200.0 end = UTCDateTime(2000, 1, 1, 0, 0, 5, 0) trace.verify() # rtrim 100 samples trace.trim(0.5, 0.5) trace.verify() np.testing.assert_array_equal(trace.data[-5:], np.array([896, 897, 898, 899, 900])) np.testing.assert_array_equal(trace.data[:5], np.array([100, 101, 102, 103, 104])) self.assertEquals(len(trace.data), 801) self.assertEquals(trace.stats.npts, 801) self.assertEquals(trace.stats.sampling_rate, 200.0) self.assertEquals(trace.stats.starttime, start + 0.5) self.assertEquals(trace.stats.endtime, end - 0.5)
def test_verify(self): """ Tests verify method. """ # empty Trace tr = Trace() tr.verify() # Trace with a single sample (issue #357) tr = Trace(data=np.array([1])) tr.verify() # example Trace tr = read()[0] tr.verify()
def test_verify(self): """ Tests verify method. """ # empty Trace tr = Trace() tr.verify() # Trace with a single sample (issue #357) tr = Trace(data=np.array([1])) tr.verify() # example Trace tr = read()[0] tr.verify()
def test_ltrim(self): """ Tests the ltrim method of the Trace class. """ # set up trace = Trace(data=np.arange(1000)) start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) trace.stats.starttime = start trace.stats.sampling_rate = 200.0 end = UTCDateTime(2000, 1, 1, 0, 0, 4, 995000) # verify trace.verify() # ltrim 100 samples tr = deepcopy(trace) tr._ltrim(0.5) tr.verify() np.testing.assert_array_equal(tr.data[0:5], \ np.array([100, 101, 102, 103, 104])) self.assertEquals(len(tr.data), 900) self.assertEquals(tr.stats.npts, 900) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start + 0.5) self.assertEquals(tr.stats.endtime, end) # ltrim 202 samples tr = deepcopy(trace) tr._ltrim(1.010) tr.verify() np.testing.assert_array_equal(tr.data[0:5], \ np.array([202, 203, 204, 205, 206])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start + 1.010) self.assertEquals(tr.stats.endtime, end) # ltrim to UTCDateTime tr = deepcopy(trace) tr._ltrim(UTCDateTime(2000, 1, 1, 0, 0, 1, 10000)) tr.verify() np.testing.assert_array_equal(tr.data[0:5], \ np.array([202, 203, 204, 205, 206])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start + 1.010) self.assertEquals(tr.stats.endtime, end) # some sanity checks # negative start time as datetime tr = deepcopy(trace) tr._ltrim(start - 1, pad=True) tr.verify() self.assertEquals(tr.stats.starttime, start - 1) np.testing.assert_array_equal(trace.data, tr.data[200:]) self.assertEquals(tr.stats.endtime, trace.stats.endtime) # negative start time as integer tr = deepcopy(trace) tr._ltrim(-100, pad=True) tr.verify() self.assertEquals(tr.stats.starttime, start - 100) delta = 100 * trace.stats.sampling_rate np.testing.assert_array_equal(trace.data, tr.data[delta:]) self.assertEquals(tr.stats.endtime, trace.stats.endtime) # start time > end time tr = deepcopy(trace) tr._ltrim(trace.stats.endtime + 100) tr.verify() self.assertEquals(tr.stats.starttime, trace.stats.endtime + 100) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # start time == end time tr = deepcopy(trace) tr._ltrim(5) tr.verify() self.assertEquals(tr.stats.starttime, trace.stats.starttime + 5) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # start time == end time tr = deepcopy(trace) tr._ltrim(5.1) tr.verify() self.assertEquals(tr.stats.starttime, trace.stats.starttime + 5.1) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime)
def test_rtrim(self): """ Tests the rtrim method of the Trace class. """ # set up trace = Trace(data=np.arange(1000)) start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) trace.stats.starttime = start trace.stats.sampling_rate = 200.0 end = UTCDateTime(2000, 1, 1, 0, 0, 4, 995000) trace.verify() # rtrim 100 samples tr = deepcopy(trace) tr._rtrim(0.5) tr.verify() np.testing.assert_array_equal(tr.data[-5:], \ np.array([895, 896, 897, 898, 899])) self.assertEquals(len(tr.data), 900) self.assertEquals(tr.stats.npts, 900) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, end - 0.5) # rtrim 202 samples tr = deepcopy(trace) tr._rtrim(1.010) tr.verify() np.testing.assert_array_equal(tr.data[-5:], \ np.array([793, 794, 795, 796, 797])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, end - 1.010) # rtrim 1 minute via UTCDateTime tr = deepcopy(trace) tr._rtrim(UTCDateTime(2000, 1, 1, 0, 0, 3, 985000)) tr.verify() np.testing.assert_array_equal(tr.data[-5:], \ np.array([793, 794, 795, 796, 797])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, end - 1.010) # some sanity checks # negative end time tr = deepcopy(trace) t = UTCDateTime(1999, 12, 31) tr._rtrim(t) tr.verify() self.assertEquals(tr.stats.endtime, t) np.testing.assert_array_equal(tr.data, np.empty(0)) # negative end time with given seconds tr = deepcopy(trace) tr._rtrim(100) tr.verify() self.assertEquals(tr.stats.endtime, trace.stats.endtime - 100) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # end time > start time tr = deepcopy(trace) t = UTCDateTime(2001) tr._rtrim(t) tr.verify() self.assertEquals(tr.stats.endtime, t) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # end time > start time given seconds tr = deepcopy(trace) tr._rtrim(5.1) tr.verify() delta = int(math.floor(round(5.1 * trace.stats.sampling_rate, 7))) endtime = trace.stats.starttime + trace.stats.delta * \ (trace.stats.npts - delta - 1) self.assertEquals(tr.stats.endtime, endtime) np.testing.assert_array_equal(tr.data, np.empty(0)) # end time == start time # returns one sample! tr = deepcopy(trace) tr._rtrim(4.995) #XXX I do not understand why this fails!!! #tr.verify() np.testing.assert_array_equal(tr.data, np.array([0])) self.assertEquals(len(tr.data), 1) self.assertEquals(tr.stats.npts, 1) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, start)
def test_ltrim(self): """ Tests the ltrim method of the Trace class. """ # set up trace = Trace(data=np.arange(1000)) start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) trace.stats.starttime = start trace.stats.sampling_rate = 200.0 end = UTCDateTime(2000, 1, 1, 0, 0, 4, 995000) # verify trace.verify() # ltrim 100 samples tr = deepcopy(trace) tr._ltrim(0.5) tr.verify() np.testing.assert_array_equal(tr.data[0:5], \ np.array([100, 101, 102, 103, 104])) self.assertEquals(len(tr.data), 900) self.assertEquals(tr.stats.npts, 900) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start + 0.5) self.assertEquals(tr.stats.endtime, end) # ltrim 202 samples tr = deepcopy(trace) tr._ltrim(1.010) tr.verify() np.testing.assert_array_equal(tr.data[0:5], \ np.array([202, 203, 204, 205, 206])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start + 1.010) self.assertEquals(tr.stats.endtime, end) # ltrim to UTCDateTime tr = deepcopy(trace) tr._ltrim(UTCDateTime(2000, 1, 1, 0, 0, 1, 10000)) tr.verify() np.testing.assert_array_equal(tr.data[0:5], \ np.array([202, 203, 204, 205, 206])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start + 1.010) self.assertEquals(tr.stats.endtime, end) # some sanity checks # negative start time as datetime tr = deepcopy(trace) tr._ltrim(start - 1, pad=True) tr.verify() self.assertEquals(tr.stats.starttime, start - 1) np.testing.assert_array_equal(trace.data, tr.data[200:]) self.assertEquals(tr.stats.endtime, trace.stats.endtime) # negative start time as integer tr = deepcopy(trace) tr._ltrim(-100, pad=True) tr.verify() self.assertEquals(tr.stats.starttime, start - 100) delta = 100 * trace.stats.sampling_rate np.testing.assert_array_equal(trace.data, tr.data[delta:]) self.assertEquals(tr.stats.endtime, trace.stats.endtime) # start time > end time tr = deepcopy(trace) tr._ltrim(trace.stats.endtime + 100) tr.verify() self.assertEquals(tr.stats.starttime, trace.stats.endtime + 100) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # start time == end time tr = deepcopy(trace) tr._ltrim(5) tr.verify() self.assertEquals(tr.stats.starttime, trace.stats.starttime + 5) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # start time == end time tr = deepcopy(trace) tr._ltrim(5.1) tr.verify() self.assertEquals(tr.stats.starttime, trace.stats.starttime + 5.1) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime)
def test_rtrim(self): """ Tests the rtrim method of the Trace class. """ # set up trace = Trace(data=np.arange(1000)) start = UTCDateTime(2000, 1, 1, 0, 0, 0, 0) trace.stats.starttime = start trace.stats.sampling_rate = 200.0 end = UTCDateTime(2000, 1, 1, 0, 0, 4, 995000) trace.verify() # rtrim 100 samples tr = deepcopy(trace) tr._rtrim(0.5) tr.verify() np.testing.assert_array_equal(tr.data[-5:], \ np.array([895, 896, 897, 898, 899])) self.assertEquals(len(tr.data), 900) self.assertEquals(tr.stats.npts, 900) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, end - 0.5) # rtrim 202 samples tr = deepcopy(trace) tr._rtrim(1.010) tr.verify() np.testing.assert_array_equal(tr.data[-5:], \ np.array([793, 794, 795, 796, 797])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, end - 1.010) # rtrim 1 minute via UTCDateTime tr = deepcopy(trace) tr._rtrim(UTCDateTime(2000, 1, 1, 0, 0, 3, 985000)) tr.verify() np.testing.assert_array_equal(tr.data[-5:], \ np.array([793, 794, 795, 796, 797])) self.assertEquals(len(tr.data), 798) self.assertEquals(tr.stats.npts, 798) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, end - 1.010) # some sanity checks # negative end time tr = deepcopy(trace) t = UTCDateTime(1999, 12, 31) tr._rtrim(t) tr.verify() self.assertEquals(tr.stats.endtime, t) np.testing.assert_array_equal(tr.data, np.empty(0)) # negative end time with given seconds tr = deepcopy(trace) tr._rtrim(100) tr.verify() self.assertEquals(tr.stats.endtime, trace.stats.endtime - 100) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # end time > start time tr = deepcopy(trace) t = UTCDateTime(2001) tr._rtrim(t) tr.verify() self.assertEquals(tr.stats.endtime, t) np.testing.assert_array_equal(tr.data, np.empty(0)) self.assertEquals(tr.stats.endtime, tr.stats.starttime) # end time > start time given seconds tr = deepcopy(trace) tr._rtrim(5.1) tr.verify() delta = int(math.floor(round(5.1 * trace.stats.sampling_rate, 7))) endtime = trace.stats.starttime + trace.stats.delta * \ (trace.stats.npts - delta - 1) self.assertEquals(tr.stats.endtime, endtime) np.testing.assert_array_equal(tr.data, np.empty(0)) # end time == start time # returns one sample! tr = deepcopy(trace) tr._rtrim(4.995) #XXX I do not understand why this fails!!! #tr.verify() np.testing.assert_array_equal(tr.data, np.array([0])) self.assertEquals(len(tr.data), 1) self.assertEquals(tr.stats.npts, 1) self.assertEquals(tr.stats.sampling_rate, 200.0) self.assertEquals(tr.stats.starttime, start) self.assertEquals(tr.stats.endtime, start)