Source code for sfsimodels.models.hazards
import math
from sfsimodels.models.abstract_models import PhysicalObject
[docs]class SeismicHazard(PhysicalObject):
"""
An object to describe seismic hazard.
"""
z_factor = 0.0
r_factor = 1.0
n_factor = 1.0
magnitude = 0.0
corner_period = -1.0
corner_acc_factor = 0.0
site_class = None
type = "seismic_hazard"
inputs = [
"z_factor",
"r_factor",
"n_factor",
"magnitude",
"site_class",
"corner_period",
"corner_acc_factor"
]
# Calculated values
outputs = [
"pga",
"corner_acc",
"corner_disp",
]
@property
def ancestor_types(self):
return super(SeismicHazard, self).ancestor_types + [self.type]
@property
def pga(self):
return self.z_factor * self.r_factor * self.n_factor
@property
def corner_acc(self):
return self.corner_acc_factor * self.z_factor * self.r_factor * self.n_factor * 9.8
@property
def corner_disp(self):
return self.corner_acc / (2 * math.pi / self.corner_period) ** 2
[docs]def msf(magnitude):
"""
Magnitude scaling factor
:param magnitude: Earthquake moment magnitude
:return: float
"""
magnitude_sf = 10. ** 2.24 / magnitude ** 2.56
return magnitude_sf
# def define_hazard_by_code(self, z_factor, r_factor, n_factor, site_class="C", code="NZS"):
# pass