From 8ee075c2b13bb28f2d54b889e4cc3e5ce85eb59f Mon Sep 17 00:00:00 2001 From: Marcel Paffrath Date: Thu, 14 Jul 2016 13:59:52 +0200 Subject: [PATCH 1/9] added SNR modification/plot --- pylot/core/active/ActiveSeismoPick3D_GUI.py | 58 ++++++++++++- pylot/core/active/asp3d_layout.py | 2 +- pylot/core/active/fmtomo_parameters_layout.py | 2 +- .../core/active/generate_seisarray_layout.py | 2 +- pylot/core/active/generate_survey_layout.py | 9 +- .../active/generate_survey_layout_minimal.py | 2 +- .../core/active/picking_parameters_layout.py | 86 ++++++++++++++++--- pylot/core/active/surveyUtils.py | 13 +-- pylot/core/active/vtk_tools_layout.py | 2 +- 9 files changed, 148 insertions(+), 28 deletions(-) diff --git a/pylot/core/active/ActiveSeismoPick3D_GUI.py b/pylot/core/active/ActiveSeismoPick3D_GUI.py index 01449aec..f68360a6 100755 --- a/pylot/core/active/ActiveSeismoPick3D_GUI.py +++ b/pylot/core/active/ActiveSeismoPick3D_GUI.py @@ -110,8 +110,7 @@ class gui_control(object): self.initNewSurvey() def initNewSurvey(self): - self.survey.setArtificialPick(0, 0) # artificial pick at source origin - surveyUtils.setDynamicFittedSNR(self.survey.getShotDict()) + self.survey.setArtificialPick(0, 0) # artificial pick at source origin self.setSurveyState(True) self.setPickState(False) @@ -147,7 +146,9 @@ class gui_control(object): self.survey = activeSeismoPick.Survey(obsdir, srcfile, recfile, useDefaultParas = True, fstart = fstart, fend = fend) - self.setConnected2SurveyState(False) + self.setConnected2SurveyState(True) + self.seisarray = self.survey.seisarray + self.setSeisArrayState(True) return True def addArrayPlot(self): @@ -313,11 +314,15 @@ class gui_control(object): self.printSeisArrayTextbox(init = False) def getPickParameters(self, ui, Picking_parameters): + self.initDynSNRplot() + self.plotDynSNR() + if Picking_parameters.exec_(): ncores = int(ui.ncores.value()) vmin = float(ui.lineEdit_vmin.text()) vmax = float(ui.lineEdit_vmax.text()) folm = float(ui.slider_folm.value())/100. + print('folm =', folm) AIC = ui.checkBox_AIC.isChecked() aicwindow = (int(ui.lineEdit_aicleft.text()), int(ui.lineEdit_aicright.text())) return ncores, vmin, vmax, folm, AIC, aicwindow @@ -358,6 +363,10 @@ class gui_control(object): ui.ncores.setMaximum(self.getMaxCPU()) self.picker_ui = ui QtCore.QObject.connect(self.picker_ui.slider_folm, QtCore.SIGNAL("valueChanged(int)"), self.refreshFolm) + QtCore.QObject.connect(self.picker_ui.shift_snr, QtCore.SIGNAL("valueChanged(int)"), self.plotDynSNR) + QtCore.QObject.connect(self.picker_ui.shift_dist, QtCore.SIGNAL("valueChanged(int)"), self.plotDynSNR) + QtCore.QObject.connect(self.picker_ui.p1, QtCore.SIGNAL("valueChanged(double)"), self.plotDynSNR) + QtCore.QObject.connect(self.picker_ui.p2, QtCore.SIGNAL("valueChanged(double)"), self.plotDynSNR) try: ncores, vmin, vmax, folm, AIC, aicwindow = self.getPickParameters(ui, Picking_parameters) except TypeError: @@ -368,12 +377,55 @@ class gui_control(object): else: HosAic = 'hos' + shiftSNR = float(self.picker_ui.shift_snr.value()) + shiftDist = float(self.picker_ui.shift_dist.value()) + p1 = float(self.picker_ui.p1.value()) + p2 = float(self.picker_ui.p2.value()) + + surveyUtils.setDynamicFittedSNR(self.survey.getShotDict(), shiftdist = shiftDist, + shiftSNR = shiftSNR, p1 = p1, p2 = p2) + self.survey.pickAllShots(vmin = vmin, vmax = vmax, folm = folm, HosAic = HosAic, aicwindow = aicwindow, cores = ncores) + QtGui.qApp.processEvents() # test self.setPickState(True) self.printSurveyTextbox(init = False) + def plotDynSNR(self): + fig = self.snrFig + fig.clear() + ax = fig.add_subplot(111) + snrthresholds = [] + dists_p = []; snr_p = [] + shiftSNR = float(self.picker_ui.shift_snr.value()) + shiftDist = float(self.picker_ui.shift_dist.value()) + p1 = float(self.picker_ui.p1.value()) + p2 = float(self.picker_ui.p2.value()) + dists = range(200) + if self.checkPickState(): + for shot in self.survey.data.values(): + for traceID in shot.getTraceIDlist(): + dists_p.append(shot.getDistance(traceID)) + snr_p.append(shot.getSNR(traceID)[0]) + + ax.scatter(dists_p, snr_p, s = 0.5, c='k') + + for dist in dists: + dist += shiftDist + snrthresholds.append(surveyUtils.snr_fit_func(surveyUtils.get_fit_fn(p1, p2), dist, shiftSNR)) + ax.plot(dists, snrthresholds) + ax.set_xlabel('Distance [m]') + ax.set_ylabel('SNR') + self.snrCanvas.draw() + + def initDynSNRplot(self): + self.snrFig = Figure() + self.snrCanvas = FigureCanvas(self.snrFig) + self.picker_ui.vlayout_plot.addWidget(self.snrCanvas) + self.snrToolbar = NavigationToolbar(self.snrCanvas, self.mainwindow) + self.picker_ui.vlayout_plot.addWidget(self.snrToolbar) + def startFMTOMO(self): if not self.checkSurveyState(): self.printDialogMessage('No Survey defined.') diff --git a/pylot/core/active/asp3d_layout.py b/pylot/core/active/asp3d_layout.py index 3392a068..8854e998 100644 --- a/pylot/core/active/asp3d_layout.py +++ b/pylot/core/active/asp3d_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'asp3d_layout.ui' # -# Created: Tue Jul 12 21:41:12 2016 +# Created: Thu Jul 14 13:36:37 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! diff --git a/pylot/core/active/fmtomo_parameters_layout.py b/pylot/core/active/fmtomo_parameters_layout.py index 04f4ad60..285bac94 100644 --- a/pylot/core/active/fmtomo_parameters_layout.py +++ b/pylot/core/active/fmtomo_parameters_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'fmtomo_parameters_layout.ui' # -# Created: Tue Jul 12 21:41:12 2016 +# Created: Thu Jul 14 13:36:37 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! diff --git a/pylot/core/active/generate_seisarray_layout.py b/pylot/core/active/generate_seisarray_layout.py index 98320874..10c297d1 100644 --- a/pylot/core/active/generate_seisarray_layout.py +++ b/pylot/core/active/generate_seisarray_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'generate_seisarray_layout.ui' # -# Created: Tue Jul 12 21:41:13 2016 +# Created: Thu Jul 14 13:36:38 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! diff --git a/pylot/core/active/generate_survey_layout.py b/pylot/core/active/generate_survey_layout.py index f33fe9d7..69591b1e 100644 --- a/pylot/core/active/generate_survey_layout.py +++ b/pylot/core/active/generate_survey_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'generate_survey_layout.ui' # -# Created: Tue Jul 12 21:41:13 2016 +# Created: Thu Jul 14 13:36:38 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! @@ -12,7 +12,7 @@ from PySide import QtCore, QtGui class Ui_generate_survey(object): def setupUi(self, generate_survey): generate_survey.setObjectName("generate_survey") - generate_survey.resize(382, 211) + generate_survey.resize(382, 220) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap("../asp3d_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) generate_survey.setWindowIcon(icon) @@ -50,6 +50,11 @@ class Ui_generate_survey(object): self.verticalLayout_2.addLayout(self.gridLayout) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") + self.line_2 = QtGui.QFrame(generate_survey) + self.line_2.setFrameShape(QtGui.QFrame.HLine) + self.line_2.setFrameShadow(QtGui.QFrame.Sunken) + self.line_2.setObjectName("line_2") + self.verticalLayout.addWidget(self.line_2) self.label = QtGui.QLabel(generate_survey) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) diff --git a/pylot/core/active/generate_survey_layout_minimal.py b/pylot/core/active/generate_survey_layout_minimal.py index 1c87cfa8..90956e2a 100644 --- a/pylot/core/active/generate_survey_layout_minimal.py +++ b/pylot/core/active/generate_survey_layout_minimal.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'generate_survey_layout_minimal.ui' # -# Created: Tue Jul 12 21:41:13 2016 +# Created: Thu Jul 14 13:36:38 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! diff --git a/pylot/core/active/picking_parameters_layout.py b/pylot/core/active/picking_parameters_layout.py index 12a41274..7bedfa94 100644 --- a/pylot/core/active/picking_parameters_layout.py +++ b/pylot/core/active/picking_parameters_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'picking_parameters_layout.ui' # -# Created: Tue Jul 12 21:41:13 2016 +# Created: Thu Jul 14 13:36:38 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! @@ -12,10 +12,10 @@ from PySide import QtCore, QtGui class Ui_picking_parameters(object): def setupUi(self, picking_parameters): picking_parameters.setObjectName("picking_parameters") - picking_parameters.resize(321, 254) - picking_parameters.setMinimumSize(QtCore.QSize(0, 0)) - self.verticalLayout_3 = QtGui.QVBoxLayout(picking_parameters) - self.verticalLayout_3.setObjectName("verticalLayout_3") + picking_parameters.resize(400, 550) + picking_parameters.setMinimumSize(QtCore.QSize(0, 550)) + self.verticalLayout_4 = QtGui.QVBoxLayout(picking_parameters) + self.verticalLayout_4.setObjectName("verticalLayout_4") self.label_7 = QtGui.QLabel(picking_parameters) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -28,7 +28,7 @@ class Ui_picking_parameters(object): font.setBold(True) self.label_7.setFont(font) self.label_7.setObjectName("label_7") - self.verticalLayout_3.addWidget(self.label_7) + self.verticalLayout_4.addWidget(self.label_7) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label = QtGui.QLabel(picking_parameters) @@ -45,7 +45,7 @@ class Ui_picking_parameters(object): self.ncores.setMaximum(10000) self.ncores.setObjectName("ncores") self.horizontalLayout.addWidget(self.ncores) - self.verticalLayout_3.addLayout(self.horizontalLayout) + self.verticalLayout_4.addLayout(self.horizontalLayout) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.verticalLayout_2 = QtGui.QVBoxLayout() @@ -78,7 +78,7 @@ class Ui_picking_parameters(object): self.lineEdit_vmax.setObjectName("lineEdit_vmax") self.verticalLayout.addWidget(self.lineEdit_vmax) self.horizontalLayout_3.addLayout(self.verticalLayout) - self.verticalLayout_3.addLayout(self.horizontalLayout_3) + self.verticalLayout_4.addLayout(self.horizontalLayout_3) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.label_4 = QtGui.QLabel(picking_parameters) @@ -110,7 +110,7 @@ class Ui_picking_parameters(object): self.label_folm.setObjectName("label_folm") self.horizontalLayout_2.addWidget(self.label_folm) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) - self.verticalLayout_3.addLayout(self.horizontalLayout_4) + self.verticalLayout_4.addLayout(self.horizontalLayout_4) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.label_5 = QtGui.QLabel(picking_parameters) @@ -126,7 +126,7 @@ class Ui_picking_parameters(object): self.checkBox_AIC.setChecked(True) self.checkBox_AIC.setObjectName("checkBox_AIC") self.horizontalLayout_5.addWidget(self.checkBox_AIC) - self.verticalLayout_3.addLayout(self.horizontalLayout_5) + self.verticalLayout_4.addLayout(self.horizontalLayout_5) self.horizontalLayout_6 = QtGui.QHBoxLayout() self.horizontalLayout_6.setObjectName("horizontalLayout_6") self.label_6 = QtGui.QLabel(picking_parameters) @@ -148,12 +148,67 @@ class Ui_picking_parameters(object): self.lineEdit_aicright.setObjectName("lineEdit_aicright") self.horizontalLayout_7.addWidget(self.lineEdit_aicright) self.horizontalLayout_6.addLayout(self.horizontalLayout_7) - self.verticalLayout_3.addLayout(self.horizontalLayout_6) + self.verticalLayout_4.addLayout(self.horizontalLayout_6) + self.verticalLayout_snr = QtGui.QVBoxLayout() + self.verticalLayout_snr.setObjectName("verticalLayout_snr") + self.line = QtGui.QFrame(picking_parameters) + self.line.setFrameShape(QtGui.QFrame.HLine) + self.line.setFrameShadow(QtGui.QFrame.Sunken) + self.line.setObjectName("line") + self.verticalLayout_snr.addWidget(self.line) + self.label_8 = QtGui.QLabel(picking_parameters) + self.label_8.setObjectName("label_8") + self.verticalLayout_snr.addWidget(self.label_8) + self.gridLayout_2 = QtGui.QGridLayout() + self.gridLayout_2.setObjectName("gridLayout_2") + self.label_9 = QtGui.QLabel(picking_parameters) + self.label_9.setObjectName("label_9") + self.gridLayout_2.addWidget(self.label_9, 1, 0, 1, 1) + self.label_10 = QtGui.QLabel(picking_parameters) + self.label_10.setObjectName("label_10") + self.gridLayout_2.addWidget(self.label_10, 2, 0, 1, 1) + self.p1 = QtGui.QDoubleSpinBox(picking_parameters) + self.p1.setDecimals(6) + self.p1.setMinimum(-100.0) + self.p1.setMaximum(100.0) + self.p1.setSingleStep(0.0001) + self.p1.setProperty("value", 0.004) + self.p1.setObjectName("p1") + self.gridLayout_2.addWidget(self.p1, 2, 1, 1, 1) + self.label_11 = QtGui.QLabel(picking_parameters) + self.label_11.setObjectName("label_11") + self.gridLayout_2.addWidget(self.label_11, 1, 2, 1, 1) + self.label_12 = QtGui.QLabel(picking_parameters) + self.label_12.setObjectName("label_12") + self.gridLayout_2.addWidget(self.label_12, 2, 2, 1, 1) + self.p2 = QtGui.QDoubleSpinBox(picking_parameters) + self.p2.setDecimals(6) + self.p2.setMinimum(-100.0) + self.p2.setMaximum(100.0) + self.p2.setSingleStep(0.0001) + self.p2.setProperty("value", -0.0007) + self.p2.setObjectName("p2") + self.gridLayout_2.addWidget(self.p2, 2, 3, 1, 1) + self.shift_dist = QtGui.QSpinBox(picking_parameters) + self.shift_dist.setMaximum(10000) + self.shift_dist.setProperty("value", 30) + self.shift_dist.setObjectName("shift_dist") + self.gridLayout_2.addWidget(self.shift_dist, 1, 1, 1, 1) + self.shift_snr = QtGui.QSpinBox(picking_parameters) + self.shift_snr.setMaximum(10000) + self.shift_snr.setProperty("value", 100) + self.shift_snr.setObjectName("shift_snr") + self.gridLayout_2.addWidget(self.shift_snr, 1, 3, 1, 1) + self.verticalLayout_snr.addLayout(self.gridLayout_2) + self.verticalLayout_4.addLayout(self.verticalLayout_snr) + self.vlayout_plot = QtGui.QVBoxLayout() + self.vlayout_plot.setObjectName("vlayout_plot") + self.verticalLayout_4.addLayout(self.vlayout_plot) self.buttonBox = QtGui.QDialogButtonBox(picking_parameters) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") - self.verticalLayout_3.addWidget(self.buttonBox) + self.verticalLayout_4.addWidget(self.buttonBox) self.retranslateUi(picking_parameters) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), picking_parameters.accept) @@ -167,7 +222,7 @@ class Ui_picking_parameters(object): self.label.setText(QtGui.QApplication.translate("picking_parameters", "nproc [?]", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setToolTip(QtGui.QApplication.translate("picking_parameters", "Minimum permitted direct velocity (apparent velocity!).", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("picking_parameters", "vmin [m/s] [?]", None, QtGui.QApplication.UnicodeUTF8)) - self.lineEdit_vmin.setText(QtGui.QApplication.translate("picking_parameters", "333", None, QtGui.QApplication.UnicodeUTF8)) + self.lineEdit_vmin.setText(QtGui.QApplication.translate("picking_parameters", "100", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setToolTip(QtGui.QApplication.translate("picking_parameters", "Maximum permitted direct velocity (apparent velocity!).", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("picking_parameters", "vmax [m/s] [?]", None, QtGui.QApplication.UnicodeUTF8)) self.lineEdit_vmax.setText(QtGui.QApplication.translate("picking_parameters", "5000", None, QtGui.QApplication.UnicodeUTF8)) @@ -181,4 +236,9 @@ class Ui_picking_parameters(object): "(only if AIC checked)", None, QtGui.QApplication.UnicodeUTF8)) self.lineEdit_aicleft.setText(QtGui.QApplication.translate("picking_parameters", "15", None, QtGui.QApplication.UnicodeUTF8)) self.lineEdit_aicright.setText(QtGui.QApplication.translate("picking_parameters", "0", None, QtGui.QApplication.UnicodeUTF8)) + self.label_8.setText(QtGui.QApplication.translate("picking_parameters", "SNR threshold (advanced)", None, QtGui.QApplication.UnicodeUTF8)) + self.label_9.setText(QtGui.QApplication.translate("picking_parameters", "Shift distance", None, QtGui.QApplication.UnicodeUTF8)) + self.label_10.setText(QtGui.QApplication.translate("picking_parameters", "p1", None, QtGui.QApplication.UnicodeUTF8)) + self.label_11.setText(QtGui.QApplication.translate("picking_parameters", "Shift SNR", None, QtGui.QApplication.UnicodeUTF8)) + self.label_12.setText(QtGui.QApplication.translate("picking_parameters", "p2", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/pylot/core/active/surveyUtils.py b/pylot/core/active/surveyUtils.py index 0cc22b1b..27cb6e01 100644 --- a/pylot/core/active/surveyUtils.py +++ b/pylot/core/active/surveyUtils.py @@ -1,5 +1,5 @@ from __future__ import print_function - +import numpy as np def readParameters(parfile, parameter): """ @@ -90,10 +90,9 @@ def setDynamicFittedSNR(shot_dict, shiftdist=30, shiftSNR=100, p1=0.004, p2=-0.0 :type p2: float :return: """ - import numpy as np minSNR = 2.5 # fit_fn = fitSNR4dist(shot_dict) - fit_fn = np.poly1d([p1, p2]) + fit_fn = get_fit_fn(p1, p2) for shot in shot_dict.values(): for traceID in shot.getTraceIDlist(): ### IMPROVE dist = shot.getDistance(traceID) + shiftdist @@ -104,13 +103,17 @@ def setDynamicFittedSNR(shot_dict, shiftdist=30, shiftSNR=100, p1=0.004, p2=-0.0 shot.setSNRthreshold(traceID, minSNR) else: shot.setSNRthreshold(traceID, snrthreshold) - print("setDynamicFittedSNR: Finished setting of fitted SNR-threshold") + print("setDynamicFittedSNR: Finished setting of fitted SNR-threshold.\n" + "Parameters: ShiftDist = %s, ShiftSNR = %s, p1 = %s, p2 = %s" + %(shiftdist, shiftSNR, p1, p2)) def snr_fit_func(fit_fn, dist, shiftSNR): - import numpy as np snrthreshold = (1 / (fit_fn(dist) ** 2)) - shiftSNR * np.exp(-0.05 * dist) return snrthreshold +def get_fit_fn(p1, p2): + return np.poly1d([p1, p2]) + def setConstantSNR(shot_dict, snrthreshold=2.5): """ Set a constant SNR value to all Seismicshots in a dictionary (e.g. survey.getShotDict()). diff --git a/pylot/core/active/vtk_tools_layout.py b/pylot/core/active/vtk_tools_layout.py index 49ae3cd0..b7bcf57c 100644 --- a/pylot/core/active/vtk_tools_layout.py +++ b/pylot/core/active/vtk_tools_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'vtk_tools_layout.ui' # -# Created: Tue Jul 12 21:41:13 2016 +# Created: Thu Jul 14 13:36:38 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! From c7f7d9785b4dd5ddf62063a38203cb1a6b9164a6 Mon Sep 17 00:00:00 2001 From: Marcel Paffrath Date: Mon, 18 Jul 2016 11:54:29 +0200 Subject: [PATCH 2/9] Rearranged Main Layout (buttons to top menu), several tweaks for plotDynSNR --- pylot/core/active/ActiveSeismoPick3D_GUI.py | 45 ++-- pylot/core/active/asp3d_layout.py | 206 +++++++----------- pylot/core/active/fmtomo_parameters_layout.py | 2 +- .../core/active/generate_seisarray_layout.py | 4 +- pylot/core/active/generate_survey_layout.py | 2 +- .../active/generate_survey_layout_minimal.py | 2 +- .../core/active/picking_parameters_layout.py | 2 +- pylot/core/active/vtk_tools_layout.py | 2 +- 8 files changed, 120 insertions(+), 145 deletions(-) diff --git a/pylot/core/active/ActiveSeismoPick3D_GUI.py b/pylot/core/active/ActiveSeismoPick3D_GUI.py index f68360a6..16e8fa66 100755 --- a/pylot/core/active/ActiveSeismoPick3D_GUI.py +++ b/pylot/core/active/ActiveSeismoPick3D_GUI.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import os +import sys import matplotlib matplotlib.use('Qt4Agg') matplotlib.rcParams['backend.qt4']='PySide' @@ -45,22 +46,23 @@ class gui_control(object): self.setConnected2SurveyState(False) def connectButtons(self): - QtCore.QObject.connect(self.mainUI.gen_new_seisarray, QtCore.SIGNAL("clicked()"), self.gen_seisarray) - QtCore.QObject.connect(self.mainUI.load_seisarray, QtCore.SIGNAL("clicked()"), self.load_seisarray) - QtCore.QObject.connect(self.mainUI.save_seisarray, QtCore.SIGNAL("clicked()"), self.save_seisarray) - QtCore.QObject.connect(self.mainUI.connect_to_survey, QtCore.SIGNAL("clicked()"), self.connect2Survey) - QtCore.QObject.connect(self.mainUI.interpolate_receivers, QtCore.SIGNAL("clicked()"), self.interpolate_receivers) - QtCore.QObject.connect(self.mainUI.gen_new_survey, QtCore.SIGNAL("clicked()"), self.gen_survey) - QtCore.QObject.connect(self.mainUI.load_survey, QtCore.SIGNAL("clicked()"), self.load_survey) - QtCore.QObject.connect(self.mainUI.save_survey, QtCore.SIGNAL("clicked()"), self.save_survey) - QtCore.QObject.connect(self.mainUI.picker, QtCore.SIGNAL("clicked()"), self.callPicker) - QtCore.QObject.connect(self.mainUI.postprocessing, QtCore.SIGNAL("clicked()"), self.postprocessing) - QtCore.QObject.connect(self.mainUI.fmtomo, QtCore.SIGNAL("clicked()"), self.startFMTOMO) - QtCore.QObject.connect(self.mainUI.vtk_tools, QtCore.SIGNAL("clicked()"), self.startVTKtools) + QtCore.QObject.connect(self.mainUI.actionGenerate_new_Seismic_Array, QtCore.SIGNAL("triggered()"), self.gen_seisarray) + QtCore.QObject.connect(self.mainUI.actionLoad_Seismic_Array, QtCore.SIGNAL("triggered()"), self.load_seisarray) + QtCore.QObject.connect(self.mainUI.actionSave_Seismic_Array, QtCore.SIGNAL("triggered()"), self.save_seisarray) + QtCore.QObject.connect(self.mainUI.actionLoad_Survey, QtCore.SIGNAL("triggered()"), self.load_survey) + QtCore.QObject.connect(self.mainUI.actionSave_Survey, QtCore.SIGNAL("triggered()"), self.save_survey) + QtCore.QObject.connect(self.mainUI.actionConnect_to_Survey, QtCore.SIGNAL("triggered()"), self.connect2Survey) + QtCore.QObject.connect(self.mainUI.actionInterpolate_Receivers, QtCore.SIGNAL("triggered()"), self.interpolate_receivers) + QtCore.QObject.connect(self.mainUI.actionGenerate_new_Survey, QtCore.SIGNAL("triggered()"), self.gen_survey) + QtCore.QObject.connect(self.mainUI.actionAutomatic_Picking, QtCore.SIGNAL("triggered()"), self.callPicker) + QtCore.QObject.connect(self.mainUI.actionPostprocessing, QtCore.SIGNAL("triggered()"), self.postprocessing) + QtCore.QObject.connect(self.mainUI.actionStart_FMTOMO_Simulation, QtCore.SIGNAL("triggered()"), self.startFMTOMO) + QtCore.QObject.connect(self.mainUI.actionVTK_Visualization, QtCore.SIGNAL("triggered()"), self.startVTKtools) + QtCore.QObject.connect(self.mainUI.actionExit, QtCore.SIGNAL("triggered()"), self.exitApp) QtCore.QObject.connect(self.mainUI.comboBox_stats, QtCore.SIGNAL("activated(int)"), self.refreshPickedWidgets) QtCore.QObject.connect(self.mainUI.shot_left, QtCore.SIGNAL("clicked()"), self.decreaseShotnumber) QtCore.QObject.connect(self.mainUI.shot_right, QtCore.SIGNAL("clicked()"), self.increaseShotnumber) - QtCore.QObject.connect(self.mainUI.plot_shot, QtCore.SIGNAL("clicked()"), self.plotShot) + def gen_seisarray(self): disconnect = False @@ -394,8 +396,15 @@ class gui_control(object): def plotDynSNR(self): fig = self.snrFig - fig.clear() - ax = fig.add_subplot(111) + if fig.axes == []: + ax = fig.add_subplot(111) + xlim = None + ylim = None + else: + ax = fig.axes[0] + xlim = ax.get_xlim() + ylim = ax.get_ylim() + ax.clear() snrthresholds = [] dists_p = []; snr_p = [] shiftSNR = float(self.picker_ui.shift_snr.value()) @@ -417,6 +426,8 @@ class gui_control(object): ax.plot(dists, snrthresholds) ax.set_xlabel('Distance [m]') ax.set_ylabel('SNR') + ax.set_xlim(xlim) + ax.set_ylim(ylim) self.snrCanvas.draw() def initDynSNRplot(self): @@ -825,8 +836,10 @@ class gui_control(object): if len(directory) > 0: return directory + def exitApp(self): + QtCore.QCoreApplication.instance().quit() + if __name__ == "__main__": - import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() diff --git a/pylot/core/active/asp3d_layout.py b/pylot/core/active/asp3d_layout.py index 8854e998..b74ac231 100644 --- a/pylot/core/active/asp3d_layout.py +++ b/pylot/core/active/asp3d_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'asp3d_layout.ui' # -# Created: Thu Jul 14 13:36:37 2016 +# Created: Mon Jul 18 11:26:32 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! @@ -53,22 +53,6 @@ class Ui_MainWindow(object): self.label_2.setAlignment(QtCore.Qt.AlignCenter) self.label_2.setObjectName("label_2") self.verticalLayout.addWidget(self.label_2) - self.gen_new_seisarray = QtGui.QPushButton(self.centralwidget) - self.gen_new_seisarray.setEnabled(True) - self.gen_new_seisarray.setObjectName("gen_new_seisarray") - self.verticalLayout.addWidget(self.gen_new_seisarray) - self.load_seisarray = QtGui.QPushButton(self.centralwidget) - self.load_seisarray.setObjectName("load_seisarray") - self.verticalLayout.addWidget(self.load_seisarray) - self.save_seisarray = QtGui.QPushButton(self.centralwidget) - self.save_seisarray.setObjectName("save_seisarray") - self.verticalLayout.addWidget(self.save_seisarray) - self.interpolate_receivers = QtGui.QPushButton(self.centralwidget) - self.interpolate_receivers.setObjectName("interpolate_receivers") - self.verticalLayout.addWidget(self.interpolate_receivers) - self.connect_to_survey = QtGui.QPushButton(self.centralwidget) - self.connect_to_survey.setObjectName("connect_to_survey") - self.verticalLayout.addWidget(self.connect_to_survey) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.seisarray_active = QtGui.QLabel(self.centralwidget) @@ -142,15 +126,6 @@ class Ui_MainWindow(object): self.label_3.setAlignment(QtCore.Qt.AlignCenter) self.label_3.setObjectName("label_3") self.verticalLayout_2.addWidget(self.label_3) - self.gen_new_survey = QtGui.QPushButton(self.centralwidget) - self.gen_new_survey.setObjectName("gen_new_survey") - self.verticalLayout_2.addWidget(self.gen_new_survey) - self.load_survey = QtGui.QPushButton(self.centralwidget) - self.load_survey.setObjectName("load_survey") - self.verticalLayout_2.addWidget(self.load_survey) - self.save_survey = QtGui.QPushButton(self.centralwidget) - self.save_survey.setObjectName("save_survey") - self.verticalLayout_2.addWidget(self.save_survey) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.survey_active = QtGui.QLabel(self.centralwidget) @@ -202,79 +177,10 @@ class Ui_MainWindow(object): self.textBox_survey.setObjectName("textBox_survey") self.verticalLayout_2.addWidget(self.textBox_survey) self.verticalLayout_5.addLayout(self.verticalLayout_2) - self.line_3 = QtGui.QFrame(self.centralwidget) - self.line_3.setMinimumSize(QtCore.QSize(0, 5)) - self.line_3.setFrameShape(QtGui.QFrame.HLine) - self.line_3.setFrameShadow(QtGui.QFrame.Sunken) - self.line_3.setObjectName("line_3") - self.verticalLayout_5.addWidget(self.line_3) self.verticalLayout_3 = QtGui.QVBoxLayout() self.verticalLayout_3.setObjectName("verticalLayout_3") - self.label_7 = QtGui.QLabel(self.centralwidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth()) - self.label_7.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setFamily("Sans Serif") - font.setPointSize(10) - font.setWeight(75) - font.setBold(True) - self.label_7.setFont(font) - self.label_7.setAlignment(QtCore.Qt.AlignCenter) - self.label_7.setObjectName("label_7") - self.verticalLayout_3.addWidget(self.label_7) - self.picker = QtGui.QPushButton(self.centralwidget) - self.picker.setObjectName("picker") - self.verticalLayout_3.addWidget(self.picker) - self.postprocessing = QtGui.QPushButton(self.centralwidget) - self.postprocessing.setObjectName("postprocessing") - self.verticalLayout_3.addWidget(self.postprocessing) - self.line_2 = QtGui.QFrame(self.centralwidget) - self.line_2.setMinimumSize(QtCore.QSize(0, 5)) - self.line_2.setFrameShape(QtGui.QFrame.HLine) - self.line_2.setFrameShadow(QtGui.QFrame.Sunken) - self.line_2.setObjectName("line_2") - self.verticalLayout_3.addWidget(self.line_2) self.verticalLayout_4 = QtGui.QVBoxLayout() self.verticalLayout_4.setObjectName("verticalLayout_4") - self.label_8 = QtGui.QLabel(self.centralwidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) - self.label_8.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setFamily("Sans Serif") - font.setPointSize(10) - font.setWeight(75) - font.setBold(True) - self.label_8.setFont(font) - self.label_8.setAlignment(QtCore.Qt.AlignCenter) - self.label_8.setObjectName("label_8") - self.verticalLayout_4.addWidget(self.label_8) - self.fmtomo = QtGui.QPushButton(self.centralwidget) - self.fmtomo.setObjectName("fmtomo") - self.verticalLayout_4.addWidget(self.fmtomo) - self.label_9 = QtGui.QLabel(self.centralwidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_9.sizePolicy().hasHeightForWidth()) - self.label_9.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setFamily("Sans Serif") - font.setPointSize(10) - font.setWeight(75) - font.setBold(True) - self.label_9.setFont(font) - self.label_9.setAlignment(QtCore.Qt.AlignCenter) - self.label_9.setObjectName("label_9") - self.verticalLayout_4.addWidget(self.label_9) - self.vtk_tools = QtGui.QPushButton(self.centralwidget) - self.vtk_tools.setObjectName("vtk_tools") - self.verticalLayout_4.addWidget(self.vtk_tools) self.progressBar = QtGui.QProgressBar(self.centralwidget) self.progressBar.setEnabled(True) self.progressBar.setProperty("value", 0) @@ -369,10 +275,73 @@ class Ui_MainWindow(object): self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1029, 23)) self.menubar.setObjectName("menubar") + self.menuFile = QtGui.QMenu(self.menubar) + self.menuFile.setObjectName("menuFile") + self.menuSeismic_Array = QtGui.QMenu(self.menubar) + self.menuSeismic_Array.setObjectName("menuSeismic_Array") + self.menuSurvey = QtGui.QMenu(self.menubar) + self.menuSurvey.setObjectName("menuSurvey") + self.menuPicking = QtGui.QMenu(self.menubar) + self.menuPicking.setObjectName("menuPicking") + self.menuSimulation = QtGui.QMenu(self.menubar) + self.menuSimulation.setObjectName("menuSimulation") + self.menuTools = QtGui.QMenu(self.menubar) + self.menuTools.setObjectName("menuTools") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) + self.actionLoad_Seismic_Array = QtGui.QAction(MainWindow) + self.actionLoad_Seismic_Array.setCheckable(False) + self.actionLoad_Seismic_Array.setObjectName("actionLoad_Seismic_Array") + self.actionSave_Seismic_Array = QtGui.QAction(MainWindow) + self.actionSave_Seismic_Array.setObjectName("actionSave_Seismic_Array") + self.actionLoad_Survey = QtGui.QAction(MainWindow) + self.actionLoad_Survey.setObjectName("actionLoad_Survey") + self.actionSave_Survey = QtGui.QAction(MainWindow) + self.actionSave_Survey.setObjectName("actionSave_Survey") + self.actionExit = QtGui.QAction(MainWindow) + self.actionExit.setObjectName("actionExit") + self.actionGenerate_new_Seismic_Array = QtGui.QAction(MainWindow) + self.actionGenerate_new_Seismic_Array.setObjectName("actionGenerate_new_Seismic_Array") + self.actionInterpolate_Receivers = QtGui.QAction(MainWindow) + self.actionInterpolate_Receivers.setObjectName("actionInterpolate_Receivers") + self.actionConnect_to_Survey = QtGui.QAction(MainWindow) + self.actionConnect_to_Survey.setObjectName("actionConnect_to_Survey") + self.actionGenerate_new_Survey = QtGui.QAction(MainWindow) + self.actionGenerate_new_Survey.setObjectName("actionGenerate_new_Survey") + self.actionAutomatic_Picking = QtGui.QAction(MainWindow) + self.actionAutomatic_Picking.setObjectName("actionAutomatic_Picking") + self.actionPostprocessing = QtGui.QAction(MainWindow) + self.actionPostprocessing.setObjectName("actionPostprocessing") + self.actionStart_FMTOMO_Simulation = QtGui.QAction(MainWindow) + self.actionStart_FMTOMO_Simulation.setObjectName("actionStart_FMTOMO_Simulation") + self.actionVTK_Visualization = QtGui.QAction(MainWindow) + self.actionVTK_Visualization.setObjectName("actionVTK_Visualization") + self.actionSeismic_Array = QtGui.QAction(MainWindow) + self.actionSeismic_Array.setEnabled(False) + self.actionSeismic_Array.setObjectName("actionSeismic_Array") + self.menuFile.addSeparator() + self.menuFile.addAction(self.actionExit) + self.menuSeismic_Array.addAction(self.actionGenerate_new_Seismic_Array) + self.menuSeismic_Array.addAction(self.actionLoad_Seismic_Array) + self.menuSeismic_Array.addAction(self.actionSave_Seismic_Array) + self.menuSeismic_Array.addSeparator() + self.menuSeismic_Array.addAction(self.actionInterpolate_Receivers) + self.menuSeismic_Array.addAction(self.actionConnect_to_Survey) + self.menuSurvey.addAction(self.actionGenerate_new_Survey) + self.menuSurvey.addAction(self.actionLoad_Survey) + self.menuSurvey.addAction(self.actionSave_Survey) + self.menuPicking.addAction(self.actionAutomatic_Picking) + self.menuPicking.addAction(self.actionPostprocessing) + self.menuSimulation.addAction(self.actionStart_FMTOMO_Simulation) + self.menuTools.addAction(self.actionVTK_Visualization) + self.menubar.addAction(self.menuFile.menuAction()) + self.menubar.addAction(self.menuSurvey.menuAction()) + self.menubar.addAction(self.menuSeismic_Array.menuAction()) + self.menubar.addAction(self.menuPicking.menuAction()) + self.menubar.addAction(self.menuSimulation.menuAction()) + self.menubar.addAction(self.menuTools.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) @@ -380,41 +349,34 @@ class Ui_MainWindow(object): def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "ActiveSeismoPick 3D", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("MainWindow", "Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) - self.gen_new_seisarray.setToolTip(QtGui.QApplication.translate("MainWindow", "Generate a new Seismic Array object.", None, QtGui.QApplication.UnicodeUTF8)) - self.gen_new_seisarray.setText(QtGui.QApplication.translate("MainWindow", "Create new Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) - self.load_seisarray.setToolTip(QtGui.QApplication.translate("MainWindow", "Load an existing Seismic Array object saved as \'.pickle\' file.", None, QtGui.QApplication.UnicodeUTF8)) - self.load_seisarray.setText(QtGui.QApplication.translate("MainWindow", "Load Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) - self.save_seisarray.setToolTip(QtGui.QApplication.translate("MainWindow", "Save current Seismic Array object to \'.pickle\' file.", None, QtGui.QApplication.UnicodeUTF8)) - self.save_seisarray.setText(QtGui.QApplication.translate("MainWindow", "Save Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) - self.interpolate_receivers.setToolTip(QtGui.QApplication.translate("MainWindow", "Interpolate positions of receivers in between that were not manually measured.", None, QtGui.QApplication.UnicodeUTF8)) - self.interpolate_receivers.setText(QtGui.QApplication.translate("MainWindow", "Interpolate Receivers", None, QtGui.QApplication.UnicodeUTF8)) - self.connect_to_survey.setToolTip(QtGui.QApplication.translate("MainWindow", "Save the current Seismic Array to the current Survey object.", None, QtGui.QApplication.UnicodeUTF8)) - self.connect_to_survey.setText(QtGui.QApplication.translate("MainWindow", "Connect to Survey", None, QtGui.QApplication.UnicodeUTF8)) self.label_5.setText(QtGui.QApplication.translate("MainWindow", "active", None, QtGui.QApplication.UnicodeUTF8)) self.label_6.setText(QtGui.QApplication.translate("MainWindow", "connected to Survey", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("MainWindow", "Survey", None, QtGui.QApplication.UnicodeUTF8)) - self.gen_new_survey.setToolTip(QtGui.QApplication.translate("MainWindow", "Generate a new Survey object.", None, QtGui.QApplication.UnicodeUTF8)) - self.gen_new_survey.setText(QtGui.QApplication.translate("MainWindow", "Generate new Survey", None, QtGui.QApplication.UnicodeUTF8)) - self.load_survey.setToolTip(QtGui.QApplication.translate("MainWindow", "Load an existing Survey object from a \'.pickle\' file.", None, QtGui.QApplication.UnicodeUTF8)) - self.load_survey.setText(QtGui.QApplication.translate("MainWindow", "Load Survey", None, QtGui.QApplication.UnicodeUTF8)) - self.save_survey.setToolTip(QtGui.QApplication.translate("MainWindow", "Save current Survey object to \'.pickle\' file.", None, QtGui.QApplication.UnicodeUTF8)) - self.save_survey.setText(QtGui.QApplication.translate("MainWindow", "Save Survey", None, QtGui.QApplication.UnicodeUTF8)) self.label_4.setText(QtGui.QApplication.translate("MainWindow", "active", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "picked", None, QtGui.QApplication.UnicodeUTF8)) - self.label_7.setText(QtGui.QApplication.translate("MainWindow", "Picking", None, QtGui.QApplication.UnicodeUTF8)) - self.picker.setToolTip(QtGui.QApplication.translate("MainWindow", "Choose parameters and call automatic picking routines.", None, QtGui.QApplication.UnicodeUTF8)) - self.picker.setText(QtGui.QApplication.translate("MainWindow", "Automatic Picking", None, QtGui.QApplication.UnicodeUTF8)) - self.postprocessing.setToolTip(QtGui.QApplication.translate("MainWindow", "Manual control and postprocessing of a picked Survey.", None, QtGui.QApplication.UnicodeUTF8)) - self.postprocessing.setText(QtGui.QApplication.translate("MainWindow", "Postprocessing", None, QtGui.QApplication.UnicodeUTF8)) - self.label_8.setText(QtGui.QApplication.translate("MainWindow", "Simulation", None, QtGui.QApplication.UnicodeUTF8)) - self.fmtomo.setToolTip(QtGui.QApplication.translate("MainWindow", "Set parameters and call Fast Marching Tomography algorithm.", None, QtGui.QApplication.UnicodeUTF8)) - self.fmtomo.setText(QtGui.QApplication.translate("MainWindow", "FMTOMO Simulation", None, QtGui.QApplication.UnicodeUTF8)) - self.label_9.setText(QtGui.QApplication.translate("MainWindow", "Visualization", None, QtGui.QApplication.UnicodeUTF8)) - self.vtk_tools.setToolTip(QtGui.QApplication.translate("MainWindow", "Set parameters and call Fast Marching Tomography algorithm.", None, QtGui.QApplication.UnicodeUTF8)) - self.vtk_tools.setText(QtGui.QApplication.translate("MainWindow", "VTK tools", None, QtGui.QApplication.UnicodeUTF8)) self.label_11.setText(QtGui.QApplication.translate("MainWindow", "Plot Receiver and Shots of the Array colord by:", None, QtGui.QApplication.UnicodeUTF8)) self.label_10.setText(QtGui.QApplication.translate("MainWindow", "Plot a single Shot:", None, QtGui.QApplication.UnicodeUTF8)) self.shot_left.setText(QtGui.QApplication.translate("MainWindow", "<", None, QtGui.QApplication.UnicodeUTF8)) self.shot_right.setText(QtGui.QApplication.translate("MainWindow", ">", None, QtGui.QApplication.UnicodeUTF8)) self.plot_shot.setText(QtGui.QApplication.translate("MainWindow", "Plot", None, QtGui.QApplication.UnicodeUTF8)) + self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) + self.menuSeismic_Array.setTitle(QtGui.QApplication.translate("MainWindow", "Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) + self.menuSurvey.setTitle(QtGui.QApplication.translate("MainWindow", "Survey", None, QtGui.QApplication.UnicodeUTF8)) + self.menuPicking.setTitle(QtGui.QApplication.translate("MainWindow", "Picking", None, QtGui.QApplication.UnicodeUTF8)) + self.menuSimulation.setTitle(QtGui.QApplication.translate("MainWindow", "Simulation", None, QtGui.QApplication.UnicodeUTF8)) + self.menuTools.setTitle(QtGui.QApplication.translate("MainWindow", "Tools", None, QtGui.QApplication.UnicodeUTF8)) + self.actionLoad_Seismic_Array.setText(QtGui.QApplication.translate("MainWindow", "Load Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) + self.actionSave_Seismic_Array.setText(QtGui.QApplication.translate("MainWindow", "Save Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) + self.actionLoad_Survey.setText(QtGui.QApplication.translate("MainWindow", "Load Survey", None, QtGui.QApplication.UnicodeUTF8)) + self.actionSave_Survey.setText(QtGui.QApplication.translate("MainWindow", "Save Survey", None, QtGui.QApplication.UnicodeUTF8)) + self.actionExit.setText(QtGui.QApplication.translate("MainWindow", "Exit", None, QtGui.QApplication.UnicodeUTF8)) + self.actionGenerate_new_Seismic_Array.setText(QtGui.QApplication.translate("MainWindow", "Generate new Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) + self.actionInterpolate_Receivers.setText(QtGui.QApplication.translate("MainWindow", "Interpolate Receivers", None, QtGui.QApplication.UnicodeUTF8)) + self.actionConnect_to_Survey.setText(QtGui.QApplication.translate("MainWindow", "Connect to Survey", None, QtGui.QApplication.UnicodeUTF8)) + self.actionGenerate_new_Survey.setText(QtGui.QApplication.translate("MainWindow", "Generate new Survey", None, QtGui.QApplication.UnicodeUTF8)) + self.actionAutomatic_Picking.setText(QtGui.QApplication.translate("MainWindow", "Automatic Picking", None, QtGui.QApplication.UnicodeUTF8)) + self.actionPostprocessing.setText(QtGui.QApplication.translate("MainWindow", "Postprocessing", None, QtGui.QApplication.UnicodeUTF8)) + self.actionStart_FMTOMO_Simulation.setText(QtGui.QApplication.translate("MainWindow", "Start FMTOMO Simulation", None, QtGui.QApplication.UnicodeUTF8)) + self.actionVTK_Visualization.setText(QtGui.QApplication.translate("MainWindow", "VTK Visualization", None, QtGui.QApplication.UnicodeUTF8)) + self.actionSeismic_Array.setText(QtGui.QApplication.translate("MainWindow", "Seismic Array", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/pylot/core/active/fmtomo_parameters_layout.py b/pylot/core/active/fmtomo_parameters_layout.py index 285bac94..9151d4ad 100644 --- a/pylot/core/active/fmtomo_parameters_layout.py +++ b/pylot/core/active/fmtomo_parameters_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'fmtomo_parameters_layout.ui' # -# Created: Thu Jul 14 13:36:37 2016 +# Created: Mon Jul 18 11:26:32 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! diff --git a/pylot/core/active/generate_seisarray_layout.py b/pylot/core/active/generate_seisarray_layout.py index 10c297d1..79a614aa 100644 --- a/pylot/core/active/generate_seisarray_layout.py +++ b/pylot/core/active/generate_seisarray_layout.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'generate_seisarray_layout.ui' # -# Created: Thu Jul 14 13:36:38 2016 +# Created: Mon Jul 18 11:26:32 2016 # by: pyside-uic 0.2.15 running on PySide 1.2.2 # # WARNING! All changes made in this file will be lost! @@ -138,7 +138,7 @@ class Ui_generate_seisarray(object): "

Third geophone on the second receiver line with the trace ID 50 and the coordinates (10.5 [m], 20.4 [m], 30.3 [m]).

\n" "

\n" "

50 2 3 10.5 20.4 30.3

", None, QtGui.QApplication.UnicodeUTF8)) - self.radioButton_interpolatable.setText(QtGui.QApplication.translate("generate_seisarray", "interpolatable [?]", None, QtGui.QApplication.UnicodeUTF8)) + self.radioButton_interpolatable.setText(QtGui.QApplication.translate("generate_seisarray", "interpolation [?]", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_rec.setText(QtGui.QApplication.translate("generate_seisarray", "Browse", None, QtGui.QApplication.UnicodeUTF8)) self.label_src.setToolTip(QtGui.QApplication.translate("generate_seisarray", "\n" "