org.opensha.sha.imr.attenRelImpl
Class CB_2003_AttenRel

java.lang.Object
  extended by org.opensha.sha.imr.AbstractIMR
      extended by org.opensha.sha.imr.AttenuationRelationship
          extended by org.opensha.sha.imr.attenRelImpl.CB_2003_AttenRel
All Implemented Interfaces:
Serializable, Comparable<IntensityMeasureRelationship>, Named, ShortNamed, XMLSaveable, IntensityMeasureRelationship, ScalarIMR

public class CB_2003_AttenRel
extends AttenuationRelationship

Title: CB_2003_AttenRel

Description: This implements the Attenuation Relationship developed by Campbell & Bozorgnia (2003), Bull. Seism. Soc. Am., vol 93, num 1, pp 314-331)

Supported Intensity-Measure Parameters:

Other Independent Parameters:

NOTE: The mean calculation for the site class "BC Boundary" is only approximate at 0.05- and 0.075-second periods (because "bv" is not available from BJF_1997 at those periods, so values were linearly interpolated between 0 and 0.1 seconds) and at 3- and 4-seconds ("bv" not available from BJF_1997 above 2 seconds, so value at 2-seconds was applied).

Version:
1.0
Author:
Edward H. Field
See Also:
Serialized Form

Field Summary
protected static Double DISTANCE_SEIS_WARN_MAX
           
protected static Double DISTANCE_SEIS_WARN_MIN
           
static String FLT_TYPE_OTHER
           
static String FLT_TYPE_REVERSE
           
static String FLT_TYPE_REVERSE_THRUST
           
static String FLT_TYPE_THRUST
           
static String FLT_TYPE_UNKNOWN
           
protected static Double HANGING_WALL_DEFAULT
           
static String HANGING_WALL_INFO
           
protected static Double HANGING_WALL_MAX
           
protected static Double HANGING_WALL_MIN
           
static String HANGING_WALL_NAME
           
protected  DoubleParameter hangingWallParam
          Hanging-Wall Parameter, defined as 1 above the surface projection, tapering linearly to 0.0 at 5 km from surface projection.
protected  Hashtable horzCoefficients
          Hashtables of coefficients for the supported intensityMeasures
protected static Double MAG_WARN_MAX
           
protected static Double MAG_WARN_MIN
           
static String NAME
           
static String SHORT_NAME
           
static String SITE_TYPE_DEFAULT
           
static String SITE_TYPE_FIRM_ROCK
           
static String SITE_TYPE_FIRM_SOIL
           
static String SITE_TYPE_INFO
           
static String SITE_TYPE_NAME
           
static String SITE_TYPE_NEHRP_BC
           
static String SITE_TYPE_ROCK
           
static String SITE_TYPE_SOFT_ROCK
           
static String SITE_TYPE_SOIL
           
static String SITE_TYPE_VERY_FIRM_SOIL
           
protected  Hashtable vertCoefficients
           
 
Fields inherited from class org.opensha.sha.imr.AttenuationRelationship
aftershockParam, cavParam, componentParam, depthTo1pt0kmPerSecParam, depthTo2pt5kmPerSecParam, dipParam, distanceJBParam, distanceRupParam, distanceSeisParam, distRupMinusDistX_OverRupParam, distRupMinusJB_OverRupParam, ds575Param, ds595Param, ERR, exceedProbIndependentParams, fltTypeParam, focalDepthParam, hangingWallFlagParam, imlAtExceedProbIndependentParams, magParam, meanIndependentParams, pgaParam, pgdParam, pgvParam, rakeParam, rupTopDepthParam, rupWidthParam, saDampingParam, saParam, saPeriodParam, sigmaTruncLevelParam, sigmaTruncTypeParam, stdDevIndependentParams, stdDevTypeParam, tectonicRegionTypeParam, USER_MAX_DISTANCE, VERY_SMALL_MEAN, vs30_TypeParam, vs30Param
 
Fields inherited from class org.opensha.sha.imr.AbstractIMR
eqkRupture, eqkRuptureParams, EXCEED_PROB_DEFAULT, EXCEED_PROB_INFO, EXCEED_PROB_MAX, EXCEED_PROB_MIN, EXCEED_PROB_NAME, exceedProbParam, im, intensityMeasureChanged, listener, otherParams, propagationEffectParams, site, siteParams, supportedIMParams, url_info_string, XML_METADATA_IMT_NAME, XML_METADATA_NAME, XML_METADATA_SITE_PARAMETERS_NAME
 
Fields inherited from interface org.opensha.commons.metadata.XMLSaveable
XML_METADATA_NAME
 
Constructor Summary
CB_2003_AttenRel(ParameterChangeWarningListener listener)
          No-Arg constructor.
 
