[add]function to check for doubled channels in stream
This commit is contained in:
		
							parent
							
								
									ec095c572d
								
							
						
					
					
						commit
						8e6237a08d
					
				| @ -74,7 +74,7 @@ from pylot.core.util.connection import checkurl | |||||||
| from pylot.core.util.dataprocessing import read_metadata, restitute_data | from pylot.core.util.dataprocessing import read_metadata, restitute_data | ||||||
| from pylot.core.util.utils import fnConstructor, getLogin, \ | from pylot.core.util.utils import fnConstructor, getLogin, \ | ||||||
|     full_range, readFilterInformation, trim_station_components, check4gaps, make_pen, pick_color_plt, \ |     full_range, readFilterInformation, trim_station_components, check4gaps, make_pen, pick_color_plt, \ | ||||||
|     pick_linestyle_plt, identifyPhase, loopIdentifyPhase, remove_underscores |     pick_linestyle_plt, identifyPhase, loopIdentifyPhase, remove_underscores, check4doubled | ||||||
| from pylot.core.util.event import Event | from pylot.core.util.event import Event | ||||||
| from pylot.core.io.location import create_creation_info, create_event | from pylot.core.io.location import create_creation_info, create_event | ||||||
| from pylot.core.util.widgets import FilterOptionsDialog, NewEventDlg, \ | from pylot.core.util.widgets import FilterOptionsDialog, NewEventDlg, \ | ||||||
| @ -1377,7 +1377,9 @@ class MainWindow(QMainWindow): | |||||||
|         wfdat = self.data.getWFData()  # all available streams |         wfdat = self.data.getWFData()  # all available streams | ||||||
|         # remove possible underscores in station names |         # remove possible underscores in station names | ||||||
|         wfdat = remove_underscores(wfdat) |         wfdat = remove_underscores(wfdat) | ||||||
|  |         # check for gaps and doubled channels | ||||||
|         check4gaps(wfdat) |         check4gaps(wfdat) | ||||||
|  |         check4doubled(wfdat) | ||||||
|         # trim station components to same start value |         # trim station components to same start value | ||||||
|         trim_station_components(wfdat, trim_start=True, trim_end=False) |         trim_station_components(wfdat, trim_start=True, trim_end=False) | ||||||
|         self._stime = full_range(self.get_data().getWFData())[0] |         self._stime = full_range(self.get_data().getWFData())[0] | ||||||
|  | |||||||
| @ -26,7 +26,7 @@ from pylot.core.util.dataprocessing import restitute_data, read_metadata | |||||||
| from pylot.core.util.defaults import SEPARATOR | from pylot.core.util.defaults import SEPARATOR | ||||||
| from pylot.core.util.event import Event | from pylot.core.util.event import Event | ||||||
| from pylot.core.util.structure import DATASTRUCTURE | from pylot.core.util.structure import DATASTRUCTURE | ||||||
| from pylot.core.util.utils import real_None, remove_underscores, trim_station_components, check4gaps | from pylot.core.util.utils import real_None, remove_underscores, trim_station_components, check4gaps, check4doubled | ||||||
| from pylot.core.util.version import get_git_version as _getVersionString | from pylot.core.util.version import get_git_version as _getVersionString | ||||||
| 
 | 
 | ||||||
| __version__ = _getVersionString() | __version__ = _getVersionString() | ||||||
| @ -242,6 +242,7 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even | |||||||
|             wfdat = remove_underscores(wfdat) |             wfdat = remove_underscores(wfdat) | ||||||
|             # trim components for each station to avoid problems with different trace starttimes for one station |             # trim components for each station to avoid problems with different trace starttimes for one station | ||||||
|             wfdat = check4gaps(wfdat) |             wfdat = check4gaps(wfdat) | ||||||
|  |             wfdat = check4doubled(wfdat) | ||||||
|             wfdat = trim_station_components(wfdat, trim_start=True, trim_end=False) |             wfdat = trim_station_components(wfdat, trim_start=True, trim_end=False) | ||||||
|             metadata = read_metadata(parameter.get('invdir')) |             metadata = read_metadata(parameter.get('invdir')) | ||||||
|             corr_dat = None |             corr_dat = None | ||||||
|  | |||||||
| @ -630,6 +630,31 @@ def check4gaps(data): | |||||||
|     return data |     return data | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def check4doubled(data): | ||||||
|  |     ''' | ||||||
|  |     check for doubled stations for same channel in Stream and take only the first one | ||||||
|  |     :param data: stream of seismic data | ||||||
|  |     :return: data stream | ||||||
|  |     ''' | ||||||
|  |     stations = get_stations(data) | ||||||
|  | 
 | ||||||
|  |     for station in stations: | ||||||
|  |         wf_station = data.select(station=station) | ||||||
|  |         # create list of all possible channels | ||||||
|  |         channels = [] | ||||||
|  |         for trace in wf_station: | ||||||
|  |             channel = trace.stats.channel | ||||||
|  |             if not channel in channels: | ||||||
|  |                 channels.append(channel) | ||||||
|  |             else: | ||||||
|  |                 print('check4doubled: removed the following trace for station {}, as there is' | ||||||
|  |                       ' already a trace with the same channel given:\n{}'.format( | ||||||
|  |                     station, trace | ||||||
|  |                 )) | ||||||
|  |                 data.remove(trace) | ||||||
|  |     return data | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def get_stations(data): | def get_stations(data): | ||||||
|     stations = [] |     stations = [] | ||||||
|     for tr in data: |     for tr in data: | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user