|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.opensha.sha.imr.AbstractIMR
org.opensha.sha.imr.AttenuationRelationship
org.opensha.sha.imr.attenRelImpl.ShakeMap_2003_AttenRel
public class ShakeMap_2003_AttenRel
Title: ShakeMap_2003_AttenRel
Description: This implements the Attenuation Relationship used by the ShakeMap group (2003), which is a hybrid of BJF (1997) and the low- magnitude regression developed by Vincent Quitoriano (where the former is used above mag=5.5, the latter is used below 5.0 and a linear-ramp average is used in between). However, rather than using Vs30 as the site paremeter, this uses the Wills et al. (2000, Bull. Seism. Soc. Am., 90, S187-S208) classification scheme and the nonlinear amplification factors of Borcherdt (1994, Earthquake Spectra, 10, 617-654). There is very little written documentation of this relationship, and what exists is full of typos and outdated information. This class was composed by Ned Field based on numerous queries to David Wald, Vincent Quitoriano, and Bruce Worden.
Supported Intensity-Measure Parameters:
Other Independent Parameters:
Important Notes:
This class supports a "Greater of Two Horz." component by multiplying the average horizontal component median by a factor of 1.15. This value was taken directly from the official ShakeMap documentation. The standard deviation for this component is set the same as the average horizontal (not sure if this is correct).
Regarding the Modified Mercalli Intensity (MMI) IMT, note that what is returned by the getMean() method is the natural-log of MMI. Although this is not technically correct (since MMI is not log-normally distributed), it was the easiest way to implement it for now. Furthermore, because the probability distribution of MMI (computed from PGA or PGV) is presently unknown, we cannot compute the standard deviation, probability of exceedance, or the IML at any probability other than 0.5. Therefore, a RuntimeException is thrown if one tries any of these when the chosen IMT is MMI. We can relax this when someone comes up with the probability distribution (which can't be Gaussian because MMI values below 1 and above 10 are not allowed).
| Field Summary | |
|---|---|
protected Hashtable |
coefficientsBJF
Hashtable of coefficients for the supported intensityMeasures |
protected Hashtable |
coefficientsSM
|
protected static Double |
DISTANCE_JB_WARN_MAX
|
protected static Double |
DISTANCE_JB_WARN_MIN
|
static String |
FLT_TYPE_REVERSE
|
static String |
FLT_TYPE_STRIKE_SLIP
|
static String |
FLT_TYPE_UNKNOWN
|
protected static Double |
MAG_WARN_MAX
|
protected static Double |
MAG_WARN_MIN
|
protected MMI_Param |
mmiParam
MMI parameter, the natural log of the "Modified Mercalli Intensity" IMT. |
static String |
NAME
|
static String |
SHORT_NAME
|
static String |
WILLS_SITE_B
|
static String |
WILLS_SITE_BC
|
static String |
WILLS_SITE_C
|
static String |
WILLS_SITE_CD
|
static String |
WILLS_SITE_D
|
static String |
WILLS_SITE_DE
|
static String |
WILLS_SITE_DEFAULT
|
static String |
WILLS_SITE_E
|
static String |
WILLS_SITE_INFO
|
static String |
WILLS_SITE_NAME
|
| 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 | |
|---|---|
ShakeMap_2003_AttenRel(ParameterChangeWarningListener listener)
No-Arg constructor. |
|
| Method Summary | |
|---|---|
double |
getIML_AtExceedProb()
This overides the parent to take care if MMI is the chosen IMT. |
URL |
getInfoURL()
This provides a URL where more info on this model can be obtained |
double |
getMean()
Note that for MMI this returns the natural log of MMI (this should be changed later) |
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 hashtable 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 |
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 single Propagation Effect parameter and adds it to the propagationEffectParams list. |
protected void |
initSiteParams()
Creates the willsSiteParam site 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. |
static void |
main(String[] args)
|
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. |
void |
setParamDefaults()
This sets the defaults for all the parameters. |
protected void |
setPropagationEffectParams()
This calculates the Distance JB propagation effect parameter based on the current site and eqkRupture. |
void |
setSite(Site site)
This sets the site-related parameter (willsSiteParam) based on what is in the Site object passed in (the Site object must have a parameter with the same name as that in willsSiteParam). |
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 java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface java.lang.Comparable |
|---|
compareTo |
| Field Detail |
|---|
public static final String NAME
public static final String SHORT_NAME
public static final String FLT_TYPE_UNKNOWN
public static final String FLT_TYPE_STRIKE_SLIP
public static final String FLT_TYPE_REVERSE
protected static final Double MAG_WARN_MIN
protected static final Double MAG_WARN_MAX
protected static final Double DISTANCE_JB_WARN_MIN
protected static final Double DISTANCE_JB_WARN_MAX
public static final String WILLS_SITE_NAME
public static final String WILLS_SITE_INFO
public static final String WILLS_SITE_B
public static final String WILLS_SITE_BC
public static final String WILLS_SITE_C
public static final String WILLS_SITE_CD
public static final String WILLS_SITE_D
public static final String WILLS_SITE_DE
public static final String WILLS_SITE_E
public static final String WILLS_SITE_DEFAULT
protected MMI_Param mmiParam
protected Hashtable coefficientsBJF
protected Hashtable coefficientsSM
| Constructor Detail |
|---|
public ShakeMap_2003_AttenRel(ParameterChangeWarningListener listener)
| Method Detail |
|---|
protected void setFaultTypeFromRake(double rake)
throws InvalidRangeException
rake - in degrees
InvalidRangeException - If not valid rake angle
public void setEqkRupture(EqkRupture eqkRupture)
throws InvalidRangeException
setEqkRupture in interface IntensityMeasureRelationshipsetEqkRupture in class AbstractIMReqkRupture - The new eqkRupture value
InvalidRangeException - thrown if rake is out of bounds
public void setSite(Site site)
throws ParameterException
setSite in interface IntensityMeasureRelationshipsetSite in class AbstractIMRsite - The new site value which contains a Wills site Param.
ParameterException - Thrown if the Site object doesn't contain a
Wills site parameterprotected void setPropagationEffectParams()
setPropagationEffectParams in class AttenuationRelationship
protected void updateCoefficients()
throws ParameterException
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
ParameterException
public double getMean()
throws IMRException
IMRException
public double getIML_AtExceedProb()
throws ParameterException
getIML_AtExceedProb in interface ScalarIMRgetIML_AtExceedProb in class AttenuationRelationshipParameterException - Description of the Exception
public double getStdDev()
throws IMRException
ScalarIMR
IMRExceptionpublic void setParamDefaults()
IntensityMeasureRelationship
protected void initIndependentParamLists()
protected void initSiteParams()
initSiteParams in class AttenuationRelationshipprotected void initEqkRuptureParams()
initEqkRuptureParams in class AttenuationRelationshipprotected void initPropagationEffectParams()
initPropagationEffectParams in class AttenuationRelationshipprotected void initSupportedIntensityMeasureParams()
initSupportedIntensityMeasureParams in class AttenuationRelationshipprotected void initOtherParams()
initOtherParams in class AttenuationRelationshippublic String getName()
getName in interface NamedgetName in interface IntensityMeasureRelationshipgetName in class AbstractIMRpublic String getShortName()
protected void initCoefficients()
public static void main(String[] args)
public URL getInfoURL()
throws MalformedURLException
getInfoURL in interface IntensityMeasureRelationshipgetInfoURL in class AbstractIMRMalformedURLException - if returned URL is not a valid URL.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||