# -*- coding: utf-8 -*-
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright (C) 2015-2018 GEM Foundation
#
# OpenQuake 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.
#
# OpenQuake 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 OpenQuake. If not, see <http://www.gnu.org/licenses/>.
import numpy as np
from scipy.special import erf
from openquake.hazardlib.gsim.base import CoeffsTable, add_alias
from openquake.hazardlib.gsim.abrahamson_2015 import (
AbrahamsonEtAl2015SInter, AbrahamsonEtAl2015SInterLow,
AbrahamsonEtAl2015SInterHigh, AbrahamsonEtAl2015SSlab,
AbrahamsonEtAl2015SSlabLow, AbrahamsonEtAl2015SSlabHigh)
[docs]class FABATaperStep(object):
"""
General class for a tapering function, in this case
a step function such that the backarc scaling term takes 0 for
forearc sites (negative backarc distance), and 1 for backarc sites
(positive backarc distance)
"""
def __call__(self, x):
"""
:param numpy.ndarray x:
Independent variable.
Returns
-------
:param numpy.ndarray y:
Backarc scaling term
"""
y = np.zeros(x.shape)
y[x > 0.0] = 1.
return y
[docs]class FABATaperSFunc(FABATaperStep):
"""
Implements tapering of x according to a S-function
(Named such because of its S-like shape.)
:param float a:
'ceiling', where the function begins falling from 1.
:param float b:
'floor', where the function reaches zero.
"""
def __init__(self, a=0., b=0.):
self.a = a
self.b = b
# a must be less than or equal to b
assert self.a <= self.b
def __call__(self, x):
"""
Returns
-------
:param numpy.ndarray y:
Backarc scaling term
"""
y = np.ones(x.shape)
idx = x <= self.a
y[idx] = 0
idx = np.logical_and(self.a <= x, x <= (self.a + self.b) / 2.)
y[idx] = 2. * ((x[idx] - self.a) / (self.b - self.a)) ** 2.
idx = np.logical_and((self.a + self.b) / 2. <= x, x <= self.b)
y[idx] = 1 - 2. * ((x[idx] - self.b) / (self.b - self.a)) ** 2.
return y
[docs]class FABATaperLinear(FABATaperStep):
"""
Implements a tapering of x according to a linear function
with a fixed distance and a midpoint (y = 0.5) at x = 0
:param float width:
Distance (km) across which x tapers to 0
"""
def __init__(self, width=1.0):
self.width = width
# width must be greater than 0
assert self.width > 0.0
def __call__(self, x):
"""
Returns
-------
:param numpy.ndarray y:
Backarc scaling term
"""
upper = self.width / 2.
lower = -self.width / 2.
y = (x - lower) / (upper - lower)
y[x > upper] = 1.
y[x < lower] = 0.
return y
[docs]class FABATaperSigmoid(FABATaperStep):
"""
Implements tapering of x according to a sigmoid function
(Note that this only tends to 1, 0 it does not reach it)
:param float c: Bandwidth in km of the sigmoid function
"""
def __init__(self, c=1.0):
self.c = c
# sigmoid function bandwidth must be greater than zero
assert self.c > 0.
def __call__(self, x):
"""
Returns
-------
:param numpy.ndarray y:
Backarc scaling term
"""
return 1. / (1. + np.exp(-(1. / self.c) * x))
# Get Gaussian cdf of a standard normal distribution
[docs]def phix(x):
return 0.5 * (1.0 + erf(x / np.sqrt(2.)))
[docs]class FABATaperGaussian(FABATaperStep):
"""
Implements tapering of x according to a truncated Gaussian function
:param float sigma:
Bandwidth of function (according to a Gaussian standard deviation)
:param float a:
Initiation point of tapering (km)
:param float b:
Termination point of tapering (km)
"""
def __init__(self, a=-np.inf, b=np.inf, sigma=1.0):
self.sigma = sigma
# Gaussian sigma must be positive non-zero and upper bound must be
# greater than or equal to the lower bound
assert self.sigma > 0
assert b >= a
self.phi_a = phix(a / self.sigma)
self.phi_diff = phix(b / self.sigma) - self.phi_a
def __call__(self, x):
"""
Returns
-------
:param numpy.ndarray y:
Backarc scaling term
"""
y = (phix(x / self.sigma) - self.phi_a) / self.phi_diff
y[y < 0.] = 0.
y[y > 1.] = 1.
return y
AbrahamsonEtAl2015SInter.FABA_ALL_MODELS = {
"Step": FABATaperStep,
"Linear": FABATaperLinear,
"SFunc": FABATaperSFunc,
"Sigmoid": FABATaperSigmoid,
"Gaussian": FABATaperGaussian,
}
[docs]class BCHydroESHM20SInter(AbrahamsonEtAl2015SInter):
"""
ESHM20 adjustment of the BC Hydro GMPE for subduction interface events with
theta6 calibrated to Mediterranean data.
Introduces several configurable parameters:
:param float theta6_adjustment:
The amount to increase or decrease the theta6 - should be +0.0015 (for
slower attenuation) and -0.0015 (for faster attenuation)
:param float sigma_mu_epsilon:
The number of standard deviations above or below the mean to apply the
statistical uncertainty sigma_mu term.
:param faba_model:
Choice of model for the forearc/backarc tapering function, choice of
{"Step", "Linear", "SFunc", "Sigmoid", "Gaussian"}
Depending on the choice of taper model, additional parameters may be passed
"""
# Requires Vs30 and distance to the volcanic front
REQUIRES_SITES_PARAMETERS = {'vs30', 'xvf'}
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt vlin b theta1 theta2 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma sigma_ss
pga 865.1000 -1.1860 4.2203 -1.3500 -0.00721467 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0200 865.1000 -1.1860 4.2203 -1.3500 -0.00719296 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0500 1053.5000 -1.3460 4.5371 -1.4000 -0.00712619 1.2536 -1.6500 3.3700 0.0130 1.2880 -0.0138 -0.4000 1.1030 -1.1800 0.6000 0.4300 0.7400 0.6000
0.0750 1085.7000 -1.4710 5.0733 -1.4500 -0.00701600 1.4175 -1.8000 3.3700 0.0130 1.4830 -0.0142 -0.4000 1.2732 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1000 1032.5000 -1.6240 5.2892 -1.4500 -0.00687258 1.3997 -1.8000 3.3300 0.0130 1.6130 -0.0145 -0.4000 1.3042 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1500 877.6000 -1.9310 5.4563 -1.4500 -0.00671633 1.3582 -1.6900 3.2500 0.0130 1.8820 -0.0153 -0.4000 1.2600 -1.3000 0.6000 0.4300 0.7400 0.6000
0.2000 748.2000 -2.1880 5.2684 -1.4000 -0.00657867 1.1648 -1.4900 3.0300 0.0129 2.0760 -0.0162 -0.3500 1.2230 -1.2500 0.6000 0.4300 0.7400 0.6000
0.2500 654.3000 -2.3810 5.0594 -1.3500 -0.00648602 0.9940 -1.3000 2.8000 0.0129 2.2480 -0.0172 -0.3100 1.1600 -1.1700 0.6000 0.4300 0.7400 0.6000
0.3000 587.1000 -2.5180 4.7945 -1.2800 -0.00643709 0.8821 -1.1800 2.5900 0.0128 2.3480 -0.0183 -0.2800 1.0500 -1.0600 0.6000 0.4300 0.7400 0.6000
0.4000 503.0000 -2.6570 4.4644 -1.1800 -0.00639138 0.7046 -0.9800 2.2000 0.0127 2.4270 -0.0206 -0.2300 0.8000 -0.7800 0.6000 0.4300 0.7400 0.6000
0.5000 456.6000 -2.6690 4.0181 -1.0800 -0.00629147 0.5799 -0.8200 1.9200 0.0125 2.3990 -0.0231 -0.1900 0.6620 -0.6200 0.6000 0.4300 0.7400 0.6000
0.6000 430.3000 -2.5990 3.6055 -0.9900 -0.00609857 0.5021 -0.7000 1.7000 0.0124 2.2730 -0.0256 -0.1600 0.5800 -0.5000 0.6000 0.4300 0.7400 0.6000
0.7500 410.5000 -2.4010 3.2174 -0.9100 -0.00581454 0.3687 -0.5400 1.4200 0.0120 1.9930 -0.0296 -0.1200 0.4800 -0.3400 0.6000 0.4300 0.7400 0.6000
1.0000 400.0000 -1.9550 2.7981 -0.8500 -0.00548905 0.1746 -0.3400 1.1000 0.0114 1.4700 -0.0363 -0.0700 0.3300 -0.1400 0.6000 0.4300 0.7400 0.6000
1.5000 400.0000 -1.0250 2.0123 -0.7700 -0.00520499 -0.0820 -0.0500 0.7000 0.0100 0.4080 -0.0493 0.0000 0.3100 0.0000 0.6000 0.4300 0.7400 0.6000
2.0000 400.0000 -0.2990 1.4128 -0.7100 -0.00505022 -0.2821 0.1200 0.7000 0.0085 -0.4010 -0.0610 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
2.5000 400.0000 0.0000 0.9976 -0.6700 -0.00507967 -0.4108 0.2500 0.7000 0.0069 -0.7230 -0.0711 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
3.0000 400.0000 0.0000 0.6443 -0.6400 -0.00529221 -0.4466 0.3000 0.7000 0.0054 -0.6730 -0.0798 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
4.0000 400.0000 0.0000 0.0657 -0.5800 -0.00564790 -0.4344 0.3000 0.7000 0.0027 -0.6270 -0.0935 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
5.0000 400.0000 0.0000 -0.4624 -0.5400 -0.00607621 -0.4368 0.3000 0.7000 0.0005 -0.5960 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
6.0000 400.0000 0.0000 -0.9809 -0.5000 -0.00647922 -0.4586 0.3000 0.7000 -0.0013 -0.5660 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
7.5000 400.0000 0.0000 -1.6017 -0.4600 -0.00676355 -0.4433 0.3000 0.7000 -0.0033 -0.5280 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
10.0000 400.0000 0.0000 -2.2937 -0.4000 -0.00686566 -0.4828 0.3000 0.7000 -0.0060 -0.5040 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
""")
[docs]class BCHydroESHM20SInterLow(AbrahamsonEtAl2015SInterLow):
"""
ESHM20 Adjustment of the BC Hydro GMPE for subduction interface events
with theta6 calibrated to Mediterranean data, for the low magnitude
scaling branch.
"""
# Requires Vs30 and distance to the volcanic front
REQUIRES_SITES_PARAMETERS = {'vs30', 'xvf'}
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt vlin b theta1 theta2 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma sigma_ss
pga 865.1000 -1.1860 4.2203 -1.3500 -0.00721467 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0200 865.1000 -1.1860 4.2203 -1.3500 -0.00719296 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0500 1053.5000 -1.3460 4.5371 -1.4000 -0.00712619 1.2536 -1.6500 3.3700 0.0130 1.2880 -0.0138 -0.4000 1.1030 -1.1800 0.6000 0.4300 0.7400 0.6000
0.0750 1085.7000 -1.4710 5.0733 -1.4500 -0.00701600 1.4175 -1.8000 3.3700 0.0130 1.4830 -0.0142 -0.4000 1.2732 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1000 1032.5000 -1.6240 5.2892 -1.4500 -0.00687258 1.3997 -1.8000 3.3300 0.0130 1.6130 -0.0145 -0.4000 1.3042 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1500 877.6000 -1.9310 5.4563 -1.4500 -0.00671633 1.3582 -1.6900 3.2500 0.0130 1.8820 -0.0153 -0.4000 1.2600 -1.3000 0.6000 0.4300 0.7400 0.6000
0.2000 748.2000 -2.1880 5.2684 -1.4000 -0.00657867 1.1648 -1.4900 3.0300 0.0129 2.0760 -0.0162 -0.3500 1.2230 -1.2500 0.6000 0.4300 0.7400 0.6000
0.2500 654.3000 -2.3810 5.0594 -1.3500 -0.00648602 0.9940 -1.3000 2.8000 0.0129 2.2480 -0.0172 -0.3100 1.1600 -1.1700 0.6000 0.4300 0.7400 0.6000
0.3000 587.1000 -2.5180 4.7945 -1.2800 -0.00643709 0.8821 -1.1800 2.5900 0.0128 2.3480 -0.0183 -0.2800 1.0500 -1.0600 0.6000 0.4300 0.7400 0.6000
0.4000 503.0000 -2.6570 4.4644 -1.1800 -0.00639138 0.7046 -0.9800 2.2000 0.0127 2.4270 -0.0206 -0.2300 0.8000 -0.7800 0.6000 0.4300 0.7400 0.6000
0.5000 456.6000 -2.6690 4.0181 -1.0800 -0.00629147 0.5799 -0.8200 1.9200 0.0125 2.3990 -0.0231 -0.1900 0.6620 -0.6200 0.6000 0.4300 0.7400 0.6000
0.6000 430.3000 -2.5990 3.6055 -0.9900 -0.00609857 0.5021 -0.7000 1.7000 0.0124 2.2730 -0.0256 -0.1600 0.5800 -0.5000 0.6000 0.4300 0.7400 0.6000
0.7500 410.5000 -2.4010 3.2174 -0.9100 -0.00581454 0.3687 -0.5400 1.4200 0.0120 1.9930 -0.0296 -0.1200 0.4800 -0.3400 0.6000 0.4300 0.7400 0.6000
1.0000 400.0000 -1.9550 2.7981 -0.8500 -0.00548905 0.1746 -0.3400 1.1000 0.0114 1.4700 -0.0363 -0.0700 0.3300 -0.1400 0.6000 0.4300 0.7400 0.6000
1.5000 400.0000 -1.0250 2.0123 -0.7700 -0.00520499 -0.0820 -0.0500 0.7000 0.0100 0.4080 -0.0493 0.0000 0.3100 0.0000 0.6000 0.4300 0.7400 0.6000
2.0000 400.0000 -0.2990 1.4128 -0.7100 -0.00505022 -0.2821 0.1200 0.7000 0.0085 -0.4010 -0.0610 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
2.5000 400.0000 0.0000 0.9976 -0.6700 -0.00507967 -0.4108 0.2500 0.7000 0.0069 -0.7230 -0.0711 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
3.0000 400.0000 0.0000 0.6443 -0.6400 -0.00529221 -0.4466 0.3000 0.7000 0.0054 -0.6730 -0.0798 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
4.0000 400.0000 0.0000 0.0657 -0.5800 -0.00564790 -0.4344 0.3000 0.7000 0.0027 -0.6270 -0.0935 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
5.0000 400.0000 0.0000 -0.4624 -0.5400 -0.00607621 -0.4368 0.3000 0.7000 0.0005 -0.5960 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
6.0000 400.0000 0.0000 -0.9809 -0.5000 -0.00647922 -0.4586 0.3000 0.7000 -0.0013 -0.5660 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
7.5000 400.0000 0.0000 -1.6017 -0.4600 -0.00676355 -0.4433 0.3000 0.7000 -0.0033 -0.5280 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
10.0000 400.0000 0.0000 -2.2937 -0.4000 -0.00686566 -0.4828 0.3000 0.7000 -0.0060 -0.5040 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
""")
[docs]class BCHydroESHM20SInterHigh(AbrahamsonEtAl2015SInterHigh):
"""
ESHM20 adjustment of the BC Hydro GMPE for subduction interface events
with theta6 calibrated to Mediterranean data, for the high
magnitude scaling branch.
"""
# Requires Vs30 and distance to the volcanic front
REQUIRES_SITES_PARAMETERS = {'vs30', 'xvf'}
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt vlin b theta1 theta2 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma sigma_ss
pga 865.1000 -1.1860 4.2203 -1.3500 -0.00721467 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0200 865.1000 -1.1860 4.2203 -1.3500 -0.00719296 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0500 1053.5000 -1.3460 4.5371 -1.4000 -0.00712619 1.2536 -1.6500 3.3700 0.0130 1.2880 -0.0138 -0.4000 1.1030 -1.1800 0.6000 0.4300 0.7400 0.6000
0.0750 1085.7000 -1.4710 5.0733 -1.4500 -0.00701600 1.4175 -1.8000 3.3700 0.0130 1.4830 -0.0142 -0.4000 1.2732 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1000 1032.5000 -1.6240 5.2892 -1.4500 -0.00687258 1.3997 -1.8000 3.3300 0.0130 1.6130 -0.0145 -0.4000 1.3042 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1500 877.6000 -1.9310 5.4563 -1.4500 -0.00671633 1.3582 -1.6900 3.2500 0.0130 1.8820 -0.0153 -0.4000 1.2600 -1.3000 0.6000 0.4300 0.7400 0.6000
0.2000 748.2000 -2.1880 5.2684 -1.4000 -0.00657867 1.1648 -1.4900 3.0300 0.0129 2.0760 -0.0162 -0.3500 1.2230 -1.2500 0.6000 0.4300 0.7400 0.6000
0.2500 654.3000 -2.3810 5.0594 -1.3500 -0.00648602 0.9940 -1.3000 2.8000 0.0129 2.2480 -0.0172 -0.3100 1.1600 -1.1700 0.6000 0.4300 0.7400 0.6000
0.3000 587.1000 -2.5180 4.7945 -1.2800 -0.00643709 0.8821 -1.1800 2.5900 0.0128 2.3480 -0.0183 -0.2800 1.0500 -1.0600 0.6000 0.4300 0.7400 0.6000
0.4000 503.0000 -2.6570 4.4644 -1.1800 -0.00639138 0.7046 -0.9800 2.2000 0.0127 2.4270 -0.0206 -0.2300 0.8000 -0.7800 0.6000 0.4300 0.7400 0.6000
0.5000 456.6000 -2.6690 4.0181 -1.0800 -0.00629147 0.5799 -0.8200 1.9200 0.0125 2.3990 -0.0231 -0.1900 0.6620 -0.6200 0.6000 0.4300 0.7400 0.6000
0.6000 430.3000 -2.5990 3.6055 -0.9900 -0.00609857 0.5021 -0.7000 1.7000 0.0124 2.2730 -0.0256 -0.1600 0.5800 -0.5000 0.6000 0.4300 0.7400 0.6000
0.7500 410.5000 -2.4010 3.2174 -0.9100 -0.00581454 0.3687 -0.5400 1.4200 0.0120 1.9930 -0.0296 -0.1200 0.4800 -0.3400 0.6000 0.4300 0.7400 0.6000
1.0000 400.0000 -1.9550 2.7981 -0.8500 -0.00548905 0.1746 -0.3400 1.1000 0.0114 1.4700 -0.0363 -0.0700 0.3300 -0.1400 0.6000 0.4300 0.7400 0.6000
1.5000 400.0000 -1.0250 2.0123 -0.7700 -0.00520499 -0.0820 -0.0500 0.7000 0.0100 0.4080 -0.0493 0.0000 0.3100 0.0000 0.6000 0.4300 0.7400 0.6000
2.0000 400.0000 -0.2990 1.4128 -0.7100 -0.00505022 -0.2821 0.1200 0.7000 0.0085 -0.4010 -0.0610 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
2.5000 400.0000 0.0000 0.9976 -0.6700 -0.00507967 -0.4108 0.2500 0.7000 0.0069 -0.7230 -0.0711 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
3.0000 400.0000 0.0000 0.6443 -0.6400 -0.00529221 -0.4466 0.3000 0.7000 0.0054 -0.6730 -0.0798 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
4.0000 400.0000 0.0000 0.0657 -0.5800 -0.00564790 -0.4344 0.3000 0.7000 0.0027 -0.6270 -0.0935 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
5.0000 400.0000 0.0000 -0.4624 -0.5400 -0.00607621 -0.4368 0.3000 0.7000 0.0005 -0.5960 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
6.0000 400.0000 0.0000 -0.9809 -0.5000 -0.00647922 -0.4586 0.3000 0.7000 -0.0013 -0.5660 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
7.5000 400.0000 0.0000 -1.6017 -0.4600 -0.00676355 -0.4433 0.3000 0.7000 -0.0033 -0.5280 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
10.0000 400.0000 0.0000 -2.2937 -0.4000 -0.00686566 -0.4828 0.3000 0.7000 -0.0060 -0.5040 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
""")
[docs]class BCHydroESHM20SSlab(AbrahamsonEtAl2015SSlab):
"""
ESHM20 adjustment of the BC Hydro GMPE for subduction in-slab events with
theta6 calibrated to Mediterranean data.
Introduces two configurable parameters:
a6_adjustment - the amount to increase or decrease the theta6 (should be
+0.0015 (for slower attenuation) and -0.0015 (for faster attenuation)
sigma_mu_epsilon - number of standard deviations above or below the mean
to apply the statistical uncertainty sigma_mu term.
"""
# Requires Vs30 and distance to the volcanic front
REQUIRES_SITES_PARAMETERS = {'vs30', 'xvf'}
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt vlin b theta1 theta2 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma sigma_ss
pga 865.1000 -1.1860 4.2203 -1.3500 -0.00278801 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0200 865.1000 -1.1860 4.2203 -1.3500 -0.00275821 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0500 1053.5000 -1.3460 4.5371 -1.4000 -0.00268517 1.2536 -1.6500 3.3700 0.0130 1.2880 -0.0138 -0.4000 1.1030 -1.1800 0.6000 0.4300 0.7400 0.6000
0.0750 1085.7000 -1.4710 5.0733 -1.4500 -0.00261360 1.4175 -1.8000 3.3700 0.0130 1.4830 -0.0142 -0.4000 1.2732 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1000 1032.5000 -1.6240 5.2892 -1.4500 -0.00259240 1.3997 -1.8000 3.3300 0.0130 1.6130 -0.0145 -0.4000 1.3042 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1500 877.6000 -1.9310 5.4563 -1.4500 -0.00264688 1.3582 -1.6900 3.2500 0.0130 1.8820 -0.0153 -0.4000 1.2600 -1.3000 0.6000 0.4300 0.7400 0.6000
0.2000 748.2000 -2.1880 5.2684 -1.4000 -0.00277703 1.1648 -1.4900 3.0300 0.0129 2.0760 -0.0162 -0.3500 1.2230 -1.2500 0.6000 0.4300 0.7400 0.6000
0.2500 654.3000 -2.3810 5.0594 -1.3500 -0.00296427 0.9940 -1.3000 2.8000 0.0129 2.2480 -0.0172 -0.3100 1.1600 -1.1700 0.6000 0.4300 0.7400 0.6000
0.3000 587.1000 -2.5180 4.7945 -1.2800 -0.00318216 0.8821 -1.1800 2.5900 0.0128 2.3480 -0.0183 -0.2800 1.0500 -1.0600 0.6000 0.4300 0.7400 0.6000
0.4000 503.0000 -2.6570 4.4644 -1.1800 -0.00340820 0.7046 -0.9800 2.2000 0.0127 2.4270 -0.0206 -0.2300 0.8000 -0.7800 0.6000 0.4300 0.7400 0.6000
0.5000 456.6000 -2.6690 4.0181 -1.0800 -0.00363798 0.5799 -0.8200 1.9200 0.0125 2.3990 -0.0231 -0.1900 0.6620 -0.6200 0.6000 0.4300 0.7400 0.6000
0.6000 430.3000 -2.5990 3.6055 -0.9900 -0.00388267 0.5021 -0.7000 1.7000 0.0124 2.2730 -0.0256 -0.1600 0.5800 -0.5000 0.6000 0.4300 0.7400 0.6000
0.7500 410.5000 -2.4010 3.2174 -0.9100 -0.00415403 0.3687 -0.5400 1.4200 0.0120 1.9930 -0.0296 -0.1200 0.4800 -0.3400 0.6000 0.4300 0.7400 0.6000
1.0000 400.0000 -1.9550 2.7981 -0.8500 -0.00445479 0.1746 -0.3400 1.1000 0.0114 1.4700 -0.0363 -0.0700 0.3300 -0.1400 0.6000 0.4300 0.7400 0.6000
1.5000 400.0000 -1.0250 2.0123 -0.7700 -0.00478084 -0.0820 -0.0500 0.7000 0.0100 0.4080 -0.0493 0.0000 0.3100 0.0000 0.6000 0.4300 0.7400 0.6000
2.0000 400.0000 -0.2990 1.4128 -0.7100 -0.00513159 -0.2821 0.1200 0.7000 0.0085 -0.4010 -0.0610 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
2.5000 400.0000 0.0000 0.9976 -0.6700 -0.00550694 -0.4108 0.2500 0.7000 0.0069 -0.7230 -0.0711 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
3.0000 400.0000 0.0000 0.6443 -0.6400 -0.00590809 -0.4466 0.3000 0.7000 0.0054 -0.6730 -0.0798 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
4.0000 400.0000 0.0000 0.0657 -0.5800 -0.00634283 -0.4344 0.3000 0.7000 0.0027 -0.6270 -0.0935 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
5.0000 400.0000 0.0000 -0.4624 -0.5400 -0.00680074 -0.4368 0.3000 0.7000 0.0005 -0.5960 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
6.0000 400.0000 0.0000 -0.9809 -0.5000 -0.00722208 -0.4586 0.3000 0.7000 -0.0013 -0.5660 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
7.5000 400.0000 0.0000 -1.6017 -0.4600 -0.00752097 -0.4433 0.3000 0.7000 -0.0033 -0.5280 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
10.0000 400.0000 0.0000 -2.2937 -0.4000 -0.00762908 -0.4828 0.3000 0.7000 -0.0060 -0.5040 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
""")
[docs]class BCHydroESHM20SSlabLow(AbrahamsonEtAl2015SSlabLow):
"""
ESHM20 adjustment of the BC Hydro GMPE for subduction in-slab events
with theta6 calibrated to Mediterranean data, for the low magnitude
scaling branch.
"""
# Requires Vs30 and distance to the volcanic front
REQUIRES_SITES_PARAMETERS = {'vs30', 'xvf'}
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt vlin b theta1 theta2 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma sigma_ss
pga 865.1000 -1.1860 4.2203 -1.3500 -0.00278801 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0200 865.1000 -1.1860 4.2203 -1.3500 -0.00275821 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0500 1053.5000 -1.3460 4.5371 -1.4000 -0.00268517 1.2536 -1.6500 3.3700 0.0130 1.2880 -0.0138 -0.4000 1.1030 -1.1800 0.6000 0.4300 0.7400 0.6000
0.0750 1085.7000 -1.4710 5.0733 -1.4500 -0.00261360 1.4175 -1.8000 3.3700 0.0130 1.4830 -0.0142 -0.4000 1.2732 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1000 1032.5000 -1.6240 5.2892 -1.4500 -0.00259240 1.3997 -1.8000 3.3300 0.0130 1.6130 -0.0145 -0.4000 1.3042 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1500 877.6000 -1.9310 5.4563 -1.4500 -0.00264688 1.3582 -1.6900 3.2500 0.0130 1.8820 -0.0153 -0.4000 1.2600 -1.3000 0.6000 0.4300 0.7400 0.6000
0.2000 748.2000 -2.1880 5.2684 -1.4000 -0.00277703 1.1648 -1.4900 3.0300 0.0129 2.0760 -0.0162 -0.3500 1.2230 -1.2500 0.6000 0.4300 0.7400 0.6000
0.2500 654.3000 -2.3810 5.0594 -1.3500 -0.00296427 0.9940 -1.3000 2.8000 0.0129 2.2480 -0.0172 -0.3100 1.1600 -1.1700 0.6000 0.4300 0.7400 0.6000
0.3000 587.1000 -2.5180 4.7945 -1.2800 -0.00318216 0.8821 -1.1800 2.5900 0.0128 2.3480 -0.0183 -0.2800 1.0500 -1.0600 0.6000 0.4300 0.7400 0.6000
0.4000 503.0000 -2.6570 4.4644 -1.1800 -0.00340820 0.7046 -0.9800 2.2000 0.0127 2.4270 -0.0206 -0.2300 0.8000 -0.7800 0.6000 0.4300 0.7400 0.6000
0.5000 456.6000 -2.6690 4.0181 -1.0800 -0.00363798 0.5799 -0.8200 1.9200 0.0125 2.3990 -0.0231 -0.1900 0.6620 -0.6200 0.6000 0.4300 0.7400 0.6000
0.6000 430.3000 -2.5990 3.6055 -0.9900 -0.00388267 0.5021 -0.7000 1.7000 0.0124 2.2730 -0.0256 -0.1600 0.5800 -0.5000 0.6000 0.4300 0.7400 0.6000
0.7500 410.5000 -2.4010 3.2174 -0.9100 -0.00415403 0.3687 -0.5400 1.4200 0.0120 1.9930 -0.0296 -0.1200 0.4800 -0.3400 0.6000 0.4300 0.7400 0.6000
1.0000 400.0000 -1.9550 2.7981 -0.8500 -0.00445479 0.1746 -0.3400 1.1000 0.0114 1.4700 -0.0363 -0.0700 0.3300 -0.1400 0.6000 0.4300 0.7400 0.6000
1.5000 400.0000 -1.0250 2.0123 -0.7700 -0.00478084 -0.0820 -0.0500 0.7000 0.0100 0.4080 -0.0493 0.0000 0.3100 0.0000 0.6000 0.4300 0.7400 0.6000
2.0000 400.0000 -0.2990 1.4128 -0.7100 -0.00513159 -0.2821 0.1200 0.7000 0.0085 -0.4010 -0.0610 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
2.5000 400.0000 0.0000 0.9976 -0.6700 -0.00550694 -0.4108 0.2500 0.7000 0.0069 -0.7230 -0.0711 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
3.0000 400.0000 0.0000 0.6443 -0.6400 -0.00590809 -0.4466 0.3000 0.7000 0.0054 -0.6730 -0.0798 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
4.0000 400.0000 0.0000 0.0657 -0.5800 -0.00634283 -0.4344 0.3000 0.7000 0.0027 -0.6270 -0.0935 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
5.0000 400.0000 0.0000 -0.4624 -0.5400 -0.00680074 -0.4368 0.3000 0.7000 0.0005 -0.5960 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
6.0000 400.0000 0.0000 -0.9809 -0.5000 -0.00722208 -0.4586 0.3000 0.7000 -0.0013 -0.5660 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
7.5000 400.0000 0.0000 -1.6017 -0.4600 -0.00752097 -0.4433 0.3000 0.7000 -0.0033 -0.5280 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
10.0000 400.0000 0.0000 -2.2937 -0.4000 -0.00762908 -0.4828 0.3000 0.7000 -0.0060 -0.5040 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
""")
[docs]class BCHydroESHM20SSlabHigh(AbrahamsonEtAl2015SSlabHigh):
"""
ESHM20 adjustment of the BC Hydro GMPE for subduction interface events
with theta6 calibrated to Mediterranean data, for the high magnitude
scaling branch.
"""
# Requires Vs30 and distance to the volcanic front
REQUIRES_SITES_PARAMETERS = {'vs30', 'xvf'}
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt vlin b theta1 theta2 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma sigma_ss
pga 865.1000 -1.1860 4.2203 -1.3500 -0.00278801 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0200 865.1000 -1.1860 4.2203 -1.3500 -0.00275821 1.0988 -1.4200 3.1200 0.0130 0.9800 -0.0135 -0.4000 0.9969 -1.0000 0.6000 0.4300 0.7400 0.6000
0.0500 1053.5000 -1.3460 4.5371 -1.4000 -0.00268517 1.2536 -1.6500 3.3700 0.0130 1.2880 -0.0138 -0.4000 1.1030 -1.1800 0.6000 0.4300 0.7400 0.6000
0.0750 1085.7000 -1.4710 5.0733 -1.4500 -0.00261360 1.4175 -1.8000 3.3700 0.0130 1.4830 -0.0142 -0.4000 1.2732 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1000 1032.5000 -1.6240 5.2892 -1.4500 -0.00259240 1.3997 -1.8000 3.3300 0.0130 1.6130 -0.0145 -0.4000 1.3042 -1.3600 0.6000 0.4300 0.7400 0.6000
0.1500 877.6000 -1.9310 5.4563 -1.4500 -0.00264688 1.3582 -1.6900 3.2500 0.0130 1.8820 -0.0153 -0.4000 1.2600 -1.3000 0.6000 0.4300 0.7400 0.6000
0.2000 748.2000 -2.1880 5.2684 -1.4000 -0.00277703 1.1648 -1.4900 3.0300 0.0129 2.0760 -0.0162 -0.3500 1.2230 -1.2500 0.6000 0.4300 0.7400 0.6000
0.2500 654.3000 -2.3810 5.0594 -1.3500 -0.00296427 0.9940 -1.3000 2.8000 0.0129 2.2480 -0.0172 -0.3100 1.1600 -1.1700 0.6000 0.4300 0.7400 0.6000
0.3000 587.1000 -2.5180 4.7945 -1.2800 -0.00318216 0.8821 -1.1800 2.5900 0.0128 2.3480 -0.0183 -0.2800 1.0500 -1.0600 0.6000 0.4300 0.7400 0.6000
0.4000 503.0000 -2.6570 4.4644 -1.1800 -0.00340820 0.7046 -0.9800 2.2000 0.0127 2.4270 -0.0206 -0.2300 0.8000 -0.7800 0.6000 0.4300 0.7400 0.6000
0.5000 456.6000 -2.6690 4.0181 -1.0800 -0.00363798 0.5799 -0.8200 1.9200 0.0125 2.3990 -0.0231 -0.1900 0.6620 -0.6200 0.6000 0.4300 0.7400 0.6000
0.6000 430.3000 -2.5990 3.6055 -0.9900 -0.00388267 0.5021 -0.7000 1.7000 0.0124 2.2730 -0.0256 -0.1600 0.5800 -0.5000 0.6000 0.4300 0.7400 0.6000
0.7500 410.5000 -2.4010 3.2174 -0.9100 -0.00415403 0.3687 -0.5400 1.4200 0.0120 1.9930 -0.0296 -0.1200 0.4800 -0.3400 0.6000 0.4300 0.7400 0.6000
1.0000 400.0000 -1.9550 2.7981 -0.8500 -0.00445479 0.1746 -0.3400 1.1000 0.0114 1.4700 -0.0363 -0.0700 0.3300 -0.1400 0.6000 0.4300 0.7400 0.6000
1.5000 400.0000 -1.0250 2.0123 -0.7700 -0.00478084 -0.0820 -0.0500 0.7000 0.0100 0.4080 -0.0493 0.0000 0.3100 0.0000 0.6000 0.4300 0.7400 0.6000
2.0000 400.0000 -0.2990 1.4128 -0.7100 -0.00513159 -0.2821 0.1200 0.7000 0.0085 -0.4010 -0.0610 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
2.5000 400.0000 0.0000 0.9976 -0.6700 -0.00550694 -0.4108 0.2500 0.7000 0.0069 -0.7230 -0.0711 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
3.0000 400.0000 0.0000 0.6443 -0.6400 -0.00590809 -0.4466 0.3000 0.7000 0.0054 -0.6730 -0.0798 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
4.0000 400.0000 0.0000 0.0657 -0.5800 -0.00634283 -0.4344 0.3000 0.7000 0.0027 -0.6270 -0.0935 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
5.0000 400.0000 0.0000 -0.4624 -0.5400 -0.00680074 -0.4368 0.3000 0.7000 0.0005 -0.5960 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
6.0000 400.0000 0.0000 -0.9809 -0.5000 -0.00722208 -0.4586 0.3000 0.7000 -0.0013 -0.5660 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
7.5000 400.0000 0.0000 -1.6017 -0.4600 -0.00752097 -0.4433 0.3000 0.7000 -0.0033 -0.5280 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
10.0000 400.0000 0.0000 -2.2937 -0.4000 -0.00762908 -0.4828 0.3000 0.7000 -0.0060 -0.5040 -0.0980 0.0000 0.3000 0.0000 0.6000 0.4300 0.7400 0.6000
""")
# Add aliases of the ESHM20 model selection
MILLER_RICE_GAUSS_5PNT = [-2.856970, -1.355630, 0.0, 1.355630, 2.856970]
THETA_6_ADJUSTMENTS = [-0.0015, 0.0000, 0.0015]
STRESS_BRANCHES = ["VLow", "Low", "Mid", "High", "VHigh"]
ATTEN_BRANCHES = ["Fast", "Mid", "Slow"]
for stress, eps1 in zip(STRESS_BRANCHES, MILLER_RICE_GAUSS_5PNT):
for atten, theta6adj in zip(ATTEN_BRANCHES, THETA_6_ADJUSTMENTS):
alias_sinter = "ESHM20SInter{:s}Stress{:s}Atten".format(stress, atten)
alias_sslab = "ESHM20SSlab{:s}Stress{:s}Atten".format(stress, atten)
# Subduction Interface
add_alias(alias_sinter, BCHydroESHM20SInter, sigma_mu_epsilon=eps1,
theta6_adjustment=theta6adj, faba_taper_model="SFunc",
a=-100, b=100)
# Subduction Slab
add_alias(alias_sslab, BCHydroESHM20SSlab, sigma_mu_epsilon=eps1,
theta6_adjustment=theta6adj, faba_taper_model="SFunc",
a=-100, b=100)