From 795fc43dcdc5b5129755ceee2b9135a8fdeebbab Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Mon, 9 Dec 2024 14:24:02 -0700 Subject: [PATCH] removed fixed data adjustments --- .../nshmp/gmm/UsgsPrviBackbone2025.java | 92 ++++++++----------- .../coeffs/prvi-25-backbone-adjustments.csv | 24 ----- 2 files changed, 39 insertions(+), 77 deletions(-) delete mode 100644 src/main/resources/gmm/coeffs/prvi-25-backbone-adjustments.csv 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 5adb0489..a2ac1f92 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java @@ -44,31 +44,20 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { private static final String NAME = "USGS PRVI Backbone (2025)"; - static final CoefficientContainer COEFFS_PHIS2S_ACTIVE_CRUST = - new CoefficientContainer("prvi-25-backbone-phiS2S_crustal.csv"); - static final CoefficientContainer COEFFS_PHISS_ACTIVE_CRUST = - new CoefficientContainer("prvi-25-backbone-phiSS_crustal.csv"); - static final CoefficientContainer COEFFS_SIGMA_SUBDUCTION = - new CoefficientContainer("prvi-25-backbone-sigma_subduction.csv"); - static final CoefficientContainer COEFFS_TAU_ACTIVE_CRUST = - new CoefficientContainer("prvi-25-backbone-tau_crustal.csv"); + static final CoefficientContainer COEFFS_PHIS2S_ACTIVE_CRUST; + static final CoefficientContainer COEFFS_PHISS_ACTIVE_CRUST; + static final CoefficientContainer COEFFS_SIGMA_SUBDUCTION; + static final CoefficientContainer COEFFS_TAU_ACTIVE_CRUST; + + static { + COEFFS_PHIS2S_ACTIVE_CRUST = new CoefficientContainer("prvi-25-backbone-phiS2S_crustal.csv"); + COEFFS_PHISS_ACTIVE_CRUST = new CoefficientContainer("prvi-25-backbone-phiSS_crustal.csv"); + COEFFS_SIGMA_SUBDUCTION = new CoefficientContainer("prvi-25-backbone-sigma_subduction.csv"); + COEFFS_TAU_ACTIVE_CRUST = new CoefficientContainer("prvi-25-backbone-tau_crustal.csv"); + } // TODO consider separating calc method in NGA models so that we can get the - // mean directly instead of unwrapping from singleton ground motion logic - // tree - - /* - * Bias adjustment coefficients from https://github.com/gem/oq-engine/blob/ - * 576bf0c6853ca896aae84e68ad848d39de09a396/openquake/hazardlib/gsim/usgs_prvi - * .py last updated Jun 25, 2024 - */ - // COEFFS_DATA_ADJUSTMENT is currently used to get the IMT set for USGS_PRVI_* - // models - static final CoefficientContainer COEFFS_DATA_ADJUSTMENT = - new CoefficientContainer("prvi-25-backbone-adjustments.csv"); - - public static final double DATA_ADJUST_CRUSTAL = -0.3; - public static final double DATA_ADJUST_SUBDUCTION = -0.4; + // mean directly instead of unwrapping from singleton ground motion logic tree public static final String MODEL_BASE_ID = "base"; public static final String MODEL_ADJUST_ID = "adjust"; @@ -111,7 +100,6 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { φSub = coeffsSubSigma.get("phi_mean"); φSubSS = coeffsSubSigma.get("PhiSS_PRVI"); φSubS2S = coeffsSubSigma.get("phiS2S_PRVI_smooth"); - } } @@ -120,18 +108,15 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { private final LogicTree<GroundMotionModel> tree; private final Imt imt; private final GroundMotionTable[] epiTables; // 0=lower, 1=upper - private final double dataAdjust; /* Supply map of ground motion models initialized to the required IMT. */ UsgsPrviBackbone2025( Imt imt, String name, Map<Gmm, Double> gmms, - GroundMotionTable[] epiTables, - double dataAdjust) { + GroundMotionTable[] epiTables) { this.imt = imt; this.epiTables = epiTables; - this.dataAdjust = dataAdjust; LogicTree.Builder<GroundMotionModel> b = LogicTree.builder(name); gmms.entrySet().stream().forEach(e -> b.addBranch( e.getKey().name(), @@ -160,7 +145,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { LogicTree<GroundMotion> calc(GmmInput in, boolean epi, SigmaType σType) { GroundMotion bgm = calcBackboneGroundMotion(in); - double μ = bgm.mean() + dataAdjust; + double μ = bgm.mean(); double[] σs = calcSigmas(in); // NGA=0, PRVI=1 if (epi) { @@ -188,6 +173,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { for (Branch<GroundMotionModel> b : tree) { // NGA GMMs currently returning mix of singleton trees and epi branches // TODO would be preferable to get the mean directly w/o epi branches + // consider 'base' No_EPI models for NGA-sub ?? LogicTree<GroundMotion> gmTree = b.value().calc(in); GroundMotion gm = (gmTree.size() == 1) ? gmTree.get(0).value() @@ -232,11 +218,11 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { CY_14_BASE, 0.25); ActiveCrust(Imt imt) { - this(imt, NAME, 0.0); + this(imt, NAME); } - ActiveCrust(Imt imt, String name, double dataAdjust) { - super(imt, name, GMM_MAP, getPrviEpi(ACTIVE_CRUST, imt), dataAdjust); + ActiveCrust(Imt imt, String name) { + super(imt, name, GMM_MAP, getPrviEpi(ACTIVE_CRUST, imt)); } @Override @@ -277,7 +263,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = ActiveCrust.NAME + " (NGA sigma)"; ActiveCrustSigmaNga(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -292,7 +278,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = ActiveCrust.NAME + " (adjusted)"; ActiveCrustAdjusted(Imt imt) { - super(imt, NAME, DATA_ADJUST_CRUSTAL); + super(imt, NAME); } @Override @@ -308,7 +294,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = ActiveCrust.NAME + " (adjusted, no epi, NGA sigma)"; ActiveCrustAdjustedNoEpiSigmaNga(Imt imt) { - super(imt, NAME, DATA_ADJUST_CRUSTAL); + super(imt, NAME); } @Override @@ -324,7 +310,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = ActiveCrust.NAME + " (no epi, NGA sigma)"; ActiveCrustNoEpiSigmaNga(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -340,7 +326,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = ActiveCrust.NAME + " (no epi, PRVI sigma)"; ActiveCrustNoEpiSigmaPrvi(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -389,11 +375,11 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { PSBAH_20_GLOBAL_INTERFACE, 0.3334); Interface(Imt imt) { - this(imt, NAME, 0.0); + this(imt, NAME); } - Interface(Imt imt, String name, double dataAdjust) { - super(imt, name, GMM_MAP, getPrviEpi(SUBDUCTION_INTERFACE, imt), dataAdjust); + Interface(Imt imt, String name) { + super(imt, name, GMM_MAP, getPrviEpi(SUBDUCTION_INTERFACE, imt)); } @@ -413,7 +399,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Interface.NAME + " (NGA sigma)"; InterfaceSigmaNga(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -428,7 +414,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Interface.NAME + " (adjusted)"; InterfaceAdjusted(Imt imt) { - super(imt, NAME, DATA_ADJUST_SUBDUCTION); + super(imt, NAME); } @Override @@ -444,7 +430,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Interface.NAME + " (adjusted, no epi, NGA sigma)"; InterfaceAdjustedNoEpiSigmaNga(Imt imt) { - super(imt, NAME, DATA_ADJUST_SUBDUCTION); + super(imt, NAME); } @Override @@ -460,7 +446,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Interface.NAME + " (no epi, NGA sigma)"; InterfaceNoEpiSigmaNga(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -476,7 +462,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Interface.NAME + " (no epi, PRVI sigma)"; InterfaceNoEpiSigmaPrvi(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -525,11 +511,11 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { PSBAH_20_GLOBAL_SLAB, 0.3334); Slab(Imt imt) { - this(imt, NAME, 0.0); + this(imt, NAME); } - Slab(Imt imt, String name, double dataAdjust) { - super(imt, name, GMM_MAP, getPrviEpi(SUBDUCTION_SLAB, imt), dataAdjust); + Slab(Imt imt, String name) { + super(imt, name, GMM_MAP, getPrviEpi(SUBDUCTION_SLAB, imt)); } @Override @@ -548,7 +534,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Slab.NAME + " (NGA sigma)"; SlabSigmaNga(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -563,7 +549,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Slab.NAME + " (adjusted)"; SlabAdjusted(Imt imt) { - super(imt, NAME, DATA_ADJUST_SUBDUCTION); + super(imt, NAME); } @Override @@ -579,7 +565,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Slab.NAME + " (adjusted, no epi, NGA sigma)"; SlabAdjustedNoEpiSigmaNga(Imt imt) { - super(imt, NAME, DATA_ADJUST_SUBDUCTION); + super(imt, NAME); } @Override @@ -595,7 +581,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Slab.NAME + " (no epi, NGA sigma)"; SlabNoEpiSigmaNga(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override @@ -611,7 +597,7 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel { static final String NAME = Slab.NAME + " (no epi, PRVI sigma)"; SlabNoEpiSigmaPrvi(Imt imt) { - super(imt, NAME, 0.0); + super(imt, NAME); } @Override diff --git a/src/main/resources/gmm/coeffs/prvi-25-backbone-adjustments.csv b/src/main/resources/gmm/coeffs/prvi-25-backbone-adjustments.csv deleted file mode 100644 index f2e3de59..00000000 --- a/src/main/resources/gmm/coeffs/prvi-25-backbone-adjustments.csv +++ /dev/null @@ -1,24 +0,0 @@ -imt, active_crust, interface, intraslab -# PGV, -0.452, -1.189, -0.476 -PGA, -0.329, -0.888, -0.376 -0.010, -0.329, -0.888, -0.376 -0.020, -0.301, -0.804, -0.239 -0.030, -0.274, -0.720, -0.103 -0.050, -0.246, -0.637, 0.034 -0.075, -0.155, -0.621, -0.044 -0.100, -0.188, -0.601, -0.234 -0.150, -0.142, -0.575, -0.016 -0.200, -0.132, -0.839, -0.241 -0.250, -0.195, -0.852, -0.234 -0.300, -0.289, -0.971, -0.302 -0.400, -0.470, -1.250, -0.428 -0.500, -0.598, -1.424, -0.570 -0.750, -0.679, -1.636, -0.757 -1.000, -0.661, -1.692, -0.837 -1.500, -0.588, -1.658, -0.849 -2.000, -0.483, -1.512, -0.780 -3.000, -0.319, -1.256, -0.466 -4.000, -0.171, -1.123, -0.282 -5.000, 0.001, -0.985, -0.056 -7.500, 0.258, -0.776, 0.289 -10.000, 0.426, -0.639, 0.640 -- GitLab