# -*- 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 )
Copy to clipboard