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

added combined 2018 ceus r-dependent gmms

parent a38116d1
No related branches found
No related tags found
1 merge request!434Ceus 2014 gmm
package gov.usgs.earthquake.nshmp.gmm;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.AB_06_PRIME;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.ATKINSON_08_PRIME;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.CAMPBELL_03;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.FRANKEL_96;
import static gov.usgs.earthquake.nshmp.gmm.Gmm.PEZESHK_11;
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 java.util.Map;
import java.util.Optional;
import gov.usgs.earthquake.nshmp.tree.LogicTree;
import gov.usgs.earthquake.nshmp.tree.Trees;
/**
* Implementation of GMMs for the stable crust used in the 2014 CONUS NSHM. The
* 2014 NSHM included distance-dependent variations in the GMM logic trees.
* Support was removed for this feature with the switch to <i>nshmp-haz-v2</i>
* Because the individual GMMs all produce single branch logic trees of ground
* motion, legacy distance dependence is now supported via wrapping the 2014
* stable crust GMM logic trees into a single GMM.
*
* @author U.S. Geological Survey
* @see Gmm#CONUS_STABLE_CRUST_2014_FAULT
* @see Gmm#CONUS_STABLE_CRUST_2014_GRID
*/
public class ConusStableCrust_2014 implements GroundMotionModel {
static final String NAME = "CONUS Stable Crst (2014)";
private final LogicTree<GroundMotionModel> gmmTree500;
private final LogicTree<GroundMotionModel> gmmTree1000;
private final Imt imt;
ConusStableCrust_2014(
Imt imt,
Map<Gmm, Double> gmms500,
Map<Gmm, Double> gmms1000) {
this.gmmTree500 = GmmUtils.weightMapToInstanceTree(gmms500, imt);
this.gmmTree1000 = GmmUtils.weightMapToInstanceTree(gmms1000, imt);
this.imt = imt;
}
@Override
public Imt imt() {
return imt;
}
@Override
public LogicTree<GroundMotion> calc(GmmInput in) {
return Trees.transform(
(in.rRup <= 500.0) ? gmmTree500 : gmmTree1000,
gmm -> gmm.calc(in).get(0).value(), // we know all GMs are singletons
Optional.empty());
}
private static final Map<Gmm, Double> GMMS_FAULT_500_KM = Map.of(
AB_06_PRIME, 0.22,
ATKINSON_08_PRIME, 0.08,
CAMPBELL_03, 0.11,
FRANKEL_96, 0.06,
PEZESHK_11, 0.15,
SILVA_02, 0.06,
SOMERVILLE_01, 0.1,
TP_05, 0.11,
TORO_97_MW, 0.11);
private static final Map<Gmm, Double> GMMS_GRID_500_KM = Map.of(
AB_06_PRIME, 0.25,
ATKINSON_08_PRIME, 0.08,
CAMPBELL_03, 0.13,
FRANKEL_96, 0.06,
PEZESHK_11, 0.16,
SILVA_02, 0.06,
TP_05, 0.13,
TORO_97_MW, 0.13);
private static final Map<Gmm, Double> GMMS_1000_KM = Map.of(
AB_06_PRIME, 0.3,
CAMPBELL_03, 0.17,
FRANKEL_96, 0.16,
PEZESHK_11, 0.2,
TP_05, 0.17);
static final class Fault extends ConusStableCrust_2014 {
static final String NAME = ConusStableCrust_2014.NAME + " : Fault";
Fault(Imt imt) {
super(imt, GMMS_FAULT_500_KM, GMMS_1000_KM);
}
}
static final class Grid extends ConusStableCrust_2014 {
static final String NAME = ConusStableCrust_2014.NAME + " : Grid";
Grid(Imt imt) {
super(imt, GMMS_GRID_500_KM, GMMS_1000_KM);
}
}
}
......@@ -967,6 +967,22 @@ public enum Gmm {
ToroEtAl_1997.COEFFS_MW,
ToroEtAl_1997.CONSTRAINTS),
/* Combined GMMs for CEUS 2014 distance dependence */
/** @see ConusStableCrust_2014 */
CONUS_STABLE_CRUST_2014_FAULT(
ConusStableCrust_2014.Fault.class,
ConusStableCrust_2014.Fault.NAME,
FrankelEtAl_1996.COEFFS, // 7 common periods
FrankelEtAl_1996.CONSTRAINTS),
/** @see ConusStableCrust_2014 */
CONUS_STABLE_CRUST_2014_GRID(
ConusStableCrust_2014.Grid.class,
ConusStableCrust_2014.Grid.NAME,
FrankelEtAl_1996.COEFFS, // 7 common periods
FrankelEtAl_1996.CONSTRAINTS),
/* Johnston mag converting flavors of CEUS 2008 */
/** @see AtkinsonBoore_2006 */
......
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