Merge branch 'develop'

This commit is contained in:
Marcel Paffrath 2017-06-20 16:26:32 +02:00
commit d5a7e1f35f
7 changed files with 52 additions and 34 deletions

View File

@ -44,8 +44,8 @@ from obspy import UTCDateTime
try: try:
import pyqtgraph as pg import pyqtgraph as pg
except: except Exception as e:
print('QtPyLoT: Could not import pyqtgraph.') print('QtPyLoT: Could not import pyqtgraph. {}'.format(e))
pg = None pg = None
try: try:
@ -943,9 +943,9 @@ class MainWindow(QMainWindow):
settings = QSettings() settings = QSettings()
fbasename = self.getEventFileName() fbasename = self.getEventFileName()
exform = settings.value('data/exportFormat', 'QUAKEML') exform = settings.value('data/exportFormat', 'QUAKEML')
# try: try:
# self.get_data().applyEVTData(self.getPicks()) self.get_data().applyEVTData(self.getPicks())
# except OverwriteError: except OverwriteError:
# msgBox = QMessageBox() # msgBox = QMessageBox()
# msgBox.setText("Picks have been modified!") # msgBox.setText("Picks have been modified!")
# msgBox.setInformativeText( # msgBox.setInformativeText(
@ -955,11 +955,11 @@ class MainWindow(QMainWindow):
# msgBox.setDefaultButton(QMessageBox.Save) # msgBox.setDefaultButton(QMessageBox.Save)
# ret = msgBox.exec_() # ret = msgBox.exec_()
# if ret == QMessageBox.Save: # if ret == QMessageBox.Save:
# self.get_data().resetPicks() self.get_data().resetPicks()
# return self.saveData() return self.saveData()
# elif ret == QMessageBox.Cancel: # elif ret == QMessageBox.Cancel:
# return False # return False
# MP MP changed due to new event structure not uniquely refering to data object # MP MP changed to suppress unnecessary user prompt
try: try:
self.get_data().exportEvent(fbasename, exform) self.get_data().exportEvent(fbasename, exform)
except FormatError as e: except FormatError as e:
@ -985,7 +985,6 @@ class MainWindow(QMainWindow):
# export to given path # export to given path
self.get_data().exportEvent(fbasename, exform) self.get_data().exportEvent(fbasename, exform)
# all files save (ui clean) # all files save (ui clean)
self.setDirty(False)
self.update_status('Picks saved as %s' % (fbasename + exform)) self.update_status('Picks saved as %s' % (fbasename + exform))
self.disableSaveManualPicksAction() self.disableSaveManualPicksAction()
return True return True

View File

@ -130,21 +130,35 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
print("!!No source parameter estimation possible!!") print("!!No source parameter estimation possible!!")
print(" !!! ") print(" !!! ")
datapath = datastructure.expandDataPath() if not input_dict:
if fnames == 'None' and not parameter.hasParam('eventID'): # started in production mode
# multiple event processing datapath = datastructure.expandDataPath()
# read each event in database if fnames == 'None' and not parameter['eventID']:
events = [events for events in glob.glob(os.path.join(datapath, '*')) if os.path.isdir(events)] # multiple event processing
elif fnames == 'None' and parameter.hasParam('eventID'): # read each event in database
# single event processing events = [events for events in glob.glob(os.path.join(datapath, '*')) if os.path.isdir(events)]
events = glob.glob(os.path.join(datapath, parameter.get('eventID'))) elif fnames == 'None' and parameter['eventID']:
# single event processing
events = glob.glob(os.path.join(datapath, parameter.get('eventID')))
else:
# autoPyLoT was initialized from GUI
events = []
events.append(eventid)
evID = os.path.split(eventid)[-1]
locflag = 2
else: else:
# autoPyLoT was initialized from GUI # started in tune mode
datapath = os.path.join(parameter['rootpath'],
parameter['datapath'])
events = [] events = []
events.append(eventid) events.append(os.path.join(datapath,
evID = os.path.split(eventid)[-1] parameter['database'],
locflag = 2 parameter['eventID']))
if not events:
print('autoPyLoT: No events given. Return!')
return
for event in events: for event in events:
if fnames == 'None': if fnames == 'None':
data.setWFData(glob.glob(os.path.join(datapath, event, '*'))) data.setWFData(glob.glob(os.path.join(datapath, event, '*')))
@ -385,9 +399,5 @@ if __name__ == "__main__":
cla = parser.parse_args() cla = parser.parse_args()
try: picks = autoPyLoT(inputfile=str(cla.inputfile), fnames=str(cla.fnames),
picks, mainFig = autoPyLoT(inputfile=str(cla.inputfile), fnames=str(cla.fnames), eventid=str(cla.eventid), savepath=str(cla.spath))
eventid=str(cla.eventid), savepath=str(cla.spath))
except ValueError:
print("autoPyLoT was running in production mode.")

