shakelib.directivity.rowshandel2013

Implements the Rowshandel (2013) directivity model. Note that the report provides many options for computing the directivity factor and we have also used some coefficients that are unpublished updates by Rowshandel. Some of the implementation options are controlled by arguments (e.g., mtype).

Fd is the directivity function. One of the options is whether or not to use the ‘centering’ term (the argument is ‘centered’ and defaults to True). If it is True then

Fd = C1 * (XiPrime - Xic) * LD * DT * WP

otherwise

Fd = (C1 * Xiprime + C2) * LD * DT * WP

where

  • C1 and C2 are regression coefficients.
  • XiPrime is a factor that accounts for rupture propagation and slip direction.
  • Xic is the centering term.
  • LD is the rupture length de-normalization factor.
  • DT is the distance-taper.
  • WP is the narrow-band multiplier.

Note that Fd is intended to be used in GMPEs as:

ln(IM_dir) = ln(IM) + Fd

where

  • Fd is the directivity effect.
  • IM is the intensity measure predicted by the GMPE.
  • IM_dir is the directivity-adjusted IM.
To do
  • Add checks on function arguments (e.g., mtype) for valid values.
  • Interpolate periods.

References

Rowshandel, B. (2013). Rowshandel’s NGA-West2 directivity model, Chapter 3 of PEER Report No. 2013/09, P. Spudich (Editor), Pacific Earthquake Engineering Research Center, Berkeley, CA. [link]

class shakelib.directivity.rowshandel2013.Rowshandel2013(origin, rup, lat, lon, dep, dx, T, a_weight=0.5, mtype=1, simpleDT=False, centered=True)[source]

Bases: object

Constructor for rowshandel2013.

Parameters:
  • origin – Origin instance.
  • rup – Rupture instance.
  • lat (ndarray) – Numpy array of site latitudes.
  • lon (ndarray) – Numpy array of site longitudes.
  • dep (ndarray) – Numpy array of site depths (km); positive down.
  • dx (float) – Target mesh spacing for subruptures in km. The mesh snaps to the edges of the quadrilaterals so the actual mesh spacing will not equal this exactly; spacing in x and y will not be equal.
  • T (list) – List floats (or a float) for periods to compute fd; Currently, only acceptable values are 1, 2, 3, 4, 5, 7.5.
  • a_weight (float) – Weighting factor for how p-dot-q and s-dot-q are averaged; 0 for only p-dot-q (propagation factor) and 1 for only s-dot-q (slip factor).
  • mtype (int) – Either 1 or 2; 1 for adding only positive components of dot products, 2 for adding all components of dot products.
  • simpleDT (bool) – Should the simpler DT equation be used? Usually False.
  • centered (bool) – Should the centered directivity parameter be used?
classmethod fromSites(origin, rup, sites, dx, T, a_weight=0.5, mtype=1, simpleDT=False, centered=True)[source]

Construct a rowshandel2013 instance from a sites instance.

Class method for constructing a rowshandel2013 instance from a sites instance.

Parameters:
  • origin – Origin instance.
  • rup – Rupture instance.
  • sites – Sites object.
  • dx – Float for target mesh spacing for subruptures in km. The mesh snaps to the edges of the quadrilaterals so the actual mesh spacing will not equal this exactly; spacing in x and y will not be equal.
  • T – Period; Currently, only acceptable values are 1, 2, 3, 4, 5, 7.5.
  • a_weight – Weighting factor for how p-dot-q and s-dot-q are averaged; 0 for only p-dot-q (propagation factor) and 1 for only s-dot-q (slip factor).
  • mtype – Integer, either 1 or 2; 1 for adding only positive components of dot products, 2 for adding all components of dot products.
  • simpleDT – Boolean; should the simpler DT equation be used? Usually False.
  • centered – Boolean; should the centered directivity parameter be used
Returns:

Rowshandel2013 directivity class.

getFd()[source]
Returns:Numpy array of Fd; this is the directivity amplification factor (log units).
getXiPrime()[source]
Returns:Numpy array of Xi’; this is the variable that accounts for geometric factors in Fd.
getDT()[source]
Returns:List of numpy arrays of the distance taper factor. Length is the number of periods.
getWP()[source]
Returns:List of numpy array of the narrow-band multiplier. Length is the number of periods.
getLD()[source]
Returns:Numpy array of the rupture length de-normalization factor.