Skip to content
Snippets Groups Projects
Commit 795fc43d authored by Powers, Peter M.'s avatar Powers, Peter M.
Browse files

removed fixed data adjustments

parent 1a047959
No related branches found
No related tags found
1 merge request!436Prvi gmm 251
......@@ -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
......
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment