Ground Motion Models¶
pyGMM provides a unified interface to numerous ground motion prediction equations (GMPEs) developed by researchers worldwide. All models follow a consistent API for easy comparison and analysis.
All models share a common interface for consistent usage across different equations.
Browse the comprehensive list of implemented ground motion models.
Guidelines for choosing appropriate models for your analysis.
Practical examples of using ground motion models.
Generic Interface¶
All ground motion models in pyGMM inherit from GroundMotionModel,
providing a consistent interface regardless of the underlying equation.
- class pygmm.model.GroundMotionModel(scenario)[source]¶
Bases:
ModelAbstract class for ground motion prediction models.
Key Methods
__init__(scenario)Initialize the model.
interp_ln_spec_accels(periods[, kind])Interpolate the spectral acceleration.
interp_spec_accels(periods[, kind])Interpolate the spectral acceleration.
interp_ln_stds(periods[, kind])Interpolate the logarithmic standard deviation.
Properties
Periods specified by the model.
Pseudo-spectral accelerations computed by the model (g).
Pseudo-spectral accelerations log-standard deviation.
Peak ground acceleration (PGA) computed by the model (g).
Peak ground velocity (PGV) computed by the model (cm/sec).
Peak ground displacement (PGD) computed by the model (cm).
- Parameters:
scenario (Scenario)
- INDICES_PSA = array([], dtype=float64)¶
Indices for the spectral accelerations
- PERIODS = array([], dtype=float64)¶
Indices of the periods
- INDEX_PGA = None¶
Index of the peak ground acceleration
- INDEX_PGV = None¶
Index of the peak ground velocity
- INDEX_PGD = None¶
Index of the peak ground displacement
- PGV_SCALE = 1.0¶
Scale factor to apply to get PGV in cm/sec
- PGD_SCALE = 1.0¶
Scale factor to apply to get PGD in cm
- interp_ln_spec_accels(periods, kind='linear')[source]¶
Interpolate the spectral acceleration.
Interpolation of the spectral acceleration is done in natural log space.
- Parameters:
periods (array_like) – spectral periods to interpolate the response.
kind (str, optional) – see
scipy.interpolate.interp1d()for description of kind. Options include: ‘linear’ (default), ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, and ‘cubic’
- Returns:
ln_spec_accels – interpolated spectral accelerations
- Return type:
np.ndarray
- interp_spec_accels(periods, kind='linear')[source]¶
Interpolate the spectral acceleration.
Interpolation of the spectral acceleration is done in natural log space.
- Parameters:
periods (array_like) – spectral periods to interpolate the response.
kind (str, optional) – see
scipy.interpolate.interp1d()for description of kind. Options include: ‘linear’ (default), ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, and ‘cubic’
- Returns:
spec_accels – interpolated spectral accelerations
- Return type:
np.ndarray
- interp_ln_stds(periods, kind='linear')[source]¶
Interpolate the logarithmic standard deviation.
Interpolate the logarithmic standard deviation (\(\sigma_{\ln}\)) of spectral acceleration at the provided damping at specified periods.
- Parameters:
periods (array_like) – spectral periods to interpolate the response.
kind (str, optional) – see
scipy.interpolate.interp1d()for description of kind. Options include: ‘linear’ (default), ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, and ‘cubic’
- Returns:
ln_stds – interpolated logarithmic standard deviations
- Return type:
np.ndarray
- property periods: ndarray¶
Periods specified by the model.
- property spec_accels: ndarray¶
Pseudo-spectral accelerations computed by the model (g).
- property ln_stds: ndarray¶
Pseudo-spectral accelerations log-standard deviation.
- property pga: float¶
Peak ground acceleration (PGA) computed by the model (g).
- property ln_std_pga: float¶
Peak ground accelaration log-standard deviation.
- property pgv: float¶
Peak ground velocity (PGV) computed by the model (cm/sec).
- property ln_std_pgv: float¶
Peak ground velocity log-standard deviation.
- property pgd: float¶
Peak ground displacement (PGD) computed by the model (cm).
- property ln_std_pgd: float¶
Peak ground displacement log-standard deviation.
- ABBREV = ''¶
Short name of the model
- LIMITS = {}¶
Limits of model applicability
- NAME = ''¶
Long name of the model
- PARAMS = []¶
Model parameters
- property scenario¶
Basic Usage¶
All models follow the same usage pattern:
import pygmm
# Create scenario
scenario = pygmm.Scenario(
mag=6.5,
dist_rup=20,
v_s30=760,
mechanism='strike_slip'
)
# Initialize model
model = pygmm.CampbellBozorgnia2014()
# Calculate ground motion
ln_sa, ln_std = model(scenario)
Available Models¶
pyGMM includes implementations of the following ground motion prediction equations:
Active Shallow Crust Models¶
Abrahamson, Silva & Kamai (2014)
NGA-West2 model for active tectonic regions
Boore et al. (2014)
NGA-West2 BSSA model
Campbell & Bozorgnia (2014)
NGA-West2 Campbell-Bozorgnia model
Chiou & Youngs (2014)
NGA-West2 Chiou-Youngs model
Idriss (2014)
NGA-West2 Idriss model
Bayless & Abrahamson (2019)
Updated ASK model implementation
Stable Continental Regions¶
Atkinson & Boore (2006)
Eastern North America model
Pezeshk et al. (2011)
Central and Eastern US model
Tavakoli & Pezeshk (2005)
Eastern North America model
Specialized Models¶
Abrahamson, Shi & Yang (2016)
Arias intensity consistent with NGA-West2
Gulerce & Abrahamson (2011)
Vertical-to-horizontal ratios
Baker & Jayaram (2008)
Conditional mean spectrum
Kempton & Stewart (2006)
Site response modifications
Coppersmith & Bommer (2014)
Significant duration models
Detailed Model List¶
Abrahamson, Gregor, and Addo (2016) ground motion moodel. |
|
Abrahamson, Shi, and Yang (2016, [Abrahamson et al., 2016]) Arias intensity model. |
|
Abrahamson, Silva, and Kamai (2014, [Abrahamson et al., 2014]) model. |
|
Akkar, Sandikkaya, & Bommer (2014, [Akkar et al., 2014]) model. |
|
|
Atkinson and Boore (2006, [Atkinson and Boore, 2006]) model. |
|
Boore, Stewart, Seyhan, and Atkinson (2014, [Boore et al., 2014]) model. |
|
Campbell (2003, [Campbell, 2003]) model. |
Campbell and Bozorgnia (2014, [Campbell and Bozorgnia, 2014]) model. |
|
|
Chiou and Youngs (2014, [Chiou and Youngs, 2014]) model. |
Derras, Bard and Cotton (2014, [Derras et al., 2014]) model. |
|
Gülerce and Abrahamson (2011, [Gülerce and Abrahamson, 2011]) V/H model. |
|
Hermkes, Kuehn, Riggelsen (2014, [Hermkes et al., 2014]) model. |
|
|
Idriss (2014, [Idriss, 2014]) model. |
Macedo, Abrahamson, and Liu (2021, [Macedo et al., 2021]) CAV model. |
|
|
Pezeshk, Zandieh, and Tavakoli (2011, [Pezeshk et al., 2011]) model. |
|
Tavakoli and Pezeshk (2005, [Tavakoli and Pezeshk, 2005]) model. |
Model Selection Guide¶
Choosing the appropriate ground motion model depends on several factors:
Active Shallow Crust
California, Japan, Turkey, New Zealand
Use NGA-West2 models (ASK14, BSSA14, CB14, CY14, I14)
Stable Continental Regions
Eastern North America, Australia, Europe
Use AB06, PZT11, or TP05
Small to Moderate (M < 6.5)
Most models applicable
Consider regional calibration
Large Events (M > 7.0)
NGA-West2 models well-constrained
Check applicable magnitude ranges
Near-field (< 20 km)
All NGA-West2 models
Consider directivity effects
Far-field (> 100 km)
Check distance limits
Consider attenuation characteristics
Applicability Ranges¶
Each model has specific ranges of applicability:
Important
Using models outside their intended ranges may produce unreliable results. Always check the model documentation for applicable ranges.
Check Model Limits
import pygmm
model = pygmm.CampbellBozorgnia2014()
print("Model limits:")
for param, limits in model.LIMITS.items():
print(f" {param}: {limits}")
Multi-Model Analysis¶
For robust analyses, consider using multiple models:
models = [
pygmm.CampbellBozorgnia2014(),
pygmm.AbrahamsonSilvaKamai2014(),
pygmm.BooreStewartSeyhanAtkinson2014(),
pygmm.ChiouYoungs2014(),
]
# Calculate center, body, and range (CBR) statistics
results = []
for model in models:
ln_sa, ln_std = model(scenario)
results.append(np.exp(ln_sa))
# Central tendency and epistemic uncertainty
median = np.median(results, axis=0)
std_log = np.std(np.log(results), axis=0)
See Also¶
Model Comparison - Detailed comparison examples
Basic Usage - Getting started with models
API Reference - Complete API reference
Mechanism Reference¶
The following abbreviations are used for fault mechanism. Refer to each model for the specific definition of the mechanism.
Abbreviation |
Name |
|---|---|
U |
Unspecified |
SS |
Strike-slip |
NS |
Normal slip |
RS |
Reverse slip |
Specific Models¶
Each supported ground motion model inherits from Model, which
provides the standard interface to access the calculated ground motion. The
following models have been implemented.
Abrahamson, Gregor, and Addo (2016) ground motion moodel. |
|
Abrahamson, Shi, and Yang (2016, [Abrahamson et al., 2016]) Arias intensity model. |
|
Abrahamson, Silva, and Kamai (2014, [Abrahamson et al., 2014]) model. |
|
Akkar, Sandikkaya, & Bommer (2014, [Akkar et al., 2014]) model. |
|
Atkinson and Boore (2006, [Atkinson and Boore, 2006]) model. |
|
Boore, Stewart, Seyhan, and Atkinson (2014, [Boore et al., 2014]) model. |
|
Campbell (2003, [Campbell, 2003]) model. |
|
Campbell and Bozorgnia (2014, [Campbell and Bozorgnia, 2014]) model. |
|
Chiou and Youngs (2014, [Chiou and Youngs, 2014]) model. |
|
Macedo, Abrahamson, and Liu (2021, [Macedo et al., 2021]) CAV model. |
|
Derras, Bard and Cotton (2014, [Derras et al., 2014]) model. |
|
Hermkes, Kuehn, Riggelsen (2014, [Hermkes et al., 2014]) model. |
|
Idriss (2014, [Idriss, 2014]) model. |
|
Pezeshk, Zandieh, and Tavakoli (2011, [Pezeshk et al., 2011]) model. |
|
Tavakoli and Pezeshk (2005, [Tavakoli and Pezeshk, 2005]) model. |
If you are interested in contributing another model to the collection please see Contributing.
Conditional Spectrum Models¶
Conditional spectra models are used to create an acceleration response
spectrum conditioned on the response at one or multiple spectral periods. The
The calc_cond_mean_spectrum()
provides functions for developing conditional spectra based on one conditioning
period, while the calc_cond_mean_spectrum_vector()
uses the same correlation structure and permits conditioning on multiple
periods.
Baker and Jayaram (2008, [Baker and Jayaram, 2008]) correlation model. |
|
Conditional mean spectrum by Baker & Jayaram (2008, [Baker and Jayaram, 2008]). |
|
Kishida (2017, [Kishida, 2017]) conditional spectrum. |
Vertical-to-Horizontal (V/H) Models¶
Vertical-to-horizontal models are used to compute the vertical acceleration response spectrum from a horizontal response spectrum.
Gülerce and Abrahamson (2011, [Gülerce and Abrahamson, 2011]) V/H model. |