def create_site_parameters( rrup_file, vs30_file, stations=None, vs30_default=500, max_distance=None ): """Create site parameters""" rrups = read_rrup_file(rrup_file) vs30_values = read_vs30_file(vs30_file) sites = list() if max_distance is None: max_distance = float("inf") if stations is None: stations = list(rrups.keys()) for station in stations: rrup, rjbs, rx, ry = rrups[station] if rrup < max_distance: site = Site() site.name = station if station in vs30_values: site.vs30 = vs30_values[station] else: site.vs30 = vs30_default site.Rrup = rrup site.Rjb = rjbs site.Rx = rx site.Ry = ry sites.append(site) return sites
df.columns = ["total", "tau", "phi"] ax = df[["tau", "phi"]].plot() ax.set_xscale("log") ax.set_xlabel("Period (sec)") ax.set_ylabel("Std Dev (LN units)") fig = ax.get_figure() fig.savefig("plots/std.png") ### # Magnitude scaling for T=3 sec for intraslab earthquakes. (Rrup=75 km, VS30=760 m/s, ZTOR=50 km) ### site = Site() site.vs30 = 760 site.Rrup = 75 fault = Fault() fault.ztor = 50 fault.tect_type = TectType.SUBDUCTION_SLAB MAG_RANGE = np.append(np.arange(5, 8.5, 0.1), 8.5) results = {} for Mw in MAG_RANGE: fault.Mw = Mw results[Mw] = a18.Abrahamson_2018(site, fault, "pSA", [3.0])[0][0] df = pd.DataFrame.from_dict(results, orient="index", columns=["pSA_3s"]) ax = df.plot() ax.set_yscale("log") ax.set_xlabel("Magnitude") ax.set_ylabel("pSA (g)") ax.set_ylim(0.0001, 1)
if imt not in [ x.__name__ for x in g.DEFINED_FOR_INTENSITY_MEASURE_TYPES ]: # model does not support IM continue else: if imt not in ["SA", "PGA"]: # empirical engine ones don't have PGV etc... # need to update as required continue fault.tect_type = gmms[g][1] x = np.logspace(1, 3) y = [] for rrup in x: site.Rrup = rrup site.Rjb = rrup * 0.9 period = None if imt != "SA" else im # but zhao expects a list? if g == GMM.ZA_06: v = compute_gmm(fault, site, g, imt, period=[period]) if imt == "PGA": # result v, stdvs = v else: # list of result for each period v, stdvs = v[0] else: v, stdvs = compute_gmm(fault, site, g,