diff --git a/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java b/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java index b7466a6ade2f4185954634b2ebd44f97be10744b..88262599021b5a4d439ecb267e73689b207aa4fd 100644 --- a/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java +++ b/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java @@ -759,15 +759,15 @@ public enum Gmm { /** @see NgaEastUsgs_2017 */ NGA_EAST_SEED_GRAIZER16( - NgaEastUsgs_2017.UpdatedSeed_Graizer16.class, - NgaEastUsgs_2017.UpdatedSeed_Graizer16.NAME, + NgaEastUsgs_2017.SeedUpdate_Graizer16.class, + NgaEastUsgs_2017.SeedUpdate_Graizer16.NAME, NgaEastUsgs_2017.COEFFS_SIGMA_MID, NgaEastUsgs_2017.CONSTRAINTS), /** @see NgaEastUsgs_2017 */ NGA_EAST_SEED_GRAIZER17( - NgaEastUsgs_2017.UpdatedSeed_Graizer17.class, - NgaEastUsgs_2017.UpdatedSeed_Graizer17.NAME, + NgaEastUsgs_2017.SeedUpdate_Graizer17.class, + NgaEastUsgs_2017.SeedUpdate_Graizer17.NAME, NgaEastUsgs_2017.COEFFS_SIGMA_MID, NgaEastUsgs_2017.CONSTRAINTS), diff --git a/src/gov/usgs/earthquake/nshmp/gmm/NgaEastUsgs_2017.java b/src/gov/usgs/earthquake/nshmp/gmm/NgaEastUsgs_2017.java index 6cefc0533acc62eb504160d6ff0e81799e74cd3b..801e5ed451cc443cbb5a92521cb20a0e4680d1e6 100644 --- a/src/gov/usgs/earthquake/nshmp/gmm/NgaEastUsgs_2017.java +++ b/src/gov/usgs/earthquake/nshmp/gmm/NgaEastUsgs_2017.java @@ -105,7 +105,7 @@ public abstract class NgaEastUsgs_2017 implements GroundMotionModel { static final Constraints CONSTRAINTS = Constraints.builder() .set(MW, Range.closed(4.0, 8.2)) .set(RJB, Range.closed(0.0, 1500.0)) - .set(VS30, Range.closed(150.0, 3000.0)) + .set(VS30, Range.closed(200.0, 3000.0)) .build(); /* @@ -648,28 +648,24 @@ public abstract class NgaEastUsgs_2017 implements GroundMotionModel { } } - static abstract class UpdatedSeed extends Seed { - static final String NAME = NgaEastUsgs_2017.NAME + ": Seed (updated) : "; - - UpdatedSeed(String id, Imt imt) { - super(id, imt); - } - } - - static final class UpdatedSeed_Graizer16 extends UpdatedSeed { + /* + * Updated Graizer models. + */ + + static final class SeedUpdate_Graizer16 extends Seed { static final String ID = "Graizer16"; - static final String NAME = UpdatedSeed.NAME + ID; + static final String NAME = Seed.NAME + ID + " (updated)"; - UpdatedSeed_Graizer16(Imt imt) { + SeedUpdate_Graizer16(Imt imt) { super(ID, imt); } } - static final class UpdatedSeed_Graizer17 extends UpdatedSeed { + static final class SeedUpdate_Graizer17 extends Seed { static final String ID = "Graizer17"; - static final String NAME = UpdatedSeed.NAME + ID; + static final String NAME = Seed.NAME + ID + " (updated)"; - UpdatedSeed_Graizer17(Imt imt) { + SeedUpdate_Graizer17(Imt imt) { super(ID, imt); } } @@ -722,7 +718,7 @@ public abstract class NgaEastUsgs_2017 implements GroundMotionModel { } } - private SiteAmp(Imt imt) { + SiteAmp(Imt imt) { c = new Coefficients(imt, COEFFS); } diff --git a/src/gov/usgs/earthquake/nshmp/gmm/ShahjoueiPezeshk_2016.java b/src/gov/usgs/earthquake/nshmp/gmm/ShahjoueiPezeshk_2016.java index 1e234471f10d3f089c3dc939ea875ef801cbfa33..60e52040080e7137eb8e3966305a339f53f16387 100644 --- a/src/gov/usgs/earthquake/nshmp/gmm/ShahjoueiPezeshk_2016.java +++ b/src/gov/usgs/earthquake/nshmp/gmm/ShahjoueiPezeshk_2016.java @@ -4,6 +4,7 @@ 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.exp; import static java.lang.Math.log10; import static java.lang.Math.max; import static java.lang.Math.min; @@ -14,6 +15,7 @@ import com.google.common.collect.Range; import java.util.Map; import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints; +import gov.usgs.earthquake.nshmp.gmm.NgaEastUsgs_2017.SiteAmp; /** * Implementation of the Shahjouei and Pezeshk (2016) ground motion model for @@ -49,12 +51,12 @@ public final class ShahjoueiPezeshk_2016 implements GroundMotionModel { * 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.UpdatedSeed.NAME + "SP16"; + static final String NAME = NgaEastUsgs_2017.Seed.NAME + "SP16 (updated)"; 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)) + .set(VS30, Range.closed(200.0, 3000.0)) .build(); static final CoefficientContainer COEFFS = new CoefficientContainer("SP16.csv"); @@ -89,14 +91,20 @@ public final class ShahjoueiPezeshk_2016 implements GroundMotionModel { } private final Coefficients coeffs; + private final Coefficients coeffsPga; + private final SiteAmp siteAmp; ShahjoueiPezeshk_2016(final Imt imt) { - coeffs = new Coefficients(imt, COEFFS); + this.coeffs = new Coefficients(imt, COEFFS); + this.coeffsPga = new Coefficients(Imt.PGA, COEFFS); + this.siteAmp = new NgaEastUsgs_2017.SiteAmp(imt); } @Override public final ScalarGroundMotion calc(final GmmInput in) { - double μ = calcMean(coeffs, in.Mw, in.rJB); + double μPga = exp(calcMean(coeffsPga, in.Mw, in.rJB)); + double fSite = siteAmp.calc(μPga, in.vs30); + double μ = calcMean(coeffs, in.Mw, in.rJB) + fSite; double σ = calcStdDev(coeffs, in.Mw); return DefaultScalarGroundMotion.create(μ, σ); } diff --git a/src/gov/usgs/earthquake/nshmp/gmm/coeffs/SP16.csv b/src/gov/usgs/earthquake/nshmp/gmm/coeffs/SP16.csv index 8fc0482b7b72839a4a7f70450a9a1d2d3fc1e2aa..4a3c1db4afe7e3248669671e53834019faa838f6 100644 --- a/src/gov/usgs/earthquake/nshmp/gmm/coeffs/SP16.csv +++ b/src/gov/usgs/earthquake/nshmp/gmm/coeffs/SP16.csv @@ -1,10 +1,10 @@ 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 +# 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.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 @@ -21,5 +21,5 @@ PGV,-2.3891,1.259,-0.07901,-0.029386,0.3034,-0.00929,-0.04605,-2.7548,0.3467,-0. 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 +# 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