Source code for openquake.hazardlib.const
# The Hazard Library
# Copyright (C) 2012-2016 GEM Foundation
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
Module :mod:`openquake.hazardlib.const` defines various constants.
"""
[docs]class ConstantContainer(object):
"""
Class that doesn't support instantiation.
>>> ConstantContainer()
Traceback (most recent call last):
...
AssertionError: do not create objects ConstantContainer, \
use class properties instead
"""
def __init__(self):
raise AssertionError('do not create objects %s, '
'use class properties instead'
% type(self).__name__)
[docs]class TRT(ConstantContainer):
"""
Container for constants that define some of the common Tectonic Region
Types.
"""
# Constant values correspond to the NRML schema definition.
ACTIVE_SHALLOW_CRUST = 'Active Shallow Crust'
STABLE_CONTINENTAL = 'Stable Shallow Crust'
SUBDUCTION_INTERFACE = 'Subduction Interface'
SUBDUCTION_INTRASLAB = 'Subduction IntraSlab'
VOLCANIC = 'Volcanic'
GEOTHERMAL = 'Geothermal'
INDUCED = 'Induced'
[docs]class IMC(ConstantContainer):
"""
The intensity measure component is the component of interest
of ground shaking for an
:mod:`intensity measure <openquake.hazardlib.imt>`.
"""
#: The horizontal component.
HORIZONTAL = 'Horizontal'
#: The median horizontal component.
MEDIAN_HORIZONTAL = 'Median horizontal'
#: Usually defined as the geometric average of the maximum
#: of the two horizontal components (which may not occur
#: at the same time).
AVERAGE_HORIZONTAL = 'Average horizontal'
#: An orientation-independent alternative to :attr:`AVERAGE_HORIZONTAL`.
#: Defined at Boore et al. (2006, Bull. Seism. Soc. Am. 96, 1502-1511)
#: and is used for all the NGA GMPEs.
GMRotI50 = 'Average Horizontal (GMRotI50)'
#: The geometric mean of the records rotated into the most adverse
#: direction for the structure.
GMRotD100 = "Average Horizontal (GMRotD100)"
#: An orientation-independent alternative to :attr:`AVERAGE_HORIZONTAL`.
#: Defined at Boore et al. (2006, Bull. Seism. Soc. Am. 96, 1502-1511)
#: and is used for all the NGA GMPEs.
RotD50 = 'Average Horizontal (RotD50)'
#: A randomly chosen horizontal component.
RANDOM_HORIZONTAL = 'Random horizontal'
#: The largest value obtained from two perpendicular horizontal
#: components.
GREATER_OF_TWO_HORIZONTAL = 'Greater of two horizontal'
#: The vertical component.
VERTICAL = 'Vertical'
#: "Vectorial addition: a_V = sqrt(max|a_1(t)|^2 + max|a_2(t)|^2)).
#: This means that the maximum ground amplitudes occur simultaneously on
#: the two horizontal components; this is a conservative assumption."
#: p. 53 of Douglas (2003, Earth-Sci. Rev. 61, 43-104)
VECTORIAL = 'Square root of sum of squares of peak horizontals'
#: "the peak square root of the sum of squares of two orthogonal
#: horizontal components in the time domain"
#: p. 880 of Kanno et al. (2006, Bull. Seism. Soc. Am. 96, 879-897)
PEAK_SRSS_HORIZONTAL = 'Peak square root of sum of squares of horizontals'
[docs]class StdDev(ConstantContainer):
"""
GSIM standard deviation represents ground shaking variability at a site.
"""
#: Standard deviation representing ground shaking variability
#: within different events.
INTER_EVENT = 'Inter event'
#: Standard deviation representing ground shaking variability
#: within a single event.
INTRA_EVENT = 'Intra event'
#: Total standard deviation, defined as the square root of the sum
#: of inter- and intra-event squared standard deviations, represents
#: the total ground shaking variability, and is the only one that
#: is used for calculating a probability of intensity exceedance
#: (see
#: :meth:`openquake.hazardlib.gsim.base.GroundShakingIntensityModel.get_poes`).
TOTAL = 'Total'