def setup(self): self.set_name('STA LTA') self.add_parameter(Param('Short Window [s]', 'swin', 30., 0.01, 2 * h)) self.add_parameter(Param('Ratio', 'ratio', 3., 1.1, 20.)) self.add_parameter(Param('Level', 'level', 0.5, 0., 1.)) self.add_parameter( Param( 'Processing Block length (rel. to long window)', 'block_factor', 10., 2., 100., )) self.add_parameter( Switch('Show trigger level traces', 'show_level_traces', False)) self.add_parameter( Switch('Apply to full dataset', 'apply_to_all', False)) self.add_parameter( Choice('Variant', 'variant', 'centered', ['centered', 'right'])) self.add_parameter( Choice('Scaling/Normalization method', 'scalingmethod', '[0-1]', scalingmethods)) self.add_parameter(Switch('Detect on sum trace', 'apply_to_sum', False)) self.set_live_update(False)
def setup(self): self._responses = None self.add_parameter(Param('geom. spreading', 'const_a', 1.11, 1., 2.)) self.add_parameter( Param('anelastic attenuation', 'const_b', 0.00189, 0., 1.)) self.add_parameter( Param('static magnification', 'const_c', -2.09, -5., 5.)) self.add_parameter( Param('Duration for "fixed" time window', 'duration_fixed', 200., 1., 500.)) self.add_parameter( Choice('Time window', 'time_window', 'visible / selected', ['visible / selected', 'fixed', 'distance dependent'])) self.add_parameter( Choice('Apply to', 'apply_to', 'active event', ['active event', 'selected events', 'all events'])) self.add_parameter( Switch('Show restituted traces', 'show_restituded_traces', False)) self.add_parameter(Switch('Mark readings', 'show_markers', False)) self.add_parameter(Switch('Show plot', 'show_plot', False)) self.add_parameter(Switch('Show message', 'do_show_message', True)) self.add_parameter( Switch('Needs restitution', 'needs_restitution', False)) self.add_parameter( Switch('Set event magnitude', 'modify_inplace', False)) self.set_name('Local Magnitude') self.set_live_update(False) self.vmin = 1500. self.vmax = 6000.
def setup(self): if self.config: detector_default = self.config.detector_threshold else: detector_default = 100. self.set_name('Lassie investigate') self.add_parameter(Param('Tsearch', 'tsearch', 20., 0.01, 100)) self.add_parameter( Param('Detector threshold', 'detector_threshold', detector_default, 1., 10000.)) self.add_parameter(Switch('Level Trace', 'level_trace', False)) self.add_parameter( Switch('Hold comparison figure', 'hold_figure', False)) self.add_parameter( Choice('new marker kind', 'marker_kind', kind_default, [ '1 (green)', '2 (blue)', '3 (orange)', '4 (purple)', '5 (brown)', '0 (red)' ])) self.add_trigger('load reference', self.load_comparison) self.add_trigger('show comparison', self.show_comparison) self.add_trigger('remove comparison', self.remove_comparison) # self.add_trigger('read Lassie config', self.fail) self.set_live_update(True) self.markers_compare = [] self.detections = [] self.fig = None self.fframe = None self.grid = self.config.get_grid()
def setup(self): '''Customization of the snuffling.''' self.set_name('Spectrogram') self.add_parameter( Param('Window length [s]:', 'twin', 100, 0.1, 10000.)) self.add_parameter(Param('Overlap [%]:', 'overlap', 75., 0., 99.)) self.add_parameter(Switch('Save figure', 'save', False)) self.add_parameter( Choice('Taper function', 'taper_name', 'Hanning', ['Hanning', 'Hamming', 'Blackman', 'Bartlett'])) self.add_parameter( Choice('Color scale', 'color_scale', 'log', ['log', 'sqrt', 'lin'])) self.add_parameter( Choice('Color table', 'ctb_name', 'spectro', ['spectro', 'rainbow'])) self.add_trigger('Save plot data', self.save_data) self.set_live_update(False) self._tapers = {}
def setup(self): '''Customization of Notch Snuffling.''' self.set_name('Notch Filter') self.add_parameter( Param('Center Frequency [Hz]', 'centerfreq', 50., 0.001, 1000.0, low_is_none=False)) self.add_parameter( Param('Notch width (FWHM) [Hz]', 'notchwidth', 1., 0.001, 1000.0, low_is_none=False)) self.add_parameter( Switch('Also filter harmonics', 'filter_harmonics', False)) self.set_have_post_process_hook(True) self.FFF = {}
def setup(self): self.set_name("Beam Forming") self.add_parameter( Param('Center lat', 'lat_c', 90., -90., 90., high_is_none=True)) self.add_parameter( Param('Center lon', 'lon_c', 180., -180., 180., high_is_none=True)) self.add_parameter(Param('Back azimuth', 'bazi', 0., 0., 360.)) self.add_parameter(Param('slowness', 'slow', 0.1, 0., 1.)) self.add_parameter( Choice('slowness unit', 'unit', 's/km', ['s/km', 's/deg'])) self.add_parameter( Choice('Treat different dt by', 'diff_dt_treat', 'oversample', ['oversample', 'downsample'])) self.add_parameter( Switch('pre-normalize by std ', 'normalize_std', False)) self.add_parameter( Switch('multiply 1/[no. of traces]', 'post_normalize', False)) self.add_parameter(Switch('Add Shifted Traces', 'add_shifted', False)) self.add_trigger('plot', self.plot) self.add_trigger('Save Station', self.save_station) self.add_trigger('Save Traces', self.save) self.add_trigger('Set center by mean lat/lon', self.set_center_latlon) self.station_c = None self.z_c = None self.stacked_traces = None
def setup(self): '''Customization of the snuffling.''' self.set_name('Block RMS') self.add_parameter( Param('Block Length [s]', 'block_length', 100., 0.1, 3600.)) self.set_live_update(False)
def setup(self): self.set_name('Cake Phase') # self._phase_names = ('PmP ~S ~P ~P(moho)s ~P(sill-top)s' # ' ~P(sill-bottom)s Pdiff').split() self._phase_names = ('~P Pg Sg pP p P Pdiff PKP PcP PcS PKIKP pPKIKP' ' SSP PPS SPP PSP SP PS ~PS ~SP Pn s S Sn PP PPP' ' ScS Sdiff SS SSS PcP SKS SKIKS').split() for iphase, name in enumerate(self._phase_names): self.add_parameter( Switch(name, 'wantphase_%i' % iphase, iphase == 0)) self._models = cake.builtin_models() self.model_choice = Choice('Model', 'chosen_model', 'ak135-f-continental.m', self._models) self.add_parameter(self.model_choice) self.add_parameter(Param('Global shift', 'tshift', 0., -20., 20.)) self.add_parameter( Switch('Use station depth', 'use_station_depth', False)) self.add_trigger('Add Phase', self.add_phase_definition) self.add_trigger('Add Model', self.add_model_to_choice) self.add_trigger('Plot Model', self.plot_model) self.add_trigger('Plot Rays', self.plot_rays) self._phases = {} self._model = None
def setup(self): '''Customization of the snuffling.''' self.set_name('Catalog Statistics') self.add_parameter( Param('Latitude:', 'lat', 90, -90., 90., high_is_none=True)) self.add_parameter( Param('Longitude:', 'lon', 180., -180, 180., high_is_none=True)) self.add_parameter( Param('Maximum Distance [km]:', 'maxd', 20000., 0., 20000., high_is_none=True)) self.add_parameter(Choice('Event distribution', 'variation', 'daily', ['daily', 'annual'])) self.add_trigger('Save Figure', self.save_as) self.set_live_update(False) self.fig = None self.cli_mode = False
def setup(self): self.set_name('FK (parstack)') self.add_parameter( Param('max slowness [s/km]', 'slowness_max', 0.2, 0., 1.)) self.add_parameter( Param('min slowness [s/km]', 'slowness_min', 0.01, 0., 1.)) self.add_parameter( Param('delta slowness [s/km]', 'slowness_delta', 0.002, 0., 0.2)) self.add_parameter(Param('delta backazimut', 'delta_bazi', 2, 1, 20)) self.add_parameter( Param('Increment [s]', 'tinc', 60., 0.5, 60., high_is_none=True)) self.add_parameter( Param('Smoothing length [N]', 'ntaper', 0, 0, 30, low_is_none=True)) self.add_parameter( Param('Maximum search factor', 'search_factor', 1, 0, 3)) self.add_parameter( Choice('Use channels', 'want_channel', '*', ['*', '*Z', '*E', '*N', 'SHZ', 'BHZ', 'p0'])) self.add_parameter( Choice('method', 'method', 'stack', ['stack', 'correlate'])) self.add_parameter(Switch('Show', 'want_all', True)) self.add_parameter(Switch('Phase weighted stack', 'want_pws', False)) self.set_live_update(False) self.irun = 0 self.figs2draw = []
def setup(self): self.set_name("Plot Waveforms") self.add_parameter( Switch('Include Selected Markers', 'add_markers', False)) self.add_parameter(Switch('Fill positive', 'fill_between', False)) self.add_parameter( Param('Reduction Velocity [km/s]', 't_red', 20., 1., 20., high_is_none=True)) self.add_parameter(Param('Amplitude Gain', 'yscale', 1., 0.1, 100.)) self.add_parameter( Choice('Pre-scale Amplitudes', 'ampl_scaler', 'trace min/max', ['total min/max', 'trace min/max', 'standard deviation'])) self.add_trigger('Save Last Figure', self.save) self.set_live_update(False) self.fig = None
def setup(self): self.set_name('VTK 3D-Map') self.add_parameter( Param('Vertical exaggeration', 'z_scale', 1., 1., 1000.)) self.add_parameter( Param('Topographic decimation', 'z_decimation', 1, 1, 12, low_is_none=True)) self.add_parameter( Param('Margin Radius [km]', 'margin_radius', 1, 1, 100)) self.add_parameter(Switch('Stations', 'want_stations', True)) self.add_parameter(Switch('Events', 'want_events', True)) self.add_parameter(Switch('Topography', 'want_topo', True)) self.add_parameter(Switch('Topography smoothing', 'smoothing', False)) self.add_trigger('Make screenshot', self.save_image) self.actors = [] self.frame = None self.set_live_update(False)
def setup(self): '''Customization of the snuffling.''' self.set_name('Cross Correlation Search') self.add_parameter( Param('Downsample to [Hz]', 'downsample', None, 0.1, 200., high_is_none=True)) self.add_parameter(Param('t search', 'tsearch', 1., 0.1, 100.)) self.add_parameter( Switch('Apply to full dataset', 'apply_to_all', False)) self.add_parameter( Choice('Normalization', 'normalization', 'Off', ('Off', 'Normal', 'Gliding'))) self.add_parameter(Param('Threshold', 'threshold', 0.5, 0., 1.)) self.add_parameter(Switch('Use FFT', 'use_fft', True)) self.set_live_update(False)
def setup(self): '''Customization of the snuffling.''' self.set_name('Download Waveforms') self.add_parameter(Param( 'Min Radius [deg]', 'minradius', 0., 0., 180.)) self.add_parameter(Param( 'Max Radius [deg]', 'maxradius', 5., 0., 180.)) self.add_parameter(Param( 'Origin latitude [deg]', 'lat', 0, -90., 90.)) self.add_parameter(Param( 'Origin longitude [deg]', 'lon', 0., -180., 180.)) self.add_parameter(Switch( 'Use coordinates of selected event as origin', 'useevent', False)) self.add_parameter(Choice( 'Datecenter', 'datacenter', 'GEOFON', ['GEOFON', 'IRIS'])) self.add_parameter(Choice( 'Channels', 'channel_pattern', 'BH?', ['BH?', 'BHZ', 'HH?', '?H?', '*', '??Z'])) self.add_trigger('Save', self.save) self.set_live_update(False) self.current_stuff = None
def setup(self): '''Customization of the snuffling.''' self.set_name('Time Line') self.add_parameter( Param('Latitude:', 'lat', 90, -90., 90., high_is_none=True)) self.add_parameter( Param('Longitude:', 'lon', 180., -180, 180., high_is_none=True)) self.add_parameter( Param('Maximum Distance [km]:', 'maxd', 20000., 0., 20000., high_is_none=True)) self.add_parameter( Choice('Color by', 'color_by', 'time', ['time', 'longitude', 'latitude', 'magnitude', 'depth', 'kind'])) self.add_parameter(Choice('Colormap', 'cmap_selector', 'Red-Yellow-Blue', list(save_cmaps.keys()))) self.add_parameter(Choice('Coordinate system', 'coord_system', 'Lat/Lon', ['Lat/Lon', 'cartesian'])) self.add_parameter(Switch('Show stations', 'show_stations', False)) self.add_trigger('Save Figure', self.save_as) self.set_live_update(False) self.fig = None self.cli_mode = False
def setup(self): self.hyposat_data_dir = pjoin(self._path, 'hyposat/data') locreg_models = [ os.path.basename(x) for x in glob.glob(pjoin(self.hyposat_data_dir, 'model_*.dat')) ] crust_51_keys = [ 'Off', 'For station corrections', 'For local/regional model', 'For station corrections, local/regional model and surface\ reflection corrections' ] self.crust_51_choices = dict([(b, a) for (a, b) in enumerate(crust_51_keys)]) self.set_name('HYPOSAT') self.add_parameter( Choice('Global Model', 'global_model', 'ak135', ('ak135', 'iasp91', 'iasp91a', 'prem', 'jb', 'sp6'))) self.add_parameter( Choice('Local or Regional Model', 'locreg_model', '_', ('_', ) + tuple(locreg_models))) self.add_parameter( Choice('Use CRUST 5.1', 'crust_51', 'Off', crust_51_keys)) self.add_trigger('Save', self.save_last_run) self.add_parameter( Param('P std. deviation [s]', 'p_stddev', 0.1, 0.001, 9.9)) self.add_parameter( Param('S std. deviation [s]', 's_stddev', 0.2, 0.001, 9.9)) self.add_parameter( Param('P-wave velocity to correct elevation', 'vp_to_correct_elevation', 3.8, 0., 10.)) self.add_parameter( Param('S-wave velocity to correct elevation', 'vs_to_correct_elevation', 2.1, 0., 10.)) self.add_parameter( Param('Starting source depth [km]', 'starting_source_depth_km', 10., 0., 600.)) self.add_parameter( Param('Zero level shift [km]', 'zero_level_km', 0., 0., 10.)) self.add_parameter( Param('RG group velocity', 'rg_group_velocity', 2.6, 1., 10.)) self.add_parameter( Switch('Show location plot', 'show_location_plot', False)) self.add_parameter( Switch('Use active markers only', 'use_active', False)) self.set_live_update(False) self.pdf_viewer = 'evince' self.dir = None
def setup(self): '''Customization of the snuffling.''' self.set_name('Drum Plot') self.add_parameter(Param('Gain', 'yscale', 2., 0.1, 100.)) self.add_parameter( Choice('Pre-scale', 'prescale', 'max', ['max', 'std'])) self.add_parameter( Choice('N minutes', 'xminutes', '15', ['1', '15', '30', '60'])) # self.add_parameter( # Choice( # 'N hours', 'nhours', '24', ['24', '1']) # ) self.add_parameter(Switch('Global common scale', 'scale_global', True)) self.set_live_update(False)
def setup(self): self.set_name('Export Waveforms') self.add_parameter( Choice('Format', 'format', 'mseed', ['mseed', 'text', 'sac', 'yaff'])) self.add_parameter( Param('Time length limit for output files', 'tinc', None, 0.1, 86400., low_is_none=True)) self.add_parameter(Switch('Save Station Meta', 'save_stations', False)) self.add_parameter(Switch('Apply Filters', 'apply_filter', False)) self.set_live_update(False)
def setup(self): self.set_name('CC Matrix') self.add_parameter(Choice( 'Windowing method', 'time_window_choice', 'P-phase', ['P-phase', 'vmin/vmax'])) self.add_parameter(Param('low', 'low', 10., 0.1, 200.0, high_is_none=True)) self.add_parameter(Param('high', 'high', 1, 0.1, 200.0, low_is_none=True)) self.add_parameter(Param('padding [s]', 'tpad', 10, 0.1, 60.0)) self.add_parameter(Param('dt wanted', 'dt_wanted', 0.01, 0.01, 10., low_is_none=True)) self.add_parameter(Param('tdist [s]', 'tdist', 7.5,1., 20.)) self.add_parameter(Param('v min [m/s]', 'vmin', 1500., 500., 2000.)) self.add_parameter(Param('v max [m/s] ', 'vmax', 2000., 6000., 1000.)) self.add_parameter(Switch('Save Traces', 'save_traces', False)) self.add_parameter(Switch('Show Results', 'show_results', False)) self.add_trigger('Save Result', self.save) self.set_live_update(False) self.phase_cache = {}
def setup(self): self.set_name('Cross correlation relocation') self.add_parameter( Param('Highpass [Hz]', 'corner_highpass', 1.0, 0.001, 50., low_is_none=True)) self.add_parameter( Param('Lowpass [Hz]', 'corner_lowpass', 4.0, 0.001, 50., high_is_none=True)) self.add_parameter( Param('Time window begin', 'tstart', -1.0, -100., 0.)) self.add_parameter(Param('Time window end', 'tend', 3.0, 0., 100.)) self.add_parameter( Param('Minimum correlation', 'min_corr', 0.5, 0.0, 1.0)) self.add_parameter( Param('Replace master depth [km]', 'master_depth_km', None, 0.0, 100., high_is_none=True)) self.add_parameter(Switch('Save figure', 'save', False)) self.add_parameter(Switch('Fix depth', 'fix_depth', False)) self.add_parameter( Switch('Show correlation traces', 'show_correlation_traces', False)) self.add_parameter( Choice('Weighting', 'weighting', 'cubic', ['equal', 'linear', 'quadratic'])) self.add_parameter( Choice('Earth model', 'model_select', 'Global', ['Global (ak135)', 'Local (from crust2x2)'])) self.set_live_update(False) self.model = None self.model_key = None
def setup(self): self.set_name('FK Analysis') self.add_parameter(Param('Slowness range[+-]', 'smax', 0.2, 0., 1.)) self.add_parameter( Param('Number of slowness divisions', 'divisor', 20, 10, 50)) self.add_parameter( Param('Number of radial sections', 'numberOfFraction', 32, 4, 50)) self.add_parameter( Param('Length of Sliding Window [s]', 'window_lenth', 1., 0.5, 10.)) self.add_parameter( Param('Step fraction of Sliding Window [s]', 'win_frac', 0.05, 0., 10.)) self.add_parameter( Choice('If sampling rates differ', 'downresample', 'resample', ['resample', 'downsample', 'downsample to "target dt"'])) self.add_parameter(Param('target dt', 'target_dt', 0.2, 0., 10)) # self.add_parameter(Choice('Units: ','unit','[s/km]',('[s/km]','[s/deg]'))) # noqa self.set_live_update(False)
def setup(self): self.set_name('Stack by markers') self.add_parameter(Param('Tmin padding', 'tmin_pad', 1., 0., 100.)) self.add_parameter(Param('Tmax padding', 'tmax_pad', 1., 0., 600.)) self.add_parameter(Switch('Normalize', 'normalize', False)) self.add_parameter(Switch('Debug', 'debug', False))
def setup(self): self.set_name('Extract Events') self.add_parameter(Param('Start time rel. to event [s]', 'tbeg', 0., -3600., 0.)) self.add_parameter(Param('End time rel. to event [s]', 'tend', 1200., 0., 3*3600.)) self.set_live_update(False)
def setup(self): '''Customization of the snuffling.''' self.set_name('Ahfullgreen') self.add_parameter(Param('Time', 'time', 0.0, -50., 50.)) self.add_parameter(Param('North shift [km]', 'north_km', 10.0, -100., 100.)) self.add_parameter(Param('East shift [km]', 'east_km', 10.0, -100., 100.)) self.add_parameter(Param('Depth', 'depth_km', 10.0, 0.0, 600.0)) self.add_parameter(Param('Moment', 'moment', 1., 1., 1E10)) self.add_parameter(Param('Strike', 'strike', 0., -180., 180.)) self.add_parameter(Param('Dip', 'dip', 90., 0., 90.)) self.add_parameter(Param('Rake', 'rake', 0., -180., 180.)) self.add_parameter(Param('sampling rate [Hz]', 'fsampling', 1000., 1., 10000.0)) self.add_parameter(Param('vp [km/s]', 'vp', 6.0, 0.0, 10.0)) self.add_parameter(Param('vs [km/s]', 'vs', 3.0, 0.0, 10.0)) self.add_parameter(Param('Density [kg/m3]', 'density', 3000. , 0.0, 10000.0)) self.add_parameter(Param('Qp', 'qp', 200.0, 0.0, 10000.0)) self.add_parameter(Param('Qs', 'qs', 100.0, 0.0, 10000.0)) self.add_parameter(Param('tau', 'tau', 0.1, 0.0, 2.0)) self.add_parameter(Choice( 'source shape', 'stf', 'Impulse', ['Gauss', 'Impulse'])) self.add_parameter(Choice( 'Waveform type', 'quantity', 'Displacement [m]', ['Displacement [m]', 'Velocity [m/s]', 'Acceleration [m/s2]'])) self.add_parameter(Switch('near field', 'want_near', True)) self.add_parameter(Switch('intermediate field', 'want_intermediate', True)) self.add_parameter(Switch('far field', 'want_far', True)) self.add_trigger('Set Params from Event', self.mechanism_from_event) self.offline_config = None
def setup(self): '''Customization of the snuffling.''' self.set_name('Seismosizer') self.add_parameter( Param('Time', 'time', 0.0, -50., 50.)) # self.add_parameter( # Param('Latitude', 'lat', 0.0, -90., 90.)) # self.add_parameter( # Param('Longitude', 'lon', 0.0, -180., 180.)) self.add_parameter( Param('North shift', 'north_km', 0.0, -50., 50.)) self.add_parameter( Param('East shift', 'east_km', 0.0, -50., 50.)) self.add_parameter( Param('Depth', 'depth_km', 10.0, 0.0, 600.0)) self.add_parameter( Param('Magnitude', 'magnitude', 6.0, 0.0, 10.0)) self.add_parameter( Param('Strike', 'strike', 0., -180., 180.)) self.add_parameter( Param('Dip', 'dip', 90., 0., 90.)) self.add_parameter( Param('Rake', 'rake', 0., -180., 180.)) self.add_parameter( Param('Length', 'length', 0., 0., 1000*km)) self.add_parameter( Param('Width', 'width', 0., 0., 500*km)) self.add_parameter( Param('Nucleation X', 'nucleation_x', -1., -1., 1.)) self.add_parameter( Param('Rupture velocity', 'velocity', 3500.0, 0.0, 5000.0)) self.add_parameter( Param('STF duration', 'stf_duration', 0., 0., 20.)) self.add_parameter( Choice('STF type', 'stf_type', self.stf_types[0], self.stf_types)) self.add_parameter( Choice('GF Store', 'store_id', '<not loaded yet>', ['<not loaded yet>'])) self.add_parameter( Choice('Waveform type', 'waveform_type', 'Displacement [m]', ['Displacement [m]', 'Displacement [nm]', 'Velocity [m/s]', 'Velocity [nm/s]', 'Acceleration [m/s^2]', 'Acceleration [nm/s^2]'])) self.add_trigger('Set Engine', self.set_engine) self.add_trigger('Set Params from Event', self.mechanism_from_event) self.add_trigger('Add Stores', self.add_store) self.store_ids = None self.offline_config = None self._engine = None
def setup(self): self.set_name("Geodetic Okada forward modelling") self.add_parameter(Param('Dip [deg.]', 't_dip', 45., 0., 90.)) self.add_parameter(Param('Strike [deg.]', 't_strike', 130., 0.1, 360.)) self.add_parameter(Param('Rake [deg.]', 't_rake', 120., -180., 180.)) self.add_parameter(Param('Slip [m]', 't_slip', 1., 0.1, 20.)) self.add_parameter( Param('Depth of Top edge [m]', 't_ztop', -1.5e3, -50e3, 0.)) self.add_parameter( Param('Depth of bottom edge [m]', 't_zbot', -4e3, -50e3, 0.)) self.add_parameter(Param('Length [m]', 't_length', 10e3, 1, 50e3)) self.add_parameter(Param('Grid extent [m]', 't_ext', 25e3, 10e3, 200e3)) self.add_parameter( Param('X-shift of fault centre from 0 [m]', 't_xtrace', 0, 0., 200e3)) self.add_parameter( Param('Y-shfit of fault centre from 0 [m]', 't_ytrace', 0, 0., 200e3)) self.add_parameter( Param('Wavelength for rewrapping [m]', 't_wavelength', 0.056, 0., 0.325)) self.add_parameter(Param('LOS 1', 't_los1', 0.3815, 0., 1.)) self.add_parameter(Param('LOS 2', 't_los2', 0.0843, 0., 1.)) self.add_parameter(Param('LOS 3', 't_los3', 0.9205, 0., 1.)) self.add_trigger('Save as displ. Traces', self.save) self.add_trigger('Save as LOS displ. Traces', self.savelos) self.set_live_update(False) self.fig = None