org.opensha.sha.imr.attenRelImpl
Class AS_1997_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.AS_1997_AttenRel
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<IntensityMeasureRelationship>, Named, ShortNamed, XMLSaveable, IntensityMeasureRelationship, ScalarIMR

public class AS_1997_AttenRel
extends AttenuationRelationship

Title: AS_1997_AttenRel

Description: This implements the Attenuation Relationship developed by Abrahmson and Silva (1997, Seismological Research Letters, vol 68, num 1, pp 94-127)

Supported Intensity-Measure Parameters:

Other Independent Parameters:

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

Field Summary
static java.lang.Double DISTANCE_RUP_WARN_MAX
           
static java.lang.Double DISTANCE_RUP_WARN_MIN
           
static java.lang.String FLT_TYPE_OTHER
           
static java.lang.String FLT_TYPE_REV_OBL
           
static java.lang.String FLT_TYPE_REVERSE
           
static java.lang.String IS_ON_HANGING_WALL_DEFAULT
           
static java.lang.String IS_ON_HANGING_WALL_FALSE
           
static java.lang.String IS_ON_HANGING_WALL_INFO
           
static java.lang.String IS_ON_HANGING_WALL_NAME
           
static java.lang.String IS_ON_HANGING_WALL_TRUE
           
static java.lang.Double MAG_WARN_MAX
           
static java.lang.Double MAG_WARN_MIN
           
static java.lang.String NAME
          Attenuation relationship name
static java.lang.String SHORT_NAME
          Attenuation relationship short name
static java.lang.String SITE_TYPE_DEFAULT
           
static java.lang.String SITE_TYPE_INFO
           
static java.lang.String SITE_TYPE_NAME
          info
static java.lang.String SITE_TYPE_ROCK
           
static java.lang.String SITE_TYPE_SOIL
           
 
Fields inherited from class org.opensha.sha.imr.AttenuationRelationship
aftershockParam, C, 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
AS_1997_AttenRel(ParameterChangeWarningListener listener)
          Constructs a new attenuation relationship.
 
Method Summary
 java.net.URL getInfoURL()
          This provides a URL where more info on this model can be obtained
 double getMean()
          This returns the mean intensity-measure level for the current set of parameters.
 java.lang.String getName()
          Returns name of the IntensityMeasureRelationship.
 java.lang.String getShortName()
          Returns a Short Name for the IMR
 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 hashtable of coefficients for the supported intensityMeasures (im).
protected  void initEqkRuptureParams()
          Creates the EqkRupture-related parameters, which are all associated parameters that the exceedance probability depends upon.
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 Propagation-Effect related parameters, which are all associated parameters that the exceedance probability depends upon.
protected  void initSiteParams()
          This creates Site-related parameters, which are all associated parameters that the exceedance probability depends upon.
protected  void initSupportedIntensityMeasureParams()
          This creates the supported intensity-measure parameters.
protected  boolean isOnHangingWall()
          This determines whether the rupture is on the hanging wall by creating a polygon that is extended in the down-dip direction, and then checking whether the site is inside.
 void setEqkRupture(EqkRupture eqkRupture)
          This sets the eqkRupture related parameters (magParam and fltTypeParam) based on the eqkRupture passed in.
protected  void setFaultTypeFromRake(double rake)
          Determines the style of faulting from the rake angle (which comes from the eqkRupture object) and fills in the value of the fltTypeParam; since their paper does not quantify the distinction, Norm advised as follows: Reverse if 67.5
 void setParamDefaults()
          This sets the defaults for all the parameters.
protected  void setPropagationEffectParams()
          This sets the two propagation-effect parameters (distanceRupParam and isOnHangingWallParam) based on the current site and eqkRupture.
 void setSite(Site site)
          This sets the site-related parameter (siteTypeParam) based on what is in the Site object passed in (the Site object must have a parameter with the same name as that in siteTypeParam).
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 java.lang.String NAME
Attenuation relationship name

See Also:
Constant Field Values

SHORT_NAME

public static final java.lang.String SHORT_NAME
Attenuation relationship short name

See Also:
Constant Field Values

FLT_TYPE_REVERSE

public static final java.lang.String FLT_TYPE_REVERSE
See Also:
Constant Field Values

FLT_TYPE_REV_OBL

public static final java.lang.String FLT_TYPE_REV_OBL
See Also:
Constant Field Values

FLT_TYPE_OTHER

public static final java.lang.String FLT_TYPE_OTHER
See Also:
Constant Field Values

SITE_TYPE_NAME

public static final java.lang.String SITE_TYPE_NAME
info

See Also:
Constant Field Values

SITE_TYPE_INFO

public static final java.lang.String SITE_TYPE_INFO
See Also:
Constant Field Values

SITE_TYPE_ROCK

public static final java.lang.String SITE_TYPE_ROCK
See Also:
Constant Field Values

SITE_TYPE_SOIL

public static final java.lang.String SITE_TYPE_SOIL
See Also:
Constant Field Values

SITE_TYPE_DEFAULT

