From 5a8b8a5e98ef671333e646b9b6632ce028af20e1 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 19 Feb 2025 08:56:50 -0700 Subject: [PATCH 1/6] MA_03 implementation --- .../nshmp/gmm/MotazedianAtkinson_2003.java | 131 ++++++++++++++++++ .../gmm/coeffs/MotazedianAtkinson03.csv | 4 + 2 files changed, 135 insertions(+) create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/gmm/MotazedianAtkinson_2003.java create mode 100644 src/main/resources/gmm/coeffs/MotazedianAtkinson03.csv diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/MotazedianAtkinson_2003.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/MotazedianAtkinson_2003.java new file mode 100644 index 00000000..fd4b6caf --- /dev/null +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/MotazedianAtkinson_2003.java @@ -0,0 +1,131 @@ +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.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 java.lang.Math.log10; +import static java.lang.Math.sqrt; + +import java.util.Map; + +import com.google.common.collect.Range; + +import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints; +import gov.usgs.earthquake.nshmp.tree.LogicTree; + +/** + * Implementation of the preliminary MA05 model that was used for PRVI. + * Functional form is the same as MA05 with diffeent coefficients and constants. + * Coefficients were gleaned from forttran codes and only three IMTs are + * supported (PGA, 0.2 s, and 1 s). + * + * <p><b>Component:</b> not specified (avg horizontal implied) + * + * @author U.S. Geological Survey + * @see MotazedianAtkinson_2005 + * @see Gmm#MA_03_PRVI + */ +public class MotazedianAtkinson_2003 implements GroundMotionModel { + + static final String NAME = "Motazedian & Atkinson (2003) PRVI Preliminary"; + + static final Constraints CONSTRAINTS = Constraints.builder() + .set(MW, Range.closed(4.0, 9.5)) + .set(RRUP, Range.closed(0.0, 1000.0)) + .set(VS30, Range.closedOpen(150.0, 1500.0)) + .build(); + + static final CoefficientContainer COEFFS = + new CoefficientContainer("MotazedianAtkinson03.csv"); + + // distance centering coefficients + private static final double C5 = -7.333; + private static final double C6 = 2.333; + // hinge function coefficients + private static final double C7 = -1.88; + private static final double C8 = 0.14; + private static final double DIST_HINGE_LOWER = 75.0; + private static final double DIST_HINGE_UPPER = 100.0; + + // convert log10 sigma to ln + private static final double SIGMA = 0.28 * BASE_10_TO_E; + + private static final class Coefficients { + + final Imt imt; + final double c1, c2, c3, c4; + + 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"); + } + } + + private final Coefficients coeffs; + + MotazedianAtkinson_2003(Imt imt) { + coeffs = new Coefficients(imt, COEFFS); + } + + @Override + public Imt imt() { + return coeffs.imt; + } + + @Override + public LogicTree<GroundMotion> calc(GmmInput in) { + return calc(coeffs, in); + } + + private static LogicTree<GroundMotion> calc( + Coefficients c, + GmmInput in) { + + double μ = calcMean(c, in.rRup, in.Mw); + return GroundMotions.createTree(μ, SIGMA); + } + + private static final double calcMean( + Coefficients c, + double rRup, + double Mw) { + + /* Eq. 6, log10(PSA) in cm/s/s */ + + double r = getR(rRup, Mw); + + double hingeFunction = getHingeFunction(r, Mw); + + double μ = c.c1 + c.c2 * (Mw - 6) + c.c3 * (Mw - 6) * (Mw - 6) + hingeFunction + c.c4 * r; + // convert from base 10 to base e and from cm/s/s to g + return μ * BASE_10_TO_E - LN_G_CM_TO_M; + } + + private static final double getR(double rRup, double Mw) { + // Equation and coefficients defined in Table 2 caption + double delta = C5 + C6 * Mw; + return sqrt(rRup * rRup + delta * delta); + } + + private static final double getHingeFunction(double dist, double Mw) { + // Equation and coefficients defined in Table 2 caption + double mFac = C7 + C8 * Mw; + if (dist <= DIST_HINGE_LOWER) { + // R <= 75 km + return mFac * log10(dist); + } else if (dist <= DIST_HINGE_UPPER) { + // 75 km < R <= 100 km + return mFac * log10(DIST_HINGE_LOWER); + } else { + // R >= 100 km + return mFac * log10(DIST_HINGE_LOWER) - 0.5 * log10(dist / DIST_HINGE_UPPER); + } + } + +} diff --git a/src/main/resources/gmm/coeffs/MotazedianAtkinson03.csv b/src/main/resources/gmm/coeffs/MotazedianAtkinson03.csv new file mode 100644 index 00000000..686974e5 --- /dev/null +++ b/src/main/resources/gmm/coeffs/MotazedianAtkinson03.csv @@ -0,0 +1,4 @@ +T, c1, c2, c3, c4 +PGA, 3.87, 0.39062, -0.11289, -0.00213 +0.2, 4.33, 0.38815, -0.13977, -0.00189 +1, 3.40, 0.64818, -0.15222, -0.00091 -- GitLab From 90c762259d6d07b9f0f90461be6b38b742683745 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 19 Feb 2025 08:57:25 -0700 Subject: [PATCH 2/6] sadigh prvi flavor; gmm ids --- .../gov/usgs/earthquake/nshmp/gmm/Gmm.java | 27 ++++++++---- .../earthquake/nshmp/gmm/SadighEtAl_1997.java | 42 +++++++++++++++++++ 2 files changed, 62 insertions(+), 7 deletions(-) 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 f21baae8..d5c32c6e 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java @@ -53,6 +53,12 @@ public enum Gmm { * argument. */ + MA_03( + MotazedianAtkinson_2003.class, + MotazedianAtkinson_2003.NAME, + MotazedianAtkinson_2003.COEFFS, + MotazedianAtkinson_2003.CONSTRAINTS), + MA_05_BASE( MotazedianAtkinson_2005.class, MotazedianAtkinson_2005.NAME, @@ -401,6 +407,20 @@ public enum Gmm { SadighEtAl_1997.COEFFS_BC_HI, SadighEtAl_1997.CONSTRAINTS), + /** @see SadighEtAl_1997 */ + SADIGH_97_PRVI_INTERFACE( + SadighEtAl_1997.PrviInterface.class, + SadighEtAl_1997.PrviInterface.NAME, + SadighEtAl_1997.COEFFS_BC_HI, + SadighEtAl_1997.CONSTRAINTS), + + /* PRVI 2003 */ + SPUDICH_99_PRVI( + SpudichEtAl_1999_PRVI.class, + SpudichEtAl_1999_PRVI.NAME, + SpudichEtAl_1999_PRVI.COEFFS, + SpudichEtAl_1999_PRVI.CONSTRAINTS), + /* Subduction Interface and Slab WUS 2008 2014 2018, AK 2007 */ /** @see AtkinsonBoore_2003 */ @@ -1563,13 +1583,6 @@ public enum Gmm { UsgsPrviBackbone2025.COEFFS_SIGMA_SUBDUCTION, UsgsPrviBackbone2025.SlabTotal.CONSTRAINTS), - /* PRVI 2003 */ - SEA99_PRVI( - SpudichEtAl_1999_PRVI.class, - SpudichEtAl_1999_PRVI.NAME, - SpudichEtAl_1999_PRVI.COEFFS, - SpudichEtAl_1999_PRVI.CONSTRAINTS), - /* Combined: must be declared after any dependent models above. */ /** 2021 Hawaii weight-averaged GMM for deep earthquakes. */ diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java index 2d62b5a6..dc94ce34 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java @@ -254,4 +254,46 @@ public class SadighEtAl_1997 implements GroundMotionModel { } } + /* + * Custom version of model for use with the 2003 PRVI NSHM where the GMM logic + * tree changes from 50/50 YOUNGS_97_INTERFACE/SADIGH_97 to 100% + * YOUNGS_97_INTERFACE at 58km (out to 1000km). This variant returns ground + * motions for YOUNGS_97_INTERFACE when rRup > 58 km, obviating the need for a + * distance dependent GMM logic tree. + */ + static final class PrviInterface extends SadighEtAl_1997 { + + static final String NAME = SadighEtAl_1997.NAME + " : PRVI : Interface"; + + private final Geomatrix_1993.Interface delegate; + + PrviInterface(Imt imt) { + super(imt); + delegate = (Geomatrix_1993.Interface) GEOMATRIX_93_INTERFACE.instance(imt); + } + + @Override + public final LogicTree<GroundMotion> calc(GmmInput in) { + if (in.rRup > 58.0) { + return delegate.calc(in); + } + return super.calc(in); + } + + @Override + double calcRockMean( + Coefficients c, + double Mw, + double rRup, + FaultStyle style) { + + /* + * We know interface events have a reverse rake. The Sadigh GMM as + * published includes a scale factor for reverse events, but it is not + * applied in the PRVI 2003 NSHM on the megathrust so we subtract it here. + */ + return super.calcRockMean(c, Mw, rRup, style) - 0.18232; + } + } + } -- GitLab From 9bf27de0aabd1395d139b85b9ee435d4663e7f65 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 19 Feb 2025 08:58:38 -0700 Subject: [PATCH 3/6] javadoc --- .../earthquake/nshmp/gmm/CampbellBozorgnia_2003_Alaska.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2003_Alaska.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2003_Alaska.java index 320671a4..da9bf222 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2003_Alaska.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2003_Alaska.java @@ -18,7 +18,7 @@ import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints; import gov.usgs.earthquake.nshmp.tree.LogicTree; /** - * Alaska-specific implementation of the Boore, Joyner & Fumal (1997) ground + * Alaska-specific implementation of the Campbell & Bozorgnia (2003) ground * motion model for shallow earthquakes in active continental crust. This * implementation was created to match fortran implementation with custom * coefficients such as 'csite'. -- GitLab From b502027676a76a596d6dcaee5a4ec258b8a850d2 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 19 Feb 2025 09:34:31 -0700 Subject: [PATCH 4/6] prvi combined for 2003 --- .../earthquake/nshmp/gmm/CombinedGmm.java | 73 ++++++++++++++++--- 1 file changed, 64 insertions(+), 9 deletions(-) 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 a7b5db0e..857cb19b 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/CombinedGmm.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/CombinedGmm.java @@ -19,11 +19,13 @@ import static gov.usgs.earthquake.nshmp.gmm.Gmm.ATKINSON_10; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BCHYDRO_12_INTERFACE_BASIN; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BCHYDRO_12_SLAB; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BCHYDRO_12_SLAB_BASIN; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.BJF_97; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BJF_97_AK; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BSSA_14; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BSSA_14_BASIN; import static gov.usgs.earthquake.nshmp.gmm.Gmm.BSSA_14_CYBERSHAKE; import static gov.usgs.earthquake.nshmp.gmm.Gmm.CAMPBELL_03; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.CB_03; import static gov.usgs.earthquake.nshmp.gmm.Gmm.CB_03_AK_FAULT; import static gov.usgs.earthquake.nshmp.gmm.Gmm.CB_14; import static gov.usgs.earthquake.nshmp.gmm.Gmm.CB_14_BASIN; @@ -43,6 +45,7 @@ import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_CASCADIA_SLAB_BASIN; import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_CASCADIA_SLAB_SEATTLE_BASIN; import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_GLOBAL_INTERFACE; import static gov.usgs.earthquake.nshmp.gmm.Gmm.KBCG_20_GLOBAL_INTERFACE_AK_ADJUSTED; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.MA_03; import static gov.usgs.earthquake.nshmp.gmm.Gmm.NGA_EAST_2018; import static gov.usgs.earthquake.nshmp.gmm.Gmm.NGA_EAST_2023; import static gov.usgs.earthquake.nshmp.gmm.Gmm.NGA_EAST_2023_ADJUSTED; @@ -60,6 +63,7 @@ import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSBAH_20_GLOBAL_INTERFACE; import static gov.usgs.earthquake.nshmp.gmm.Gmm.PSBAH_20_GLOBAL_INTERFACE_AK_ADJUSTED; import static gov.usgs.earthquake.nshmp.gmm.Gmm.SADIGH_97; import static gov.usgs.earthquake.nshmp.gmm.Gmm.SADIGH_97_AK_INTERFACE; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.SADIGH_97_PRVI_INTERFACE; 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; @@ -483,7 +487,7 @@ class CombinedGmm implements GroundMotionModel { SADIGH_97, 0.25, CB_03_AK_FAULT, 0.25); - /* 2.0 */ + /* 2.0 AK Active Crust */ static final class AkActiveCrust2007 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "Alaska Active Crust 2007 (2.0)"; @@ -495,7 +499,7 @@ class CombinedGmm implements GroundMotionModel { } } - /* 3.0 Same as CONUS 2014 */ + /* 3.0 AK Active Crust; same as CONUS 2014 */ static final class AkActiveCrust2023 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "Alaska Active Crust 2023 (3.0)"; @@ -511,11 +515,11 @@ class CombinedGmm implements GroundMotionModel { GEOMATRIX_93_INTERFACE, 0.5, SADIGH_97_AK_INTERFACE, 0.5); - /* 2.0 Sadigh only used out to 70km; only Youngs 70 - 1000 km. */ + /* 2.0 AK Interface. */ static final class AkInterface2007 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "Alaska Interface 2007 (2.0)"; - static final Constraints CONSTRAINTS = YoungsEtAl_1997.CONSTRAINTS; + static final Constraints CONSTRAINTS = Geomatrix_1993.CONSTRAINTS; static final CoefficientContainer COEFFS = SadighEtAl_1997.COEFFS_BC_HI; AkInterface2007(Imt imt) { @@ -531,7 +535,7 @@ class CombinedGmm implements GroundMotionModel { PSBAH_20_GLOBAL_INTERFACE, 0.1667, PSBAH_20_GLOBAL_INTERFACE_AK_ADJUSTED, 0.1667); - /* 3.0 */ + /* 3.0 AK Interface */ static final class AkInterface2023 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "Alaska Interface 2023 (3.0)"; @@ -547,7 +551,7 @@ class CombinedGmm implements GroundMotionModel { AB_03_GLOBAL_SLAB, 0.5, GEOMATRIX_93_SLAB, 0.5); - /* 2.0 */ + /* 2.0 AK Intraslab */ static final class AkIntraslab2007 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "Alaska Intraslab 2007 (2.0)"; @@ -564,7 +568,7 @@ class CombinedGmm implements GroundMotionModel { KBCG_20_ALASKA_SLAB, 0.3333, PSBAH_20_ALASKA_SLAB, 0.3334); - /* 3.0 */ + /* 3.0 AK Intraslab */ static final class AkIntraslab2023 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "Alaska Intraslab 2023 (3.0)"; @@ -576,6 +580,25 @@ class CombinedGmm implements GroundMotionModel { } } + private static final Map<Gmm, Double> PRVI_ACTIVE_CRUST_2003 = Map.of( + MA_03, 0.1, + BJF_97, 0.225, + SADIGH_97, 0.225, + CB_03, 0.225, + AS_97_AK, 0.225); + + /* 1.0 PRVI Active Crust */ + static final class PrviActiveCrust2003 extends CombinedGmm { + + static final String NAME = CombinedGmm.NAME + "PRVI Active Crust 2003 (1.0)"; + static final Constraints CONSTRAINTS = AbrahamsonSilva_1997.CONSTRAINTS; + static final CoefficientContainer COEFFS = MotazedianAtkinson_2003.COEFFS; + + PrviActiveCrust2003(Imt imt) { + super(imt, PRVI_ACTIVE_CRUST_2003); + } + } + 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); @@ -592,11 +615,27 @@ class CombinedGmm implements GroundMotionModel { } } + private static final Map<Gmm, Double> PRVI_INTERFACE_2003 = Map.of( + GEOMATRIX_93_INTERFACE, 0.5, + SADIGH_97_PRVI_INTERFACE, 0.5); + + /* 1.0 PRVI Interface */ + static final class PrviInterface2003 extends CombinedGmm { + + static final String NAME = CombinedGmm.NAME + "PRVI Interface 2003 (1.0)"; + static final Constraints CONSTRAINTS = Geomatrix_1993.CONSTRAINTS; + static final CoefficientContainer COEFFS = SadighEtAl_1997.COEFFS_BC_HI; + + PrviInterface2003(Imt imt) { + super(imt, PRVI_INTERFACE_2003); + } + } + 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 */ + /* 2.0 PRVI Interface */ static final class PrviInterface2025 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "PRVI Interface 2025 (2.0)"; @@ -608,11 +647,27 @@ class CombinedGmm implements GroundMotionModel { } } + private static final Map<Gmm, Double> PRVI_INTRASLAB_2003 = Map.of( + AB_03_GLOBAL_SLAB, 0.5, + GEOMATRIX_93_SLAB, 0.5); + + /* 1.0 PRVI Intraslab */ + static final class PrviIntraslab2003 extends CombinedGmm { + + static final String NAME = CombinedGmm.NAME + "PRVI Intraslab 2007 (1.0)"; + static final Constraints CONSTRAINTS = AtkinsonBoore_2003.CONSTRAINTS; + static final CoefficientContainer COEFFS = Geomatrix_1993.COEFFS; + + PrviIntraslab2003(Imt imt) { + super(imt, PRVI_INTRASLAB_2003); + } + } + 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 */ + /* 2.0 PRVI Intraslab */ static final class PrviIntraslab2025 extends CombinedGmm { static final String NAME = CombinedGmm.NAME + "PRVI Intraslab 2025 (2.0)"; -- GitLab From 29daca1d36207ab1d4dfe507eab913a33b5c5ad6 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 19 Feb 2025 10:01:44 -0700 Subject: [PATCH 5/6] prvi combined model ids --- .../gov/usgs/earthquake/nshmp/gmm/Gmm.java | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) 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 d5c32c6e..67e3b56c 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java @@ -1749,6 +1749,13 @@ public enum Gmm { CombinedGmm.AkIntraslab2023.COEFFS, CombinedGmm.AkIntraslab2023.CONSTRAINTS), + /** 2003 PRVI active crust weight-averaged GMM. */ + COMBINED_PRVI_ACTIVE_CRUST_2003( + CombinedGmm.PrviActiveCrust2003.class, + CombinedGmm.PrviActiveCrust2003.NAME, + CombinedGmm.PrviActiveCrust2003.COEFFS, + CombinedGmm.PrviActiveCrust2003.CONSTRAINTS), + /** 2025 PRVI active crust weight-averaged GMM. */ COMBINED_PRVI_ACTIVE_CRUST_2025( CombinedGmm.PrviActiveCrust2025.class, @@ -1756,6 +1763,13 @@ public enum Gmm { CombinedGmm.PrviActiveCrust2025.COEFFS, CombinedGmm.PrviActiveCrust2025.CONSTRAINTS), + /** 2003 PRVI interface weight-averaged GMM. */ + COMBINED_PRVI_INTERFACE_2003( + CombinedGmm.PrviInterface2003.class, + CombinedGmm.PrviInterface2003.NAME, + CombinedGmm.PrviInterface2003.COEFFS, + CombinedGmm.PrviInterface2003.CONSTRAINTS), + /** 2025 PRVI interface weight-averaged GMM. */ COMBINED_PRVI_INTERFACE_2025( CombinedGmm.PrviInterface2025.class, @@ -1763,6 +1777,13 @@ public enum Gmm { CombinedGmm.PrviInterface2025.COEFFS, CombinedGmm.PrviInterface2025.CONSTRAINTS), + /** 2003 PRVI intraslab weight-averaged GMM. */ + COMBINED_PRVI_INTRASLAB_2003( + CombinedGmm.PrviIntraslab2003.class, + CombinedGmm.PrviIntraslab2003.NAME, + CombinedGmm.PrviIntraslab2003.COEFFS, + CombinedGmm.PrviIntraslab2003.CONSTRAINTS), + /** 2025 PRVI intraslab weight-averaged GMM. */ COMBINED_PRVI_INTRASLAB_2025( CombinedGmm.PrviIntraslab2025.class, @@ -1958,8 +1979,17 @@ public enum Gmm { public enum Group { + PRVI_03_ACTIVE_CRUST( + "2003 PRVI Active Crust", + List.of( + MA_03, + BJF_97_AK, + SADIGH_97, + CB_03_AK_FAULT, + AS_97_AK)), + PRVI_25_ACTIVE_CRUST( - "2025 PRVI Active Crust (beta)", + "2025 PRVI Active Crust", List.of( USGS_PRVI_ACTIVE_CRUST, USGS_PRVI_ACTIVE_CRUST_ADJUSTED, @@ -1972,8 +2002,14 @@ public enum Gmm { CB_14_PRVI, CY_14_PRVI)), + PRVI_03_INTERFACE( + "2003 PRVI Interface", + List.of( + GEOMATRIX_93_INTERFACE, + SADIGH_97_PRVI_INTERFACE)), + PRVI_25_INTERFACE( - "2025 PRVI Interface (beta)", + "2025 PRVI Interface", List.of( USGS_PRVI_INTERFACE, USGS_PRVI_INTERFACE_ADJUSTED, @@ -1984,8 +2020,14 @@ public enum Gmm { KBCG_20_PRVI_INTERFACE, PSBAH_20_PRVI_INTERFACE)), + PRVI_03_SLAB( + "2025 PRVI Intraslab", + List.of( + GEOMATRIX_93_SLAB, + AB_03_GLOBAL_SLAB)), + PRVI_25_SLAB( - "2025 PRVI Intraslab (beta)", + "2025 PRVI Intraslab", List.of( USGS_PRVI_INTRASLAB, USGS_PRVI_INTRASLAB_ADJUSTED, @@ -2302,6 +2344,7 @@ public enum Gmm { COMBINED_ACTIVE_CRUST_2023_SAN_FRANCISCO, COMBINED_AK_ACTIVE_CRUST_2007, COMBINED_AK_ACTIVE_CRUST_2023, + COMBINED_PRVI_ACTIVE_CRUST_2003, COMBINED_PRVI_ACTIVE_CRUST_2025)), COMBINED_STABLE_CRUST( @@ -2319,6 +2362,7 @@ public enum Gmm { COMBINED_INTERFACE_2023_SEATTLE, COMBINED_AK_INTERFACE_2007, COMBINED_AK_INTERFACE_2023, + COMBINED_PRVI_INTERFACE_2003, COMBINED_PRVI_INTERFACE_2025)), COMBINED_SLAB( @@ -2329,6 +2373,7 @@ public enum Gmm { COMBINED_INTRASLAB_2023_SEATTLE, COMBINED_AK_INTRASLAB_2007, COMBINED_AK_INTRASLAB_2023, + COMBINED_PRVI_INTRASLAB_2003, COMBINED_PRVI_INTRASLAB_2025)), NGA_EAST( -- GitLab From 230b07ae108de384f78ac88f5a730fdc84d2265b Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 19 Feb 2025 10:09:28 -0700 Subject: [PATCH 6/6] updated spudich ids --- .../usgs/earthquake/nshmp/gmm/SEA99_test.java | 4 +- src/test/resources/gmm/sea99-results.csv | 48 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/test/java/gov/usgs/earthquake/nshmp/gmm/SEA99_test.java b/src/test/java/gov/usgs/earthquake/nshmp/gmm/SEA99_test.java index a5c35892..bad18276 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/gmm/SEA99_test.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/gmm/SEA99_test.java @@ -1,6 +1,6 @@ package gov.usgs.earthquake.nshmp.gmm; -import static gov.usgs.earthquake.nshmp.gmm.Gmm.SEA99_PRVI; +import static gov.usgs.earthquake.nshmp.gmm.Gmm.SPUDICH_99_PRVI; import static gov.usgs.earthquake.nshmp.gmm.Imt.PGA; import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P1; import static gov.usgs.earthquake.nshmp.gmm.Imt.SA0P5; @@ -35,7 +35,7 @@ public class SEA99_test implements ArgumentsProvider { } /* Result generation sets */ - private static Set<Gmm> gmms = EnumSet.of(SEA99_PRVI); + private static Set<Gmm> gmms = EnumSet.of(SPUDICH_99_PRVI); // private static Set<Imt> imts = SpudichEtAl_1999_PRVI.COEFFS.imts(); private static Set<Imt> imts = EnumSet.of(PGA, SA0P1, SA0P5, SA2P0); diff --git a/src/test/resources/gmm/sea99-results.csv b/src/test/resources/gmm/sea99-results.csv index 64c63bc0..a2324700 100644 --- a/src/test/resources/gmm/sea99-results.csv +++ b/src/test/resources/gmm/sea99-results.csv @@ -1,24 +1,24 @@ -0-SEA99_PRVI-PGA,0.1897430161,0.2240000000 -1-SEA99_PRVI-PGA,0.0174183111,0.2240000000 -2-SEA99_PRVI-PGA,0.3214887646,0.2240000000 -3-SEA99_PRVI-PGA,0.0295125030,0.2240000000 -4-SEA99_PRVI-PGA,0.5447105663,0.2240000000 -5-SEA99_PRVI-PGA,0.0500041494,0.2240000000 -0-SEA99_PRVI-SA0P1,0.3262097462,0.2950000000 -1-SEA99_PRVI-SA0P1,0.0282558510,0.2950000000 -2-SEA99_PRVI-SA0P1,0.6926230371,0.2950000000 -3-SEA99_PRVI-SA0P1,0.0599940792,0.2950000000 -4-SEA99_PRVI-SA0P1,0.9364766051,0.2950000000 -5-SEA99_PRVI-SA0P1,0.0811163484,0.2950000000 -0-SEA99_PRVI-SA0P5,0.2191634575,0.2750000000 -1-SEA99_PRVI-SA0P5,0.0190970592,0.2750000000 -2-SEA99_PRVI-SA0P5,0.5306010965,0.2750000000 -3-SEA99_PRVI-SA0P5,0.0462345351,0.2750000000 -4-SEA99_PRVI-SA0P5,1.0734161944,0.2750000000 -5-SEA99_PRVI-SA0P5,0.0935333512,0.2750000000 -0-SEA99_PRVI-SA2P0,0.0364705131,0.3410000000 -1-SEA99_PRVI-SA2P0,0.0031015763,0.3410000000 -2-SEA99_PRVI-SA2P0,0.1078802324,0.3410000000 -3-SEA99_PRVI-SA2P0,0.0091745013,0.3410000000 -4-SEA99_PRVI-SA2P0,0.2691174589,0.3410000000 -5-SEA99_PRVI-SA2P0,0.0228866625,0.3410000000 +0-SPUDICH_99_PRVI-PGA,0.1897430161,0.2240000000 +1-SPUDICH_99_PRVI-PGA,0.0174183111,0.2240000000 +2-SPUDICH_99_PRVI-PGA,0.3214887646,0.2240000000 +3-SPUDICH_99_PRVI-PGA,0.0295125030,0.2240000000 +4-SPUDICH_99_PRVI-PGA,0.5447105663,0.2240000000 +5-SPUDICH_99_PRVI-PGA,0.0500041494,0.2240000000 +0-SPUDICH_99_PRVI-SA0P1,0.3262097462,0.2950000000 +1-SPUDICH_99_PRVI-SA0P1,0.0282558510,0.2950000000 +2-SPUDICH_99_PRVI-SA0P1,0.6926230371,0.2950000000 +3-SPUDICH_99_PRVI-SA0P1,0.0599940792,0.2950000000 +4-SPUDICH_99_PRVI-SA0P1,0.9364766051,0.2950000000 +5-SPUDICH_99_PRVI-SA0P1,0.0811163484,0.2950000000 +0-SPUDICH_99_PRVI-SA0P5,0.2191634575,0.2750000000 +1-SPUDICH_99_PRVI-SA0P5,0.0190970592,0.2750000000 +2-SPUDICH_99_PRVI-SA0P5,0.5306010965,0.2750000000 +3-SPUDICH_99_PRVI-SA0P5,0.0462345351,0.2750000000 +4-SPUDICH_99_PRVI-SA0P5,1.0734161944,0.2750000000 +5-SPUDICH_99_PRVI-SA0P5,0.0935333512,0.2750000000 +0-SPUDICH_99_PRVI-SA2P0,0.0364705131,0.3410000000 +1-SPUDICH_99_PRVI-SA2P0,0.0031015763,0.3410000000 +2-SPUDICH_99_PRVI-SA2P0,0.1078802324,0.3410000000 +3-SPUDICH_99_PRVI-SA2P0,0.0091745013,0.3410000000 +4-SPUDICH_99_PRVI-SA2P0,0.2691174589,0.3410000000 +5-SPUDICH_99_PRVI-SA2P0,0.0228866625,0.3410000000 -- GitLab