Fixed minor plot bugs
This commit is contained in:
parent
b976ec6ab0
commit
60db23e83c
@ -29,6 +29,7 @@ from scipy.interpolate import griddata
|
|||||||
from pylot.core.util.widgets import PickDlg
|
from pylot.core.util.widgets import PickDlg
|
||||||
from pylot.core.pick.utils import get_quality_class
|
from pylot.core.pick.utils import get_quality_class
|
||||||
|
|
||||||
|
|
||||||
class MplCanvas(FigureCanvas):
|
class MplCanvas(FigureCanvas):
|
||||||
|
|
||||||
def __init__(self, parent=None, width=5, height=4, dpi=100):
|
def __init__(self, parent=None, width=5, height=4, dpi=100):
|
||||||
@ -72,6 +73,9 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
# set original map limits to fall back on when home button is pressed
|
# set original map limits to fall back on when home button is pressed
|
||||||
self.org_xlim = self.canvas.axes.get_xlim()
|
self.org_xlim = self.canvas.axes.get_xlim()
|
||||||
self.org_ylim = self.canvas.axes.get_ylim()
|
self.org_ylim = self.canvas.axes.get_ylim()
|
||||||
|
# initial map without event
|
||||||
|
self.canvas.axes.set_xlim(self.org_xlim[0], self.org_xlim[1])
|
||||||
|
self.canvas.axes.set_ylim(self.org_ylim[0], self.org_ylim[1])
|
||||||
|
|
||||||
self._style = None if not hasattr(parent, '_style') else parent._style
|
self._style = None if not hasattr(parent, '_style') else parent._style
|
||||||
|
|
||||||
@ -94,6 +98,7 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
self.status_label = QtWidgets.QLabel()
|
self.status_label = QtWidgets.QLabel()
|
||||||
self.map_reset_button = QtWidgets.QPushButton('Reset Map View')
|
self.map_reset_button = QtWidgets.QPushButton('Reset Map View')
|
||||||
self.save_map_button = QtWidgets.QPushButton('Save Map')
|
self.save_map_button = QtWidgets.QPushButton('Save Map')
|
||||||
|
self.go2eq_button = QtWidgets.QPushButton('Go to Event Location')
|
||||||
# self.map_reset_button.resize(150, 50)
|
# self.map_reset_button.resize(150, 50)
|
||||||
|
|
||||||
self.main_box = QtWidgets.QVBoxLayout()
|
self.main_box = QtWidgets.QVBoxLayout()
|
||||||
@ -141,6 +146,7 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
self.bot_row = QtWidgets.QHBoxLayout()
|
self.bot_row = QtWidgets.QHBoxLayout()
|
||||||
self.main_box.addLayout(self.bot_row, 0.3)
|
self.main_box.addLayout(self.bot_row, 0.3)
|
||||||
self.bot_row.addWidget(self.map_reset_button)
|
self.bot_row.addWidget(self.map_reset_button)
|
||||||
|
self.bot_row.addWidget(self.go2eq_button)
|
||||||
self.bot_row.addWidget(self.save_map_button)
|
self.bot_row.addWidget(self.save_map_button)
|
||||||
self.bot_row.addWidget(self.status_label)
|
self.bot_row.addWidget(self.status_label)
|
||||||
# self.connectSignals()
|
# self.connectSignals()
|
||||||
@ -175,7 +181,7 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
|
|
||||||
def remove_merid_paral(self):
|
def remove_merid_paral(self):
|
||||||
if len(self.gridlines.xline_artists):
|
if len(self.gridlines.xline_artists):
|
||||||
#for i in self.gridlines.xline_artists:
|
# for i in self.gridlines.xline_artists:
|
||||||
# i.remove()
|
# i.remove()
|
||||||
self.gridlines.xline_artists[0].remove()
|
self.gridlines.xline_artists[0].remove()
|
||||||
self.gridlines.yline_artists[0].remove()
|
self.gridlines.yline_artists[0].remove()
|
||||||
@ -189,6 +195,20 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
|
|
||||||
self.canvas.axes.figure.canvas.draw_idle()
|
self.canvas.axes.figure.canvas.draw_idle()
|
||||||
|
|
||||||
|
def go2eq(self):
|
||||||
|
if self.eventLoc:
|
||||||
|
lats, lons = self.eventLoc
|
||||||
|
self.canvas.axes.set_xlim(lons - 10, lons + 10)
|
||||||
|
self.canvas.axes.set_ylim(lats - 5, lats + 5)
|
||||||
|
# parallels and meridians
|
||||||
|
self.remove_merid_paral()
|
||||||
|
self.add_merid_paral()
|
||||||
|
|
||||||
|
self.canvas.axes.figure.canvas.draw_idle()
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.status_label.setText('No event information available')
|
||||||
|
|
||||||
def connectSignals(self):
|
def connectSignals(self):
|
||||||
self.comboBox_phase.currentIndexChanged.connect(self._refresh_drawings)
|
self.comboBox_phase.currentIndexChanged.connect(self._refresh_drawings)
|
||||||
self.comboBox_am.currentIndexChanged.connect(self._refresh_drawings)
|
self.comboBox_am.currentIndexChanged.connect(self._refresh_drawings)
|
||||||
@ -196,6 +216,7 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
self.annotations_box.stateChanged.connect(self.switch_annotations)
|
self.annotations_box.stateChanged.connect(self.switch_annotations)
|
||||||
self.refresh_button.clicked.connect(self._refresh_drawings)
|
self.refresh_button.clicked.connect(self._refresh_drawings)
|
||||||
self.map_reset_button.clicked.connect(self.org_map_view)
|
self.map_reset_button.clicked.connect(self.org_map_view)
|
||||||
|
self.go2eq_button.clicked.connect(self.go2eq)
|
||||||
|
|
||||||
self.plotWidget.mpl_connect('motion_notify_event', self.mouse_moved)
|
self.plotWidget.mpl_connect('motion_notify_event', self.mouse_moved)
|
||||||
self.plotWidget.mpl_connect('scroll_event', self.mouse_scroll)
|
self.plotWidget.mpl_connect('scroll_event', self.mouse_scroll)
|
||||||
@ -516,8 +537,9 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
self._station_onpick_ids = stations
|
self._station_onpick_ids = stations
|
||||||
if self.eventLoc:
|
if self.eventLoc:
|
||||||
lats, lons = self.eventLoc
|
lats, lons = self.eventLoc
|
||||||
self.sc_event = self.canvas.axes.scatter(lons, lats, s=2 * self.pointsize, facecolor='red', zorder=11,
|
self.sc_event = self.canvas.axes.scatter(lons, lats, s=5 * self.pointsize, facecolor='red', zorder=11,
|
||||||
label='Event (might be outside map region)',
|
label='Event (might be outside map region)', marker='*',
|
||||||
|
edgecolors='black',
|
||||||
transform=ccrs.PlateCarree())
|
transform=ccrs.PlateCarree())
|
||||||
|
|
||||||
def scatter_picked_stations(self):
|
def scatter_picked_stations(self):
|
||||||
@ -549,10 +571,12 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
color = 'lightgrey'
|
color = 'lightgrey'
|
||||||
if st in self.marked_stations:
|
if st in self.marked_stations:
|
||||||
color = 'red'
|
color = 'red'
|
||||||
self.annotations.append(self.canvas.axes.annotate(' %s' % st, xy=(x+0.003, y+0.003), fontsize=self.pointsize / 4.,
|
self.annotations.append(
|
||||||
fontweight='semibold', color=color,
|
self.canvas.axes.annotate(' %s' % st, xy=(x + 0.003, y + 0.003), fontsize=self.pointsize / 5.,
|
||||||
|
fontweight='semibold', color=color, alpha=0.8,
|
||||||
transform=ccrs.PlateCarree(), zorder=14,
|
transform=ccrs.PlateCarree(), zorder=14,
|
||||||
path_effects=[PathEffects.withStroke(linewidth=self.pointsize / 4., foreground='k')]))
|
path_effects=[
|
||||||
|
PathEffects.withStroke(linewidth=self.pointsize / 6., foreground='k')]))
|
||||||
self.legend = self.canvas.axes.legend(loc=1)
|
self.legend = self.canvas.axes.legend(loc=1)
|
||||||
self.legend.get_frame().set_facecolor((1, 1, 1, 0.75))
|
self.legend.get_frame().set_facecolor((1, 1, 1, 0.75))
|
||||||
|
|
||||||
@ -658,76 +682,3 @@ class Array_map(QtWidgets.QWidget):
|
|||||||
def _warn(self, message):
|
def _warn(self, message):
|
||||||
self.qmb = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Icon.Warning, 'Warning', message)
|
self.qmb = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Icon.Warning, 'Warning', message)
|
||||||
self.qmb.show()
|
self.qmb.show()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user