Sample ground motion suite

pySLAMMER ships with a small suite of recorded ground motions so that users can run analyses out of the box without sourcing acceleration records. The suite is intentionally compact — it spans a useful range of magnitude, duration, and frequency content for testing and demonstration, but it is not intended as a hazard-consistent record set for design.

Loading motions in code

All bundled motions are exposed as a dictionary of GroundMotion objects:

import pyslammer as slam

motions = slam.sample_ground_motions()
list(motions)
['Morgan_Hill_1984_CYC-285',
 'Nisqually_2001_UNR-058',
 'Imperial_Valley_1979_BCR-230',
 'Northridge_1994_PAC-175',
 'Chi-Chi_1999_TCU068-090',
 'Cape_Mendocino_1992_PET-090',
 'Coalinga_1983_PVB-045',
 'Mammoth_Lakes-2_1980_CVK-090',
 'Kocaeli_1999_ATS-090',
 'Nahanni_1985_NS1-280',
 'Mammoth_Lakes-1_1980_CVK-090',
 'Duzce_1999_375-090',
 'Loma_Prieta_1989_HSP-000',
 'Landers_1992_LCN-345',
 'N_Palm_Springs_1986_WWT-180',
 'Kobe_1995_TAK-090',
 'Coyote_Lake_1979_G02-050',
 'Northridge_1994_VSP-360']

Each entry is keyed by Earthquake_Year_Record and can be passed directly to any analysis class:

gm = motions["Imperial_Valley_1979_BCR-230"]
print(f"{gm.name}: dt={gm.dt}s, npts={len(gm.accel)}, PGA={gm.pga:.3f}g")
Imperial_Valley_1979_BCR-230: dt=0.005s, npts=7348, PGA=0.775g

For an example using one of these motions end-to-end, see the rigid/flexible analysis example. A custom_ground_motion example covering how to use your own record is planned.

Suite summary

The table below summarizes the recorded characteristics of each motion. Values are taken from the original strong-motion records as digitized for the suite.

Code
import pandas as pd
from pathlib import Path

summary = pd.read_csv(Path("..") / "_static" / "gm_summary.csv")
summary
Table 1: Bundled ground motions and their key engineering parameters.
Earthquake Record Digitization interval Magnitude Arias intensity (m/s) Duration (5-95%) PGA (g) PGV (m/s) Mean period (s) Epicentral distance (km) Focal distance (km) Rupture distance (km) Focal mechanism
0 Cape Mendocino 1992 PET-090 0.020 7.1 3.822 16.1 0.662 90.1 0.68 4.5 10.5 8.2 Reverse
1 Chi-Chi, Taiwan 1999 TCU068-090 0.005 7.6 3.303 12.5 0.566 176.9 1.50 47.9 48.5 0.3 Obl. reverse
2 Coalinga 1983 PVB-045 0.005 6.4 1.571 8.1 0.380 32.4 0.61 10.0 11.0 8.4 Reverse
3 Coyote Lake 1979 G02-050 0.005 5.7 0.287 7.5 0.211 11.0 0.37 10.9 13.6 9.0 Strike-slip
4 Duzce, Turkey 1999 375-090 0.010 7.1 2.037 13.2 0.514 20.4 0.29 24.1 27.8 3.9 Strike-slip
5 Imperial Valley 1979 BCR-230 0.005 6.5 5.990 9.8 0.775 45.9 0.47 6.2 11.7 2.7 Strike-slip
6 Kobe, Japan 1995 TAK-090 0.010 6.9 8.134 9.9 0.616 120.7 0.99 13.1 22.2 1.5 Strike-slip
7 Kocaeli, Turkey 1999 ATS-090 0.005 7.5 1.240 37.2 0.185 32.8 0.98 112.3 113.4 69.6 Strike-slip
8 Landers 1992 LCN-345 0.005 7.3 6.588 13.9 0.789 32.5 0.17 44.0 44.6 2.2 Strike-slip
9 Loma Prieta 1989 HSP-000 0.005 6.9 2.205 16.4 0.371 62.3 0.95 48.2 51.3 27.9 Obl. reverse
10 Mammoth Lakes-1 1980 CVK-090 0.005 6.1 2.256 9.2 0.416 23.2 0.32 1.4 9.1 6.6 Obl. normal
11 Mammoth Lakes-2 1980 CVK-090 0.005 5.9 0.394 6.8 0.266 19.0 0.39 12.0 18.5 NaN Strike-slip
12 Morgan Hill 1984 CYC-285 0.005 6.2 3.850 3.2 1.298 80.8 0.55 24.6 26.0 0.5 Strike-slip
13 N. Palm Springs 1986 WWT-180 0.005 6.1 1.768 5.4 0.492 34.7 0.35 4.2 11.8 6.0 Obl. reverse
14 Nahanni, Canada 1985 NS1-280 0.005 6.8 3.852 8.1 1.096 46.1 0.36 6.8 10.5 9.6 Reverse
15 Nisqually 2001 UNR-058 0.010 6.8 1.458 31.6 0.274 22.9 0.69 57.6 77.9 77.9 Normal
16 Northridge 1994 PAC-175 0.020 6.7 0.936 4.3 0.415 45.8 0.47 20.4 26.9 7.0 Reverse
17 Northridge 1994 VSP-360 0.005 6.7 6.987 8.5 0.934 76.2 0.46 8.5 19.5 8.4 Reverse

Response spectra

The 5%-damped acceleration response spectra for the suite are plotted on the SLAMMER verification page, where the suite is used as the motion set for the verification study.

Bringing your own motion

The sample suite is a convenience, not a constraint. Any 1-D acceleration array (in \(g\)) plus a timestep can be wrapped as a slam.GroundMotion(accel, dt, name=...) and used identically. A dedicated example is planned (custom_ground_motion.qmd).