示例#1
0
 def test_get_distances(self):
     mag = 6.5
     repi = 15.
     focal_depth = 10.
     comp_rrup, comp_rjb = get_equivalent_distances_west(mag, repi,
                                                         focal_depth)
     expected_rrup = 7.5506
     self.assertAlmostEqual(comp_rrup, expected_rrup, places=2)
     expected_rjb = 8.60615
     self.assertAlmostEqual(comp_rjb, expected_rjb, places=2)
示例#2
0
 def test_get_distances(self):
     mag = 6.5
     repi = 15.
     focal_depth = 10.
     comp_rrup, comp_rjb = get_equivalent_distances_west(
         mag, repi, focal_depth)
     expected_rrup = 7.5506
     self.assertAlmostEqual(comp_rrup, expected_rrup, places=2)
     expected_rjb = 8.60615
     self.assertAlmostEqual(comp_rjb, expected_rjb, places=2)
示例#3
0
 def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
     """ """
     # distances
     distsl = copy.copy(dists)
     distsl.rjb, distsl.rrup = \
         get_equivalent_distances_west(rup.mag, dists.repi)
     # get original values
     mean, stddevs = super().get_mean_and_stddevs(sites, rup, distsl, imt,
                                                  stddev_types)
     stds = [np.ones(len(distsl.rjb))*get_sigma(imt)]
     return mean, stds
示例#4
0
 def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
     """ """
     rupl = copy.deepcopy(rup)
     rupl.mag -= 0.5
     # distances
     distsl = copy.copy(dists)
     distsl.rjb, distsl.rrup = \
         get_equivalent_distances_west(rup.mag, dists.repi)
     mean, stddevs = super().get_mean_and_stddevs(sites, rupl, distsl, imt,
                                                  stddev_types)
     stddevs = [np.ones(len(dists.repi)) * get_sigma(imt)]
     return mean, stddevs
示例#5
0
 def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
     """ """
     rupl = copy.deepcopy(rup)
     rupl.mag -= 0.5
     # distances
     distsl = copy.copy(dists)
     distsl.rjb, distsl.rrup = \
         get_equivalent_distances_west(rup.mag, dists.repi)
     mean, stddevs = super().get_mean_and_stddevs(sites, rupl, distsl, imt,
                                                  stddev_types)
     stddevs = [np.ones(len(dists.repi))*get_sigma(imt)]
     return mean, stddevs
示例#6
0
 def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
     # distances
     distsl = copy.copy(dists)
     distsl.rjb, distsl.rrup = \
         get_equivalent_distances_west(rup.mag, dists.repi)
     # get original values
     mean, _ = super().get_mean_and_stddevs(sites, rup, distsl, imt,
                                            stddev_types)
     # adjust mean values using the reccomended delta (see Atkinson and
     # Adams, 2013)
     tmp = 0.1+0.0007*distsl.rjb
     tmp = np.vstack((tmp, np.ones_like(tmp)*0.3))
     delta = np.log(10.**(np.amin(tmp, axis=0)))
     mean_adj = mean - delta
     stddevs = [np.ones(len(distsl.rjb))*get_sigma(imt)]
     return mean_adj, stddevs
示例#7
0
 def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
     """ """
     rupl = copy.deepcopy(rup)
     rupl.mag -= 0.5
     # distances
     distsl = copy.copy(dists)
     distsl.rjb, distsl.rrup = \
         get_equivalent_distances_west(rup.mag, dists.repi)
     mean, stddevs = super().get_mean_and_stddevs(sites, rupl, distsl, imt,
                                                  stddev_types)
     # Adjust mean values using the reccomended delta (see Atkinson and
     # Adams, 2013)
     tmp = 0.1+0.0007*distsl.rjb
     tmp = np.vstack((tmp, np.ones_like(tmp)*0.3))
     delta = np.log(10.**(np.amin(tmp, axis=0)))
     mean_adj = mean + delta
     stddevs = [np.ones(len(dists.repi))*get_sigma(imt)]
     return mean_adj, stddevs
示例#8
0
    def compute(self, ctx, imts, mean, sig, tau, phi):
        # first fix the magnitude for the Oceanic subclass
        if self.delta_mag:
            ctx = copy.copy(ctx)
            ctx.mag += self.delta_mag

        # then possibly convert distances from repi to rjb
        if self.REQUIRES_DISTANCES == {'repi'}:
            ctx = copy.copy(ctx)
            ctx.rjb, ctx.rrup = get_equivalent_distances_west(
                ctx.mag, ctx.repi)

        # set original values
        super().compute(ctx, imts, mean, sig, tau, phi)
        for m, imt in enumerate(imts):
            if self.sgn:
                # adjust mean values using the reccomended delta
                # (see Atkinson and Adams, 2013)
                tmp = 0.1 + 0.0007 * ctx.rjb
                tmp = np.vstack((tmp, np.full_like(tmp, 0.3)))
                delta = np.log(10.**np.amin(tmp, axis=0))
                mean[m] += self.sgn * delta
            sig[m] = get_sigma(imt)