def test_calculation_Baker_Jayaram(self): DATA_FILE = data / 'GENERIC_GMPE_AVGSA_MEAN_STD_TOTAL_BAKER_JAYARAM.csv' # Initialise meta-GMPE mgmpe = gsim.mgmpe.generic_gmpe_avgsa.GenericGmpeAvgSA( gmpe_name='BooreAtkinson2008', avg_periods=[0.05, 0.15, 1.0, 2.0, 4.0], corr_func='baker_jayaram') ctx = RuptureContext() ctx.sids = [0] P = imt.AvgSA S = [const.StdDev.TOTAL] with open(DATA_FILE, 'r') as f: # Skip header for i in [1, 2, 3]: f.readline() for line in f: arr = np.float_(line.strip().split(',')) # Setting ground motion attributes ctx.mag = arr[0] ctx.rjb = np.array([arr[1]]) ctx.rake = arr[2] ctx.hypo_depth = arr[3] ctx.vs30 = np.array([arr[4]]) # Compute ground motion mean, stdv = mgmpe.get_mean_and_stddevs(ctx, ctx, ctx, P, S) np.testing.assert_almost_equal(mean, arr[6]) np.testing.assert_almost_equal(stdv, arr[7])
def test_make_pmap(self): trunclevel = 3 imtls = DictArray({'PGA': [0.01]}) gsims = [valid.gsim('AkkarBommer2010')] ctxs = [] for occ_rate in (.001, .002): ctx = RuptureContext() ctx.mag = 5.5 ctx.rake = 90 ctx.occurrence_rate = occ_rate ctx.sids = numpy.array([0.]) ctx.vs30 = numpy.array([760.]) ctx.rrup = numpy.array([100.]) ctx.rjb = numpy.array([99.]) ctxs.append(ctx) pmap = make_pmap(ctxs, gsims, imtls, trunclevel, 50.) numpy.testing.assert_almost_equal(pmap[0].array, 0.066381)
def test_get_pmap(self): truncation_level = 3 imtls = DictArray({'PGA': [0.01]}) gsims = [valid.gsim('AkkarBommer2010')] ctxs = [] for occ_rate in (.001, .002): ctx = RuptureContext() ctx.mag = 5.5 ctx.rake = 90 ctx.occurrence_rate = occ_rate ctx.sids = numpy.array([0.]) ctx.vs30 = numpy.array([760.]) ctx.rrup = numpy.array([100.]) ctx.rjb = numpy.array([99.]) ctxs.append(ctx) cmaker = ContextMaker( 'TRT', gsims, dict(imtls=imtls, truncation_level=truncation_level)) cmaker.tom = PoissonTOM(time_span=50) pmap = cmaker.get_pmap(ctxs) numpy.testing.assert_almost_equal(pmap[0].array, 0.066381)