public static final java.lang.String SITE_TYPE_DEFAULT
See Also:
Constant Field Values

IS_ON_HANGING_WALL_NAME

public static final java.lang.String IS_ON_HANGING_WALL_NAME
See Also:
Constant Field Values

IS_ON_HANGING_WALL_INFO

public static final java.lang.String IS_ON_HANGING_WALL_INFO
See Also:
Constant Field Values

IS_ON_HANGING_WALL_TRUE

public static final java.lang.String IS_ON_HANGING_WALL_TRUE
See Also:
Constant Field Values

IS_ON_HANGING_WALL_FALSE

public static final java.lang.String IS_ON_HANGING_WALL_FALSE
See Also:
Constant Field Values

IS_ON_HANGING_WALL_DEFAULT

public static final java.lang.String IS_ON_HANGING_WALL_DEFAULT
See Also:
Constant Field Values

MAG_WARN_MIN

public static final java.lang.Double MAG_WARN_MIN

MAG_WARN_MAX

public static final java.lang.Double MAG_WARN_MAX

DISTANCE_RUP_WARN_MIN

public static final java.lang.Double DISTANCE_RUP_WARN_MIN

DISTANCE_RUP_WARN_MAX

public static final java.lang.Double DISTANCE_RUP_WARN_MAX
Constructor Detail

AS_1997_AttenRel

public AS_1997_AttenRel(ParameterChangeWarningListener listener)
Constructs a new attenuation relationship.

Parameters:
listener - may be null
Method Detail

setFaultTypeFromRake

protected void setFaultTypeFromRake(double rake)
                             throws InvalidRangeException
Determines the style of faulting from the rake angle (which comes from the eqkRupture object) and fills in the value of the fltTypeParam; since their paper does not quantify the distinction, Norm advised as follows: Reverse if 67.5
Parameters:
rake - in 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-related parameter (siteTypeParam) based on what is in the Site object passed in (the Site object must have a parameter with the same name as that in siteTypeParam). 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
Throws:
ParameterException - Thrown if the Site object doesn't contain a Vs30 parameter

setPropagationEffectParams

protected void setPropagationEffectParams()
This sets the two propagation-effect parameters (distanceRupParam and isOnHangingWallParam) based on the current site and eqkRupture. The hanging-wall term is rake independent (i.e., it can apply to strike-slip or normal faults as well as reverse and thrust). However, it is turned off if the dip is greater than 70 degrees. It is also turned off for point sources regardless of the dip. These specifications were determined from a series of discussions between Ned Field, Norm Abrahamson, and Ken Campbell.

Specified by:
setPropagationEffectParams in class AttenuationRelationship

isOnHangingWall

protected boolean isOnHangingWall()
This determines whether the rupture is on the hanging wall by creating a polygon that is extended in the down-dip direction, and then checking whether the site is inside. This should really be implemented as a formal PropagationEffectParameter.

Returns:

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 "/").

Throws:
ParameterException

getMean

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

Returns:
The mean value
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()
Description copied from class: AttenuationRelationship
This creates Site-related parameters, which are all associated parameters that the exceedance probability depends upon. All implementation is in the subclass (it's defined here as a reminder/suggestions).

Specified by:
initSiteParams in class AttenuationRelationship

initEqkRuptureParams

protected void initEqkRuptureParams()
Description copied from class: AttenuationRelationship
Creates the EqkRupture-related parameters, which are all associated parameters that the exceedance probability depends upon. All implementation is in the subclass (it's defined here as a reminder/suggestions).

Specified by:
initEqkRuptureParams in class AttenuationRelationship

initPropagationEffectParams

protected void initPropagationEffectParams()
Description copied from class: AttenuationRelationship
Creates Propagation-Effect related parameters, which are all associated parameters that the exceedance probability depends upon. All implementation is in the subclass (it's defined here as a reminder/suggestions).

Specified by:
initPropagationEffectParams in class AttenuationRelationship

initSupportedIntensityMeasureParams

protected void initSupportedIntensityMeasureParams()
Description copied from class: AttenuationRelationship
This creates the supported intensity-measure parameters. All implementation is in the subclass (it's defined here as a reminder/suggestions).

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 hashtable 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".


getName

public java.lang.String getName()
Description copied from class: AbstractIMR
Returns name of the IntensityMeasureRelationship.

Specified by:
getName in interface Named
Specified by:
getName in interface IntensityMeasureRelationship
Overrides:
getName in class AbstractIMR
Returns:
The name string

getShortName

public java.lang.String getShortName()
Description copied from interface: IntensityMeasureRelationship
Returns a Short Name for the IMR

Returns:
String

getInfoURL

public java.net.URL getInfoURL()
                        throws java.net.MalformedURLException
Description copied from class: AbstractIMR
This provides a URL where more info on this model can be obtained

Specified by:
getInfoURL in interface IntensityMeasureRelationship
Overrides:
getInfoURL in class AbstractIMR
Throws:
java.net.MalformedURLException - if returned URL is not a valid URL. This default implementation returns nothing