[add] wadaticheck added to widget (problem:
picking weights showing wadati/jk check will be lost on saving/loading XML)
This commit is contained in:
parent
0e650dfb75
commit
47a79c7660
11
QtPyLoT.py
11
QtPyLoT.py
@ -79,7 +79,7 @@ from pylot.core.util.event import Event
|
||||
from pylot.core.io.location import create_creation_info, create_event
|
||||
from pylot.core.util.widgets import FilterOptionsDialog, NewEventDlg, \
|
||||
WaveformWidget, WaveformWidgetPG, PropertiesDlg, HelpForm, createAction, PickDlg, \
|
||||
getDataType, ComparisonWidget, TuneAutopicker, PylotParaBox, AutoPickDlg, JackknifeWidget, AutoPickWidget
|
||||
getDataType, ComparisonWidget, TuneAutopicker, PylotParaBox, AutoPickDlg, CanvasWidget, AutoPickWidget
|
||||
from pylot.core.util.map_projection import map_projection
|
||||
from pylot.core.util.structure import DATASTRUCTURE
|
||||
from pylot.core.util.thread import Thread, Worker
|
||||
@ -1065,6 +1065,8 @@ class MainWindow(QMainWindow):
|
||||
if ma_props[ma]:
|
||||
for picks in ma_props[ma].values():
|
||||
for phasename, pick in picks.items():
|
||||
if not type(pick) in [dict, AttribDict]:
|
||||
continue
|
||||
if getQualityFromUncertainty(has_spe(pick), phaseErrors[self.getPhaseID(phasename)]) < 4:
|
||||
ma_count[ma] += 1
|
||||
|
||||
@ -2000,8 +2002,10 @@ class MainWindow(QMainWindow):
|
||||
if not event:
|
||||
continue
|
||||
event.addAutopicks(result[eventID])
|
||||
jkw = JackknifeWidget(self, self.canvas_dict_wadatijack[eventID]['jackknife'])
|
||||
jkw = CanvasWidget(self, self.canvas_dict_wadatijack[eventID]['jackknife'])
|
||||
wdw = CanvasWidget(self, self.canvas_dict_wadatijack[eventID]['wadati'])
|
||||
self.apw.add_plot_widget(jkw, 'Jackknife', eventID)
|
||||
self.apw.add_plot_widget(wdw, 'Wadati', eventID)
|
||||
self.apw.update_plots()
|
||||
self.drawPicks(picktype='auto')
|
||||
self.draw()
|
||||
@ -2126,6 +2130,7 @@ class MainWindow(QMainWindow):
|
||||
stime = self.getStime()
|
||||
|
||||
for phase in stat_picks:
|
||||
if phase == 'SPt': continue # wadati SP time
|
||||
picks = stat_picks[phase]
|
||||
if type(stat_picks[phase]) is not dict and type(stat_picks[phase]) is not AttribDict:
|
||||
return
|
||||
@ -2470,6 +2475,8 @@ class MainWindow(QMainWindow):
|
||||
if ma_props[ma]:
|
||||
for picks in ma_props[ma].values():
|
||||
for phasename, pick in picks.items():
|
||||
if not type(pick) in [dict, AttribDict]:
|
||||
continue
|
||||
if getQualityFromUncertainty(has_spe(pick), phaseErrors[self.getPhaseID(phasename)]) < 4:
|
||||
ma_count[ma] += 1
|
||||
|
||||
|
@ -81,9 +81,10 @@ def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None,
|
||||
# quality control
|
||||
# median check and jackknife on P-onset times
|
||||
jk_checked_onsets = checkPonsets(all_onsets, mdttolerance, 1, fig_dict_wadatijack)
|
||||
return jk_checked_onsets
|
||||
#return jk_checked_onsets
|
||||
# check S-P times (Wadati)
|
||||
return wadaticheck(jk_checked_onsets, wdttolerance, iplot, fig_dict_wadatijack)
|
||||
wadationsets = wadaticheck(jk_checked_onsets, wdttolerance, 1, fig_dict_wadatijack)
|
||||
return wadationsets
|
||||
|
||||
|
||||
def call_autopickstation(input_tuple):
|
||||
|
@ -618,7 +618,7 @@ def wadaticheck(pickdic, dttolerance, iplot=0, fig_dict=None):
|
||||
ii = 0
|
||||
ibad = 0
|
||||
for key in pickdic:
|
||||
if pickdic[key].has_key('SPt'):
|
||||
if 'SPt' in pickdic[key]:
|
||||
wddiff = abs(pickdic[key]['SPt'] - wdfit[ii])
|
||||
ii += 1
|
||||
# check, if deviation is larger than adjusted
|
||||
@ -662,21 +662,28 @@ def wadaticheck(pickdic, dttolerance, iplot=0, fig_dict=None):
|
||||
|
||||
# plot results
|
||||
if iplot > 0:
|
||||
plt.figure() # iplot)
|
||||
f1, = plt.plot(Ppicks, SPtimes, 'ro')
|
||||
if wfitflag == 0:
|
||||
f2, = plt.plot(Ppicks, wdfit, 'k')
|
||||
f3, = plt.plot(checkedPpicks, checkedSPtimes, 'ko')
|
||||
f4, = plt.plot(checkedPpicks, wdfit2, 'g')
|
||||
plt.title('Wadati-Diagram, %d S-P Times, Vp/Vs(raw)=%5.2f,' \
|
||||
'Vp/Vs(checked)=%5.2f' % (len(SPtimes), vpvsr, cvpvsr))
|
||||
plt.legend([f1, f2, f3, f4], ['Skipped S-Picks', 'Wadati 1',
|
||||
'Reliable S-Picks', 'Wadati 2'], loc='best')
|
||||
if fig_dict:
|
||||
fig = fig_dict['wadati']
|
||||
plt_flag = 0
|
||||
else:
|
||||
plt.title('Wadati-Diagram, %d S-P Times' % len(SPtimes))
|
||||
fig = plt.figure()
|
||||
plt_flag = 1
|
||||
ax = fig.add_subplot(111)
|
||||
ax.plot(Ppicks, SPtimes, 'ro', label='Skipped S-Picks')
|
||||
if wfitflag == 0:
|
||||
ax.plot(Ppicks, wdfit, 'k', label='Wadati 1')
|
||||
ax.plot(checkedPpicks, checkedSPtimes, 'ko', label='Reliable S-Picks')
|
||||
ax.plot(checkedPpicks, wdfit2, 'g', label='Wadati 2')
|
||||
ax.set_title('Wadati-Diagram, %d S-P Times, Vp/Vs(raw)=%5.2f,' \
|
||||
'Vp/Vs(checked)=%5.2f' % (len(SPtimes), vpvsr, cvpvsr))
|
||||
ax.legend()
|
||||
else:
|
||||
ax.set_title('Wadati-Diagram, %d S-P Times' % len(SPtimes))
|
||||
|
||||
plt.ylabel('S-P Times [s]')
|
||||
plt.xlabel('P Times [s]')
|
||||
ax.set_ylabel('S-P Times [s]')
|
||||
ax.set_xlabel('P Times [s]')
|
||||
if plt_flag:
|
||||
fig.show()
|
||||
|
||||
return checkedonsets
|
||||
|
||||
|
@ -1701,7 +1701,7 @@ class PickDlg(QDialog):
|
||||
else:
|
||||
ylims = self.getPlotWidget().getYLims()
|
||||
if self.getPicks(picktype):
|
||||
if phase is not None:
|
||||
if phase is not None and not phase == 'SPt':
|
||||
if (type(self.getPicks(picktype)[phase]) is dict
|
||||
or type(self.getPicks(picktype)[phase]) is AttribDict):
|
||||
picks = self.getPicks(picktype)[phase]
|
||||
@ -2012,7 +2012,7 @@ class PhasePlotWidget(FigureCanvas):
|
||||
super(PhasePlotWidget, self).__init__(self.fig)
|
||||
|
||||
|
||||
class JackknifeWidget(QWidget):
|
||||
class CanvasWidget(QWidget):
|
||||
'''
|
||||
'''
|
||||
|
||||
@ -2152,6 +2152,8 @@ class AutoPickWidget(QWidget):
|
||||
eventlist = [eventlist]
|
||||
tooltip=''
|
||||
for index, event in enumerate(eventlist):
|
||||
if not event:
|
||||
continue
|
||||
tooltip += '{}'.format(event.pylot_id)
|
||||
if not index + 1 == len(eventlist):
|
||||
tooltip += '\n'
|
||||
@ -2167,6 +2169,8 @@ class AutoPickWidget(QWidget):
|
||||
for rb in self.rb_dict.values():
|
||||
rb.setEnabled(bool)
|
||||
self.start_button.setEnabled(bool)
|
||||
self.eventbox.setEnabled(bool)
|
||||
self.button_clear.setEnabled(bool)
|
||||
|
||||
|
||||
class TuneAutopicker(QWidget):
|
||||
|
Loading…
Reference in New Issue
Block a user