def __init__(self, gmpe_list, imts): """ :param list gmpe_list: List of GMPE names (using the standard openquake strings) :param list imts: List of Intensity Measures """ self.gmpe_list = _check_gsim_list(gmpe_list) self.number_gmpes = len(self.gmpe_list) self.types = OrderedDict([(gmpe, {}) for gmpe in self.gmpe_list]) self.residuals = [] self.modelled = [] self.imts = imts self.unique_indices = {} self.gmpe_sa_limits = {} self.gmpe_scalars = {} for gmpe in self.gmpe_list: gmpe_dict_1 = {} gmpe_dict_2 = {} self.unique_indices[gmpe] = {} # Get the period range and the coefficient types gmpe_i = GSIM_LIST[gmpe]() for c in dir(gmpe_i): if 'COEFFS' in c: pers = [sa.period for sa in getattr(gmpe_i, c).sa_coeffs] min_per, max_per = (min(pers), max(pers)) self.gmpe_sa_limits[gmpe] = (min_per, max_per) for c in dir(gmpe_i): if 'COEFFS' in c: self.gmpe_scalars[gmpe] = getattr(gmpe_i, c).non_sa_coeffs.keys() for imtx in self.imts: if "SA(" in imtx: period = imt.from_string(imtx).period if period < min_per or period > max_per: print("IMT %s outside period range for GMPE %s" % (imtx, gmpe)) gmpe_dict_1[imtx] = None gmpe_dict_2[imtx] = None continue gmpe_dict_1[imtx] = {} gmpe_dict_2[imtx] = {} self.unique_indices[gmpe][imtx] = [] self.types[gmpe][imtx] = [] for res_type in \ self.gmpe_list[gmpe].DEFINED_FOR_STANDARD_DEVIATION_TYPES: gmpe_dict_1[imtx][res_type] = [] gmpe_dict_2[imtx][res_type] = [] self.types[gmpe][imtx].append(res_type) gmpe_dict_2[imtx]["Mean"] = [] self.residuals.append([gmpe, gmpe_dict_1]) self.modelled.append([gmpe, gmpe_dict_2]) self.residuals = OrderedDict(self.residuals) self.modelled = OrderedDict(self.modelled) self.database = None self.number_records = None self.contexts = None
def __init__(self, site_id_list, gmpe_list, imts): """ """ self.site_ids = site_id_list self.input_gmpe_list = deepcopy(gmpe_list) self.gmpe_list = _check_gsim_list(gmpe_list) self.imts = imts self.site_residuals = [] self.types = OrderedDict([(gmpe, {}) for gmpe in self.gmpe_list]) for gmpe in self.gmpe_list: #if not gmpe in GSIM_LIST: # raise ValueError("%s not supported in OpenQuake" % gmpe) for imtx in self.imts: self.types[gmpe][imtx] = [] for res_type in \ self.gmpe_list[gmpe].DEFINED_FOR_STANDARD_DEVIATION_TYPES: self.types[gmpe][imtx].append(res_type)
def __init__(self, gmpe_list, imts): """ :param list gmpe_list: List of GMPE names (using the standard openquake strings) :param list imts: List of Intensity Measures """ self.gmpe_list = _check_gsim_list(gmpe_list) self.number_gmpes = len(self.gmpe_list) self.types = OrderedDict([(gmpe, {}) for gmpe in self.gmpe_list]) self.residuals = [] self.modelled = [] self.imts = imts self.unique_indices = {} for gmpe in self.gmpe_list: gmpe_dict_1 = {} gmpe_dict_2 = {} self.unique_indices[gmpe] = {} for imtx in self.imts: gmpe_dict_1[imtx] = {} gmpe_dict_2[imtx] = {} self.unique_indices[gmpe][imtx] = [] self.types[gmpe][imtx] = [] for res_type in \ self.gmpe_list[gmpe].DEFINED_FOR_STANDARD_DEVIATION_TYPES: gmpe_dict_1[imtx][res_type] = [] gmpe_dict_2[imtx][res_type] = [] self.types[gmpe][imtx].append(res_type) gmpe_dict_2[imtx]["Mean"] = [] self.residuals.append([gmpe, gmpe_dict_1]) self.modelled.append([gmpe, gmpe_dict_2]) self.residuals = OrderedDict(self.residuals) self.modelled = OrderedDict(self.modelled) self.database = None self.number_records = None self.contexts = None