Method Summary
protected  double calcMean()
          This calulates the mean assuming the coefficients have already been assigned (this way PGA can be computed in getStdDev() without having to override the current im).
 URL getInfoURL()
          This provides a URL where more info on this model can be obtained
 double getMean()
          Calculates the mean of the exceedence probability distribution.
 String getName()
          get the name of this IMR
 String getShortName()
          Returns the Short Name of each AttenuationRelationship
 double getStdDev()
          This returns the standard deviation (stdDev) of the intensity-measure level for the current set of parameters.
protected  void initCoefficients()
          This creates the hashtables of coefficients for the supported intensityMeasures (im).
protected  void initEqkRuptureParams()
          Creates the two Potential Earthquake parameters (magParam and fltTypeParam) and adds them to the eqkRuptureParams list.
protected  void initHorzCoefficients()
          This initializes the horizontal-component coeffiecients.
protected  void initIndependentParamLists()
          This creates the lists of independent parameters that the various dependent parameters (mean, standard deviation, exceedance probability, and IML at exceedance probability) depend upon.
protected  void initOtherParams()
          Creates other Parameters that the mean or stdDev depends upon, such as the Component or StdDevType parameters.
protected  void initPropagationEffectParams()
          Creates the Propagation Effect parameters and adds them to the propagationEffectParams list.
protected  void initSiteParams()
          Creates the Site-Type parameter and adds it to the siteParams list.
protected  void initSupportedIntensityMeasureParams()
          Creates the two supported IM parameters (PGA and SA), as well as the independenParameters of SA (periodParam and dampingParam) and adds them to the supportedIMParams list.
protected  void initVertCoefficients()
          This initializes the Vertical component coeffiecients.
 void setEqkRupture(EqkRupture eqkRupture)
          This sets the eqkRupture related parameters (magParam and fltTypeParam) based on the eqkRupture passed in.
protected  void setFaultTypeFromRake(double rake, double dip)
          Sets the style of faulting from the rake & dip angles (which come from the eqkRupture object).
 void setParamDefaults()
          This sets the defaults for all the parameters.
protected  void setPropagationEffectParams()
          This sets the two propagation-effect parameters (distanceSeisParam and hangingWallParam) based on the current site and eqkRupture.
 void setSite(Site site)
          This sets the site-type and basin-depth parameters based on what is in the Site object passed in (the Site object must have these parameters in it).
protected  void updateCoefficients()
          This function determines which set of coefficients in the HashMap are to be used given the current intensityMeasure (im) Parameter.
 
Methods inherited from class org.opensha.sha.imr.AttenuationRelationship
getAllParamMetadata, getEpsilon, getEpsilon, getExceedProbabilities, getExceedProbability, getExceedProbability, getExceedProbability, getExceedProbability, getExceedProbIndependentParams, getExceedProbIndependentParamsIterator, getIML_AtExceedProb, getIML_AtExceedProb, getIML_AtExceedProbIndependentParams, getIML_AtExceedProbIndependentParamsIterator, getMeanIndependentParams, getMeanIndependentParamsIterator, getSA_ExceedProbSpectrum, getSA_IML_AtExceedProbSpectrum, getStdDevIndependentParams, getStdDevIndependentParamsIterator, getTotExceedProbability, initParameterEventListeners, isTectonicRegionSupported, isTectonicRegionSupported, resetParameterEventListeners, setIntensityMeasureLevel, setIntensityMeasureLevel, setSiteLocation, setUserMaxDistance
 
Methods inherited from class org.opensha.sha.imr.AbstractIMR
compareTo, fromXMLMetadata, getEqkRupture, getEqkRuptureParams, getEqkRuptureParamsIterator, getIntensityMeasure, getIntensityMeasureLevel, getOtherParams, getOtherParamsIterator, getParameter, getPropagationEffectParams, getPropagationEffectParamsIterator, getSite, getSiteParams, getSiteParamsIterator, getSupportedIntensityMeasures, getSupportedIntensityMeasuresIterator, isIntensityMeasureSupported, isIntensityMeasureSupported, setAll, setExceedProb, setIntensityMeasure, setIntensityMeasure, setWarningListener, toXMLMetadata
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.opensha.sha.imr.IntensityMeasureRelationship
getEqkRupture, getEqkRuptureParams, getEqkRuptureParamsIterator, getIntensityMeasure, getIntensityMeasureLevel, getOtherParams, getOtherParamsIterator, getParameter, getPropagationEffectParams, getPropagationEffectParamsIterator, getSite, getSiteParams, getSiteParamsIterator, getSupportedIntensityMeasures, getSupportedIntensityMeasuresIterator, isIntensityMeasureSupported, isIntensityMeasureSupported, setAll, setExceedProb, setIntensityMeasure, setIntensityMeasure, toXMLMetadata
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

NAME

public static final String NAME
See Also:
Constant Field Values

SHORT_NAME

public static final String SHORT_NAME
See Also:
Constant Field Values

