Exemplo n.º 1
0
    def __init__(self, **names_vals):
        super(OqParam, self).__init__(**names_vals)
        self.risk_investigation_time = (
            self.risk_investigation_time or self.investigation_time)
        if ('intensity_measure_types_and_levels' in names_vals and
                'intensity_measure_types' in names_vals):
            logging.warn('Ignoring intensity_measure_types since '
                         'intensity_measure_types_and_levels is set')
        if 'intensity_measure_types_and_levels' in names_vals:
            self.hazard_imtls = self.intensity_measure_types_and_levels
            delattr(self, 'intensity_measure_types_and_levels')
        elif 'intensity_measure_types' in names_vals:
            self.hazard_imtls = dict.fromkeys(self.intensity_measure_types)
            delattr(self, 'intensity_measure_types')
        if vulnerability_files(self.inputs):
            self.risk_imtls = get_imtls_from_vulnerabilities(self.inputs)
        elif fragility_files(self.inputs):
            fname = self.inputs['fragility']
            ffs = get_fragility_functions(
                fname, self.continuous_fragility_discretization)
            self.risk_imtls = {fset.imt: fset.imls
                               for fset in ffs.values()}

        # check the IMTs vs the GSIMs
        if 'gsim_logic_tree' in self.inputs:
            if self.gsim:
                raise ValueError('If `gsim_logic_tree_file` is set, there '
                                 'must be no `gsim` key')
            path = os.path.join(
                self.base_path, self.inputs['gsim_logic_tree'])
            for gsims in logictree.GsimLogicTree(path, []).values.values():
                self.check_imts_gsims(list(map(valid.gsim, gsims)))
        elif self.gsim is not None:
            self.check_imts_gsims([self.gsim])
Exemplo n.º 2
0
    def __init__(self, **names_vals):
        super(OqParam, self).__init__(**names_vals)
        self.risk_investigation_time = (self.risk_investigation_time
                                        or self.investigation_time)
        if ('intensity_measure_types_and_levels' in names_vals
                and 'intensity_measure_types' in names_vals):
            logging.warn('Ignoring intensity_measure_types since '
                         'intensity_measure_types_and_levels is set')
        if 'intensity_measure_types_and_levels' in names_vals:
            self.hazard_imtls = self.intensity_measure_types_and_levels
            delattr(self, 'intensity_measure_types_and_levels')
        elif 'intensity_measure_types' in names_vals:
            self.hazard_imtls = dict.fromkeys(self.intensity_measure_types)
            delattr(self, 'intensity_measure_types')
        if vulnerability_files(self.inputs):
            self.risk_imtls = get_imtls_from_vulnerabilities(self.inputs)
        elif fragility_files(self.inputs):
            fname = self.inputs['fragility']
            ffs = get_fragility_functions(
                fname, self.continuous_fragility_discretization)
            self.risk_imtls = {fset.imt: fset.imls for fset in ffs.values()}

        # check the IMTs vs the GSIMs
        if 'gsim_logic_tree' in self.inputs:
            if self.gsim:
                raise ValueError('If `gsim_logic_tree_file` is set, there '
                                 'must be no `gsim` key')
            path = os.path.join(self.base_path, self.inputs['gsim_logic_tree'])
            for gsims in logictree.GsimLogicTree(path, []).values.values():
                self.check_imts_gsims(list(map(valid.gsim, gsims)))
        elif self.gsim is not None:
            self.check_imts_gsims([self.gsim])
Exemplo n.º 3
0
 def is_valid_intensity_measure_types(self):
     """
     If the IMTs and levels are extracted from the risk models,
     they must not be set directly. Moreover, if
     `intensity_measure_types_and_levels` is set directly,
     `intensity_measure_types` must not be set.
     """
     if self.ground_motion_correlation_model:
         for imt in self.imtls:
             if not (imt.startswith('SA') or imt == 'PGA'):
                 raise ValueError(
                     'Correlation model %s does not accept IMT=%s' % (
                         self.ground_motion_correlation_model, imt))
     if fragility_files(self.inputs) or vulnerability_files(self.inputs):
         return (self.intensity_measure_types is None
                 and self.intensity_measure_types_and_levels is None)
     elif not hasattr(self, 'hazard_imtls') and not hasattr(
             self, 'risk_imtls'):
         return False
     return True
Exemplo n.º 4
0
 def is_valid_intensity_measure_types(self):
     """
     If the IMTs and levels are extracted from the risk models,
     they must not be set directly. Moreover, if
     `intensity_measure_types_and_levels` is set directly,
     `intensity_measure_types` must not be set.
     """
     if self.ground_motion_correlation_model:
         for imt in self.imtls:
             if not (imt.startswith('SA') or imt == 'PGA'):
                 raise ValueError(
                     'Correlation model %s does not accept IMT=%s' %
                     (self.ground_motion_correlation_model, imt))
     if fragility_files(self.inputs) or vulnerability_files(self.inputs):
         return (self.intensity_measure_types is None
                 and self.intensity_measure_types_and_levels is None)
     elif not hasattr(self, 'hazard_imtls') and not hasattr(
             self, 'risk_imtls'):
         return False
     return True