Пример #1
0
 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 = []
Пример #2
0
    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 = {}
Пример #3
0
 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 = []
Пример #4
0
 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!')
Пример #5
0
 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()})
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
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)
Пример #9
0
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
Пример #10
0
 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 = []