Skip to content
Snippets Groups Projects
Commit 6f248c4a authored by Altekruse, Jason Morgan's avatar Altekruse, Jason Morgan
Browse files

add BA08 site scaling term following AM09 implementation. adjust coefficient...

add BA08 site scaling term following AM09 implementation. adjust coefficient file (and tests) accordingly
parent 15e4709c
No related branches found
No related tags found
1 merge request!399initial implementation of Motazedian-Atkinson 2005 GMM for PR. test results are unverified
package gov.usgs.earthquake.nshmp.gmm;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.BA_08_BASE;
import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.MW;
import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.RRUP;
import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.VS30;
import static gov.usgs.earthquake.nshmp.gmm.GmmUtils.BASE_10_TO_E;
import static gov.usgs.earthquake.nshmp.gmm.GmmUtils.LN_G_CM_TO_M;
import static gov.usgs.earthquake.nshmp.gmm.Imt.PGA;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P01;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P02;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P03;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P05;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P06;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P075;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P08;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P12;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P1;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P15;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P16;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P6;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P2;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P5;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P75;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P8;
import static gov.usgs.earthquake.nshmp.gmm.Imt.SA1P0;
import static java.lang.Math.log10;
import static java.lang.Math.sqrt;
......@@ -39,6 +39,20 @@ import gov.usgs.earthquake.nshmp.tree.LogicTree;
* prohibited. Use {@link Gmm#instance(Imt)} to retrieve an instance for a
* desired {@link Imt}.
*
* <p><b>Implementation notes:</b><ul>
*
* <li>Published coefficients are defined in frequency-space. Frequencies are
* converted to the closest existing spectral period in IMT.</li>
*
* <li>Support for spectral period 0.01s is provided using the same coefficients
* as PGA.</li>
*
* <li>Support for spectral periods 0.02s, 0.03s, 0.075s, 0.15s, 0.25s, and 1.5s
* is provided via interpolation of ground motion and sigma of adjacent periods
* for which there are coefficients.</li>
*
* <li>Uses site-scaling model of BA08.</li>
*
* <p><b>Reference:</b> Motazedian, D. and Atkinson, G., 2005, Ground-motion
* relations for Puerto Rico, in Mann, P., ed., Active tectonics and seismic
* hazards of Puerto Rico, the Virgin Islands, and offshore areas: Geological
......@@ -75,12 +89,17 @@ public class MotazedianAtkinson_2005 implements GroundMotionModel {
*/
private static final Map<Imt, Range<Imt>> INTERPOLATED_IMTS = Maps.immutableEnumMap(
ImmutableMap.<Imt, Range<Imt>> builder()
.put(SA0P02, Range.closed(SA0P01, SA0P06))
.put(SA0P03, Range.closed(SA0P01, SA0P06))
.put(SA0P05, Range.closed(SA0P01, SA0P06))
.put(SA0P075, Range.closed(SA0P06, SA0P08))
.put(SA0P15, Range.closed(SA0P12, SA0P16))
.put(SA0P75, Range.closed(SA0P6, SA0P8))
// .put(SA0P02, Range.closed(SA0P01, SA0P06))
// .put(SA0P03, Range.closed(SA0P01, SA0P06))
// .put(SA0P05, Range.closed(SA0P01, SA0P06))
// .put(SA0P075, Range.closed(SA0P06, SA0P08))
.put(SA0P02, Range.closed(SA0P01, SA0P1))
.put(SA0P03, Range.closed(SA0P01, SA0P1))
.put(SA0P05, Range.closed(SA0P01, SA0P1))
.put(SA0P075, Range.closed(SA0P01, SA0P1))
// .put(SA0P15, Range.closed(SA0P12, SA0P16))
.put(SA0P15, Range.closed(SA0P1, SA0P2))
.put(SA0P75, Range.closed(SA0P5, SA1P0))
.build());
// distance centering coefficients
......@@ -111,12 +130,18 @@ public class MotazedianAtkinson_2005 implements GroundMotionModel {
}
private final Coefficients coeffs;
private final Coefficients coeffsPGA;
/* Boore and Atkinson (2008) site scaling model */
private final BooreAtkinson_2008 siteAmp;
private final boolean interpolated;
private final GroundMotionModel interpolatedGmm;
MotazedianAtkinson_2005(Imt imt) {
coeffs = new Coefficients(imt, COEFFS);
coeffsPGA = new Coefficients(PGA, COEFFS);
siteAmp = (BooreAtkinson_2008) BA_08_BASE.instance(imt);
interpolated = INTERPOLATED_IMTS.containsKey(imt);
interpolatedGmm = interpolated
......@@ -135,9 +160,13 @@ public class MotazedianAtkinson_2005 implements GroundMotionModel {
return interpolatedGmm.calc(in);
}
double μ = calcMean(coeffs, in);
double μRef = calcMean(coeffs, in);
double μPga = calcMean(coeffsPGA, in);
double site = siteAmp.siteAmp(μPga, in.vs30);
double μAm = μRef + site;
double σ = SIGMA;
return GroundMotions.createTree(μ, σ);
return GroundMotions.createTree(μAm, σ);
}
private static final double calcMean(
......
T, f, c1, c2, c3, c4
10, 0.10, 1.62, 0.91212, -0.10486, -0.00092
7.5, 0.13, 1.80, 0.90635, -0.11886, -0.00081
6, 0.16, 1.98, 0.89009, -0.13157, -0.00064
#6, 0.16, 1.98, 0.89009, -0.13157, -0.00064
5, 0.20, 2.16, 0.87177, -0.14444, -0.00052
4, 0.25, 2.36, 0.84583, -0.15306, -0.00048
3, 0.32, 2.55, 0.81112, -0.16625, -0.00044
2.5, 0.40, 2.74, 0.78035, -0.17792, -0.00050
#2.5, 0.40, 2.74, 0.78035, -0.17792, -0.00050
2, 0.50, 2.89, 0.73416, -0.17060, -0.00056
1.5, 0.63, 3.04, 0.67664, -0.15973, -0.00061
1.25, 0.79, 3.20, 0.63441, -0.15706, -0.00080
#1.25, 0.79, 3.20, 0.63441, -0.15706, -0.00080
1, 1.00, 3.35, 0.56986, -0.14377, -0.00086
0.8, 1.26, 3.47, 0.49700, -0.11945, -0.00105
#0.8, 1.26, 3.47, 0.49700, -0.11945, -0.00105
#0.8, 0, 0, 0, 0, 0x
0.75, 0, 0, 0, 0, 0
0.6, 1.59, 3.58, 0.47303, -0.11486, -0.00118
#0.6, 1.59, 3.58, 0.47303, -0.11486, -0.00118
#0.6, 0, 0, 0, 0, 0x
0.5, 2.00, 3.68, 0.44246, -0.10831, -0.00126
0.4, 2.51, 3.74, 0.40472, -0.08864, -0.00139
0.3, 3.16, 3.83, 0.38087, -0.09045, -0.00159
0.25, 3.98, 3.88, 0.35932, -0.07932, -0.00185
0.2, 5.01, 3.94, 0.33077, -0.06816, -0.00204
0.16, 6.31, 3.97, 0.33046, -0.07344, -0.00219
#0.16, 6.31, 3.97, 0.33046, -0.07344, -0.00219
#0.16, 0, 0, 0, 0, 0x
0.15, 0, 0, 0, 0, 0
0.12, 7.94, 3.98, 0.32515, -0.07216, -0.00234
#0.12, 7.94, 3.98, 0.32515, -0.07216, -0.00234
#0.12, 0, 0, 0, 0, 0x
0.1, 10.00, 3.96, 0.32088, -0.06542, -0.00244
0.08, 12.59, 3.94, 0.32165, -0.06523, -0.00253
#0.08, 12.59, 3.94, 0.32165, -0.06523, -0.00253
#0.08, 0, 0, 0, 0, 0x
0.075, 0, 0, 0, 0, 0
0.06, 15.85, 3.88, 0.33249, -0.06818, -0.00251
#0.06, 15.85, 3.88, 0.33249, -0.06818, -0.00251
#0.06, 0, 0, 0, 0, 0x
0.05, 0, 0, 0, 0, 0
0.03, 0, 0, 0, 0, 0
0.02, 0, 0, 0, 0, 0
......
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment