Merge branch 'develop'
This commit is contained in:
		
						commit
						d5a7e1f35f
					
				
							
								
								
									
										17
									
								
								QtPyLoT.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								QtPyLoT.py
									
									
									
									
									
								
							@ -44,8 +44,8 @@ from obspy import UTCDateTime
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    import pyqtgraph as pg
 | 
			
		||||
except:
 | 
			
		||||
    print('QtPyLoT: Could not import pyqtgraph.')
 | 
			
		||||
except Exception as e:
 | 
			
		||||
    print('QtPyLoT: Could not import pyqtgraph. {}'.format(e))
 | 
			
		||||
    pg = None
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
@ -943,9 +943,9 @@ class MainWindow(QMainWindow):
 | 
			
		||||
        settings = QSettings()
 | 
			
		||||
        fbasename = self.getEventFileName()
 | 
			
		||||
        exform = settings.value('data/exportFormat', 'QUAKEML')
 | 
			
		||||
        # try:
 | 
			
		||||
        #     self.get_data().applyEVTData(self.getPicks())
 | 
			
		||||
        # except OverwriteError:
 | 
			
		||||
        try:
 | 
			
		||||
            self.get_data().applyEVTData(self.getPicks())
 | 
			
		||||
        except OverwriteError:
 | 
			
		||||
        #     msgBox = QMessageBox()
 | 
			
		||||
        #     msgBox.setText("Picks have been modified!")
 | 
			
		||||
        #     msgBox.setInformativeText(
 | 
			
		||||
@ -955,11 +955,11 @@ class MainWindow(QMainWindow):
 | 
			
		||||
        #     msgBox.setDefaultButton(QMessageBox.Save)
 | 
			
		||||
        #     ret = msgBox.exec_()
 | 
			
		||||
        #     if ret == QMessageBox.Save:
 | 
			
		||||
        #         self.get_data().resetPicks()
 | 
			
		||||
        #         return self.saveData()
 | 
			
		||||
              self.get_data().resetPicks()
 | 
			
		||||
              return self.saveData()
 | 
			
		||||
        #     elif ret == QMessageBox.Cancel:
 | 
			
		||||
        #         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:
 | 
			
		||||
            self.get_data().exportEvent(fbasename, exform)
 | 
			
		||||
        except FormatError as e:
 | 
			
		||||
@ -985,7 +985,6 @@ class MainWindow(QMainWindow):
 | 
			
		||||
        # export to given path
 | 
			
		||||
        self.get_data().exportEvent(fbasename, exform)
 | 
			
		||||
        # all files save (ui clean)
 | 
			
		||||
        self.setDirty(False)
 | 
			
		||||
        self.update_status('Picks saved as %s' % (fbasename + exform))
 | 
			
		||||
        self.disableSaveManualPicksAction()
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										46
									
								
								autoPyLoT.py
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								autoPyLoT.py
									
									
									
									
									
								
							@ -130,21 +130,35 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
 | 
			
		||||
            print("!!No source parameter estimation possible!!")
 | 
			
		||||
            print("                 !!!              ")
 | 
			
		||||
 | 
			
		||||
        datapath = datastructure.expandDataPath()
 | 
			
		||||
        if fnames == 'None' and not parameter.hasParam('eventID'):
 | 
			
		||||
            # multiple event processing
 | 
			
		||||
            # read each event in database
 | 
			
		||||
            events = [events for events in glob.glob(os.path.join(datapath, '*')) if os.path.isdir(events)]
 | 
			
		||||
        elif fnames == 'None' and parameter.hasParam('eventID'):
 | 
			
		||||
            # single event processing
 | 
			
		||||
            events = glob.glob(os.path.join(datapath, parameter.get('eventID')))
 | 
			
		||||
        if not input_dict:
 | 
			
		||||
            # started in production mode
 | 
			
		||||
            datapath = datastructure.expandDataPath()
 | 
			
		||||
            if fnames == 'None' and not parameter['eventID']:
 | 
			
		||||
                # multiple event processing
 | 
			
		||||
                # read each event in database
 | 
			
		||||
                events = [events for events in glob.glob(os.path.join(datapath, '*')) if os.path.isdir(events)]
 | 
			
		||||
            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:
 | 
			
		||||
            # autoPyLoT was initialized from GUI
 | 
			
		||||
            # started in tune mode
 | 
			
		||||
            datapath = os.path.join(parameter['rootpath'],
 | 
			
		||||
                                    parameter['datapath'])
 | 
			
		||||
            events = []
 | 
			
		||||
            events.append(eventid)
 | 
			
		||||
            evID = os.path.split(eventid)[-1]
 | 
			
		||||
            locflag = 2
 | 
			
		||||
            events.append(os.path.join(datapath,
 | 
			
		||||
                                       parameter['database'],
 | 
			
		||||
                                       parameter['eventID']))
 | 
			
		||||
 | 
			
		||||
        if not events:
 | 
			
		||||
            print('autoPyLoT: No events given. Return!')
 | 
			
		||||
            return
 | 
			
		||||
        
 | 
			
		||||
        for event in events:
 | 
			
		||||
            if fnames == 'None':
 | 
			
		||||
                data.setWFData(glob.glob(os.path.join(datapath, event, '*')))
 | 
			
		||||
