[new] add qcombobox for raw/processed selection

This commit is contained in:
Marcel Paffrath 2018-06-08 14:18:28 +02:00
parent 5e161d308a
commit 8155389b3d
3 changed files with 76 additions and 49 deletions

View File

@ -1001,6 +1001,7 @@ class MainWindow(QMainWindow):
# TODO: add dataStructure class for obspyDMT here, this is just a workaround!
eventpath = self.get_current_event_path(eventbox)
basepath = eventpath.split(os.path.basename(eventpath))[0]
obspy_dmt = check_obspydmt_structure(basepath)
if self.dataStructure:
if not eventpath:
return
@ -1659,10 +1660,10 @@ class MainWindow(QMainWindow):
if self._eventChanged[1]:
self.refresh_array_map()
if not plotted and self._eventChanged[0]:
# newWF(False) = load data without plotting
# newWF(plot=False) = load data without plotting
self.newWF(plot=False)
def newWF(self, plot=True):
def newWF(self, event=None, plot=True):
'''
Load new data and plot if necessary.
'''
@ -1703,25 +1704,42 @@ class MainWindow(QMainWindow):
eventpath = self.get_current_event_path()
basepath = eventpath.split(os.path.basename(eventpath))[0]
obspy_dmt = check_obspydmt_structure(basepath)
self.data.setWFData(self.fnames,
checkRotated=True,
metadata=self.metadata,
obspy_dmt=obspy_dmt)
if obspy_dmt:
self.prepareObspyDMT_data(eventpath)
def setWFstatus(self):
'''
show status of current data, can be either 'raw' or 'processed'
:param status:
:return:
'''
status = self.data.processed
wf_stat_color = {True: 'green',
False: 'black',
None: None}
wf_stat = {True: 'processed',
False: 'raw',
None: None}
self.dataPlot.setPermTextRight(wf_stat[status], wf_stat_color[status])
self.data.setWFData(self.fnames,
self.fnames_syn,
checkRotated=True,
metadata=self.metadata)
def prepareObspyDMT_data(self, eventpath):
qcbox_processed = self.dataPlot.perm_qcbox_right
qcbox_processed.setEnabled(False)
for fpath in os.listdir(eventpath):
fpath = fpath.split('/')[-1]
if 'syngine' in fpath:
eventpath_syn = os.path.join(eventpath, fpath)
self.fnames_syn = [os.path.join(eventpath_syn, filename) for filename in os.listdir(eventpath_syn)]
if 'processed' in fpath:
qcbox_processed.setEnabled(True)
wftype = qcbox_processed.currentText() if qcbox_processed.isEnabled() else 'raw'
eventpath_dmt = os.path.join(eventpath, wftype)
self.fnames = [os.path.join(eventpath_dmt, filename) for filename in os.listdir(eventpath_dmt)]
# def setWFstatus(self):
# '''
# show status of current data, can be either 'raw' or 'processed'
# :param status:
# :return:
# '''
# status = self.data.processed
# wf_stat_color = {True: 'green',
# False: 'black',
# None: None}
# wf_stat = {True: 'processed',
# False: 'raw',
# None: None}
# self.dataPlot.setQCboxItem(wf_stat[status])
def check_plot_quantity(self):
"""
@ -1867,7 +1885,6 @@ class MainWindow(QMainWindow):
if True in self.comparable.values():
self.compare_action.setEnabled(True)
self.draw()
self.setWFstatus()
def checkEvent4comparison(self, event):
if event.pylot_picks and event.pylot_autopicks:

View File

@ -371,7 +371,7 @@ class Data(object):
data.filter(**kwargs)
self.dirty = True
def setWFData(self, fnames, checkRotated=False, metadata=None, obspy_dmt=False):
def setWFData(self, fnames, fnames_syn=None, checkRotated=False, metadata=None):
"""
Clear current waveform data and set given waveform data
:param fnames: waveform data names to append
@ -380,27 +380,25 @@ class Data(object):
self.wfdata = Stream()
self.wforiginal = None
self.wfsyn = Stream()
wffnames = None
wffnames_syn = None
if obspy_dmt:
wfdir = 'raw'
self.processed = False
for fname in fnames:
if fname.endswith('processed'):
wfdir = 'processed'
self.processed = True
break
for fpath in fnames:
if fpath.endswith(wfdir):
wffnames = [os.path.join(fpath, fname) for fname in os.listdir(fpath)]
if 'syngine' in fpath.split('/')[-1]:
wffnames_syn = [os.path.join(fpath, fname) for fname in os.listdir(fpath)]
else:
wffnames = fnames
if wffnames is not None:
self.appendWFData(wffnames)
if wffnames_syn is not None:
self.appendWFData(wffnames_syn, synthetic=True)
# if obspy_dmt:
# wfdir = 'raw'
# self.processed = False
# for fname in fnames:
# if fname.endswith('processed'):
# wfdir = 'processed'
# self.processed = True
# break
# for fpath in fnames:
# if fpath.endswith(wfdir):
# wffnames = [os.path.join(fpath, fname) for fname in os.listdir(fpath)]
# if 'syngine' in fpath.split('/')[-1]:
# wffnames_syn = [os.path.join(fpath, fname) for fname in os.listdir(fpath)]
# else:
# wffnames = fnames
if fnames is not None:
self.appendWFData(fnames)
if fnames_syn is not None:
self.appendWFData(fnames_syn, synthetic=True)
else:
return False

