3.12. Orientation-Independent Spectral Acceleration (RotDxx)

imcalculator.get_rotdxx(acc2, percentile=50, periods=np.linspace(1e-5, 4.0, 500), damping_ratio=0.05)[source]

Computes the RotDxx orientation-independent spectral acceleration from two horizontal ground-motion components.

RotDxx is the xx-th percentile of the single-component spectral acceleration computed over 180 equally spaced rotation angles (0° to 179°). The rotated acceleration at angle θ is:

a_rot(t, θ) = a₁(t) · cos θ + a₂(t) · sin θ

where a₁ and a₂ are the two orthogonal horizontal components. Because the system is linear, the displacement response to a_rot is:

u(t, θ) = cos θ · u₁(t) + sin θ · u₂(t)

where u₁ and u₂ are the SDOF displacement responses to a₁ and a₂ respectively. This allows the Newmark-β integration to be performed only twice (once per component) rather than 180 times.

Parameters:
  • acc2 (array_like) – Second horizontal acceleration component. Must be the same length as self.acc and supplied in the same unit as the first component (the unit used when constructing the imcalculator instance).

  • percentile (float, optional) – Percentile in [0, 100] across rotation angles used to define RotDxx. Use 50 for RotD50 (median) or 100 for RotD100 (maximum). Default is 50.

  • periods (numpy.ndarray, optional) – Array of periods at which to compute RotDxx (s). Default is 500 points linearly spaced from 1e-5 to 4.0 s.

  • damping_ratio (float, optional) – Damping ratio for the SDOF oscillator. Default is 0.05 (5%).

Returns:

  • periods (numpy.ndarray) – Periods of the RotDxx spectrum (s).

  • rotdxx (numpy.ndarray) – RotDxx spectral acceleration (g) at each period.

Notes

Common choices are RotD50 (percentile=50), which is used as the reference IM in ASCE 7-22 ground-motion selection, and RotD100 (percentile=100), the orientation-independent maximum.

When the second component is zero, RotD100 equals the single-component SA and RotD50 equals SA · √2/2 (the median of abs(cos θ) over 180 uniformly spaced angles).

References

Boore, D.M. (2010). “Orientation-independent, nongeometric- mean measures of seismic intensity from two horizontal components of motion.” Bulletin of the Seismological Society of America, 100(4), 1830–1835. DOI: 10.1785/0120090400.

Theoretical Background

RotDxx is an orientation-independent intensity measure that summarises the spectral acceleration from two orthogonal horizontal ground-motion components by taking the xx-th percentile across all non-redundant rotation angles (Boore, 2010). It removes the arbitrary choice of sensor orientation and is therefore preferred for ground-motion selection and record scaling.

Rotated acceleration

For a rotation angle \(\theta \in [0°, 179°]\), the single-component acceleration is:

\[a_\theta(t) = a_1(t)\cos\theta + a_2(t)\sin\theta\]

where \(a_1\) and \(a_2\) are the two orthogonal horizontal components.

Linear superposition of SDOF responses

Because the SDOF oscillator is linear, the displacement response to the rotated excitation is:

\[u(t,\theta) = \cos\theta\; u_1(t) + \sin\theta\; u_2(t)\]

where \(u_1(t)\) and \(u_2(t)\) are the Newmark-\(\beta\) displacement histories for \(a_1\) and \(a_2\) respectively. This means only two Newmark integrations are required (one per component), regardless of the number of rotation angles.

Spectral acceleration at angle \(\theta\)

The pseudo-spectral acceleration at period \(T\) for rotation angle \(\theta\) is:

\[SA(T,\theta) = \omega^2\,\max_t\bigl|u(t,\theta)\bigr|\Big/g\]

where \(\omega = 2\pi/T\).

RotDxx definition

RotDxx is the xx-th percentile of \(SA(T, \theta)\) over all 180 rotation angles:

\[\text{RotD}xx(T) = \text{percentile}_{xx}\bigl\{SA(T,\theta) : \theta \in \{0°, 1°, \ldots, 179°\}\bigr\}\]

Common choices are RotD50 (median, used as reference IM in ASCE 7-22) and RotD100 (maximum, the largest possible single-component response).