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
示例#2
0
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)
示例#3
0
     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,