# -*- coding: utf-8 -*-
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright (C) 2015-2020 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/>.
"""
Module exports :class:`MontalvaEtAl2016SInter`
:class:`MontalvaEtAl2016SSlab`
"""
import numpy as np
from openquake.hazardlib.gsim.base import CoeffsTable
from openquake.hazardlib.imt import PGA
from openquake.hazardlib.gsim.abrahamson_2015 import (AbrahamsonEtAl2015SInter,
AbrahamsonEtAl2015SSlab)
from openquake.hazardlib.gsim.montalva_2017 import (MontalvaEtAl2017SInter,
MontalvaEtAl2017SSlab)
[docs]class MontalvaEtAl2016SInter(AbrahamsonEtAl2015SInter):
"""
Adaptation of the Abrahamson et al. (2015) BC Hydro subduction interface
GMPE, calibrated to Chilean strong motion data.
GMPE and related coefficients published by:
Montalva, G., Bastias, N., Rodriguez-Marek, A. (2016), 'Ground Motion
Prediction Equation for the Chilean Subduction Zone'. Submitted to
Seismological Research Letters
NOTE (August 2018): The original implementation of Montalva et al. (2016)
was made prior to publication. The final published version of the model
(Montalva et al. 2017) contains modified coefficients with respect to this
version. It is strongly recommended to use the Montalva et al. (2017)
model, however this version is retained for reproducibility of previous
hazard models using this implementation
"""
superseded_by = MontalvaEtAl2017SInter
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
"""
See :meth:`superclass method
<.base.GroundShakingIntensityModel.get_mean_and_stddevs>`
for spec of input and result values.
"""
# extract dictionaries of coefficients specific to required
# intensity measure type and for PGA
C = self.COEFFS[imt]
C_PGA = self.COEFFS[PGA()]
dc1_pga = C_PGA["DC1"]
# compute median pga on rock (vs30=1000), needed for site response
# term calculation
pga1000 = np.exp(
self._compute_pga_rock(C_PGA, dc1_pga, sites, rup, dists))
mean = (self._compute_magnitude_term(C, C["DC1"], rup.mag) +
self._compute_distance_term(C, rup.mag, dists) +
self._compute_focal_depth_term(C, rup) +
self._compute_forearc_backarc_term(C, sites, dists) +
self._compute_site_response_term(C, sites, pga1000))
stddevs = self._get_stddevs(C, stddev_types, len(sites.vs30))
return mean, stddevs
def _compute_magnitude_term(self, C, dc1, mag):
"""
Computes the magnitude scaling term given by equation (2)
"""
base = C['theta1'] + (C['theta4'] * dc1)
dmag = self.CONSTS["C1"] + dc1
if mag > dmag:
f_mag = (C['theta5'] * (mag - dmag)) +\
C['theta13'] * ((10. - mag) ** 2.)
else:
f_mag = (C['theta4'] * (mag - dmag)) +\
C['theta13'] * ((10. - mag) ** 2.)
return base + f_mag
def _compute_distance_term(self, C, mag, dists):
"""
Computes the distance scaling term, as contained within equation (1)
"""
return (C['theta2'] + C['theta3'] * (mag - 7.8)) *\
np.log(dists.rrup + self.CONSTS['c4'] * np.exp((mag - 6.) *
self.CONSTS['theta9'])) + (C['theta6'] * dists.rrup)
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt DC1 vlin b theta1 theta2 theta3 theta4 theta5 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma phi_s2s
pga 0.200000000 865.1 -1.186 4.935754758 -1.319716122 0.156954813 -1.038307042 -0.200134154 -0.002064757 1.0988 -1.42 4.559632568 0.004375202 0.914271114 -0.203185487 -0.694459960 0.9969 -1.00 0.676804137 0.436356919 0.805277096 0.547434071
0.010 0.200000000 865.1 -1.186 4.935754758 -1.319716122 0.156954813 -1.038307042 -0.200134154 -0.002064757 1.0988 -1.42 4.559632568 0.004375202 0.914271114 -0.203185487 -0.694459960 0.9969 -1.00 0.676804137 0.436356919 0.805277096 0.547434071
0.020 0.200000000 865.1 -1.186 4.963548267 -1.321501153 0.142973041 -0.925888135 -0.148739101 -0.002188725 1.0988 -1.42 4.654806348 0.004263109 0.934182754 -0.197899904 -0.710342148 0.9969 -1.00 0.683243196 0.430880779 0.807762039 0.554691749
0.050 0.200000000 1053.5 -1.346 7.358115618 -1.825715240 0.093914961 -0.555849306 0.129797026 -0.000431630 1.2536 -1.65 5.105622455 0.005100764 1.188485184 -0.183201116 -0.737586413 1.1030 -1.18 0.671606746 0.483036109 0.827272328 0.545045472
0.075 0.200000000 1085.7 -1.471 7.558603177 -1.810050104 0.103239851 -0.561904402 0.151637804 -0.001102941 1.4175 -1.80 4.514166186 0.005820798 1.395007124 -0.174729372 -0.615517435 1.2732 -1.36 0.697383068 0.508098624 0.862848397 0.582340972
0.100 0.200000000 1032.5 -1.624 7.027657583 -1.633492535 0.088844200 -0.525502325 0.265136034 -0.002397453 1.3997 -1.80 3.827080246 0.004236026 1.560949356 -0.176264079 -0.487079351 1.3042 -1.36 0.722361027 0.504635520 0.881171074 0.616096154
0.150 0.200000000 877.6 -1.931 6.049355161 -1.335645478 0.073754755 -0.567044631 0.294956394 -0.003942231 1.3582 -1.69 2.880273890 0.002951253 1.824536435 -0.193149712 -0.343522351 1.2600 -1.30 0.741411715 0.475224629 0.880641687 0.629331025
0.200 0.200000000 748.2 -2.188 4.179750788 -0.885470585 0.065604603 -0.659648456 0.359088006 -0.005638198 1.1648 -1.49 3.257747522 0.002516425 1.976696142 -0.214467130 -0.452888442 1.2230 -1.25 0.759426634 0.429788781 0.872609425 0.637577298
0.250 0.200000000 654.3 -2.381 3.999581211 -0.821066204 0.055367666 -0.643078011 0.352583884 -0.005484494 0.9940 -1.30 3.545595708 0.000888426 2.152539829 -0.226122818 -0.531334245 1.1600 -1.17 0.743380316 0.401651257 0.844948535 0.606641527
0.300 0.200000000 587.1 -2.518 3.343521294 -0.678019870 0.070313635 -0.816717363 0.236089761 -0.005490803 0.8821 -1.18 3.711884196 0.001562756 2.179000482 -0.238785185 -0.601073843 1.0500 -1.06 0.750620673 0.389053205 0.845454783 0.609833032
0.400 0.143682921 503.0 -2.657 3.342528747 -0.674981502 0.071624870 -1.123522692 0.103008688 -0.004346784 0.7046 -0.98 4.125701638 -0.001119565 2.225720730 -0.284536574 -0.702111182 0.8000 -0.78 0.741503989 0.383488689 0.834800419 0.589961066
0.500 0.100000000 456.6 -2.669 3.714706072 -0.770820923 0.073623537 -1.330962172 -0.019664088 -0.003028097 0.5799 -0.82 4.507163580 -0.000434645 2.265272475 -0.318116722 -0.800834677 0.6620 -0.62 0.688862082 0.384159164 0.788739014 0.513251109
0.600 0.073696559 430.3 -2.599 4.425108150 -0.939459680 0.062188731 -1.569443919 -0.014606735 -0.001675340 0.5021 -0.70 5.255072487 -0.000097416 2.200898990 -0.365330018 -0.966147926 0.5800 -0.50 0.665479640 0.394271020 0.773506812 0.486626176
0.750 0.041503750 410.5 -2.401 4.372165283 -0.933761671 0.053771754 -1.730788918 -0.031408137 -0.001524349 0.3687 -0.54 5.074522171 -0.001350443 1.918279398 -0.401223910 -0.937019824 0.4800 -0.34 0.637244299 0.414109647 0.759978352 0.443006934
1.000 0.000000000 400.0 -1.955 4.021211151 -0.924917589 0.054326150 -1.908027335 -0.138131804 -0.001101517 0.1746 -0.34 5.211831136 -0.002283504 1.509910061 -0.433435346 -0.964846571 0.3300 -0.14 0.611337571 0.442015583 0.754394725 0.421636418
1.500 -0.058496250 400.0 -1.025 3.946972058 -1.002244695 0.049918773 -2.307833569 -0.412376757 -0.000261255 -0.0820 -0.05 5.561359279 -0.000996882 0.656237153 -0.502990059 -1.057548381 0.3100 0.00 0.617840247 0.436708751 0.756598377 0.448028967
2.000 -0.100000000 400.0 -0.299 3.763370770 -1.048406811 0.049945027 -2.218316295 -0.488347011 -0.000156404 -0.2821 0.12 5.310311721 -0.000289011 -0.148288073 -0.501824964 -1.007661553 0.3000 0.00 0.586452050 0.429957558 0.727179144 0.424207890
2.500 -0.155033971 400.0 0.000 3.279573476 -0.991842986 0.095212751 -2.496506471 -0.770828569 -0.000738153 -0.4108 0.25 4.764778613 -0.001039535 -0.459995635 -0.517128864 -0.886704977 0.3000 0.00 0.567864698 0.442678828 0.720024208 0.416230786
3.000 -0.200000000 400.0 0.000 3.407135085 -1.079312405 0.092359656 -2.425045547 -0.883889211 -0.000357658 -0.4466 0.30 4.800502846 -0.000395577 -0.450645670 -0.514638813 -0.901051441 0.3000 0.00 0.559253514 0.420099114 0.699462478 0.418794658
4.000 -0.200000000 400.0 0.000 2.789669400 -1.072279505 0.148258197 -2.792416051 -1.282315047 0.000409730 -0.4344 0.30 5.011985606 -0.000308830 -0.512937685 -0.529022902 -0.939796651 0.3000 0.00 0.569097474 0.408117852 0.700308586 0.435934346
5.000 -0.200000000 400.0 0.000 2.700791140 -1.202536653 0.172625283 -2.741020801 -1.141773134 0.001833647 -0.4368 0.30 5.457710792 0.000255165 -0.503538042 -0.504799612 -1.025705989 0.3000 0.00 0.558540211 0.387890193 0.680019095 0.418174855
6.000 -0.200000000 400.0 0.000 2.630174552 -1.303101604 0.127044195 -1.863112205 -0.727779859 0.002185845 -0.4586 0.30 5.826483564 0.001637500 -0.497674025 -0.423978007 -1.110103433 0.3000 0.00 0.502062640 0.394614799 0.638582598 0.346222778
7.500 -0.200000000 400.0 0.000 2.520418211 -1.399368154 0.084904399 -0.930694380 -0.212014425 0.002325451 -0.4433 0.30 6.332273436 0.001046880 -0.481585300 -0.334701563 -1.195826518 0.3000 0.00 0.482570602 0.373377912 0.610151990 0.321745366
10.00 -0.200000000 400.0 0.000 3.266979586 -1.707902316 0.068210457 -0.967817098 0.253077379 0.004736644 -0.4828 0.30 7.382937906 0.000738462 -0.423369635 -0.347713953 -1.409670235 0.3000 0.00 0.466924628 0.376696614 0.599932452 0.300789811
""")
CONSTS = {
# Period-Independent Coefficients (Table 2)
'n': 1.18,
'c': 1.88,
'c4': 10.0,
'C1': 7.8,
'theta9': 0.4
}
[docs]class MontalvaEtAl2016SSlab(AbrahamsonEtAl2015SSlab):
"""
Adaptation of the Abrahamson et al. (2015) BC Hydro subduction in-slab
GMPE, calibrated to Chilean strong motion data
NOTE (August 2018): The original implementation of Montalva et al. (2016)
was made prior to publication. The final published version of the model
(Montalva et al. 2017) contains modified coefficients with respect to this
version. It is strongly recommended to use the Montalva et al. (2017)
model, however this version is retained for reproducibility of previous
hazard models using this implementation
"""
superseded_by = MontalvaEtAl2017SSlab
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
"""
See :meth:`superclass method
<.base.GroundShakingIntensityModel.get_mean_and_stddevs>`
for spec of input and result values.
"""
# extract dictionaries of coefficients specific to required
# intensity measure type and for PGA
C = self.COEFFS[imt]
# For inslab GMPEs the correction term is fixed at -0.3
dc1 = -0.3
C_PGA = self.COEFFS[PGA()]
# compute median pga on rock (vs30=1000), needed for site response
# term calculation
pga1000 = np.exp(
self._compute_pga_rock(C_PGA, dc1, sites, rup, dists))
mean = (self._compute_magnitude_term(C, dc1, rup.mag) +
self._compute_distance_term(C, rup.mag, dists) +
self._compute_focal_depth_term(C, rup) +
self._compute_forearc_backarc_term(C, sites, dists) +
self._compute_site_response_term(C, sites, pga1000))
stddevs = self._get_stddevs(C, stddev_types, len(sites.vs30))
return mean, stddevs
def _compute_magnitude_term(self, C, dc1, mag):
"""
Computes the magnitude scaling term given by equation (2)
corrected by a local adjustment factor
"""
base = C['theta1'] + (C['theta4'] * dc1)
dmag = self.CONSTS["C1"] + dc1
if mag > dmag:
f_mag = (C['theta5'] * (mag - dmag)) +\
C['theta13'] * ((10. - mag) ** 2.)
else:
f_mag = (C['theta4'] * (mag - dmag)) +\
C['theta13'] * ((10. - mag) ** 2.)
return base + f_mag
def _compute_distance_term(self, C, mag, dists):
"""
Computes the distance scaling term, as contained within equation (1b)
"""
return ((C['theta2'] + C['theta14'] + C['theta3'] *
(mag - 7.8)) * np.log(dists.rhypo + self.CONSTS['c4'] *
np.exp((mag - 6.) * self.CONSTS['theta9'])) +
(C['theta6'] * dists.rhypo)) + C["theta10"]
COEFFS = CoeffsTable(sa_damping=5, table="""\
imt DC1 vlin b theta1 theta2 theta3 theta4 theta5 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma phi_s2s
pga -0.300000000 865.1 -1.186 4.935754758 -1.319716122 0.156954813 -1.038307042 -0.200134154 -0.002064757 1.0988 -1.42 4.559632568 0.004375202 0.914271114 -0.203185487 -0.694459960 0.9969 -1.00 0.676804137 0.436356919 0.805277096 0.547434071
0.010 -0.300000000 865.1 -1.186 4.935754758 -1.319716122 0.156954813 -1.038307042 -0.200134154 -0.002064757 1.0988 -1.42 4.559632568 0.004375202 0.914271114 -0.203185487 -0.694459960 0.9969 -1.00 0.676804137 0.436356919 0.805277096 0.547434071
0.020 -0.300000000 865.1 -1.186 4.963548267 -1.321501153 0.142973041 -0.925888135 -0.148739101 -0.002188725 1.0988 -1.42 4.654806348 0.004263109 0.934182754 -0.197899904 -0.710342148 0.9969 -1.00 0.683243196 0.430880779 0.807762039 0.554691749
0.050 -0.300000000 1053.5 -1.346 7.358115618 -1.825715240 0.093914961 -0.555849306 0.129797026 -0.000431630 1.2536 -1.65 5.105622455 0.005100764 1.188485184 -0.183201116 -0.737586413 1.1030 -1.18 0.671606746 0.483036109 0.827272328 0.545045472
0.075 -0.300000000 1085.7 -1.471 7.558603177 -1.810050104 0.103239851 -0.561904402 0.151637804 -0.001102941 1.4175 -1.80 4.514166186 0.005820798 1.395007124 -0.174729372 -0.615517435 1.2732 -1.36 0.697383068 0.508098624 0.862848397 0.582340972
0.100 -0.300000000 1032.5 -1.624 7.027657583 -1.633492535 0.088844200 -0.525502325 0.265136034 -0.002397453 1.3997 -1.80 3.827080246 0.004236026 1.560949356 -0.176264079 -0.487079351 1.3042 -1.36 0.722361027 0.504635520 0.881171074 0.616096154
0.150 -0.300000000 877.6 -1.931 6.049355161 -1.335645478 0.073754755 -0.567044631 0.294956394 -0.003942231 1.3582 -1.69 2.880273890 0.002951253 1.824536435 -0.193149712 -0.343522351 1.2600 -1.30 0.741411715 0.475224629 0.880641687 0.629331025
0.200 -0.300000000 748.2 -2.188 4.179750788 -0.885470585 0.065604603 -0.659648456 0.359088006 -0.005638198 1.1648 -1.49 3.257747522 0.002516425 1.976696142 -0.214467130 -0.452888442 1.2230 -1.25 0.759426634 0.429788781 0.872609425 0.637577298
0.250 -0.300000000 654.3 -2.381 3.999581211 -0.821066204 0.055367666 -0.643078011 0.352583884 -0.005484494 0.9940 -1.30 3.545595708 0.000888426 2.152539829 -0.226122818 -0.531334245 1.1600 -1.17 0.743380316 0.401651257 0.844948535 0.606641527
0.300 -0.300000000 587.1 -2.518 3.343521294 -0.678019870 0.070313635 -0.816717363 0.236089761 -0.005490803 0.8821 -1.18 3.711884196 0.001562756 2.179000482 -0.238785185 -0.601073843 1.0500 -1.06 0.750620673 0.389053205 0.845454783 0.609833032
0.400 -0.300000000 503.0 -2.657 3.342528747 -0.674981502 0.071624870 -1.123522692 0.103008688 -0.004346784 0.7046 -0.98 4.125701638 -0.001119565 2.225720730 -0.284536574 -0.702111182 0.8000 -0.78 0.741503989 0.383488689 0.834800419 0.589961066
0.500 -0.300000000 456.6 -2.669 3.714706072 -0.770820923 0.073623537 -1.330962172 -0.019664088 -0.003028097 0.5799 -0.82 4.507163580 -0.000434645 2.265272475 -0.318116722 -0.800834677 0.6620 -0.62 0.688862082 0.384159164 0.788739014 0.513251109
0.600 -0.300000000 430.3 -2.599 4.425108150 -0.939459680 0.062188731 -1.569443919 -0.014606735 -0.001675340 0.5021 -0.70 5.255072487 -0.000097416 2.200898990 -0.365330018 -0.966147926 0.5800 -0.50 0.665479640 0.394271020 0.773506812 0.486626176
0.750 -0.300000000 410.5 -2.401 4.372165283 -0.933761671 0.053771754 -1.730788918 -0.031408137 -0.001524349 0.3687 -0.54 5.074522171 -0.001350443 1.918279398 -0.401223910 -0.937019824 0.4800 -0.34 0.637244299 0.414109647 0.759978352 0.443006934
1.000 -0.300000000 400.0 -1.955 4.021211151 -0.924917589 0.054326150 -1.908027335 -0.138131804 -0.001101517 0.1746 -0.34 5.211831136 -0.002283504 1.509910061 -0.433435346 -0.964846571 0.3300 -0.14 0.611337571 0.442015583 0.754394725 0.421636418
1.500 -0.300000000 400.0 -1.025 3.946972058 -1.002244695 0.049918773 -2.307833569 -0.412376757 -0.000261255 -0.0820 -0.05 5.561359279 -0.000996882 0.656237153 -0.502990059 -1.057548381 0.3100 0.00 0.617840247 0.436708751 0.756598377 0.448028967
2.000 -0.300000000 400.0 -0.299 3.763370770 -1.048406811 0.049945027 -2.218316295 -0.488347011 -0.000156404 -0.2821 0.12 5.310311721 -0.000289011 -0.148288073 -0.501824964 -1.007661553 0.3000 0.00 0.586452050 0.429957558 0.727179144 0.424207890
2.500 -0.300000000 400.0 0.000 3.279573476 -0.991842986 0.095212751 -2.496506471 -0.770828569 -0.000738153 -0.4108 0.25 4.764778613 -0.001039535 -0.459995635 -0.517128864 -0.886704977 0.3000 0.00 0.567864698 0.442678828 0.720024208 0.416230786
3.000 -0.300000000 400.0 0.000 3.407135085 -1.079312405 0.092359656 -2.425045547 -0.883889211 -0.000357658 -0.4466 0.30 4.800502846 -0.000395577 -0.450645670 -0.514638813 -0.901051441 0.3000 0.00 0.559253514 0.420099114 0.699462478 0.418794658
4.000 -0.300000000 400.0 0.000 2.789669400 -1.072279505 0.148258197 -2.792416051 -1.282315047 0.000409730 -0.4344 0.30 5.011985606 -0.000308830 -0.512937685 -0.529022902 -0.939796651 0.3000 0.00 0.569097474 0.408117852 0.700308586 0.435934346
5.000 -0.300000000 400.0 0.000 2.700791140 -1.202536653 0.172625283 -2.741020801 -1.141773134 0.001833647 -0.4368 0.30 5.457710792 0.000255165 -0.503538042 -0.504799612 -1.025705989 0.3000 0.00 0.558540211 0.387890193 0.680019095 0.418174855
6.000 -0.300000000 400.0 0.000 2.630174552 -1.303101604 0.127044195 -1.863112205 -0.727779859 0.002185845 -0.4586 0.30 5.826483564 0.001637500 -0.497674025 -0.423978007 -1.110103433 0.3000 0.00 0.502062640 0.394614799 0.638582598 0.346222778
7.500 -0.300000000 400.0 0.000 2.520418211 -1.399368154 0.084904399 -0.930694380 -0.212014425 0.002325451 -0.4433 0.30 6.332273436 0.001046880 -0.481585300 -0.334701563 -1.195826518 0.3000 0.00 0.482570602 0.373377912 0.610151990 0.321745366
10.00 -0.300000000 400.0 0.000 3.266979586 -1.707902316 0.068210457 -0.967817098 0.253077379 0.004736644 -0.4828 0.30 7.382937906 0.000738462 -0.423369635 -0.347713953 -1.409670235 0.3000 0.00 0.466924628 0.376696614 0.599932452 0.300789811
""")