added SNR modification/plot
This commit is contained in:
parent
6ad78acc85
commit
8ee075c2b1
@ -110,8 +110,7 @@ class gui_control(object):
|
|||||||
self.initNewSurvey()
|
self.initNewSurvey()
|
||||||
|
|
||||||
def initNewSurvey(self):
|
def initNewSurvey(self):
|
||||||
self.survey.setArtificialPick(0, 0) # artificial pick at source origin
|
self.survey.setArtificialPick(0, 0) # artificial pick at source origin
|
||||||
surveyUtils.setDynamicFittedSNR(self.survey.getShotDict())
|
|
||||||
self.setSurveyState(True)
|
self.setSurveyState(True)
|
||||||
self.setPickState(False)
|
self.setPickState(False)
|
||||||
|
|
||||||
@ -147,7 +146,9 @@ class gui_control(object):
|
|||||||
self.survey = activeSeismoPick.Survey(obsdir, srcfile, recfile,
|
self.survey = activeSeismoPick.Survey(obsdir, srcfile, recfile,
|
||||||
useDefaultParas = True,
|
useDefaultParas = True,
|
||||||
fstart = fstart, fend = fend)
|
fstart = fstart, fend = fend)
|
||||||
self.setConnected2SurveyState(False)
|
self.setConnected2SurveyState(True)
|
||||||
|
self.seisarray = self.survey.seisarray
|
||||||
|
self.setSeisArrayState(True)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def addArrayPlot(self):
|
def addArrayPlot(self):
|
||||||
@ -313,11 +314,15 @@ class gui_control(object):
|
|||||||
self.printSeisArrayTextbox(init = False)
|
self.printSeisArrayTextbox(init = False)
|
||||||
|
|
||||||
def getPickParameters(self, ui, Picking_parameters):
|
def getPickParameters(self, ui, Picking_parameters):
|
||||||
|
self.initDynSNRplot()
|
||||||
|
self.plotDynSNR()
|
||||||
|
|
||||||
if Picking_parameters.exec_():
|
if Picking_parameters.exec_():
|
||||||
ncores = int(ui.ncores.value())
|
ncores = int(ui.ncores.value())
|
||||||
vmin = float(ui.lineEdit_vmin.text())
|
vmin = float(ui.lineEdit_vmin.text())
|
||||||
vmax = float(ui.lineEdit_vmax.text())
|
vmax = float(ui.lineEdit_vmax.text())
|
||||||
folm = float(ui.slider_folm.value())/100.
|
folm = float(ui.slider_folm.value())/100.
|
||||||
|
print('folm =', folm)
|
||||||
AIC = ui.checkBox_AIC.isChecked()
|
AIC = ui.checkBox_AIC.isChecked()
|
||||||
aicwindow = (int(ui.lineEdit_aicleft.text()), int(ui.lineEdit_aicright.text()))
|
aicwindow = (int(ui.lineEdit_aicleft.text()), int(ui.lineEdit_aicright.text()))
|
||||||
return ncores, vmin, vmax, folm, AIC, aicwindow
|
return ncores, vmin, vmax, folm, AIC, aicwindow
|
||||||
@ -358,6 +363,10 @@ class gui_control(object):
|
|||||||
ui.ncores.setMaximum(self.getMaxCPU())
|
ui.ncores.setMaximum(self.getMaxCPU())
|
||||||
self.picker_ui = ui
|
self.picker_ui = ui
|
||||||
QtCore.QObject.connect(self.picker_ui.slider_folm, QtCore.SIGNAL("valueChanged(int)"), self.refreshFolm)
|
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:
|
try:
|
||||||
ncores, vmin, vmax, folm, AIC, aicwindow = self.getPickParameters(ui, Picking_parameters)
|
ncores, vmin, vmax, folm, AIC, aicwindow = self.getPickParameters(ui, Picking_parameters)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
@ -368,12 +377,55 @@ class gui_control(object):
|
|||||||
else:
|
else:
|
||||||
HosAic = 'hos'
|
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,
|
self.survey.pickAllShots(vmin = vmin, vmax = vmax,
|
||||||
folm = folm, HosAic = HosAic,
|
folm = folm, HosAic = HosAic,
|
||||||
aicwindow = aicwindow, cores = ncores)
|
aicwindow = aicwindow, cores = ncores)
|
||||||
|
QtGui.qApp.processEvents() # test
|
||||||
self.setPickState(True)
|
self.setPickState(True)
|
||||||
self.printSurveyTextbox(init = False)
|
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):
|
def startFMTOMO(self):
|
||||||
if not self.checkSurveyState():
|
if not self.checkSurveyState():
|
||||||
self.printDialogMessage('No Survey defined.')
|
self.printDialogMessage('No Survey defined.')
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'asp3d_layout.ui'
|
# 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
|
# by: pyside-uic 0.2.15 running on PySide 1.2.2
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'fmtomo_parameters_layout.ui'
|
# 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
|
# by: pyside-uic 0.2.15 running on PySide 1.2.2
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'generate_seisarray_layout.ui'
|
# 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
|
# by: pyside-uic 0.2.15 running on PySide 1.2.2
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'generate_survey_layout.ui'
|
# 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
|
# by: pyside-uic 0.2.15 running on PySide 1.2.2
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
@ -12,7 +12,7 @@ from PySide import QtCore, QtGui
|
|||||||
class Ui_generate_survey(object):
|
class Ui_generate_survey(object):
|
||||||
def setupUi(self, generate_survey):
|
def setupUi(self, generate_survey):
|
||||||
generate_survey.setObjectName("generate_survey")
|
generate_survey.setObjectName("generate_survey")
|
||||||
generate_survey.resize(382, 211)
|
generate_survey.resize(382, 220)
|
||||||
icon = QtGui.QIcon()
|
icon = QtGui.QIcon()
|
||||||
icon.addPixmap(QtGui.QPixmap("../asp3d_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
icon.addPixmap(QtGui.QPixmap("../asp3d_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
generate_survey.setWindowIcon(icon)
|
generate_survey.setWindowIcon(icon)
|
||||||
@ -50,6 +50,11 @@ class Ui_generate_survey(object):
|
|||||||
self.verticalLayout_2.addLayout(self.gridLayout)
|
self.verticalLayout_2.addLayout(self.gridLayout)
|
||||||
self.verticalLayout = QtGui.QVBoxLayout()
|
self.verticalLayout = QtGui.QVBoxLayout()
|
||||||
self.verticalLayout.setObjectName("verticalLayout")
|
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 = QtGui.QLabel(generate_survey)
|
||||||
self.label.setObjectName("label")
|
self.label.setObjectName("label")
|
||||||
self.verticalLayout.addWidget(self.label)
|
self.verticalLayout.addWidget(self.label)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'generate_survey_layout_minimal.ui'
|
# 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
|
# by: pyside-uic 0.2.15 running on PySide 1.2.2
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'picking_parameters_layout.ui'
|
# 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
|
# by: pyside-uic 0.2.15 running on PySide 1.2.2
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
@ -12,10 +12,10 @@ from PySide import QtCore, QtGui
|
|||||||
class Ui_picking_parameters(object):
|
class Ui_picking_parameters(object):
|
||||||
def setupUi(self, picking_parameters):
|
def setupUi(self, picking_parameters):
|
||||||
picking_parameters.setObjectName("picking_parameters")
|
picking_parameters.setObjectName("picking_parameters")
|
||||||
picking_parameters.resize(321, 254)
|
picking_parameters.resize(400, 550)
|
||||||
picking_parameters.setMinimumSize(QtCore.QSize(0, 0))
|
picking_parameters.setMinimumSize(QtCore.QSize(0, 550))
|
||||||
self.verticalLayout_3 = QtGui.QVBoxLayout(picking_parameters)
|
self.verticalLayout_4 = QtGui.QVBoxLayout(picking_parameters)
|
||||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||||
self.label_7 = QtGui.QLabel(picking_parameters)
|
self.label_7 = QtGui.QLabel(picking_parameters)
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
@ -28,7 +28,7 @@ class Ui_picking_parameters(object):
|
|||||||
font.setBold(True)
|
font.setBold(True)
|
||||||
self.label_7.setFont(font)
|
self.label_7.setFont(font)
|
||||||
self.label_7.setObjectName("label_7")
|
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 = QtGui.QHBoxLayout()
|
||||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||||
self.label = QtGui.QLabel(picking_parameters)
|
self.label = QtGui.QLabel(picking_parameters)
|
||||||
@ -45,7 +45,7 @@ class Ui_picking_parameters(object):
|
|||||||
self.ncores.setMaximum(10000)
|
self.ncores.setMaximum(10000)
|
||||||
self.ncores.setObjectName("ncores")
|
self.ncores.setObjectName("ncores")
|
||||||
self.horizontalLayout.addWidget(self.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 = QtGui.QHBoxLayout()
|
||||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||||
self.verticalLayout_2 = QtGui.QVBoxLayout()
|
self.verticalLayout_2 = QtGui.QVBoxLayout()
|
||||||
@ -78,7 +78,7 @@ class Ui_picking_parameters(object):
|
|||||||
self.lineEdit_vmax.setObjectName("lineEdit_vmax")
|
self.lineEdit_vmax.setObjectName("lineEdit_vmax")
|
||||||
self.verticalLayout.addWidget(self.lineEdit_vmax)
|
self.verticalLayout.addWidget(self.lineEdit_vmax)
|
||||||
self.horizontalLayout_3.addLayout(self.verticalLayout)
|
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 = QtGui.QHBoxLayout()
|
||||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||||
self.label_4 = QtGui.QLabel(picking_parameters)
|
self.label_4 = QtGui.QLabel(picking_parameters)
|
||||||
@ -110,7 +110,7 @@ class Ui_picking_parameters(object):
|
|||||||
self.label_folm.setObjectName("label_folm")
|
self.label_folm.setObjectName("label_folm")
|
||||||
self.horizontalLayout_2.addWidget(self.label_folm)
|
self.horizontalLayout_2.addWidget(self.label_folm)
|
||||||
self.horizontalLayout_4.addLayout(self.horizontalLayout_2)
|
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 = QtGui.QHBoxLayout()
|
||||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||||
self.label_5 = QtGui.QLabel(picking_parameters)
|
self.label_5 = QtGui.QLabel(picking_parameters)
|
||||||
@ -126,7 +126,7 @@ class Ui_picking_parameters(object):
|
|||||||
self.checkBox_AIC.setChecked(True)
|
self.checkBox_AIC.setChecked(True)
|
||||||
self.checkBox_AIC.setObjectName("checkBox_AIC")
|
self.checkBox_AIC.setObjectName("checkBox_AIC")
|
||||||
self.horizontalLayout_5.addWidget(self.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 = QtGui.QHBoxLayout()
|
||||||
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
||||||
self.label_6 = QtGui.QLabel(picking_parameters)
|
self.label_6 = QtGui.QLabel(picking_parameters)
|
||||||
@ -148,12 +148,67 @@ class Ui_picking_parameters(object):
|
|||||||
self.lineEdit_aicright.setObjectName("lineEdit_aicright")
|
self.lineEdit_aicright.setObjectName("lineEdit_aicright")
|
||||||
self.horizontalLayout_7.addWidget(self.lineEdit_aicright)
|
self.horizontalLayout_7.addWidget(self.lineEdit_aicright)
|
||||||
self.horizontalLayout_6.addLayout(self.horizontalLayout_7)
|
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 = QtGui.QDialogButtonBox(picking_parameters)
|
||||||
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
||||||
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
|
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
|
||||||
self.buttonBox.setObjectName("buttonBox")
|
self.buttonBox.setObjectName("buttonBox")
|
||||||
self.verticalLayout_3.addWidget(self.buttonBox)
|
self.verticalLayout_4.addWidget(self.buttonBox)
|
||||||
|
|
||||||
self.retranslateUi(picking_parameters)
|
self.retranslateUi(picking_parameters)
|
||||||
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), picking_parameters.accept)
|
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.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.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.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.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.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))
|
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))
|
"(only if AIC checked)", None, QtGui.QApplication.UnicodeUTF8))
|
||||||
self.lineEdit_aicleft.setText(QtGui.QApplication.translate("picking_parameters", "15", 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.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))
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
def readParameters(parfile, parameter):
|
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
|
:type p2: float
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
import numpy as np
|
|
||||||
minSNR = 2.5
|
minSNR = 2.5
|
||||||
# fit_fn = fitSNR4dist(shot_dict)
|
# 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 shot in shot_dict.values():
|
||||||
for traceID in shot.getTraceIDlist(): ### IMPROVE
|
for traceID in shot.getTraceIDlist(): ### IMPROVE
|
||||||
dist = shot.getDistance(traceID) + shiftdist
|
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)
|
shot.setSNRthreshold(traceID, minSNR)
|
||||||
else:
|
else:
|
||||||
shot.setSNRthreshold(traceID, snrthreshold)
|
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):
|
def snr_fit_func(fit_fn, dist, shiftSNR):
|
||||||
import numpy as np
|
|
||||||
snrthreshold = (1 / (fit_fn(dist) ** 2)) - shiftSNR * np.exp(-0.05 * dist)
|
snrthreshold = (1 / (fit_fn(dist) ** 2)) - shiftSNR * np.exp(-0.05 * dist)
|
||||||
return snrthreshold
|
return snrthreshold
|
||||||
|
|
||||||
|
def get_fit_fn(p1, p2):
|
||||||
|
return np.poly1d([p1, p2])
|
||||||
|
|
||||||
def setConstantSNR(shot_dict, snrthreshold=2.5):
|
def setConstantSNR(shot_dict, snrthreshold=2.5):
|
||||||
"""
|
"""
|
||||||
Set a constant SNR value to all Seismicshots in a dictionary (e.g. survey.getShotDict()).
|
Set a constant SNR value to all Seismicshots in a dictionary (e.g. survey.getShotDict()).
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'vtk_tools_layout.ui'
|
# 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
|
# by: pyside-uic 0.2.15 running on PySide 1.2.2
|
||||||
#
|
#
|
||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
Loading…
Reference in New Issue
Block a user