[new] array maps can now be refreshed on button click as well to spare
refresh time for large arrays
This commit is contained in:
		
							parent
							
								
									e8df5198ea
								
							
						
					
					
						commit
						106c6c3939
					
				| @ -33,6 +33,7 @@ class Array_map(QtGui.QWidget): | |||||||
|         self.figure = figure |         self.figure = figure | ||||||
|         self.picks_rel = {} |         self.picks_rel = {} | ||||||
|         self.marked_stations = [] |         self.marked_stations = [] | ||||||
|  |         self.highlighted_stations = [] | ||||||
|         self.init_graphics() |         self.init_graphics() | ||||||
|         self.init_stations() |         self.init_stations() | ||||||
|         self.init_basemap(resolution='l') |         self.init_basemap(resolution='l') | ||||||
| @ -94,12 +95,24 @@ class Array_map(QtGui.QWidget): | |||||||
|                     pyl_mw.addPicks(station, {}, type=picker) |                     pyl_mw.addPicks(station, {}, type=picker) | ||||||
|                     pyl_mw.setDirty(True) |                     pyl_mw.setDirty(True) | ||||||
|                     pyl_mw.update_status(message) |                     pyl_mw.update_status(message) | ||||||
|                     self._refresh_drawings() |                     if self.auto_refresh_box.isChecked(): | ||||||
|  |                         self._refresh_drawings() | ||||||
|  |                     else: | ||||||
|  |                         self.highlight_station(network, station, color='red') | ||||||
|                     pyl_mw.drawPicks(station) |                     pyl_mw.drawPicks(station) | ||||||
|                     pyl_mw.draw() |                     pyl_mw.draw() | ||||||
|             except Exception as e: |             except Exception as e: | ||||||
|                 print('Could not delete pick for station {}.{}: {}'.format(network, station, e)) |                 print('Could not delete pick for station {}.{}: {}'.format(network, station, e)) | ||||||
| 
 | 
 | ||||||
|  |     def highlight_station(self, network, station, color): | ||||||
|  |         stat_dict = self.stations_dict['{}.{}'.format(network, station)] | ||||||
|  |         lat = stat_dict['latitude'] | ||||||
|  |         lon = stat_dict['longitude'] | ||||||
|  |         self.highlighted_stations.append(self.basemap.scatter(lon, lat, s=50, edgecolors=color, | ||||||
|  |                                                               facecolors='none', latlon=True, | ||||||
|  |                                                               zorder=12, label='deleted')) | ||||||
|  |         self.canvas.draw() | ||||||
|  | 
 | ||||||
|     def pickInfo(self, ind): |     def pickInfo(self, ind): | ||||||
|         for index in ind: |         for index in ind: | ||||||
|             network, station = self._station_onpick_ids[index].split('.')[:2] |             network, station = self._station_onpick_ids[index].split('.')[:2] | ||||||
| @ -140,7 +153,10 @@ class Array_map(QtGui.QWidget): | |||||||
|                     pyl_mw.update_status('picks accepted ({0})'.format(station)) |                     pyl_mw.update_status('picks accepted ({0})'.format(station)) | ||||||
|                     pyl_mw.addPicks(station, pickDlg.getPicks(picktype='manual'), type='manual') |                     pyl_mw.addPicks(station, pickDlg.getPicks(picktype='manual'), type='manual') | ||||||
|                     pyl_mw.addPicks(station, pickDlg.getPicks(picktype='auto'), type='auto') |                     pyl_mw.addPicks(station, pickDlg.getPicks(picktype='auto'), type='auto') | ||||||
|                     self._refresh_drawings() |                     if self.auto_refresh_box.isChecked(): | ||||||
|  |                         self._refresh_drawings() | ||||||
|  |                     else: | ||||||
|  |                         self.highlight_station(network, station, color='yellow') | ||||||
|                     pyl_mw.drawPicks(station) |                     pyl_mw.drawPicks(station) | ||||||
|                     pyl_mw.draw() |                     pyl_mw.draw() | ||||||
|                 else: |                 else: | ||||||
| @ -212,16 +228,24 @@ class Array_map(QtGui.QWidget): | |||||||
|         self.comboBox_am.insertItem(1, 'manual') |         self.comboBox_am.insertItem(1, 'manual') | ||||||
|         self.comboBox_am.insertItem(2, 'auto') |         self.comboBox_am.insertItem(2, 'auto') | ||||||
| 
 | 
 | ||||||
|  |         self.auto_refresh_box = QtGui.QCheckBox('Automatic refresh') | ||||||
|  |         self.auto_refresh_box.setChecked(True) | ||||||
|  |         self.refresh_button = QtGui.QPushButton('Refresh') | ||||||
|  | 
 | ||||||
|         self.top_row.addWidget(QtGui.QLabel('Select a phase: ')) |         self.top_row.addWidget(QtGui.QLabel('Select a phase: ')) | ||||||
|         self.top_row.addWidget(self.comboBox_phase) |         self.top_row.addWidget(self.comboBox_phase) | ||||||
|         self.top_row.setStretch(1, 1)  # set stretch of item 1 to 1 |         self.top_row.setStretch(1, 1)  # set stretch of item 1 to 1 | ||||||
|         self.top_row.addWidget(QtGui.QLabel('Pick type: ')) |         self.top_row.addWidget(QtGui.QLabel('Pick type: ')) | ||||||
|         self.top_row.addWidget(self.comboBox_am) |         self.top_row.addWidget(self.comboBox_am) | ||||||
|         self.top_row.setStretch(3, 1)  # set stretch of item 1 to 1 |         self.top_row.setStretch(3, 1)  # set stretch of item 1 to 1 | ||||||
|  |         self.top_row.addWidget(self.auto_refresh_box) | ||||||
|  |         self.top_row.addWidget(self.refresh_button) | ||||||
| 
 | 
 | ||||||
|         self.main_box.addWidget(self.canvas, 1) |         self.main_box.addWidget(self.canvas, 1) | ||||||
|         self.main_box.addWidget(self.status_label, 0) |         self.main_box.addWidget(self.status_label, 0) | ||||||
| 
 | 
 | ||||||
|  |         self.refresh_button.clicked.connect(self._refresh_drawings) | ||||||
|  | 
 | ||||||
|     def init_stations(self): |     def init_stations(self): | ||||||
|         self.stations_dict = self.metadata.get_all_coordinates() |         self.stations_dict = self.metadata.get_all_coordinates() | ||||||
|         self.latmin = self.get_min_from_stations('latitude') |         self.latmin = self.get_min_from_stations('latitude') | ||||||
| @ -491,6 +515,9 @@ class Array_map(QtGui.QWidget): | |||||||
| 
 | 
 | ||||||
|     def remove_drawings(self): |     def remove_drawings(self): | ||||||
|         self.remove_annotations() |         self.remove_annotations() | ||||||
|  |         for item in reversed(self.highlighted_stations): | ||||||
|  |             item.remove() | ||||||
|  |             self.highlighted_stations.remove(item) | ||||||
|         if hasattr(self, 'cbar'): |         if hasattr(self, 'cbar'): | ||||||
|             try: |             try: | ||||||
|                 self.cbar.remove() |                 self.cbar.remove() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user