Merge branch 'develop'

[bugfixes] bringing bugfixes into master
This commit is contained in:
Sebastian Wehling-Benatelli 2016-09-08 09:56:57 +02:00
commit fd8abd18b5
3 changed files with 56 additions and 20 deletions

View File

@ -495,18 +495,18 @@ class MainWindow(QMainWindow):
fname = str(action.data().toString()) fname = str(action.data().toString())
return fname return fname
def get_fnames(self): def get_fnames(self, type='manual'):
return self.fname return self.fname[type]
def set_fname(self, fname, type): def set_fname(self, fname, type):
if self.get_fnames()[type] is not None: if self.get_fnames(type) is not None:
self.add_recentfile(self.get_fnames()) self.add_recentfile(self.get_fnames(type))
self.fname[type] = fname self.fname[type] = fname
def getEventFileName(self): def getEventFileName(self, type='manual'):
if self.get_fnames() is None: if self.get_fnames(type) is None:
self.set_fname(self.get_data().getEventFileName()) self.set_fname(self.get_data().getEventFileName(), type)
return self.get_fnames() return self.get_fnames(type)
def saveData(self): def saveData(self):
@ -553,9 +553,26 @@ class MainWindow(QMainWindow):
fbasename, exform = getSavePath(e) fbasename, exform = getSavePath(e)
except AttributeError as e: except AttributeError as e:
fbasename, exform = getSavePath(e) fbasename, exform = getSavePath(e)
# catch all possible cases before going on
if not fbasename: if not fbasename:
return False return False
# warn overwriting
elif os.path.exists(fbasename + exform):
ans = QMessageBox.question(self, self.tr("Overwrite file..."),
self.tr("File already exists: {0}\n".format(fbasename + exform) + \
"Overwrite file anyway?"),
QMessageBox.Cancel, QMessageBox.Yes | QMessageBox.No,
QMessageBox.Cancel)
# only negative answers have to be caught
if ans == QMessageBox.No:
self.saveData()
elif ans == QMessageBox.Cancel:
return False
# export to given path
self.get_data().exportEvent(fbasename, exform) self.get_data().exportEvent(fbasename, exform)
# all files save (ui clean)
self.setDirty(False) self.setDirty(False)
self.update_status('Event saved as %s' % (fbasename + exform)) self.update_status('Event saved as %s' % (fbasename + exform))
return True return True

View File

@ -8,7 +8,7 @@ import os
import pwd import pwd
import re import re
import subprocess import subprocess
from obspy.core import UTCDateTime from obspy import UTCDateTime, read
def _pickle_method(m): def _pickle_method(m):
@ -354,6 +354,29 @@ def prepTimeAxis(stime, trace):
return time_ax return time_ax
def find_horizontals(data):
"""
takes `obspy.core.stream.Stream` object and returns a list containing the component labels of the horizontal components available
:param data: waveform data
:type data: `obspy.core.stream.Stream`
:return: components list
:rtype: list
..example::
>>> st = read()
>>> find_horizontals(st)
[u'N', u'E']
"""
rval = []
for tr in data:
if tr.stats.channel[-1].upper() in ['Z', '3']:
continue
else:
rval.append(tr.stats.channel[-1].upper())
return rval
def scaleWFData(data, factor=None, components='all'): def scaleWFData(data, factor=None, components='all'):
""" """
produce scaled waveforms from given waveform data and a scaling factor, produce scaled waveforms from given waveform data and a scaling factor,

View File

@ -33,7 +33,7 @@ from pylot.core.pick.compare import Comparison
from pylot.core.util.defaults import OUTPUTFORMATS, FILTERDEFAULTS, LOCTOOLS, \ from pylot.core.util.defaults import OUTPUTFORMATS, FILTERDEFAULTS, LOCTOOLS, \
COMPPOSITION_MAP COMPPOSITION_MAP
from pylot.core.util.utils import prepTimeAxis, getGlobalTimes, scaleWFData, \ from pylot.core.util.utils import prepTimeAxis, getGlobalTimes, scaleWFData, \
demeanTrace, isSorted, findComboBoxIndex, clims demeanTrace, isSorted, findComboBoxIndex, clims, find_horizontals
def getDataType(parent): def getDataType(parent):
@ -779,7 +779,7 @@ class PickDlg(QDialog):
trace = selectTrace(trace, '12') trace = selectTrace(trace, '12')
if trace: if trace:
wfdata.append(trace) wfdata.append(trace)
elif component == 'Z': else:
wfdata = self.getWFData().select(component=component) wfdata = self.getWFData().select(component=component)
return wfdata return wfdata
@ -898,14 +898,9 @@ class PickDlg(QDialog):
inoise = getnoisewin(t, ini_pick, noise_win, gap_win) inoise = getnoisewin(t, ini_pick, noise_win, gap_win)
trace = demeanTrace(trace, inoise) trace = demeanTrace(trace, inoise)
# account for non-oriented horizontal waveforms # scale waveform for plotting
try: horiz_comp = find_horizontals(data)
horiz_comp = ('n', 'e') data = scaleWFData(data, noiselevel * 2.5, horiz_comp)
data = scaleWFData(data, noiselevel * 2.5, horiz_comp)
except IndexError as e:
print('warning: {0}'.format(e))
horiz_comp = ('1', '2')
data = scaleWFData(data, noiselevel * 2.5, horiz_comp)
x_res = getResolutionWindow(snr) x_res = getResolutionWindow(snr)
@ -942,7 +937,8 @@ class PickDlg(QDialog):
# copy and filter data for earliest and latest possible picks # copy and filter data for earliest and latest possible picks
wfdata = self.getWFData().copy().select(channel=channel) wfdata = self.getWFData().copy().select(channel=channel)
wfdata.filter(**filteroptions) if filteroptions:
wfdata.filter(**filteroptions)
# get earliest and latest possible pick and symmetric pick error # get earliest and latest possible pick and symmetric pick error
[epp, lpp, spe] = earllatepicker(wfdata, 1.5, (5., .5, 2.), pick) [epp, lpp, spe] = earllatepicker(wfdata, 1.5, (5., .5, 2.), pick)