[fix] made PyLoT start again
This commit is contained in:
parent
f11ffc67ff
commit
50c35d981a
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
4
.idea/misc.xml
Normal file
4
.idea/misc.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (pylot)" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/pylot.iml" filepath="$PROJECT_DIR$/.idea/pylot.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
12
.idea/pylot.iml
Normal file
12
.idea/pylot.iml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="jdk" jdkName="Python 3.9 (pylot)" jdkType="Python SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
<component name="PyDocumentationSettings">
|
||||||
|
<option name="format" value="PLAIN" />
|
||||||
|
<option name="myDocStringFormat" value="Plain" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
57
PyLoT.py
57
PyLoT.py
@ -35,18 +35,17 @@ import traceback
|
|||||||
import json
|
import json
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
matplotlib.use('Qt4Agg')
|
matplotlib.use('Qt5Agg')
|
||||||
matplotlib.rcParams['backend.qt4'] = 'PySide'
|
|
||||||
matplotlib.rcParams['savefig.dpi'] = 300
|
matplotlib.rcParams['savefig.dpi'] = 300
|
||||||
|
|
||||||
|
from PySide2 import QtGui, QtCore, QtWidgets
|
||||||
from PySide import QtGui, QtCore
|
from PySide2.QtCore import QCoreApplication, QSettings, Signal, QFile, \
|
||||||
from PySide.QtCore import QCoreApplication, QSettings, Signal, QFile, \
|
|
||||||
QFileInfo, Qt, QSize
|
QFileInfo, Qt, QSize
|
||||||
from PySide.QtGui import QMainWindow, QInputDialog, QIcon, QFileDialog, \
|
from PySide2.QtGui import QIcon, QKeySequence, QPixmap
|
||||||
QWidget, QHBoxLayout, QVBoxLayout, QStyle, QKeySequence, QLabel, QFrame, QAction, \
|
from PySide2.QtWidgets import QMainWindow, QInputDialog, QFileDialog, \
|
||||||
QDialog, QApplication, QPixmap, QMessageBox, QSplashScreen, \
|
QWidget, QHBoxLayout, QVBoxLayout, QStyle, QLabel, QFrame, QAction, \
|
||||||
QActionGroup, QListWidget, QListView, QAbstractItemView, \
|
QDialog, QErrorMessage, QApplication, QMessageBox, QSplashScreen, \
|
||||||
|
QActionGroup, QListWidget, QLineEdit, QListView, QAbstractItemView, \
|
||||||
QTreeView, QComboBox, QTabWidget, QPushButton, QGridLayout
|
QTreeView, QComboBox, QTabWidget, QPushButton, QGridLayout
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from obspy import UTCDateTime, Stream
|
from obspy import UTCDateTime, Stream
|
||||||
@ -58,9 +57,10 @@ from pylot.core.util.obspyDMT_interface import check_obspydmt_structure
|
|||||||
import pyqtgraph as pg
|
import pyqtgraph as pg
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from matplotlib.backends.backend_qt4agg import FigureCanvas
|
from matplotlib.backends.backend_qt5agg import FigureCanvas
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
|
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
|
||||||
|
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
|
||||||
from matplotlib.figure import Figure
|
from matplotlib.figure import Figure
|
||||||
|
|
||||||
from pylot.core.analysis.magnitude import LocalMagnitude, MomentMagnitude
|
from pylot.core.analysis.magnitude import LocalMagnitude, MomentMagnitude
|
||||||
@ -87,7 +87,7 @@ from pylot.core.util.widgets import FilterOptionsDialog, NewEventDlg, \
|
|||||||
PylotCanvas, WaveformWidgetPG, PropertiesDlg, HelpForm, createAction, PickDlg, \
|
PylotCanvas, WaveformWidgetPG, PropertiesDlg, HelpForm, createAction, PickDlg, \
|
||||||
ComparisonWidget, TuneAutopicker, PylotParaBox, AutoPickDlg, CanvasWidget, AutoPickWidget, \
|
ComparisonWidget, TuneAutopicker, PylotParaBox, AutoPickDlg, CanvasWidget, AutoPickWidget, \
|
||||||
CompareEventsWidget, ProgressBarWidget, AddMetadataWidget, SingleTextLineDialog
|
CompareEventsWidget, ProgressBarWidget, AddMetadataWidget, SingleTextLineDialog
|
||||||
from pylot.core.util.array_map import Array_map
|
#from pylot.core.util.array_map import Array_map
|
||||||
from pylot.core.util.structure import DATASTRUCTURE
|
from pylot.core.util.structure import DATASTRUCTURE
|
||||||
from pylot.core.util.thread import Thread, Worker
|
from pylot.core.util.thread import Thread, Worker
|
||||||
from pylot.core.util.version import get_git_version as _getVersionString
|
from pylot.core.util.version import get_git_version as _getVersionString
|
||||||
@ -581,7 +581,6 @@ class MainWindow(QMainWindow):
|
|||||||
self.autoPickMenu = self.pickMenu.addMenu(self.autopicksicon_small, 'Automatic picking')
|
self.autoPickMenu = self.pickMenu.addMenu(self.autopicksicon_small, 'Automatic picking')
|
||||||
self.autoPickMenu.setEnabled(False)
|
self.autoPickMenu.setEnabled(False)
|
||||||
|
|
||||||
|
|
||||||
autoPickActions = (self.auto_pick, self.auto_pick_local, self.auto_pick_sge)
|
autoPickActions = (self.auto_pick, self.auto_pick_local, self.auto_pick_sge)
|
||||||
|
|
||||||
self.helpMenu = self.menuBar().addMenu('&Help')
|
self.helpMenu = self.menuBar().addMenu('&Help')
|
||||||
@ -714,7 +713,6 @@ class MainWindow(QMainWindow):
|
|||||||
|
|
||||||
self.setCentralWidget(_widget)
|
self.setCentralWidget(_widget)
|
||||||
|
|
||||||
|
|
||||||
def init_wfWidget(self):
|
def init_wfWidget(self):
|
||||||
xlab = self.startTime.strftime('seconds since %Y/%m/%d %H:%M:%S (%Z)')
|
xlab = self.startTime.strftime('seconds since %Y/%m/%d %H:%M:%S (%Z)')
|
||||||
plottitle = None # "Overview: {0} components ".format(self.getComponent())
|
plottitle = None # "Overview: {0} components ".format(self.getComponent())
|
||||||
@ -760,7 +758,6 @@ class MainWindow(QMainWindow):
|
|||||||
if event.key() == QtCore.Qt.Key.Key_R:
|
if event.key() == QtCore.Qt.Key.Key_R:
|
||||||
self.reset_gain()
|
self.reset_gain()
|
||||||
|
|
||||||
|
|
||||||
def keyReleaseEvent(self, event):
|
def keyReleaseEvent(self, event):
|
||||||
if event.key() == QtCore.Qt.Key.Key_Control:
|
if event.key() == QtCore.Qt.Key.Key_Control:
|
||||||
self._ctrl = False
|
self._ctrl = False
|
||||||
@ -780,7 +777,7 @@ class MainWindow(QMainWindow):
|
|||||||
def modify_gain(self, direction, factor):
|
def modify_gain(self, direction, factor):
|
||||||
assert (direction in ['+', '-']), 'unknown direction'
|
assert (direction in ['+', '-']), 'unknown direction'
|
||||||
if self._ctrl:
|
if self._ctrl:
|
||||||
factor = factor**3
|
factor = factor ** 3
|
||||||
if direction == '+':
|
if direction == '+':
|
||||||
self.gain *= factor
|
self.gain *= factor
|
||||||
elif direction == '-':
|
elif direction == '-':
|
||||||
@ -932,7 +929,6 @@ class MainWindow(QMainWindow):
|
|||||||
|
|
||||||
self.recentProjectsMenu.addAction(action)
|
self.recentProjectsMenu.addAction(action)
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def inputs(self):
|
def inputs(self):
|
||||||
return self._inputs
|
return self._inputs
|
||||||
@ -970,7 +966,7 @@ class MainWindow(QMainWindow):
|
|||||||
if not sld.exec_():
|
if not sld.exec_():
|
||||||
return
|
return
|
||||||
fext = sld.lineEdit.text()
|
fext = sld.lineEdit.text()
|
||||||
#fext = '.xml'
|
# fext = '.xml'
|
||||||
for event in events:
|
for event in events:
|
||||||
path = event.path
|
path = event.path
|
||||||
eventname = path.split('/')[-1] # or event.pylot_id
|
eventname = path.split('/')[-1] # or event.pylot_id
|
||||||
@ -1002,7 +998,7 @@ class MainWindow(QMainWindow):
|
|||||||
data_new = Data(self, evtdata=str(fname))
|
data_new = Data(self, evtdata=str(fname))
|
||||||
# MP MP commented because adding several picks might cause inconsistencies
|
# MP MP commented because adding several picks might cause inconsistencies
|
||||||
data = data_new
|
data = data_new
|
||||||
#data += data_new
|
# data += data_new
|
||||||
except ValueError:
|
except ValueError:
|
||||||
qmb = QMessageBox(self, icon=QMessageBox.Question,
|
qmb = QMessageBox(self, icon=QMessageBox.Question,
|
||||||
text='Warning: Missmatch in event identifiers {} and {}. Continue?'.format(
|
text='Warning: Missmatch in event identifiers {} and {}. Continue?'.format(
|
||||||
@ -1151,7 +1147,8 @@ class MainWindow(QMainWindow):
|
|||||||
eventlist_file = os.path.join(basepath, 'eventlist.txt')
|
eventlist_file = os.path.join(basepath, 'eventlist.txt')
|
||||||
if os.path.isfile(eventlist_file):
|
if os.path.isfile(eventlist_file):
|
||||||
with open(eventlist_file, 'r') as infile:
|
with open(eventlist_file, 'r') as infile:
|
||||||
eventlist_subset = [os.path.join(basepath, filename.split('\n')[0]) for filename in infile.readlines()]
|
eventlist_subset = [os.path.join(basepath, filename.split('\n')[0]) for filename in
|
||||||
|
infile.readlines()]
|
||||||
msg = 'Found file "eventlist.txt" in database path. WILL ONLY USE SELECTED EVENTS out of {} events ' \
|
msg = 'Found file "eventlist.txt" in database path. WILL ONLY USE SELECTED EVENTS out of {} events ' \
|
||||||
'contained in this subset'
|
'contained in this subset'
|
||||||
print(msg.format(len(eventlist_subset)))
|
print(msg.format(len(eventlist_subset)))
|
||||||
@ -1393,7 +1390,7 @@ class MainWindow(QMainWindow):
|
|||||||
moment_magnitude = event.magnitudes[0]
|
moment_magnitude = event.magnitudes[0]
|
||||||
local_magnitude = event.magnitudes[1]
|
local_magnitude = event.magnitudes[1]
|
||||||
localmag = '%4.1f' % local_magnitude.mag
|
localmag = '%4.1f' % local_magnitude.mag
|
||||||
momentmag = '%4.1f'% moment_magnitude.mag
|
momentmag = '%4.1f' % moment_magnitude.mag
|
||||||
|
|
||||||
# text = '{path:{plen}} | manual: [{p:3d}] | auto: [{a:3d}]'
|
# text = '{path:{plen}} | manual: [{p:3d}] | auto: [{a:3d}]'
|
||||||
# text = text.format(path=event_path,
|
# text = text.format(path=event_path,
|
||||||
@ -1505,6 +1502,7 @@ class MainWindow(QMainWindow):
|
|||||||
event = self.get_current_event()
|
event = self.get_current_event()
|
||||||
if not type(outformats) == list:
|
if not type(outformats) == list:
|
||||||
outformats = [outformats]
|
outformats = [outformats]
|
||||||
|
|
||||||
def getSavePath(event, directory, outformats):
|
def getSavePath(event, directory, outformats):
|
||||||
if not directory:
|
if not directory:
|
||||||
title = 'Save event data as {} to directory ...'.format(outformats)
|
title = 'Save event data as {} to directory ...'.format(outformats)
|
||||||
@ -1881,7 +1879,7 @@ class MainWindow(QMainWindow):
|
|||||||
checkRotated=True,
|
checkRotated=True,
|
||||||
metadata=self.metadata,
|
metadata=self.metadata,
|
||||||
tstart=tstart,
|
tstart=tstart,
|
||||||
tstop=tstop,)
|
tstop=tstop, )
|
||||||
|
|
||||||
def prepareObspyDMT_data(self, eventpath):
|
def prepareObspyDMT_data(self, eventpath):
|
||||||
qcbox_processed = self.dataPlot.qcombo_processed
|
qcbox_processed = self.dataPlot.qcombo_processed
|
||||||
@ -2077,7 +2075,7 @@ class MainWindow(QMainWindow):
|
|||||||
if self.obspy_dmt:
|
if self.obspy_dmt:
|
||||||
invpath = os.path.join(self.get_current_event_path(), 'resp')
|
invpath = os.path.join(self.get_current_event_path(), 'resp')
|
||||||
if not invpath in self.metadata.inventories:
|
if not invpath in self.metadata.inventories:
|
||||||
self.metadata.add_inventory(invpath, obspy_dmt_inv = True)
|
self.metadata.add_inventory(invpath, obspy_dmt_inv=True)
|
||||||
# check if directory is empty
|
# check if directory is empty
|
||||||
if os.listdir(invpath):
|
if os.listdir(invpath):
|
||||||
self.init_map_button.setEnabled(True)
|
self.init_map_button.setEnabled(True)
|
||||||
@ -2643,9 +2641,9 @@ class MainWindow(QMainWindow):
|
|||||||
# init event selection options for autopick
|
# init event selection options for autopick
|
||||||
self.pickoptions = [('current event', self.get_current_event, None),
|
self.pickoptions = [('current event', self.get_current_event, None),
|
||||||
('tune events', self.get_ref_events, self._style['ref']['rgba']),
|
('tune events', self.get_ref_events, self._style['ref']['rgba']),
|
||||||
('test events', self.get_test_events, self._style['test']['rgba']),]
|
('test events', self.get_test_events, self._style['test']['rgba']), ]
|
||||||
#('all (picked) events', self.get_manu_picked_events, None),
|
# ('all (picked) events', self.get_manu_picked_events, None),
|
||||||
#('all events', self.get_all_events, None)]
|
# ('all events', self.get_all_events, None)]
|
||||||
|
|
||||||
self.listWidget = QListWidget()
|
self.listWidget = QListWidget()
|
||||||
self.setDirty(True)
|
self.setDirty(True)
|
||||||
@ -2870,7 +2868,6 @@ class MainWindow(QMainWindow):
|
|||||||
else:
|
else:
|
||||||
event.addAutopicks(picksdict['auto'])
|
event.addAutopicks(picksdict['auto'])
|
||||||
|
|
||||||
|
|
||||||
def drawPicks(self, station=None, picktype=None, stime=None):
|
def drawPicks(self, station=None, picktype=None, stime=None):
|
||||||
# if picktype not specified, draw both
|
# if picktype not specified, draw both
|
||||||
if not stime:
|
if not stime:
|
||||||
@ -3363,7 +3360,7 @@ class MainWindow(QMainWindow):
|
|||||||
event, time, lat, lon, depth, mag, nmp, nap, tune, test, notes = row
|
event, time, lat, lon, depth, mag, nmp, nap, tune, test, notes = row
|
||||||
row_str = ''
|
row_str = ''
|
||||||
for index in range(len(row)):
|
for index in range(len(row)):
|
||||||
row_str += '{}'+'{}'.format(separator)
|
row_str += '{}' + '{}'.format(separator)
|
||||||
|
|
||||||
row_str = row_str.format(event.text(), time.text(), lat.text(), lon.text(), depth.text(), mag.text(),
|
row_str = row_str.format(event.text(), time.text(), lat.text(), lon.text(), depth.text(), mag.text(),
|
||||||
nmp.text(), nap.text(), bool(tune.checkState()), bool(test.checkState()),
|
nmp.text(), nap.text(), bool(tune.checkState()), bool(test.checkState()),
|
||||||
@ -3392,7 +3389,6 @@ class MainWindow(QMainWindow):
|
|||||||
if event == current_event:
|
if event == current_event:
|
||||||
set_background_color(item_list, QtGui.QColor(*(0, 143, 143, 255)))
|
set_background_color(item_list, QtGui.QColor(*(0, 143, 143, 255)))
|
||||||
|
|
||||||
|
|
||||||
def set_metadata(self):
|
def set_metadata(self):
|
||||||
self.project.inventories = self.metadata.inventories
|
self.project.inventories = self.metadata.inventories
|
||||||
if self.metadata.inventories:
|
if self.metadata.inventories:
|
||||||
@ -3404,7 +3400,7 @@ class MainWindow(QMainWindow):
|
|||||||
self.init_map_button.setEnabled(False)
|
self.init_map_button.setEnabled(False)
|
||||||
self.initMapAction.setEnabled(False)
|
self.initMapAction.setEnabled(False)
|
||||||
self.inventory_label.setText("No inventory set...")
|
self.inventory_label.setText("No inventory set...")
|
||||||
#self.setDirty(False)
|
# self.setDirty(False)
|
||||||
|
|
||||||
def add_metadata(self):
|
def add_metadata(self):
|
||||||
self.add_metadata_widget = AddMetadataWidget(self, metadata=self.metadata)
|
self.add_metadata_widget = AddMetadataWidget(self, metadata=self.metadata)
|
||||||
@ -3697,7 +3693,6 @@ class MainWindow(QMainWindow):
|
|||||||
self.plotWaveformDataThread()
|
self.plotWaveformDataThread()
|
||||||
self.refreshTabs()
|
self.refreshTabs()
|
||||||
|
|
||||||
|
|
||||||
def PyLoTprefs(self):
|
def PyLoTprefs(self):
|
||||||
if not self._props:
|
if not self._props:
|
||||||
self._props = PropertiesDlg(self, infile=self.infile,
|
self._props = PropertiesDlg(self, infile=self.infile,
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
<file>icons/map.png</file>
|
<file>icons/map.png</file>
|
||||||
<file>icons/openloc.png</file>
|
<file>icons/openloc.png</file>
|
||||||
<file>icons/compare_button.png</file>
|
<file>icons/compare_button.png</file>
|
||||||
<file>icons/pick_qualities_button.png</file>
|
|
||||||
<file>icons/locate_button.png</file>
|
<file>icons/locate_button.png</file>
|
||||||
<file>icons/Matlab_PILOT_icon.png</file>
|
<file>icons/Matlab_PILOT_icon.png</file>
|
||||||
<file>icons/printer.png</file>
|
<file>icons/printer.png</file>
|
||||||
|
217791
icons_rc_3.py
217791
icons_rc_3.py
File diff suppressed because it is too large
Load Diff
@ -223,7 +223,7 @@ class LocalMagnitude(Magnitude):
|
|||||||
in 'Z3']
|
in 'Z3']
|
||||||
# checking horizontal count and calculating power_sum accordingly
|
# checking horizontal count and calculating power_sum accordingly
|
||||||
if len(power) == 1:
|
if len(power) == 1:
|
||||||
print ('WARNING: Only one horizontal found for station {0}.'.format(st[0].stats.station))
|
print('WARNING: Only one horizontal found for station {0}.'.format(st[0].stats.station))
|
||||||
power_sum = power[0]
|
power_sum = power[0]
|
||||||
elif len(power) == 2:
|
elif len(power) == 2:
|
||||||
power_sum = power[0] + power[1]
|
power_sum = power[0] + power[1]
|
||||||
@ -589,13 +589,13 @@ def calcsourcespec(wfstream, onset, vp, delta, azimuth, incidence,
|
|||||||
|
|
||||||
# fft
|
# fft
|
||||||
fny = freq / 2
|
fny = freq / 2
|
||||||
#l = len(xdat) / freq
|
# l = len(xdat) / freq
|
||||||
# number of fft bins after Bath
|
# number of fft bins after Bath
|
||||||
#n = freq * l
|
# n = freq * l
|
||||||
# find next power of 2 of data length
|
# find next power of 2 of data length
|
||||||
m = pow(2, np.ceil(np.log(len(xdat)) / np.log(2)))
|
m = pow(2, np.ceil(np.log(len(xdat)) / np.log(2)))
|
||||||
N = min(int(np.power(m, 2)), 16384)
|
N = min(int(np.power(m, 2)), 16384)
|
||||||
#N = int(np.power(m, 2))
|
# N = int(np.power(m, 2))
|
||||||
y = dt * np.fft.fft(xdat, N)
|
y = dt * np.fft.fft(xdat, N)
|
||||||
Y = abs(y[: N / 2])
|
Y = abs(y[: N / 2])
|
||||||
L = (N - 1) / freq
|
L = (N - 1) / freq
|
||||||
|
@ -8,7 +8,7 @@ from obspy.core import read, Stream, UTCDateTime
|
|||||||
from obspy.core.event import Event as ObsPyEvent
|
from obspy.core.event import Event as ObsPyEvent
|
||||||
from obspy.io.sac import SacIOError
|
from obspy.io.sac import SacIOError
|
||||||
|
|
||||||
from PySide.QtGui import QMessageBox
|
from PySide2.QtWidgets import QMessageBox
|
||||||
|
|
||||||
import pylot.core.loc.velest as velest
|
import pylot.core.loc.velest as velest
|
||||||
import pylot.core.loc.focmec as focmec
|
import pylot.core.loc.focmec as focmec
|
||||||
@ -21,6 +21,7 @@ from pylot.core.util.obspyDMT_interface import qml_from_obspyDMT
|
|||||||
from pylot.core.util.utils import fnConstructor, full_range, check4rotated, \
|
from pylot.core.util.utils import fnConstructor, full_range, check4rotated, \
|
||||||
check4gapsAndMerge, trim_station_components
|
check4gapsAndMerge, trim_station_components
|
||||||
|
|
||||||
|
|
||||||
class Data(object):
|
class Data(object):
|
||||||
"""
|
"""
|
||||||
Data container with attributes wfdata holding ~obspy.core.stream.
|
Data container with attributes wfdata holding ~obspy.core.stream.
|
||||||
@ -47,7 +48,7 @@ class Data(object):
|
|||||||
elif isinstance(evtdata, dict):
|
elif isinstance(evtdata, dict):
|
||||||
evt = readPILOTEvent(**evtdata)
|
evt = readPILOTEvent(**evtdata)
|
||||||
evtdata = evt
|
evtdata = evt
|
||||||
elif type(evtdata) in [str, unicode]:
|
elif type(evtdata) == str:
|
||||||
try:
|
try:
|
||||||
cat = read_events(evtdata)
|
cat = read_events(evtdata)
|
||||||
if len(cat) is not 1:
|
if len(cat) is not 1:
|
||||||
@ -99,7 +100,7 @@ class Data(object):
|
|||||||
old_pick.phase_hint == new_pick.phase_hint,
|
old_pick.phase_hint == new_pick.phase_hint,
|
||||||
old_pick.method_id == new_pick.method_id]
|
old_pick.method_id == new_pick.method_id]
|
||||||
if all(comparison):
|
if all(comparison):
|
||||||
del(old_pick)
|
del (old_pick)
|
||||||
old_picks.append(new_pick)
|
old_picks.append(new_pick)
|
||||||
elif not other.isNew() and self.isNew():
|
elif not other.isNew() and self.isNew():
|
||||||
new = other + self
|
new = other + self
|
||||||
@ -489,7 +490,8 @@ class Data(object):
|
|||||||
real_or_syn_data[synthetic] += read(fname, format='GSE2', starttime=self.tstart, endtime=self.tstop)
|
real_or_syn_data[synthetic] += read(fname, format='GSE2', starttime=self.tstart, endtime=self.tstop)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
try:
|
try:
|
||||||
real_or_syn_data[synthetic] += read(fname, format='SEGY', starttime=self.tstart, endtime=self.tstop)
|
real_or_syn_data[synthetic] += read(fname, format='SEGY', starttime=self.tstart,
|
||||||
|
endtime=self.tstop)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
warnmsg += '{0}\n{1}\n'.format(fname, e)
|
warnmsg += '{0}\n{1}\n'.format(fname, e)
|
||||||
except SacIOError as se:
|
except SacIOError as se:
|
||||||
|
@ -252,7 +252,7 @@ def picksdict_from_picks(evt):
|
|||||||
if picker == 'None':
|
if picker == 'None':
|
||||||
picker = 'manual'
|
picker = 'manual'
|
||||||
try:
|
try:
|
||||||
#onsets = picksdict[picker][station]
|
# onsets = picksdict[picker][station]
|
||||||
onsets = picksdict[station]
|
onsets = picksdict[station]
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
# print(e)
|
# print(e)
|
||||||
@ -573,7 +573,7 @@ def writephases(arrivals, fformat, filename, parameter=None, eventinfo=None):
|
|||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
print(str(e) + '; no weight set during processing')
|
print(str(e) + '; no weight set during processing')
|
||||||
Ao = arrivals[key]['S']['Ao'] # peak-to-peak amplitude
|
Ao = arrivals[key]['S']['Ao'] # peak-to-peak amplitude
|
||||||
#fid.write('%s ? ? ? S %s %d%02d%02d %02d%02d %7.4f GAU 0 0 0 0 %d \n' % (key,
|
# fid.write('%s ? ? ? S %s %d%02d%02d %02d%02d %7.4f GAU 0 0 0 0 %d \n' % (key,
|
||||||
fid.write('%s ? ? ? S %s %d%02d%02d %02d%02d %7.4f GAU 0 %9.2f 0 0 %d \n' % (key,
|
fid.write('%s ? ? ? S %s %d%02d%02d %02d%02d %7.4f GAU 0 %9.2f 0 0 %d \n' % (key,
|
||||||
fm,
|
fm,
|
||||||
year,
|
year,
|
||||||
|
@ -6,7 +6,8 @@ import matplotlib.pyplot as plt
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import obspy
|
import obspy
|
||||||
import traceback
|
import traceback
|
||||||
from PySide import QtGui
|
#from PySide2 import QtGui
|
||||||
|
from PySide2 import QtWidgets as QtGui
|
||||||
from matplotlib.figure import Figure
|
from matplotlib.figure import Figure
|
||||||
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
|
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
|
||||||
from mpl_toolkits.basemap import Basemap
|
from mpl_toolkits.basemap import Basemap
|
||||||
|
@ -4,8 +4,8 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from PySide.QtCore import QThread, Signal, Qt, Slot, QRunnable, QObject
|
from PySide2.QtCore import QThread, Signal, Qt, Slot, QRunnable, QObject
|
||||||
from PySide.QtGui import QDialog, QProgressBar, QLabel, QHBoxLayout
|
from PySide2.QtWidgets import QDialog, QProgressBar, QLabel, QHBoxLayout
|
||||||
|
|
||||||
|
|
||||||
class Thread(QThread):
|
class Thread(QThread):
|
||||||
|
@ -17,27 +17,28 @@ import sys
|
|||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
matplotlib.use('QT4Agg')
|
matplotlib.use('QT5Agg')
|
||||||
|
|
||||||
from matplotlib.figure import Figure
|
from matplotlib.figure import Figure
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from matplotlib.backends.backend_qt4agg import FigureCanvas
|
from matplotlib.backends.backend_qt5agg import FigureCanvas
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
|
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
|
||||||
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT
|
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT
|
||||||
from matplotlib.widgets import MultiCursor
|
from matplotlib.widgets import MultiCursor
|
||||||
from obspy import read
|
from obspy import read
|
||||||
|
|
||||||
from PySide import QtCore, QtGui
|
from PySide2 import QtCore, QtGui
|
||||||
from PySide.QtGui import QAction, QApplication, QCheckBox, QComboBox, \
|
from PySide2.QtGui import QIcon, QPixmap, QKeySequence
|
||||||
|
from PySide2.QtWidgets import QAction, QApplication, QCheckBox, QComboBox, \
|
||||||
QDateTimeEdit, QDialog, QDialogButtonBox, QDoubleSpinBox, QGroupBox, \
|
QDateTimeEdit, QDialog, QDialogButtonBox, QDoubleSpinBox, QGroupBox, \
|
||||||
QGridLayout, QFormLayout, QIcon, QLabel, QLineEdit, QMessageBox, \
|
QGridLayout, QFormLayout, QLabel, QLineEdit, QMessageBox, \
|
||||||
QPixmap, QSpinBox, QTabWidget, QToolBar, QVBoxLayout, QHBoxLayout, QWidget, \
|
QSpinBox, QTabWidget, QToolBar, QVBoxLayout, QHBoxLayout, QWidget, \
|
||||||
QPushButton, QFileDialog, QInputDialog, QKeySequence
|
QPushButton, QFileDialog, QInputDialog
|
||||||
from PySide.QtCore import QSettings, Qt, QUrl, Signal
|
from PySide2.QtCore import QSettings, Qt, QUrl, Signal, Slot
|
||||||
from PySide.QtWebKit import QWebView
|
from PySide2.QtWebEngineWidgets import QWebEngineView as QWebView
|
||||||
from obspy import Stream, Trace, UTCDateTime
|
from obspy import Stream, UTCDateTime
|
||||||
from obspy.core.util import AttribDict
|
from obspy.core.util import AttribDict
|
||||||
from obspy.taup import TauPyModel
|
from obspy.taup import TauPyModel
|
||||||
from obspy.taup.utils import get_phase_names
|
from obspy.taup.utils import get_phase_names
|
||||||
|
Loading…
Reference in New Issue
Block a user