@ -385,9 +399,5 @@ if __name__ == "__main__":
 | 
			
		||||
 | 
			
		||||
    cla = parser.parse_args()
 | 
			
		||||
    
 | 
			
		||||
    try:
 | 
			
		||||
        picks, mainFig = autoPyLoT(inputfile=str(cla.inputfile), fnames=str(cla.fnames), 
 | 
			
		||||
                                   eventid=str(cla.eventid), savepath=str(cla.spath))
 | 
			
		||||
    except ValueError:
 | 
			
		||||
        print("autoPyLoT was running in production mode.")
 | 
			
		||||
                             
 | 
			
		||||
    picks = autoPyLoT(inputfile=str(cla.inputfile), fnames=str(cla.fnames), 
 | 
			
		||||
                      eventid=str(cla.eventid), savepath=str(cla.spath))
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
1b17-dirty
 | 
			
		||||
ab97-dirty
 | 
			
		||||
 | 
			
		||||
@ -275,7 +275,11 @@ defaults = {'rootpath': {'type': str,
 | 
			
		||||
            
 | 
			
		||||
            'wdttolerance': {'type': float,
 | 
			
		||||
                             '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={
 | 
			
		||||
@ -297,7 +301,8 @@ settings_main={
 | 
			
		||||
    'smoment':[
 | 
			
		||||
        'vp',
 | 
			
		||||
        'rho',
 | 
			
		||||
        'Qp'],
 | 
			
		||||
        'Qp',
 | 
			
		||||
        'localMag'],
 | 
			
		||||
    'pick':[
 | 
			
		||||
        'extent',
 | 
			
		||||
        'pstart',
 | 
			
		||||
 | 
			
		||||
@ -239,8 +239,8 @@ class AICPicker(AutoPicker):
 | 
			
		||||
                            fig = self.fig
 | 
			
		||||
                        ax = fig.add_subplot(111)
 | 
			
		||||
                        x = self.Data[0].data
 | 
			
		||||
                        ax.plot(self.Tcf, x / max(x), 'k', legend='(HOS-/AR-) Data')
 | 
			
		||||
                        ax.plot(self.Tcf, aicsmooth / max(aicsmooth), 'r', legend='Smoothed AIC-CF')
 | 
			
		||||
                        ax.plot(self.Tcf, x / max(x), 'k', label='(HOS-/AR-) Data')
 | 
			
		||||
                        ax.plot(self.Tcf, aicsmooth / max(aicsmooth), 'r', label='Smoothed AIC-CF')
 | 
			
		||||
                        ax.legend()
 | 
			
		||||
                        ax.set_xlabel('Time [s] since %s' % self.Data[0].stats.starttime)
 | 
			
		||||
                        ax.set_yticks([])
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
import sys
 | 
			
		||||
import sys, os
 | 
			
		||||
from PySide.QtCore import QThread, Signal, Qt
 | 
			
		||||
from PySide.QtGui import QDialog, QProgressBar, QLabel, QHBoxLayout
 | 
			
		||||
 | 
			
		||||
@ -64,7 +64,9 @@ class Thread(QThread):
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            self._executed = False
 | 
			
		||||
            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__        
 | 
			
		||||
 | 
			
		||||
    def __del__(self):
 | 
			
		||||
 | 
			
		||||
@ -2228,6 +2228,8 @@ class AutoPickParaBox(QtGui.QWidget):
 | 
			
		||||
        if type(box) == QtGui.QLineEdit:
 | 
			
		||||
            box.setText(str(value))
 | 
			
		||||
        elif type(box) == QtGui.QSpinBox or type(box) == QtGui.QDoubleSpinBox:
 | 
			
		||||
            if not value:
 | 
			
		||||
                value = 0.
 | 
			
		||||
            box.setValue(value)
 | 
			
		||||
        elif type(box) == QtGui.QCheckBox:
 | 
			
		||||
            if value == 'True':
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user