[update] no more replotting of whole data when pick is changed
This commit is contained in:
parent
5b48b744fd
commit
64885db214
78
PyLoT.py
78
PyLoT.py
@ -134,6 +134,9 @@ class MainWindow(QMainWindow):
|
||||
self._ctrl = False # control key pressed
|
||||
self._shift = False # shift key pressed
|
||||
|
||||
self.drawnPicks = {'auto': {},
|
||||
'manual': {}}
|
||||
|
||||
# default factor for dataplot e.g. enabling/disabling scrollarea
|
||||
self.height_factor = 12
|
||||
self.plot_method = 'normal'
|
||||
@ -2324,16 +2327,14 @@ class MainWindow(QMainWindow):
|
||||
if pickDlg._dirty:
|
||||
self.setDirty(True)
|
||||
self.update_status('picks accepted ({0})'.format(station))
|
||||
replot1 = self.addPicks(station, pickDlg.getPicks(picktype='manual'), type='manual')
|
||||
replot2 = self.addPicks(station, pickDlg.getPicks(picktype='auto'), type='auto')
|
||||
self.addPicks(station, pickDlg.getPicks(picktype='manual'), type='manual')
|
||||
self.addPicks(station, pickDlg.getPicks(picktype='auto'), type='auto')
|
||||
self.enableSaveEventAction()
|
||||
if replot1 or replot2:
|
||||
self.plotWaveformDataThread()
|
||||
|
||||
self.draw()
|
||||
else:
|
||||
self.drawPicks(station)
|
||||
self.draw()
|
||||
self.comparable = self.checkEvents4comparison()
|
||||
if True in self.comparable.values():
|
||||
self.compare_action.setEnabled(True)
|
||||
self.drawPicks(station)
|
||||
self.draw()
|
||||
if self.nextStation:
|
||||
self.pickDialog(wfID - 1)
|
||||
else:
|
||||
@ -2652,6 +2653,9 @@ class MainWindow(QMainWindow):
|
||||
self.drawPicks(station, 'auto', stime)
|
||||
return
|
||||
|
||||
if not picktype in ['manual', 'auto']:
|
||||
raise TypeError('Unknown picktype {0}'.format(picktype))
|
||||
|
||||
# if picks to draw not specified, draw all picks available
|
||||
if not station:
|
||||
for station in self.getPicks(type=picktype):
|
||||
@ -2674,6 +2678,11 @@ class MainWindow(QMainWindow):
|
||||
|
||||
stat_picks = self.getPicks(type=picktype)[station]
|
||||
|
||||
if station in self.drawnPicks[picktype].keys():
|
||||
for item in self.drawnPicks[picktype][station]:
|
||||
pw.removeItem(item)
|
||||
self.drawnPicks[picktype][station] = []
|
||||
|
||||
for phase in stat_picks:
|
||||
if phase == 'SPt': continue # wadati SP time
|
||||
picks = stat_picks[phase]
|
||||
@ -2698,32 +2707,31 @@ class MainWindow(QMainWindow):
|
||||
spe = picks['spe']
|
||||
|
||||
if self.pg:
|
||||
if picktype == 'manual' or picktype == 'auto':
|
||||
if spe:
|
||||
if picks['epp'] and picks['lpp']:
|
||||
pen = make_pen(picktype, phaseID, 'epp', quality)
|
||||
pw.plot([epp, epp], ylims,
|
||||
alpha=.25, pen=pen, name='EPP')
|
||||
pen = make_pen(picktype, phaseID, 'lpp', quality)
|
||||
pw.plot([lpp, lpp], ylims,
|
||||
alpha=.25, pen=pen, name='LPP')
|
||||
pen = make_pen(picktype, phaseID, 'spe', quality)
|
||||
spe_l = pg.PlotDataItem([mpp - spe, mpp - spe], ylims, pen=pen,
|
||||
name='{}-SPE'.format(phase))
|
||||
spe_r = pg.PlotDataItem([mpp + spe, mpp + spe], ylims, pen=pen)
|
||||
try:
|
||||
color = pen.color()
|
||||
color.setAlpha(100.)
|
||||
brush = pen.brush()
|
||||
brush.setColor(color)
|
||||
fill = pg.FillBetweenItem(spe_l, spe_r, brush=brush)
|
||||
fb = pw.addItem(fill)
|
||||
except:
|
||||
print('Warning: drawPicks: Could not create fill for symmetric pick error.')
|
||||
pen = make_pen(picktype, phaseID, 'mpp', quality)
|
||||
pw.plot([mpp, mpp], ylims, pen=pen, name='{}-Pick'.format(phase))
|
||||
else:
|
||||
raise TypeError('Unknown picktype {0}'.format(picktype))
|
||||
if spe:
|
||||
if picks['epp'] and picks['lpp']:
|
||||
pen = make_pen(picktype, phaseID, 'epp', quality)
|
||||
self.drawnPicks[picktype][station].append(pw.plot([epp, epp], ylims,
|
||||
alpha=.25, pen=pen, name='EPP'))
|
||||
pen = make_pen(picktype, phaseID, 'lpp', quality)
|
||||
self.drawnPicks[picktype][station].append(pw.plot([lpp, lpp], ylims,
|
||||
alpha=.25, pen=pen, name='LPP'))
|
||||
pen = make_pen(picktype, phaseID, 'spe', quality)
|
||||
spe_l = pg.PlotDataItem([mpp - spe, mpp - spe], ylims, pen=pen,
|
||||
name='{}-SPE'.format(phase))
|
||||
spe_r = pg.PlotDataItem([mpp + spe, mpp + spe], ylims, pen=pen)
|
||||
try:
|
||||
color = pen.color()
|
||||
color.setAlpha(100.)
|
||||
brush = pen.brush()
|
||||
brush.setColor(color)
|
||||
fill = pg.FillBetweenItem(spe_l, spe_r, brush=brush)
|
||||
fb = pw.addItem(fill)
|
||||
self.drawnPicks[picktype][station].append(fill)
|
||||
except:
|
||||
print('Warning: drawPicks: Could not create fill for symmetric pick error.')
|
||||
pen = make_pen(picktype, phaseID, 'mpp', quality)
|
||||
self.drawnPicks[picktype][station].append(
|
||||
pw.plot([mpp, mpp], ylims, pen=pen, name='{}-Pick'.format(phase)))
|
||||
else:
|
||||
if picktype == 'manual':
|
||||
linestyle_mpp, width_mpp = pick_linestyle_plt(picktype, 'mpp')
|
||||
|
Loading…
Reference in New Issue
Block a user