SourceParametersEstimation/spectral_definitions.py

43 lines
1.0 KiB
Python

import numpy as np
# constants depending on source models
K_BRUNE = 0.37
K_MADARIAGA_P = 0.32
K_MADARIAGA_S = 0.21
# averages of radiation coefficients
G_P = 0.52
G_S = 0.63
def spectrum2moment(spectral_level, density, velocity, distance, g):
return spectral_level * 4.0 * np.pi * density * velocity ** 3 * distance / g
def damping(q_factor, frequencies, travel_time):
"""Exponential damping"""
return np.exp(np.pi * frequencies * travel_time / q_factor)
def mm(mo):
"""Calculate moment magnitude from the spectral level (Mo)
:return moment magnitude (float):
"""
return (np.log10(mo) - 9.1) / 1.5
def m0(mw):
"""Calculate the spectral level (Mo) from the moment magnitude (Mw)
:return spectral level (float):
"""
return 10 ** (mw * 1.5 + 9.1)
def calc_source_size(s_vel, corner_freq, k):
"""Calculate source radius"""
return k * s_vel / corner_freq
def calc_stress_drop(seismic_moment, source_radius):
"""Calculate stress drop"""
return 7 / 16 * seismic_moment / source_radius ** 3