View File

@ -1 +1 @@
1b17-dirty ab97-dirty

View File

@ -275,7 +275,11 @@ defaults = {'rootpath': {'type': str,
'wdttolerance': {'type': float, 'wdttolerance': {'type': float,
'tooltip': 'maximum allowed deviation from Wadati-diagram', 'tooltip': 'maximum allowed deviation from Wadati-diagram',
'value': 1.0} 'value': 1.0},
'localMag': {'type': float,
'tooltip': 'maximum allowed deviation from Wadati-diagram',
'value': 1.0}
} }
settings_main={ settings_main={
@ -297,7 +301,8 @@ settings_main={
'smoment':[ 'smoment':[
'vp', 'vp',
'rho', 'rho',
'Qp'], 'Qp',
'localMag'],
'pick':[ 'pick':[
'extent', 'extent',
'pstart', 'pstart',

View File

@ -239,8 +239,8 @@ class AICPicker(AutoPicker):
fig = self.fig fig = self.fig
ax = fig.add_subplot(111) ax = fig.add_subplot(111)
x = self.Data[0].data x = self.Data[0].data
ax.plot(self.Tcf, x / max(x), 'k', legend='(HOS-/AR-) Data') ax.plot(self.Tcf, x / max(x), 'k', label='(HOS-/AR-) Data')
ax.plot(self.Tcf, aicsmooth / max(aicsmooth), 'r', legend='Smoothed AIC-CF') ax.plot(self.Tcf, aicsmooth / max(aicsmooth), 'r', label='Smoothed AIC-CF')
ax.legend() ax.legend()
ax.set_xlabel('Time [s] since %s' % self.Data[0].stats.starttime) ax.set_xlabel('Time [s] since %s' % self.Data[0].stats.starttime)
ax.set_yticks([]) ax.set_yticks([])

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys import sys, os
from PySide.QtCore import QThread, Signal, Qt from PySide.QtCore import QThread, Signal, Qt
from PySide.QtGui import QDialog, QProgressBar, QLabel, QHBoxLayout from PySide.QtGui import QDialog, QProgressBar, QLabel, QHBoxLayout
@ -64,7 +64,9 @@ class Thread(QThread):
except Exception as e: except Exception as e:
self._executed = False self._executed = False
self._executedError = e self._executedError = e
print(e) exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
print('Exception: {}, file: {}, line: {}'.format(exc_type, fname, exc_tb.tb_lineno))
sys.stdout = sys.__stdout__ sys.stdout = sys.__stdout__
def __del__(self): def __del__(self):

View File

@ -2228,6 +2228,8 @@ class AutoPickParaBox(QtGui.QWidget):
if type(box) == QtGui.QLineEdit: if type(box) == QtGui.QLineEdit:
box.setText(str(value)) box.setText(str(value))
elif type(box) == QtGui.QSpinBox or type(box) == QtGui.QDoubleSpinBox: elif type(box) == QtGui.QSpinBox or type(box) == QtGui.QDoubleSpinBox:
if not value:
value = 0.
box.setValue(value) box.setValue(value)
elif type(box) == QtGui.QCheckBox: elif type(box) == QtGui.QCheckBox:
if value == 'True': if value == 'True':