def _get_receivers(self): if not self._receivers: self._receivers = receiver.load_table(self._receivers_fn) return self._receivers
def standard_setup( datadir, gfdb_path, components, effective_dt=1, spacial_undersampling = [ 1, 1 ], hosts = ['localhost'], balance_method = '123321', crustal_thickness_limit = None, constraining_planes = None, shifts = None, blacklist = None, xblacklist = None, verbose = False, local_interpolation = 'bilinear', source_origin_file = 'source-origin.table', receivers_file = 'receivers.table', ref_seismogram_stem = 'reference', ref_seismogram_format = 'mseed', **kwargs): '''Start seismosizers and setup source location, Greens functions, receivers, and reference seismograms.''' source_origin_file = pjoin(datadir, source_origin_file) ref_seismogram_stem = pjoin(datadir, ref_seismogram_stem) receivers_file = pjoin(datadir, receivers_file) # setup database database = gfdb.Gfdb(gfdb_path) seis = seismosizer.Seismosizer(hosts, balance_method) if verbose: seis.set_verbose('T') seis.set_database(database) seis.set_effective_dt(effective_dt) seis.set_local_interpolation(local_interpolation) seis.set_spacial_undersampling(*spacial_undersampling) # setup source origin f = open( source_origin_file, 'r' ) (slat, slon, stime) = [ float(x) for x in f.read().split() ] f.close() seis.set_source_location(slat, slon, stime) if crustal_thickness_limit is not None: seis.set_source_crustal_thickness_limit( crustal_thickness_limit ) if constraining_planes is not None: values = [] for plane in constraining_planes: for vect in plane: values.extend(vect) seis.set_source_constraints( *values ) # setup receivers receivers = receiver.load_table(receivers_file, set_components=components) if len(receivers) == 0: sys.exit('no receivers') seis.set_receivers(receivers) seis.set_ref_seismograms( ref_seismogram_stem, ref_seismogram_format ) if blacklist: seis.blacklist_receivers( blacklist ) if xblacklist: seis.xblacklist_receivers( xblacklist ) # apply reference seismograms shifts if shifts is not None: seis.shift_ref_seismograms( shifts ) return seis