Source code for shakelib.conversions.imt.newmark_hall_1982
import copy
import numpy as np
[docs]class NewmarkHall1982(object):
"""
Class for conversion between PGA and PSA10 by Newmark and Hall (1982).
- PSA10 stands for spectral acceleration with oscillator period of 1.0 sec
- PGV is peak ground velocity.
The conversion factor is 37.27*2.54.
Note that 2.54 is the conversion factor to convert from cm/s to in/s and
37.27 is derived from SA(f) = 1.65*(2*pi*V*f)/386.09, where:
- SA(f) is spectral acceleration at frequency f (in g)
- f is the frequency of interest
- V is the velocity
- 1.65 is the N&H amplification factor for velocity at 5% damping
- 386.09 is the acceleration of gravity in inches per second per g
The sigma factor was computed from an average sigma value determined
by plotting PGV/PSA10 versus Distance for earthquakes with magnitudes
greater than or equal to 5.0.
To do
- Inherit from ConvertIMT class.
References:
Newmark, N. M., & Hall, W. J. (1982). Earthquake spectra and design.
Earthquake Engineering Research Institute, El Cerrito, California.
"""
__lnfact = np.log(37.27 * 2.54)
__lnsigma = 0.5146578
[docs] @staticmethod
def psa102pgv(psa10, sigma):
"""
Convert PSA10 (spectral acceleration with oscillator period of 1.0 sec)
to PGV.
**Important:** PSA10 and sigma must be logarithmic units.
:param psa10:
Numpy array or float of PSA10 values; units must be natural log
of g.
:param sigma:
Numpy array or float of standard deviation of PGV from a GMPE;
units must be natural log.
:returns:
Two arrays
- Array of PGV iwth natural log of cm/s units.
- Array of its standard deviation with natural log units.
"""
pgv = psa10 + NewmarkHall1982.__lnfact
sigmaTot = np.sqrt((sigma ** 2) +
(NewmarkHall1982.__lnsigma ** 2))
return pgv, sigmaTot
[docs] @staticmethod
def getConversionFactor():
"""
:returns:
The Newmark and Hall (1982) multiplicative conversion factor for
convering Sa(1.0) to PGV (cm/s).
"""
return np.exp(NewmarkHall1982.__lnfact)
[docs] @staticmethod
def getLnSigma():
"""
:returns:
The the estimate of the logarithmic standard deviation of the PGV
predicted by Newmark and Hall (1982).
"""
return copy.copy(NewmarkHall1982.__lnsigma)