FLT_TYPE_THRUST

public static final String FLT_TYPE_THRUST
See Also:
Constant Field Values

FLT_TYPE_REVERSE

public static final String FLT_TYPE_REVERSE
See Also:
Constant Field Values

FLT_TYPE_REVERSE_THRUST

public static final String FLT_TYPE_REVERSE_THRUST
See Also:
Constant Field Values

FLT_TYPE_OTHER

public static final String FLT_TYPE_OTHER
See Also:
Constant Field Values

FLT_TYPE_UNKNOWN

public static final String FLT_TYPE_UNKNOWN
See Also:
Constant Field Values

SITE_TYPE_NAME

public static final String SITE_TYPE_NAME
See Also:
Constant Field Values

SITE_TYPE_INFO

public static final String SITE_TYPE_INFO
See Also:
Constant Field Values

SITE_TYPE_FIRM_SOIL

public static final String SITE_TYPE_FIRM_SOIL
See Also:
Constant Field Values

SITE_TYPE_VERY_FIRM_SOIL

public static final String SITE_TYPE_VERY_FIRM_SOIL
See Also:
Constant Field Values

SITE_TYPE_SOFT_ROCK

public static final String SITE_TYPE_SOFT_ROCK
See Also:
Constant Field Values

SITE_TYPE_FIRM_ROCK

public static final String SITE_TYPE_FIRM_ROCK
See Also:
Constant Field Values

SITE_TYPE_SOIL

public static final String SITE_TYPE_SOIL
See Also:
Constant Field Values

SITE_TYPE_ROCK

public static final String SITE_TYPE_ROCK
See Also:
Constant Field Values

SITE_TYPE_NEHRP_BC

public static final String SITE_TYPE_NEHRP_BC
See Also:
Constant Field Values

SITE_TYPE_DEFAULT

public static final String SITE_TYPE_DEFAULT
See Also:
Constant Field Values

MAG_WARN_MIN

protected static final Double MAG_WARN_MIN

MAG_WARN_MAX

protected static final Double MAG_WARN_MAX

DISTANCE_SEIS_WARN_MIN

protected static final Double DISTANCE_SEIS_WARN_MIN

DISTANCE_SEIS_WARN_MAX

protected static final Double DISTANCE_SEIS_WARN_MAX

hangingWallParam

protected DoubleParameter hangingWallParam
Hanging-Wall Parameter, defined as 1 above the surface projection, tapering linearly to 0.0 at 5 km from surface projection.


HANGING_WALL_NAME

public static final String HANGING_WALL_NAME
See Also:
Constant Field Values

HANGING_WALL_INFO

public static final String HANGING_WALL_INFO
See Also:
Constant Field Values

HANGING_WALL_MIN

protected static final Double HANGING_WALL_MIN

HANGING_WALL_MAX

protected static final Double HANGING_WALL_MAX

HANGING_WALL_DEFAULT

protected static final Double HANGING_WALL_DEFAULT

horzCoefficients

protected Hashtable horzCoefficients
Hashtables of coefficients for the supported intensityMeasures


vertCoefficients

protected Hashtable vertCoefficients
Constructor Detail

CB_2003_AttenRel

public CB_2003_AttenRel(ParameterChangeWarningListener listener)
No-Arg constructor. This initializes several ParameterList objects.

Method Detail

setFaultTypeFromRake

protected void setFaultTypeFromRake(double rake,
                                    double dip)
                             throws InvalidRangeException
Sets the style of faulting from the rake & dip angles (which come from the eqkRupture object). It's "Thrust" if 22.5=45 degrees, and "Other" if the rake is any other value.

Parameters:
rake - ave. rake of rupture (degrees)
dip - ave. dip (degrees)
Throws:
InvalidRangeException - If not valid rake angle

setEqkRupture

public void setEqkRupture(EqkRupture eqkRupture)
                   throws InvalidRangeException
This sets the eqkRupture related parameters (magParam and fltTypeParam) based on the eqkRupture passed in. The internally held eqkRupture object is also set as that passed in. Warning constrains are ingored.

Specified by:
setEqkRupture in interface IntensityMeasureRelationship
Overrides:
setEqkRupture in class AbstractIMR
Parameters:
eqkRupture - The new eqkRupture value
Throws:
InvalidRangeException - thrown if rake is out of bounds

setSite

public void setSite(Site site)
             throws ParameterException
This sets the site-type and basin-depth parameters based on what is in the Site object passed in (the Site object must have these parameters in it). This also sets the internally held Site object as that passed in.

Specified by:
setSite in interface IntensityMeasureRelationship
Overrides:
setSite in class AbstractIMR
Parameters:
site - The new site object which contains the site-related parameters.
Throws:
ParameterException - Thrown if the Site object doesn't contain either of these parameters.

getName

