Adding Bugfix from port-to-py3 port for incorrect picksdict to develop branch

This commit is contained in:
Jeldrik Gaal 2021-09-05 09:26:59 +02:00
parent 30eb8fbbbd
commit 7f9d240d02
3 changed files with 23 additions and 20 deletions

View File

@ -2866,9 +2866,6 @@ class MainWindow(QMainWindow):
event.pylot_autopicks = {} event.pylot_autopicks = {}
picksdict = picksdict_from_picks(evt=self.get_data().get_evt_data()) picksdict = picksdict_from_picks(evt=self.get_data().get_evt_data())
event.addPicks(picksdict['manual']) event.addPicks(picksdict['manual'])
if picksdict['auto'] == {}:
event.addAutopicks(picksdict)
else:
event.addAutopicks(picksdict['auto']) event.addAutopicks(picksdict['auto'])

View File

@ -220,7 +220,7 @@ class Data(object):
def replacePicks(self, event, picktype): def replacePicks(self, event, picktype):
""" """
Replace own picks with the one in event Replace picks in event with own picks
:param event: Event that supplies information for comparison :param event: Event that supplies information for comparison
:type event: pylot.core.util.event.Event :type event: pylot.core.util.event.Event
:param picktype: 'auto' or 'manual' picks :param picktype: 'auto' or 'manual' picks
@ -228,19 +228,22 @@ class Data(object):
:return: :return:
:rtype: None :rtype: None
""" """
checkflag = 0 checkflag = 1
picks = event.picks picks = event.picks
# remove existing picks # remove existing picks
for j, pick in reversed(list(enumerate(picks))): for j, pick in reversed(list(enumerate(picks))):
try: try:
if picktype in str(pick.method_id.id): if picktype in str(pick.method_id.id):
picks.pop(j) picks.pop(j)
checkflag = 1 checkflag = 2
except AttributeError as e: except AttributeError as e:
msg = '{}'.format(e) msg = '{}'.format(e)
print(e) print(e)
checkflag = 0 checkflag = 0
if checkflag: if checkflag > 0:
if checkflag == 1:
print("Write new %s picks to catalog." % picktype)
if checkflag == 2:
print("Found %s pick(s), remove them and append new picks to catalog." % picktype) print("Found %s pick(s), remove them and append new picks to catalog." % picktype)
# append new picks # append new picks
@ -269,8 +272,11 @@ class Data(object):
raise FormatError(errmsg) raise FormatError(errmsg)
if hasattr(self.get_evt_data(), 'notes'): if hasattr(self.get_evt_data(), 'notes'):
try:
with open(os.path.join(os.path.dirname(fnout), 'notes.txt'), 'w') as notes_file: with open(os.path.join(os.path.dirname(fnout), 'notes.txt'), 'w') as notes_file:
notes_file.write(self.get_evt_data().notes) notes_file.write(self.get_evt_data().notes)
except Exception as e:
print('Warning: Could not save notes.txt: ', str(e))
# check for already existing xml-file # check for already existing xml-file
if fnext == '.xml': if fnext == '.xml':
@ -537,7 +543,7 @@ class Data(object):
def setEvtData(self, event): def setEvtData(self, event):
self.evtdata = event self.evtdata = event
def applyEVTData(self, data, typ='pick', authority_id='rub'): def applyEVTData(self, data, typ='pick'):
""" """
Either takes an `obspy.core.event.Event` object and applies all new Either takes an `obspy.core.event.Event` object and applies all new
information on the event to the actual data if typ is 'event or information on the event to the actual data if typ is 'event or

View File

@ -244,13 +244,13 @@ def picksdict_from_picks(evt):
else: else:
filter_id = None filter_id = None
try: try:
picker = str(pick.method_id) pick_method = str(pick.method_id)
if picker.startswith('smi:local/'): if pick_method.startswith('smi:local/'):
picker = picker.split('smi:local/')[1] pick_method = pick_method.split('smi:local/')[1]
except IndexError: except IndexError:
picker = 'manual' # MP MP TODO maybe improve statement pick_method = 'manual' # MP MP TODO maybe improve statement
if picker == 'None': if pick_method == 'None':
picker = 'manual' pick_method = 'manual'
try: try:
#onsets = picksdict[picker][station] #onsets = picksdict[picker][station]
onsets = picksdict[station] onsets = picksdict[station]
@ -289,7 +289,7 @@ def picksdict_from_picks(evt):
phase['weight'] = weight phase['weight'] = weight
phase['channel'] = channel phase['channel'] = channel
phase['network'] = network phase['network'] = network
phase['picker'] = picker phase['picker'] = pick_method
try: try:
if pick.polarity == 'positive': if pick.polarity == 'positive':
phase['fm'] = 'U' phase['fm'] = 'U'
@ -303,7 +303,7 @@ def picksdict_from_picks(evt):
phase['filter_id'] = filter_id if filter_id is not None else '' phase['filter_id'] = filter_id if filter_id is not None else ''
onsets[pick.phase_hint] = phase.copy() onsets[pick.phase_hint] = phase.copy()
picksdict[station] = onsets.copy() picksdict[pick_method][station] = onsets.copy()
return picksdict return picksdict