From e284fa93d5c1dcb65f356cff6171c90449925393 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Tue, 10 Dec 2024 10:05:43 -0700 Subject: [PATCH] updated backbone to use adjusted gmms --- .../nshmp/gmm/UsgsPrviBackbone2025.java | 85 ++++++++++++------- 1 file changed, 56 insertions(+), 29 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java index baeda194..5ba4b2c1 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java @@ -3,14 +3,24 @@ package gov.usgs.earthquake.nshmp.gmm; import static com.google.common.base.Preconditions.checkArgument; import static gov.usgs.earthquake.nshmp.gmm.Gmm.AG_20_GLOBAL_INTERFACE; import static gov.usgs.earthquake.nshmp.gmm.Gmm.AG_20_GLOBAL_SLAB; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.AG_20_PRVI_INTERFACE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.AG_20_PRVI_SLAB; import static gov.usgs.earthquake.nshmp.gmm.Gmm.ASK_14_BASE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.ASK_14_PRVI; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BSSA_14_BASE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.BSSA_14_PRVI; import static gov.usgs.earthquake.nshmp.gmm.Gmm.CB_14_BASE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.CB_14_PRVI; import static gov.usgs.earthquake.nshmp.gmm.Gmm.CY_14_BASE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.CY_14_PRVI; import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_GLOBAL_INTERFACE; import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_GLOBAL_SLAB; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_PRVI_INTERFACE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_PRVI_SLAB; import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSBAH_20_GLOBAL_INTERFACE; import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSBAH_20_GLOBAL_SLAB; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSBAH_20_PRVI_INTERFACE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSBAH_20_PRVI_SLAB; import static gov.usgs.earthquake.nshmp.gmm.Gmm.Type.ACTIVE_CRUST; import static gov.usgs.earthquake.nshmp.gmm.Gmm.Type.SUBDUCTION_INTERFACE; import static gov.usgs.earthquake.nshmp.gmm.Gmm.Type.SUBDUCTION_SLAB; @@ -74,28 +84,23 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { final double φs2sPrvi, φs2sNga; final double τSub, φSub, φSubSS, φSubS2S; - Coefficients( - Imt imt, - CoefficientContainer ccTau, - CoefficientContainer ccPhiSS, - CoefficientContainer ccPhiS2S, - CoefficientContainer ccSubSigma) { + Coefficients(Imt imt) { - Map<String, Double> coeffsTau = ccTau.get(imt); + Map<String, Double> coeffsTau = COEFFS_TAU_ACTIVE_CRUST.get(imt); τ1 = coeffsTau.get("tau_mean_4.5"); τ2 = coeffsTau.get("tau_mean_5.0"); τ3 = coeffsTau.get("tau_mean_5.5"); τ4 = coeffsTau.get("tau_mean_6.5"); - Map<String, Double> coeffsPhiSS = ccPhiSS.get(imt); + Map<String, Double> coeffsPhiSS = COEFFS_PHISS_ACTIVE_CRUST.get(imt); a = coeffsPhiSS.get("a_smoothed_Mod"); b = coeffsPhiSS.get("b_smoothed_Mod"); - Map<String, Double> coeffsPhiS2S = ccPhiS2S.get(imt); + Map<String, Double> coeffsPhiS2S = COEFFS_PHIS2S_ACTIVE_CRUST.get(imt); φs2sPrvi = coeffsPhiS2S.get("phiS2S_PRVI"); φs2sNga = coeffsPhiS2S.get("phiS2S_WUS"); - Map<String, Double> coeffsSubSigma = ccSubSigma.get(imt); + Map<String, Double> coeffsSubSigma = COEFFS_SIGMA_SUBDUCTION.get(imt); τSub = coeffsSubSigma.get("tau_mean"); φSub = coeffsSubSigma.get("phi_mean"); φSubSS = coeffsSubSigma.get("PhiSS_PRVI"); @@ -115,6 +120,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { String name, Map<Gmm, Double> gmms, GroundMotionTable[] epiTables) { + this.imt = imt; this.epiTables = epiTables; LogicTree.Builder<GroundMotionModel> b = LogicTree.builder(name); @@ -123,13 +129,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { e.getKey().instance(imt), e.getValue())); this.tree = b.build(); - - coeffs = new Coefficients( - imt, - COEFFS_TAU_ACTIVE_CRUST, - COEFFS_PHISS_ACTIVE_CRUST, - COEFFS_PHIS2S_ACTIVE_CRUST, - COEFFS_SIGMA_SUBDUCTION); + this.coeffs = new Coefficients(imt); } @Override @@ -211,18 +211,28 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = UsgsPrviBackbone2025.NAME + " : Active Crust"; static final Constraints CONSTRAINTS = AbrahamsonEtAl_2014.CONSTRAINTS; - static final Map<Gmm, Double> GMM_MAP = Map.of( + static final Map<Gmm, Double> GMMS_ACTIVE_CRUST = Map.of( ASK_14_BASE, 0.25, BSSA_14_BASE, 0.25, CB_14_BASE, 0.25, CY_14_BASE, 0.25); + static final Map<Gmm, Double> GMMS_ACTIVE_CRUST_PRVI = Map.of( + ASK_14_PRVI, 0.25, + BSSA_14_PRVI, 0.25, + CB_14_PRVI, 0.25, + CY_14_PRVI, 0.25); + ActiveCrust(Imt imt) { this(imt, NAME); } ActiveCrust(Imt imt, String name) { - super(imt, name, GMM_MAP, getPrviEpi(ACTIVE_CRUST, imt)); + this(imt, name, GMMS_ACTIVE_CRUST); + } + + ActiveCrust(Imt imt, String name, Map<Gmm, Double> gmms) { + super(imt, name, gmms, getPrviEpi(ACTIVE_CRUST, imt)); } @Override @@ -278,7 +288,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = ActiveCrust.NAME + " (adjusted)"; ActiveCrustAdjusted(Imt imt) { - super(imt, NAME); + super(imt, NAME, GMMS_ACTIVE_CRUST_PRVI); } @Override @@ -294,7 +304,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = ActiveCrust.NAME + " (adjusted, no epi, NGA sigma)"; ActiveCrustAdjustedNoEpiSigmaNga(Imt imt) { - super(imt, NAME); + super(imt, NAME, GMMS_ACTIVE_CRUST_PRVI); } @Override @@ -369,18 +379,26 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = UsgsPrviBackbone2025.NAME + " : " + INTERFACE; static final Constraints CONSTRAINTS = AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE; - static final Map<Gmm, Double> GMM_MAP = Map.of( + static final Map<Gmm, Double> GMMS_INTERFACE = Map.of( AG_20_GLOBAL_INTERFACE, 0.3333, KBCG_20_GLOBAL_INTERFACE, 0.3333, PSBAH_20_GLOBAL_INTERFACE, 0.3334); + static final Map<Gmm, Double> GMMS_INTERFACE_PRVI = Map.of( + AG_20_PRVI_INTERFACE, 0.3333, + KBCG_20_PRVI_INTERFACE, 0.3333, + PSBAH_20_PRVI_INTERFACE, 0.3334); + Interface(Imt imt) { this(imt, NAME); } Interface(Imt imt, String name) { - super(imt, name, GMM_MAP, getPrviEpi(SUBDUCTION_INTERFACE, imt)); + this(imt, name, GMMS_INTERFACE); + } + Interface(Imt imt, String name, Map<Gmm, Double> gmms) { + super(imt, name, gmms, getPrviEpi(SUBDUCTION_INTERFACE, imt)); } @Override @@ -414,7 +432,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Interface.NAME + " (adjusted)"; InterfaceAdjusted(Imt imt) { - super(imt, NAME); + super(imt, NAME, GMMS_INTERFACE_PRVI); } @Override @@ -430,7 +448,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Interface.NAME + " (adjusted, no epi, NGA sigma)"; InterfaceAdjustedNoEpiSigmaNga(Imt imt) { - super(imt, NAME); + super(imt, NAME, GMMS_INTERFACE_PRVI); } @Override @@ -505,17 +523,26 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = UsgsPrviBackbone2025.NAME + " : " + SLAB; static final Constraints CONSTRAINTS = AbrahamsonGulerce_2020.CONSTRAINTS_SLAB; - static final Map<Gmm, Double> GMM_MAP = Map.of( + static final Map<Gmm, Double> GMMS_INTRASLAB = Map.of( AG_20_GLOBAL_SLAB, 0.3333, KBCG_20_GLOBAL_SLAB, 0.3333, PSBAH_20_GLOBAL_SLAB, 0.3334); + static final Map<Gmm, Double> GMMS_INTRASLAB_PRVI = Map.of( + AG_20_PRVI_SLAB, 0.3333, + KBCG_20_PRVI_SLAB, 0.3333, + PSBAH_20_PRVI_SLAB, 0.3334); + Slab(Imt imt) { this(imt, NAME); } Slab(Imt imt, String name) { - super(imt, name, GMM_MAP, getPrviEpi(SUBDUCTION_SLAB, imt)); + this(imt, name, GMMS_INTRASLAB); + } + + Slab(Imt imt, String name, Map<Gmm, Double> gmms) { + super(imt, name, gmms, getPrviEpi(SUBDUCTION_SLAB, imt)); } @Override @@ -549,7 +576,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Slab.NAME + " (adjusted)"; SlabAdjusted(Imt imt) { - super(imt, NAME); + super(imt, NAME, GMMS_INTRASLAB_PRVI); } @Override @@ -565,7 +592,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Slab.NAME + " (adjusted, no epi, NGA sigma)"; SlabAdjustedNoEpiSigmaNga(Imt imt) { - super(imt, NAME); + super(imt, NAME, GMMS_INTRASLAB_PRVI); } @Override -- GitLab