public String getName()
get the name of this IMR

Specified by:
getName in interface Named
Specified by:
getName in interface IntensityMeasureRelationship
Overrides:
getName in class AbstractIMR
Returns:
the name of this IMR

getShortName

public String getShortName()
Returns the Short Name of each AttenuationRelationship

Returns:
String

setPropagationEffectParams

protected void setPropagationEffectParams()
This sets the two propagation-effect parameters (distanceSeisParam and hangingWallParam) based on the current site and eqkRupture. The hanging wall term is nonzero only if the dip is less than 70 degrees AND the fault is of type reverse or thrust. Point sources are give a zero value regardless of the dip and fault type. These specifications were conveyed to Ned Field by Ken Campbell in a series of emails.

Specified by:
setPropagationEffectParams in class AttenuationRelationship

updateCoefficients

protected void updateCoefficients()
                           throws ParameterException
This function determines which set of coefficients in the HashMap are to be used given the current intensityMeasure (im) Parameter. The lookup is done keyed on the name of the im, plus the period value if im.getName() == "SA" (seperated by "/"). SWR: I choose the name update instead of set, because set is so common to java bean fields, i.e. getters and setters, that set() usually implies passing in a new value to the java bean field. I prefer update or refresh to functions that change internal values internally

Throws:
ParameterException

getMean

public double getMean()
               throws IMRException
Calculates the mean of the exceedence probability distribution.

Returns:
The mean value
Throws:
IMRException

calcMean

protected double calcMean()
                   throws IMRException
This calulates the mean assuming the coefficients have already been assigned (this way PGA can be computed in getStdDev() without having to override the current im).

Returns:
Throws:
IMRException

getStdDev

public double getStdDev()
                 throws IMRException
Description copied from interface: ScalarIMR
This returns the standard deviation (stdDev) of the intensity-measure level for the current set of parameters.

Returns:
The stdDev value
Throws:
IMRException

setParamDefaults

public void setParamDefaults()
Description copied from interface: IntensityMeasureRelationship
This sets the defaults for all the parameters.


initIndependentParamLists

protected void initIndependentParamLists()
This creates the lists of independent parameters that the various dependent parameters (mean, standard deviation, exceedance probability, and IML at exceedance probability) depend upon. NOTE: these lists do not include anything about the intensity-measure parameters or any of thier internal independentParamaters.


initSiteParams

protected void initSiteParams()
Creates the Site-Type parameter and adds it to the siteParams list. Makes the parameters noneditable.

Specified by:
initSiteParams in class AttenuationRelationship

initEqkRuptureParams

protected void initEqkRuptureParams()
Creates the two Potential Earthquake parameters (magParam and fltTypeParam) and adds them to the eqkRuptureParams list. Makes the parameters noneditable.

Specified by:
initEqkRuptureParams in class AttenuationRelationship

initPropagationEffectParams

protected void initPropagationEffectParams()
Creates the Propagation Effect parameters and adds them to the propagationEffectParams list. Makes the parameters noneditable.

Specified by:
initPropagationEffectParams in class AttenuationRelationship

initSupportedIntensityMeasureParams

protected void initSupportedIntensityMeasureParams()
Creates the two supported IM parameters (PGA and SA), as well as the independenParameters of SA (periodParam and dampingParam) and adds them to the supportedIMParams list. Makes the parameters noneditable.

Specified by:
initSupportedIntensityMeasureParams in class AttenuationRelationship

initOtherParams

protected void initOtherParams()
Creates other Parameters that the mean or stdDev depends upon, such as the Component or StdDevType parameters.

Overrides:
initOtherParams in class AttenuationRelationship

initCoefficients

protected void initCoefficients()
This creates the hashtables of coefficients for the supported intensityMeasures (im). The key is the im parameter name, plus the period value for SA (separated by "/"). For example, the key for SA at 1.00 second period is "SA/1.00".


initHorzCoefficients

protected void initHorzCoefficients()
This initializes the horizontal-component coeffiecients. Note that the "bv" values at 0.05- and 0.075-second period were obtained by linearly interpolating those at 0 and 0.1 seconds (these come from BJF_1997, and are used to compute the mean for the "BC Boundary")


initVertCoefficients

protected void initVertCoefficients()
This initializes the Vertical component coeffiecients. Note that the "bv" values at 0.05- and 0.075-second period were obtained by linearly interpolating those at 0 and 0.1 seconds (these come from BJF_1997, and are used to compute the mean for the "BC Boundary")


getInfoURL

public URL getInfoURL()
               throws MalformedURLException
This provides a URL where more info on this model can be obtained

Specified by:
getInfoURL in interface IntensityMeasureRelationship
Overrides:
getInfoURL in class AbstractIMR
Returns:
the URL to the AttenuationRelationship document on the Web.
Throws:
MalformedURLException - if returned URL is not a valid URL.