def load_events(filename, format='detect'): '''Read events file. :param filename: name of file as str :param format: file format: ``'detect'``, ``'basic'``, or ``'yaml'`` :returns: list of :py:class:`Event` objects ''' if format == 'detect': fmt = detect_format(filename) assert fmt in ('yaml', 'basic') if fmt == 'yaml': from pyrocko import guts events = [ ev for ev in guts.load_all(filename=filename) if isinstance(ev, Event) ] return events elif fmt == 'basic': return list(Event.load_catalog(filename)) else: from pyrocko.io.io_common import FileLoadError FileLoadError('unknown event file format: %s' % fmt)
def load_events(filename, format='detect'): '''Read events file. :param filename: name of file as str :param format: file format: ``'detect'``, ``'basic'``, or ``'yaml'`` :returns: list of :py:class:`Event` objects ''' if format == 'detect': fmt = detect_format(filename) assert fmt in ('yaml', 'basic') if fmt == 'yaml': from pyrocko import guts events = [ ev for ev in guts.load_all(filename=filename) if isinstance(ev, Event)] return events elif fmt == 'basic': return list(Event.load_catalog(filename)) else: from pyrocko.io.io_common import FileLoadError FileLoadError('unknown event file format: %s' % fmt)
def add_gnss_campaign(self, filename): try: from pyrocko.model import gnss # noqa except ImportError: raise ImportError('Module pyrocko.model.gnss not found,' ' please upgrade pyrocko!') logger.debug('Loading GNSS campaign from "%s"...' % filename) campaign = load_all(filename=filename) self.gnss_campaigns.append(campaign[0])
def load_station_corrections(filename): scs = load_all(filename=filename) for sc in scs: assert isinstance(sc, StationCorrection) return scs
def test_joint_locate(): playground_dir = common.get_playground_dir() common.get_test_data('gf_stores/crust2_ib/') gf_stores_path = common.test_data_path('gf_stores') with chdir(playground_dir): scenario_dir = 'scenario_joint_locate' if os.path.exists(scenario_dir): shutil.rmtree(scenario_dir) grond('scenario', '--targets=waveforms', '--nevents=1', '--nstations=6', '--gf-store-superdirs=%s' % gf_stores_path, '--no-map', scenario_dir) with chdir(scenario_dir): config_path = 'config/scenario.gronf' quick_config_path_templ = 'config/scenario_quick_%i.gronf' event_names = grond('events', config_path).strip().split('\n') env = Environment([config_path] + event_names) conf = env.get_config() for irun, pick_weight in enumerate([0.5, 1.0, 2.0]): quick_config_path = quick_config_path_templ % irun mod_conf = conf.clone() target_groups = guts.load_all(string=''' --- !grond.PhasePickTargetGroup normalisation_family: picks path: pick.p weight: 1.0 store_id: crust2_ib distance_min: 10000.0 distance_max: 1000000.0 pick_synthetic_traveltime: '{stored:any_P}' pick_phasename: 'any_P' --- !grond.PhasePickTargetGroup normalisation_family: picks path: pick.s weight: 1.0 store_id: crust2_ib distance_min: 10000.0 distance_max: 1000000.0 pick_synthetic_traveltime: '{stored:any_S}' pick_phasename: 'any_S' ''') mod_conf.problem_config.name_template \ = 'cmt_${event_name}_%i' % irun mod_conf.dataset_config.picks_paths = [ 'data/scenario/picks/picks.markers' ] mod_conf.target_groups.extend(target_groups) mod_conf.set_elements('target_groups[-2:].weight', pick_weight) # mod_conf.set_elements( # 'analyser_configs[:].niterations', 100) # mod_conf.set_elements( # 'optimiser_config.sampler_phases[:].niterations', 100) # mod_conf.set_elements( # 'optimiser_config.nbootstrap', 5) mod_conf.optimiser_config.sampler_phases[-1].niterations \ = 10000 mod_conf.set_elements( 'optimiser_config.sampler_phases[:].seed', 23) mod_conf.set_basepath(conf.get_basepath()) config.write_config(mod_conf, quick_config_path) grond('diff', config_path, quick_config_path) grond('check', quick_config_path, *event_names) grond('go', quick_config_path, *event_names) rundir_paths = common.get_rundir_paths(quick_config_path, event_names) grond('report', *rundir_paths)
def load_stations(filename, format='detect'): '''Read stations file. :param filename: filename :returns: list of :py:class:`Station` objects ''' if format == 'detect': format = detect_format(filename) if format == 'yaml': from pyrocko import guts stations = [ st for st in guts.load_all(filename=filename) if isinstance(st, Station) ] return stations elif format == 'basic': stations = [] f = open(filename, 'r') station = None channel_names = [] for (iline, line) in enumerate(f): toks = line.split(None, 5) if line.strip().startswith('#') or line.strip() == '': continue if len(toks) == 5 or len(toks) == 6: net, sta, loc = toks[0].split('.') lat, lon, elevation, depth = [float(x) for x in toks[1:5]] if len(toks) == 5: name = '' else: name = toks[5].rstrip() station = Station(net, sta, loc, lat, lon, elevation=elevation, depth=depth, name=name) stations.append(station) channel_names = [] elif len(toks) == 4 and station is not None: name, azi, dip, gain = (toks[0], float_or_none(toks[1]), float_or_none(toks[2]), float(toks[3])) if name in channel_names: logger.warning('redefined channel! (line: %i, file: %s)' % (iline + 1, filename)) else: channel_names.append(name) channel = Channel(name, azimuth=azi, dip=dip, gain=gain) station.add_channel(channel) else: logger.warning('skipping invalid station/channel definition ' '(line: %i, file: %s' % (iline + 1, filename)) f.close() return stations else: from pyrocko.io.io_common import FileLoadError raise FileLoadError('unknown event file format: %s' % format)