View File

@ -455,12 +455,13 @@ class WaveformWidgetPG(QtGui.QWidget):
self.main_layout = QtGui.QVBoxLayout()
self.label_layout = QtGui.QHBoxLayout()
self.add_labels()
self.connect_signals()
self.plotWidget = self.pg.PlotWidget(self.parent(), title=title)
self.main_layout.addWidget(self.plotWidget)
self.main_layout.addLayout(self.label_layout)
self.label_layout.addWidget(self.status_label)
self.label_layout.addWidget(self.perm_label_mid)
self.label_layout.addWidget(self.perm_label_right)
self.label_layout.addWidget(self.perm_qcbox_right)
self.plotWidget.showGrid(x=False, y=True, alpha=0.3)
self.wfstart, self.wfend = 0, 0
self.pen_multicursor = self.pg.mkPen(self.parent()._style['multicursor']['rgba'])
@ -491,12 +492,17 @@ class WaveformWidgetPG(QtGui.QWidget):
self.vLine.setPos(mousePoint.x())
self.hLine.setPos(mousePoint.y())
def connect_signals(self):
self.perm_qcbox_right.currentIndexChanged.connect(self.parent().newWF)
def add_labels(self):
self.status_label = QtGui.QLabel()
self.perm_label_mid = QtGui.QLabel()
self.perm_label_mid.setAlignment(4)
self.perm_label_right = QtGui.QLabel()
self.perm_label_right.setAlignment(2)
self.perm_qcbox_right = QtGui.QComboBox()
self.addQCboxItem('raw', 'black')
self.addQCboxItem('processed', 'green')
#self.perm_qcbox_right.setAlignment(2)
self.setLayout(self.main_layout)
def getPlotDict(self):
@ -506,9 +512,15 @@ class WaveformWidgetPG(QtGui.QWidget):
self.perm_label_mid.setText(text)
self.perm_label_mid.setStyleSheet('color: {}'.format(color))
def setPermTextRight(self, text=None, color='black'):
self.perm_label_right.setText(text)
self.perm_label_right.setStyleSheet('color: {}'.format(color))
def addQCboxItem(self, text=None, color='black'):
item = QtGui.QStandardItem(text)
model = self.perm_qcbox_right.model()
model.appendRow(item)
item.setForeground(QtGui.QColor('{}'.format(color)))
def setQCboxItem(self, text):
index = self.perm_qcbox_right.findText(text)
self.perm_qcbox_right.setCurrentIndex(index)
def setPlotDict(self, key, value):
self.plotdict[key] = value