def plot_trace(self):
event_time = self.filtered_catalog.utc_timestamp.values[self.event_idx]
self.statusBar.showMessage('Event {} of {}: {}'.format(
self.event_idx+1, self.num_events, utc.UTCDateTime(event_time)))
window_sz = 20 # in sec
utc_time = utc.UTCDateTime(event_time)
start = utc_time
end = utc_time+window_sz
local_stream = self.stream.slice(start, end)
local_stream.filter('highpass', freq=2.0)
sample_rate = local_stream[0].stats.sampling_rate
npts = local_stream[0].stats.npts
event_sample = (utc_time-start)*sample_rate
n_traces = len(local_stream)
n_samples = len(local_stream[0].data)
data = np.zeros((n_traces, n_samples), dtype=np.float32)
for i in range(n_traces):
data[i, :] = local_stream[i].data[...]
mean = np.mean(data[i, :])
data[i, :] -= mean
self.trace_x.clear()
self.trace_y.clear()
self.trace_z.clear()
self.trace_x.plot(data[0, :], pen=(255,120,120,200))
self.trace_y.plot(data[1, :], pen=(120,255,120,200))
self.trace_z.plot(data[2, :], pen=(120,120,255,200))
self.lrx = pg.LinearRegionItem([event_sample,event_sample+sample_rate*1])
self.lrx.setZValue(-10)
self.trace_x.addItem(self.lrx)
# lry = pg.LinearRegionItem([400,700])
# lry.setZValue(-10)
# self.trace_y.addItem(lry)
#
# lrz = pg.LinearRegionItem([400,700])
# lrz.setZValue(-10)
# self.trace_z.addItem(lrz)
#
# regions = [lrx, lry, lrz]
#
# def updateRange(lr, regions):
# for l in regions:
# if l != lr:
# l.setRegion(lr.getRegion())
#
# # for l in regions:
# lrx.sigRegionChanged.connect(lambda : updateRange(lrx, regions))
# lry.sigRegionChanged.connect(lambda : updateRange(lry, regions))
# lrz.sigRegionChanged.connect(lambda : updateRange(lrz, regions))
评论列表
文章目录