Skip to content
Snippets Groups Projects
Commit c3f5b34a authored by Powers, Peter M.'s avatar Powers, Peter M. Committed by GitHub
Browse files

Merge pull request #254 from pmpowers-usgs/sp16-223

Sp16 223
parents 58a75bd2 3a68c11a
No related branches found
No related tags found
No related merge requests found
......@@ -778,6 +778,13 @@ public enum Gmm {
NgaEastUsgs_2017.COEFFS_SIGMA_MID,
NgaEastUsgs_2017.CONSTRAINTS),
/** @see NgaEastUsgs_2017 @see ShahjoueiPezeshk_2016 */
NGA_EAST_SEED_SP16(
ShahjoueiPezeshk_2016.class,
ShahjoueiPezeshk_2016.NAME,
ShahjoueiPezeshk_2016.COEFFS,
ShahjoueiPezeshk_2016.CONSTRAINTS),
/** @see NgaEastUsgs_2017 */
NGA_EAST_SEED_YA15(
NgaEastUsgs_2017.Seed_YA15.class,
......@@ -1098,6 +1105,7 @@ public enum Gmm {
NGA_EAST_SEED_PZCT15_M1SS,
NGA_EAST_SEED_PZCT15_M2ES,
NGA_EAST_SEED_SP15,
NGA_EAST_SEED_SP16,
NGA_EAST_SEED_YA15));
private final String name;
......
package gov.usgs.earthquake.nshmp.gmm;
import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.MW;
import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.RJB;
import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.VS30;
import static gov.usgs.earthquake.nshmp.gmm.GmmUtils.BASE_10_TO_E;
import static java.lang.Math.log10;
import static java.lang.Math.max;
import static java.lang.Math.min;
import static java.lang.Math.sqrt;
import com.google.common.collect.Range;
import java.util.Map;
import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
/**
* Implementation of the Shahjouei and Pezeshk (2016) ground motion model for
* central and eastern North America (CENA). This ground motion model is an
* updated version of the Shahjouei and Pezeshk NGA-East Seed Model
* {@link Gmm#NGA_EAST_SEED_SP15}.
*
* <p><b>Note:</b> Direct instantiation of {@code GroundMotionModel}s is
* prohibited. Use {@link Gmm#instance(Imt)} to retrieve an instance for a
* desired {@link Imt}.
*
* <p><b>Reference:</b> Shahjouei, A., and Pezeshk, S., 2016. Alternative hybrid
* ground-motion model for central and eastern North America using hybrid
* simulations and NGA-West2 models: Bulletin of the Seismological Society of
* America, v. 106, no. 2, pp. 734–754.
*
* <p><b>doi:</b> <a href="http://dx.doi.org/10.1785/0120140367">
* 10.1785/0120140367</a>
*
* <p><b>Component:</b> average horizontal (RotD50)
*
* @author Allison Shumway
* @author Peter Powers
* @see Gmm#NGA_EAST_SEED_SP16
*/
public final class ShahjoueiPezeshk_2016 implements GroundMotionModel {
/*
* Developer notes:
*
* Whereas some seed model updates were provided to the USGS as drop in
* updates to the NGA-East ground motion table format (e.g. Graizer17), this
* update was provided as the complete (mean and sigma) functional form and is
* therefore implemented outside the NgaEastUsgs_2017 wrapper class.
*/
static final String NAME = NgaEastUsgs_2017.Seed.NAME + "SP16";
static final Constraints CONSTRAINTS = Constraints.builder()
.set(MW, Range.closed(4.0, 8.0))
.set(RJB, Range.closed(0.0, 1000.0))
.set(VS30, Range.singleton(3000.0))
.build();
static final CoefficientContainer COEFFS = new CoefficientContainer("SP16.csv");
private static final double SIGMA_FAC = -6.898e-3;
private static final double SIGMA_FAC_PGV = -3.054e-5;
private static final class Coefficients {
final Imt imt;
final double c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, σReg;
Coefficients(Imt imt, CoefficientContainer cc) {
this.imt = imt;
Map<String, Double> coeffs = cc.get(imt);
c1 = coeffs.get("c1");
c2 = coeffs.get("c2");
c3 = coeffs.get("c3");
c4 = coeffs.get("c4");
c5 = coeffs.get("c5");
c6 = coeffs.get("c6");
c7 = coeffs.get("c7");
c8 = coeffs.get("c8");
c9 = coeffs.get("c9");
c10 = coeffs.get("c10");
c11 = coeffs.get("c11");
c12 = coeffs.get("c12");
c13 = coeffs.get("c13");
c14 = coeffs.get("c14");
σReg = coeffs.get("sigma_reg");
}
}
private final Coefficients coeffs;
ShahjoueiPezeshk_2016(final Imt imt) {
coeffs = new Coefficients(imt, COEFFS);
}
@Override
public final ScalarGroundMotion calc(final GmmInput in) {
double μ = calcMean(coeffs, in.Mw, in.rJB);
double σ = calcStdDev(coeffs, in.Mw);
return DefaultScalarGroundMotion.create(μ, σ);
}
private static double calcMean(final Coefficients c, final double Mw, final double rJB) {
double r = sqrt(rJB * rJB + c.c11 * c.c11);
double μ = c.c1 +
(c.c2 * Mw) +
(c.c3 * Mw * Mw) +
(c.c4 + c.c5 * Mw) * min(log10(r), log10(60.0)) +
(c.c6 + c.c7 * Mw) * max(min(log10(r / 60.0), log10(2.0)), 0.0) +
(c.c8 + c.c9 * Mw) * max(log10(r / 120.0), 0.0) +
(c.c10 * r);
return μ * BASE_10_TO_E;
}
/* Aleatory sigma model only. */
private static double calcStdDev(final Coefficients c, final double Mw) {
double ψ = c.imt == Imt.PGV ? SIGMA_FAC_PGV : SIGMA_FAC;
double σlnY = (Mw <= 6.5) ? c.c12 * Mw + c.c13 : ψ * Mw + c.c14;
return sqrt(σlnY * σlnY + c.σReg * c.σReg);
}
}
T,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,sigma_reg,sigma_par
PGA,-0.3002,0.5066,-0.04526,-3.224,0.2998,-1.283,0.1045,-3.0856,0.2778,-0.0007711,3.81,-0.0554,0.978,0.663,0.1,0.288
PGV,-2.3891,1.259,-0.07901,-0.029386,0.3034,-0.00929,-0.04605,-2.7548,0.3467,-0.0007623,-4.598,-0.41,0.876,0.611,0.194,0.373
0.01,-0.3472,0.4838,-0.04093,-3.0832,0.2712,-0.9676,0.04983,-2.9695,0.2693,-0.0006695,-4.434,-0.056,0.982,0.664,0.132,0.281
0.02,0.832,0.1934,-0.0206,-3.1134,0.2786,-1.133,0.05994,-3.5023,0.2901,-0.0005857,-4.412,-0.0559,0.983,0.665,0.0928,0.281
0.03,1.185,0.1064,-0.01423,-3.1029,0.2792,-1.078,0.05239,-3.5722,0.2865,-0.000622,-4.353,-0.0577,1,0.676,0.0833,0.277
0.04,1.246,0.08986,-0.01268,-3.0785,0.2773,-0.9743,0.0416,-3.5083,0.2769,-0.0006818,-4.303,-0.0577,1.01,0.688,0.0798,0.279
0.05,1.1793,0.1037,-0.01321,-3.0488,0.2744,-0.8635,0.03077,-3.3986,0.2659,-0.0007439,-4.266,-0.0578,1.03,0.701,0.0776,0.272
0.075,0.8045,0.1866,-0.01788,-2.9697,0.266,-0.6122,0.007491,-3.0852,0.2391,-0.0008801,-4.241,-0.0561,1.03,0.721,0.0738,0.252
0.1,0.35,0.2871,-0.02381,-2.894,0.2576,-0.4123,-0.01012,-2.7947,0.2163,-0.0009848,4.201,-0.0565,1.05,0.732,0.0717,0.265
0.15,-0.5264,0.4782,-0.03519,-2.761,0.2426,-0.01319,-0.03338,-2.3312,0.1818,-0.001125,4.239,-0.0559,1.04,0.724,0.0716,0.276
0.2,-1.2884,0.6413,-0.04486,-2.6504,0.2301,0.04637,-0.0469,-1.9927,0.1576,-0.001209,4.325,-0.056,1.03,0.715,0.0743,0.258
0.25,-1.9422,0.7789,-0.05295,-2.5573,0.2196,0.1631,-0.05478,-1.7399,0.1398,-0.001258,4.438,-0.0537,1.02,0.712,0.0779,0.268
0.3,-2.5071,0.8961,-0.05976,-2.478,0.2107,0.2407,-0.05919,-1.547,0.1265,-0.001286,4.571,-0.0511,1.01,0.718,0.0815,0.0284
0.4,-3.436,1.085,-0.07059,-2.3495,0.1961,0.3244,-0.06197,-1.2793,0.1085,-0.001304,-4.872,-0.047,0.987,0.725,0.0876,0.34
0.5,-4.1699,1.231,-0.07878,-2.251,0.1849,0.3544,-0.06046,-1.1111,0.09757,-0.001294,-5.211,-0.0442,0.981,0.736,0.0923,0.357
0.75,-5.4797,1.482,-0.09245,-2.0865,0.1659,0.3284,-0.04979,-0.9131,0.0857,-0.001219,-6.154,-0.0384,0.967,0.76,0.0991,0.374
1,-6.3464,1.641,-0.1006,-1.9931,0.1546,0.253,-0.03709,-0.8641,0.08405,-0.001123,-7.174,-0.0314,0.933,0.77,0.102,0.392
1.5,-7.4087,1.823,-0.1093,-1.9162,0.1438,0.09019,-0.01551,-0.92,0.09103,-0.0009407,-9.253,-0.0227,0.883,0.776,0.105,0.426
2,-8.0057,1.916,-0.113,-1.9173,0.1418,-0.03828,-0.001252,-1.0327,0.1016,-0.0007926,-11.22,-0.0184,0.857,0.778,0.106,0.44
3,-8.5793,1.985,-0.1146,-2.0184,0.1499,-0.1744,0.009393,-1.2453,0.1214,-0.0005919,14.38,-0.0189,0.859,0.777,0.107,0.58
4,-8.8246,1.99,-0.1131,-2.1475,0.1635,-0.1844,0.003919,-1.3849,0.1357,-0.0004855,16.19,-0.016,0.83,0.766,0.107,0.589
5,-8.9855,1.975,-0.1105,-2.2496,0.1764,-0.1043,-0.01187,-1.4511,0.1446,-0.0004439,16.71,-0.0153,0.826,0.766,0.107,0.631
7.5,-9.3927,1.925,-0.1032,-2.3572,0.1973,0.3465,-0.07832,-1.3728,0.149,-0.0005176,14.58,-0.0143,0.815,0.762,0.113,0.721
10,-9.735,1.879,-0.09666,-2.4139,0.2117,1.01,-0.1678,-1.0631,0.137,-0.000742,11.23,-0.017,0.822,0.752,0.14,0.739
\ No newline at end of file
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