def pre_execute(self): """ parse the logic tree and source model input """ self.sitecol = readinput.get_site_collection(self.oqparam) self.save_mesh() self.gsim_lt = readinput.get_gsim_lt(self.oqparam, [DEFAULT_TRT]) self.smlt = readinput.get_source_model_lt(self.oqparam) parser = source.SourceModelParser( UCERFSourceConverter(self.oqparam.investigation_time, self.oqparam.rupture_mesh_spacing)) [self.source ] = parser.parse_sources(self.oqparam.inputs["source_model"]) branches = sorted(self.smlt.branches.items()) min_mag, max_mag = self.source.min_mag, None source_models = [] num_gsim_paths = self.gsim_lt.get_num_paths() for ordinal, (name, branch) in enumerate(branches): tm = source.TrtModel(DEFAULT_TRT, [], min_mag, max_mag, ordinal, eff_ruptures=-1) sm = source.SourceModel(name, branch.weight, [name], [tm], num_gsim_paths, ordinal, 1) source_models.append(sm) self.csm = source.CompositeSourceModel(self.gsim_lt, self.smlt, source_models, set_weight=False) self.rup_data = {} self.infos = []
def pre_execute(self): """ parse the logic tree and source model input """ self.sitecol = readinput.get_site_collection(self.oqparam) self.gsim_lt = readinput.get_gsim_lt(self.oqparam, [DEFAULT_TRT]) self.smlt = readinput.get_source_model_lt(self.oqparam) parser = source.SourceModelParser( UCERFClassicalSourceConverter(self.oqparam.investigation_time, self.oqparam.rupture_mesh_spacing)) [self.src_group] = parser.parse_src_groups( self.oqparam.inputs["source_model"]) [src] = self.src_group branches = sorted(self.smlt.branches.items()) source_models = [] num_gsim_paths = self.gsim_lt.get_num_paths() for ordinal, (name, branch) in enumerate(branches): sg = copy.copy(self.src_group) sg.id = ordinal # Update the event set src.branch_id = branch.value src.idx_set = src.build_idx_set() sm = source.SourceModel( name, branch.weight, [name], [sg], num_gsim_paths, ordinal, 1) source_models.append(sm) self.csm = source.CompositeSourceModel( self.gsim_lt, self.smlt, source_models, set_weight=False) self.rlzs_assoc = self.csm.info.get_rlzs_assoc() self.rup_data = {} self.num_tiles = 1 self.infos = {}
def pre_execute(self): """ parse the logic tree and source model input """ self.sitecol = readinput.get_site_collection(self.oqparam) self.save_mesh() self.gsim_lt = readinput.get_gsim_lt(self.oqparam, [DEFAULT_TRT]) self.smlt = readinput.get_source_model_lt(self.oqparam) parser = source.SourceModelParser( UCERFSourceConverter(self.oqparam.investigation_time, self.oqparam.rupture_mesh_spacing)) [self.source] = parser.parse_sources( self.oqparam.inputs["source_model"]) branches = sorted(self.smlt.branches.items()) min_mag, max_mag = self.source.min_mag, None source_models = [] for ordinal, (name, branch) in enumerate(branches): tm = source.TrtModel(DEFAULT_TRT, [], min_mag, max_mag, ordinal, eff_ruptures=-1) sm = source.SourceModel( name, branch.weight, [name], [tm], self.gsim_lt, ordinal, 1) source_models.append(sm) self.csm = source.CompositeSourceModel( self.smlt, source_models, set_weight=False) self.rup_data = {} self.infos = []
def pre_execute(self): """ parse the logic tree and source model input """ oq = self.oqparam self.read_risk_data() # read the site collection self.gsim_lt = readinput.get_gsim_lt(oq, [DEFAULT_TRT]) self.smlt = readinput.get_source_model_lt(oq) job_info = dict(hostname=socket.gethostname()) self.datastore.save('job_info', job_info) parser = source.SourceModelParser( UCERFSourceConverter(oq.investigation_time, oq.rupture_mesh_spacing)) [src_group] = parser.parse_src_groups(oq.inputs["source_model"]) branches = sorted(self.smlt.branches.items()) source_models = [] num_gsim_paths = self.gsim_lt.get_num_paths() for grp_id, rlz in enumerate(self.smlt): [name] = rlz.lt_path branch = self.smlt.branches[name] sg = _copy_grp(src_group, grp_id, name, branch.value) sm = source.SourceModel( name, branch.weight, [name], [sg], num_gsim_paths, grp_id, 1) source_models.append(sm) self.csm = source.CompositeSourceModel( self.gsim_lt, self.smlt, source_models, set_weight=False) self.datastore['csm_info'] = self.csm.info logging.info('Found %d x %d logic tree branches', len(branches), self.gsim_lt.get_num_paths()) self.rlzs_assoc = self.csm.info.get_rlzs_assoc() self.infos = [] self.eid = collections.Counter() # sm_id -> event_id self.sm_by_grp = self.csm.info.get_sm_by_grp() if not self.oqparam.imtls: raise ValueError('Missing intensity_measure_types!')
def __init__(self, oqparam, sites_col, correlation_model): self.oqparam = oqparam self.ssm_lt = get_source_model_lt(oqparam) # Read the SSC logic tree self.hc = mdhc.MultiDimensionalHazardCurve(oqparam.imtls, sites_col, correlation_model, oqparam.maximum_distance) self.ndims = len(oqparam.imtls.keys()) self.periods = get_imts(oqparam) self.sites = sites_col self.cm = correlation_model self.srcfilter = SourceFilter(sites_col, oqparam.maximum_distance) self.integration_prms = {'truncation_level': oqparam.truncation_level, 'abseps': 0.0001, # Documentation: Optimal value is 1E-6 'maxpts': self.ndims*10 # Documentation: Optimal value is len(lnSA)*1000 } self.integration_prms.update({'trunc_norm': self._truncation_normalization_factor()})
def pre_execute(self): """ Read the full source model and sites and build the needed tiles """ self.oqparam = self.job.get_oqparam() source_model_lt = readinput.get_source_model_lt(self.oqparam) source_models = list( readinput.get_source_models(self.oqparam, source_model_lt)) self.parse_risk_model() self.initialize_site_collection() info = readinput.get_job_info(self.oqparam, source_models, self.site_collection) self.imtls = self.oqparam.imtls weight = info['n_sites'] * info['n_levels'] * info['max_realizations'] nblocks = math.ceil(weight / self.oqparam.maximum_tile_weight) self.tiles = list(split_in_blocks(self.site_collection, nblocks)) self.num_tiles = len(self.tiles)
def pre_execute(self): """ Read the full source model and sites and build the needed tiles """ self.oqparam = self.job.get_oqparam() source_model_lt = readinput.get_source_model_lt(self.oqparam) source_models = list(readinput.get_source_models( self.oqparam, source_model_lt)) self.parse_risk_model() self.initialize_site_collection() info = readinput.get_job_info( self.oqparam, source_models, self.site_collection) self.imtls = self.oqparam.imtls weight = info['n_sites'] * info['n_levels'] * info['max_realizations'] nblocks = math.ceil(weight / self.oqparam.maximum_tile_weight) self.tiles = list(split_in_blocks(self.site_collection, nblocks)) self.num_tiles = len(self.tiles)
def get_composite_source_model(oq): """ :param oq: :class:`openquake.commonlib.oqvalidation.OqParam` instance :returns: a `class:`openquake.commonlib.source.CompositeSourceModel` """ [src_group] = nrml.to_python( oq.inputs["source_model"], SourceConverter(oq.investigation_time, oq.rupture_mesh_spacing)) source_models = [] gsim_lt = readinput.get_gsim_lt(oq, [DEFAULT_TRT]) smlt = readinput.get_source_model_lt(oq) for sm in smlt.gen_source_models(gsim_lt): sg = copy.copy(src_group) sg.id = sm.ordinal sm.src_groups = [sg] sg.sources = [sg[0].new(sm.ordinal, sm.names)] source_models.append(sm) return source.CompositeSourceModel(gsim_lt, smlt, source_models)
def parse_openquake_ini(job_ini): """ Parse an XML-formatted Seismic Source Model (SSM) for the Openquake Engine. Acknowledgement: M. Pagani :param job_ini: str, Path to the Openquake Engine configuration file. :return a 2-element tuple containing an instance of the class "openquake.commonlib.oqvalidation.OqParam" and another instance of the class "openquake.commonlib.logictree.SourceModelLogicTreeCollection" """ # Read the .ini file oqparam = get_oqparam(job_ini) # Read the ssc logic tree ssm_lt = get_source_model_lt(oqparam) # Reag the gsim logic tree gsim_lt = get_gsim_lt(oqparam) # imts = get_imts(oqparam) return oqparam, ssm_lt, gsim_lt
def pre_execute(self): """ parse the logic tree and source model input """ self.sitecol = readinput.get_site_collection(self.oqparam) self.gsim_lt = readinput.get_gsim_lt(self.oqparam, [DEFAULT_TRT]) self.smlt = readinput.get_source_model_lt(self.oqparam) parser = source.SourceModelParser( UCERFSourceConverter(self.oqparam.investigation_time, self.oqparam.rupture_mesh_spacing)) self.src_groups = parser.parse_src_groups( self.oqparam.inputs["source_model"]) branches = sorted(self.smlt.branches.items()) source_models = [] num_gsim_paths = self.gsim_lt.get_num_paths() for ordinal, (name, branch) in enumerate(branches): sm = source.SourceModel( name, branch.weight, [name], self.src_groups, num_gsim_paths, ordinal, 1) source_models.append(sm) self.csm = source.CompositeSourceModel( self.gsim_lt, self.smlt, source_models, set_weight=False) self.rup_data = {} self.infos = []