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.

🏗️ Interface Design

All models share a common interface for consistent usage across different equations.

Generic Interface
📊 Available Models

Browse the comprehensive list of implemented ground motion models.

Available Models
🔧 Model Selection

Guidelines for choosing appropriate models for your analysis.

Model Selection Guide
📝 Usage Examples

Practical examples of using ground motion models.

Examples

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: Model

Abstract 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

Periods specified by the model.

spec_accels

Pseudo-spectral accelerations computed by the model (g).

ln_stds

Pseudo-spectral accelerations log-standard deviation.

pga

Peak ground acceleration (PGA) computed by the model (g).

pgv

Peak ground velocity (PGV) computed by the model (cm/sec).

pgd

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

__init__(scenario)[source]

Initialize the model.

Parameters:

scenario (Scenario)

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

ASK14

Abrahamson, Silva & Kamai (2014)

NGA-West2 model for active tectonic regions

BSSA14

Boore et al. (2014)

NGA-West2 BSSA model

CB14

Campbell & Bozorgnia (2014)

NGA-West2 Campbell-Bozorgnia model

CY14

Chiou & Youngs (2014)

NGA-West2 Chiou-Youngs model

I14

Idriss (2014)

NGA-West2 Idriss model

BA19

Bayless & Abrahamson (2019)

Updated ASK model implementation

Stable Continental Regions

AB06

Atkinson & Boore (2006)

Eastern North America model

PZT11

Pezeshk et al. (2011)

Central and Eastern US model

TP05

Tavakoli & Pezeshk (2005)

Eastern North America model

Specialized Models

Arias Intensity

Abrahamson, Shi & Yang (2016)

Arias intensity consistent with NGA-West2

Vertical Components

Gulerce & Abrahamson (2011)

Vertical-to-horizontal ratios

Conditional Spectra

Baker & Jayaram (2008)

Conditional mean spectrum

Site Response

Kempton & Stewart (2006)

Site response modifications

Duration

Coppersmith & Bommer (2014)

Significant duration models

Detailed Model List

abrahamson_gregor_addo_2016.AbrahamsonGregorAddo2016(...)

Abrahamson, Gregor, and Addo (2016) ground motion moodel.

abrahamson_shi_yang_2016.AbrahamsonShiYang2016(...)

Abrahamson, Shi, and Yang (2016, [Abrahamson et al., 2016]) Arias intensity model.

abrahamson_silva_kamai_2014.AbrahamsonSilvaKamai2014(...)

Abrahamson, Silva, and Kamai (2014, [Abrahamson et al., 2014]) model.

akkar_sandikkaya_bommer_2014.AkkarSandikkayaBommer2014(...)

Akkar, Sandikkaya, & Bommer (2014, [Akkar et al., 2014]) model.

atkinson_boore_2006.AtkinsonBoore2006(scenario)

Atkinson and Boore (2006, [Atkinson and Boore, 2006]) model.

boore_stewart_seyhan_atkinson_2014.BooreStewartSeyhanAtkinson2014(...)

Boore, Stewart, Seyhan, and Atkinson (2014, [Boore et al., 2014]) model.

campbell_2003.Campbell2003(scenario)

Campbell (2003, [Campbell, 2003]) model.

campbell_bozorgnia_2014.CampbellBozorgnia2014(...)

Campbell and Bozorgnia (2014, [Campbell and Bozorgnia, 2014]) model.

chiou_youngs_2014.ChiouYoungs2014(scenario)

Chiou and Youngs (2014, [Chiou and Youngs, 2014]) model.

derras_bard_cotton_2014.DerrasBardCotton2014(...)

Derras, Bard and Cotton (2014, [Derras et al., 2014]) model.

gulerce_abrahamson_2011.GulerceAbrahamson2011(...)

Gülerce and Abrahamson (2011, [Gülerce and Abrahamson, 2011]) V/H model.

hermkes_kuehn_riggelsen_2014.HermkesKuehnRiggelsen2014(...)

Hermkes, Kuehn, Riggelsen (2014, [Hermkes et al., 2014]) model.

idriss_2014.Idriss2014(scenario)

Idriss (2014, [Idriss, 2014]) model.

macedo_abrahamson_liu_2021.MacedoAbrahamsonLiu2021(...)

Macedo, Abrahamson, and Liu (2021, [Macedo et al., 2021]) CAV model.

pezeshk_zandieh_tavakoli_2011.PezeshkZandiehTavakoli2011(...)

Pezeshk, Zandieh, and Tavakoli (2011, [Pezeshk et al., 2011]) model.

tavakoli_pezeshk_2005.TavakoliPezeshk05(scenario)

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

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.

AbrahamsonGregorAddo2016

Abrahamson, Gregor, and Addo (2016) ground motion moodel.

AbrahamsonShiYang2016

Abrahamson, Shi, and Yang (2016, [Abrahamson et al., 2016]) Arias intensity model.

AbrahamsonSilvaKamai2014

Abrahamson, Silva, and Kamai (2014, [Abrahamson et al., 2014]) model.

AkkarSandikkayaBommer2014

Akkar, Sandikkaya, & Bommer (2014, [Akkar et al., 2014]) model.

AtkinsonBoore2006

Atkinson and Boore (2006, [Atkinson and Boore, 2006]) model.

BooreStewartSeyhanAtkinson2014

Boore, Stewart, Seyhan, and Atkinson (2014, [Boore et al., 2014]) model.

Campbell2003

Campbell (2003, [Campbell, 2003]) model.

CampbellBozorgnia2014

Campbell and Bozorgnia (2014, [Campbell and Bozorgnia, 2014]) model.

ChiouYoungs2014

Chiou and Youngs (2014, [Chiou and Youngs, 2014]) model.

MacedoAbrahamsonLiu2021

Macedo, Abrahamson, and Liu (2021, [Macedo et al., 2021]) CAV model.

DerrasBardCotton2014

Derras, Bard and Cotton (2014, [Derras et al., 2014]) model.

HermkesKuehnRiggelsen2014

Hermkes, Kuehn, Riggelsen (2014, [Hermkes et al., 2014]) model.

Idriss2014

Idriss (2014, [Idriss, 2014]) model.

PezeshkZandiehTavakoli2011

Pezeshk, Zandieh, and Tavakoli (2011, [Pezeshk et al., 2011]) model.

TavakoliPezeshk05

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.

calc_correls

Baker and Jayaram (2008, [Baker and Jayaram, 2008]) correlation model.

calc_cond_mean_spectrum

Conditional mean spectrum by Baker & Jayaram (2008, [Baker and Jayaram, 2008]).

calc_cond_mean_spectrum_vector

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.

GulerceAbrahamson2011

Gülerce and Abrahamson (2011, [Gülerce and Abrahamson, 2011]) V/H model.