Motion Module

The motion module provides classes for representing and manipulating ground motion data used in site response analysis.

Classes

TimeSeriesMotion

Time-series motion for time series based site response analysis.

RvtMotion

RVT motion based on user specified Fourier amplitude spectrum and duration.

CompatibleRvtMotion

RVT motion based on user specified acceleration response spectrum and duration.

SourceTheoryRvtMotion

RVT motion based on seismological point source model and earthquake scenario parameters.

Time Series Motions

class pystrata.motion.TimeSeriesMotion(filename: str, description: str, time_step: float, accels, fa_length=None)[source]

Bases: Motion

Time-series motion for time series based site response analysis.

property freqs

Return the frequencies.

property fourier_amps

Return the frequencies.

calc_osc_accels(osc_freqs, osc_damping=0.05, tf=None)[source]

Compute the pseudo-acceleration spectral response of an oscillator with a specific frequency and damping.

Parameters:
  • osc_freq (float) – Frequency of the oscillator (Hz).

  • osc_damping (float) – Fractional damping of the oscillator (dec). For example, 0.05 for a damping ratio of 5%.

  • tf (array_like, optional) – Transfer function to be applied to motion prior calculation of the oscillator response.

Returns:

spec_accels – Peak pseudo-spectral acceleration of the oscillator

Return type:

numpy.ndarray

classmethod load_at2_file(filename, scale=1.0)[source]

Read an AT2 formatted time series.

Parameters:
  • filename (str) – Filename to open.

  • scale (float, default: 1.) – Scale factor to apply to the motion.

classmethod load_smc_file(filename, scale=1.0)[source]

Read an SMC formatted time series.

Format of the time series is provided by:

https://escweb.wr.usgs.gov/nsmp-data/smcfmt.html

Parameters:
  • filename (str) – Filename to open.

  • scale (float, default: 1.) – Scale factor to apply to the motion.

Random Vibration Theory Motions

class pystrata.motion.RvtMotion(freqs, fourier_amps, duration=None, peak_calculator=None, calc_kwds=None)[source]

Bases: RvtMotion, Motion

RVT motion based on user specified Fourier amplitude spectrum and duration.

class pystrata.motion.CompatibleRvtMotion(osc_freqs, osc_accels_target, duration=None, osc_damping=0.05, event_kwds=None, window_len=None, peak_calculator=None, calc_kwds=None)[source]

Bases: CompatibleRvtMotion, Motion

RVT motion based on user specified acceleration response spectrum and duration.

class pystrata.motion.SourceTheoryRvtMotion(magnitude: float, distance: float, region: str | None = None, depth: float | None = 8, peak_calculator: str | Calculator | None = None, calc_kwds: dict | None = None, freqs: ndarray | None = None, disable_site_amp: bool = False, **kwargs)[source]

Bases: SourceTheoryMotion, Motion

RVT motion based on seismological point source model and earthquake scenario parameters.