Python package for computing acceleration response spectra.
Project description
Welcome to response_spectrum
response_spectrum computes a psuedo-acceleration response spectrum from an input ground motion or set of ground motions sampled at a constant frequency. Calculates are performed in the frequency domain by
- taking the Fourier transform of the input motion(s)
- multiplying by the transfer function for computing the motion of a single-degree-of-freedom (SDOF) oscillator with natural period T and damping D
- computing the peak acceleration amplitude for the SDOF oscillator
- repeating steps 2 and 3 for a range of user-specified periods
Installation
pip install ucla_geotech_tools.response_spectrum
Command
get_response_spectrum(**kwargs)
get_ngawest2_T()
Input parameters.
motion(s) = an M x N list or python array containing acceleration data, where M is the number of motions and N is the number of data points in each motion. All motions must have the same number of data points. (required)
dt = time step (required)
D = damping (optional, default = 0.05)
T = array of natural periods (optional, default = array used for NGAwest2 project:
T = [0.01, 0.02, 0.022, 0.025, 0.029, 0.030, 0.035, 0.036, 0.040, 0.042, 0.044, 0.045, 0.046, 0.048, 0.050, 0.055, 0.060, 0.065, 0.067, 0.070, 0.075, 0.080, 0.085, 0.090, 0.095, 0.100, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.22, 0.24, 0.25, 0.26, 0.28, 0.29, 0.30, 0.32, 0.34, 0.35, 0.36, 0.38, 0.40, 0.42, 0.44, 0.45, 0.46, 0.48, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.5, 2.6, 2.8, 3.0, 3.2, 3.4, 3.5, 3.6, 3.8, 4.0, 4.4, 4.6, 4.8, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 20.0])
zeropad = 1: apply zero padding to speed up FFT operation, 0: do not pad with zeros (optional, default = 1)
verbose = 1: print output message when default values are being used, 0: suppress output messages (optional, default = 1)
Example
Python script
import numpy as np
import ucla_geotech_tools.response_spectrum as ars
import matplotlib.pyplot as plt
N = 4000 # Number of time steps
M = 3 # Number of motions
dt = 0.005 # Time step in seconds
D = 0.05 # Damping
freq = [1.0, 3.0, 5.0] # Frequencies for three different harmonic motions
motions = np.empty([M,N],dtype="float64")
for i in range(M):
for j in range(N):
motions[i][j] = np.sin(2*np.pi*freq[i]*j*dt)
# Get spectral periods used in NGAWest2 project
T = ars.get_ngawest2_T()
# Get Python array containing pseudo-spectral acceleration values
Sa = ars.get_response_spectrum(motions=motions, dt=dt, D=D, zeropad=0, verbose=0)
for i in range(M):
plt.loglog(T,Sa[i])
plt.xlabel('Natural Period (s)')
plt.ylabel('Spectral Acceleration (g)')
Output
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ucla_geotech_tools-response_spectrum-1.0.5.tar.gz.
File metadata
- Download URL: ucla_geotech_tools-response_spectrum-1.0.5.tar.gz
- Upload date:
- Size: 135.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f99ec5b3d5764b84905a8718bfdc8631da470a4c2dd3d7c9021367153306cd6
|
|
| MD5 |
fe027bbd4924edc9b9cbf4e63c86823e
|
|
| BLAKE2b-256 |
0152c1dafb81d9da4f4db4b1b3cf3436323742714a91be4bd3943b1074b1b79f
|
File details
Details for the file ucla_geotech_tools_response_spectrum-1.0.5-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: ucla_geotech_tools_response_spectrum-1.0.5-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 94.0 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c5a1f50f2b79201bfbe98f43ec44e3a450d5930ade217808eeb7e861de0fefb
|
|
| MD5 |
6fe2762b76d5bfc71a04b113ccaecc27
|
|
| BLAKE2b-256 |
38cc5f648f1865425c3a142f59da3068ef524a3343ffe14e1e994035e4ca98cb
|