diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/CombinedGmm.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/CombinedGmm.java index c3e28807ba70526e16c06f034c5ccb2ea8baa3aa..b1e300473ec537dcba674fcd941fd6ff65182153 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/CombinedGmm.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/CombinedGmm.java @@ -64,6 +64,12 @@ import static gov.usgs.earthquake.nshmp.gmm.Gmm.SILVA_02; import static gov.usgs.earthquake.nshmp.gmm.Gmm.SOMERVILLE_01; import static gov.usgs.earthquake.nshmp.gmm.Gmm.TORO_97_MW; import static gov.usgs.earthquake.nshmp.gmm.Gmm.TP_05; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.USGS_PRVI_ACTIVE_CRUST; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.USGS_PRVI_ACTIVE_CRUST_ADJUSTED; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.USGS_PRVI_INTERFACE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.USGS_PRVI_INTERFACE_ADJUSTED; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.USGS_PRVI_INTRASLAB; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.USGS_PRVI_INTRASLAB_ADJUSTED; import static gov.usgs.earthquake.nshmp.gmm.Gmm.WONG_15; import static gov.usgs.earthquake.nshmp.gmm.Gmm.ZHAO_06_INTERFACE_BASIN; import static gov.usgs.earthquake.nshmp.gmm.Gmm.ZHAO_06_INTERFACE_BASIN_M9; @@ -584,4 +590,52 @@ class CombinedGmm implements GroundMotionModel { } } + private static final Map<Gmm, Double> PRVI_ACTIVE_CRUST_2025 = Map.of( + USGS_PRVI_ACTIVE_CRUST, 0.5, + USGS_PRVI_ACTIVE_CRUST_ADJUSTED, 0.5); + + /* 2.0 PRVI Active Crust */ + static final class PrviActiveCrust2025 extends CombinedGmm { + + static final String NAME = CombinedGmm.NAME + "PRVI Active Crust 2025 (2.0)"; + static final Constraints CONSTRAINTS = UsgsPrviBackbone2025.ActiveCrust.CONSTRAINTS; + static final CoefficientContainer COEFFS = UsgsPrviBackbone2025.COEFFS_DATA_ADJUSTMENT; + + PrviActiveCrust2025(Imt imt) { + super(imt, PRVI_ACTIVE_CRUST_2025); + } + } + + private static final Map<Gmm, Double> PRVI_INTERFACE_2025 = Map.of( + USGS_PRVI_INTERFACE, 0.5, + USGS_PRVI_INTERFACE_ADJUSTED, 0.5); + + /* 2.0 PRVI Active Crust */ + static final class PrviInterface2025 extends CombinedGmm { + + static final String NAME = CombinedGmm.NAME + "PRVI Interface 2025 (2.0)"; + static final Constraints CONSTRAINTS = UsgsPrviBackbone2025.ActiveCrust.CONSTRAINTS; + static final CoefficientContainer COEFFS = UsgsPrviBackbone2025.COEFFS_DATA_ADJUSTMENT; + + PrviInterface2025(Imt imt) { + super(imt, PRVI_INTERFACE_2025); + } + } + + private static final Map<Gmm, Double> PRVI_INTRASLAB_2025 = Map.of( + USGS_PRVI_INTRASLAB, 0.5, + USGS_PRVI_INTRASLAB_ADJUSTED, 0.5); + + /* 2.0 PRVI Active Crust */ + static final class PrviIntraslab2025 extends CombinedGmm { + + static final String NAME = CombinedGmm.NAME + "PRVI Intraslab 2025 (2.0)"; + static final Constraints CONSTRAINTS = UsgsPrviBackbone2025.ActiveCrust.CONSTRAINTS; + static final CoefficientContainer COEFFS = UsgsPrviBackbone2025.COEFFS_DATA_ADJUSTMENT; + + PrviIntraslab2025(Imt imt) { + super(imt, PRVI_INTRASLAB_2025); + } + } + } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java index 4db06d842638af72e8943da905459429933a8a70..6cd35c634401c8fe5b7d3b970736ee18610d633c 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java @@ -1495,7 +1495,28 @@ public enum Gmm { CombinedGmm.AkIntraslab2023.class, CombinedGmm.AkIntraslab2023.NAME, CombinedGmm.AkIntraslab2023.COEFFS, - CombinedGmm.AkIntraslab2023.CONSTRAINTS); + CombinedGmm.AkIntraslab2023.CONSTRAINTS), + + /** 2025 PRVI active crust weight-averaged GMM. */ + COMBINED_PRVI_ACTIVE_CRUST_2025( + CombinedGmm.PrviActiveCrust2025.class, + CombinedGmm.PrviActiveCrust2025.NAME, + CombinedGmm.PrviActiveCrust2025.COEFFS, + CombinedGmm.PrviActiveCrust2025.CONSTRAINTS), + + /** 2025 PRVI interface weight-averaged GMM. */ + COMBINED_PRVI_INTERFACE_2025( + CombinedGmm.PrviInterface2025.class, + CombinedGmm.PrviInterface2025.NAME, + CombinedGmm.PrviInterface2025.COEFFS, + CombinedGmm.PrviInterface2025.CONSTRAINTS), + + /** 2025 PRVI intraslab weight-averaged GMM. */ + COMBINED_PRVI_INTRASLAB_2025( + CombinedGmm.PrviIntraslab2025.class, + CombinedGmm.PrviIntraslab2025.NAME, + CombinedGmm.PrviIntraslab2025.COEFFS, + CombinedGmm.PrviIntraslab2025.CONSTRAINTS); private final Class<? extends GroundMotionModel> delegate; private final String name; @@ -1686,35 +1707,32 @@ public enum Gmm { public enum Group { PRVI_25_ACTIVE_CRUST( - "2025 PRVI Active Crust (BETA)", + "2025 PRVI Active Crust (beta)", List.of( - ASK_14, - BSSA_14, - CB_14, - CY_14, - MA_05_BASE, - MA_05, - GOMEZ_22_CRUSTAL)), + USGS_PRVI_ACTIVE_CRUST, + USGS_PRVI_ACTIVE_CRUST_ADJUSTED, + ASK_14_BASE, + BSSA_14_BASE, + CB_14_BASE, + CY_14_BASE)), PRVI_25_INTERFACE( - "2025 PRVI Interface (BETA)", + "2025 PRVI Interface (beta)", List.of( + USGS_PRVI_INTERFACE, + USGS_PRVI_INTERFACE_ADJUSTED, AG_20_GLOBAL_INTERFACE, KBCG_20_GLOBAL_INTERFACE, - PSBAH_20_GLOBAL_INTERFACE, - MA_05_BASE, - MA_05, - GOMEZ_22_NONCRUSTAL)), + PSBAH_20_GLOBAL_INTERFACE)), PRVI_25_SLAB( - "2025 PRVI Slab (BETA)", + "2025 PRVI Intraslab (beta)", List.of( + USGS_PRVI_INTRASLAB, + USGS_PRVI_INTRASLAB_ADJUSTED, AG_20_GLOBAL_SLAB, KBCG_20_GLOBAL_SLAB, - PSBAH_20_GLOBAL_SLAB, - MA_05_BASE, - MA_05, - GOMEZ_22_NONCRUSTAL)), + PSBAH_20_GLOBAL_SLAB)), CEUS_14_STABLE_CRUST( "2014 Stable Crust (CEUS)", @@ -2019,7 +2037,8 @@ public enum Gmm { COMBINED_ACTIVE_CRUST_2023_LOS_ANGELES, COMBINED_ACTIVE_CRUST_2023_SAN_FRANCISCO, COMBINED_AK_ACTIVE_CRUST_2007, - COMBINED_AK_ACTIVE_CRUST_2023)), + COMBINED_AK_ACTIVE_CRUST_2023, + COMBINED_PRVI_ACTIVE_CRUST_2025)), COMBINED_STABLE_CRUST( "Combined Models (Stable Crust)", @@ -2035,7 +2054,8 @@ public enum Gmm { COMBINED_INTERFACE_2023, COMBINED_INTERFACE_2023_SEATTLE, COMBINED_AK_INTERFACE_2007, - COMBINED_AK_INTERFACE_2023)), + COMBINED_AK_INTERFACE_2023, + COMBINED_PRVI_INTERFACE_2025)), COMBINED_SLAB( "Combined Models (Subduction Slab)", @@ -2044,7 +2064,8 @@ public enum Gmm { COMBINED_INTRASLAB_2023, COMBINED_INTRASLAB_2023_SEATTLE, COMBINED_AK_INTRASLAB_2007, - COMBINED_AK_INTRASLAB_2023)), + COMBINED_AK_INTRASLAB_2023, + COMBINED_PRVI_INTRASLAB_2025)), NGA_EAST( "NGA-East Logic Trees", 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 c9a4852048035de5ddd8e8c27efe2b1c5df5f9d5..1b56ef63802bf3128f8513e4ca177574e54fc69e 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java @@ -62,8 +62,8 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { // private final double SUBDUCTION_INTERFACE_MEAN_ADJUSTMENT = -1.098; // private final double SUBDUCTION_INTRASLAB_MEAN_ADJUSTMENT = -0.405; - public static final String SIGMA_REF_ID = "σ-ref"; - public static final String SIGMA_PRVI_ID = "σ-prvi"; + public static final String SIGMA_REF_ID = "σ-model1"; + public static final String SIGMA_PRVI_ID = "σ-model2"; private static final String[] SIGMA_IDS = { SIGMA_REF_ID, SIGMA_PRVI_ID }; private static final double[] SIGMA_WTS = { 0.5, 0.5 };