Source code for openquake.hazardlib.gsim.montalva_2017

# -*- 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:`MontalvaEtAl2017SInter`
               :class:`MontalvaEtAl2017SSlab`
"""
import numpy as np

from openquake.hazardlib.gsim.base import CoeffsTable
from openquake.hazardlib.gsim.abrahamson_2015 import (AbrahamsonEtAl2015SInter,
                                                      AbrahamsonEtAl2015SSlab)


[docs]class MontalvaEtAl2017SInter(AbrahamsonEtAl2015SInter): """ Adaptation of the Abrahamson et al. (2015) BC Hydro subduction interface GMPE, calibrated to Chilean strong motion data, by Montalva et al (2017) Montalval, G. A., Bastias, N., and Rodriguez-Marek, A. (2017) "Ground- Motion Prediction Equation for the Chilean Subduction Zone", Bulletin of the Seismological Society of America, 107(2), 901-911 Note: This should be used in place of previous Montalva et al. (2016) implementation, as coefficients and model changed at the point of publication """ def _compute_magnitude_term(self, C, dc1, mag): """ Computes the magnitude scaling term given by equations (2) and (3) corrected by a local adjustment factor. Modified from original Abrahamson et al (2015) implementation as theta4 and theta5 are now period-dependent, whilst theta13 is now zero """ base = C['theta1'] + (C['theta4'] * dc1) dmag = self.CONSTS["C1"] + dc1 if mag > dmag: f_mag = C['theta5'] * (mag - dmag) else: f_mag = C['theta4'] * (mag - dmag) return base + f_mag def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (4). Note this is overwriting the Abrahamson et al (2016) version as theta3 is now period dependent """ return (C['theta2'] + C['theta3'] * (mag - self.CONSTS["C1"])) *\ np.log(dists.rrup + self.CONSTS['c4'] * np.exp((mag - 6.) * self.CONSTS['theta9'])) + (C['theta6'] * dists.rrup) # Coefficients table taken from electronic supplement to Montalva et al. # (2017) COEFFS = CoeffsTable(sa_damping=5, table="""\ imt vlin b theta1 theta2 theta3 theta4 theta5 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma phi_S2S pga 865.1 -1.186 5.87504394 -1.75359772 0.13125248 0.80276784 -0.33486952 -0.00039095 1.0988 -1.42 4.53143081 0.00567350 1.01494528 0.00000000 -0.73080261 0.9969 -1.00 0.69118080 0.47462209 0.83844918 0.56436373 0.010 865.1 -1.186 5.87504394 -1.75359772 0.13125248 0.80276784 -0.33486952 -0.00039095 1.0988 -1.42 4.53143081 0.00567350 1.01494528 0.00000000 -0.73080261 0.9969 -1.00 0.69118080 0.47462209 0.83844918 0.56436373 0.020 865.1 -1.186 5.97631438 -1.77010766 0.12246057 0.84131709 -0.28054559 -0.00038903 1.0988 -1.42 4.57416129 0.00565448 1.03738201 0.00000000 -0.73868917 0.9969 -1.00 0.69938258 0.47631913 0.84617723 0.57187735 0.050 1053.5 -1.346 7.45297044 -2.03336398 0.08332151 1.03131243 -0.03954116 0.00000000 1.2536 -1.65 4.56070915 0.00848068 1.31034079 0.00000000 -0.69848828 1.1030 -1.18 0.70173433 0.53776165 0.88409200 0.57850117 0.075 1085.7 -1.471 8.04759521 -2.10610081 0.08012671 1.03436999 -0.01295063 -0.00009638 1.4175 -1.80 4.36639286 0.00921589 1.48158019 0.00000000 -0.65335577 1.2732 -1.36 0.71412373 0.56188074 0.90867082 0.59936738 0.100 1032.5 -1.624 7.76085108 -1.99370934 0.07303120 1.07565004 0.00758131 -0.00078515 1.3997 -1.80 3.90922953 0.00629627 1.65618649 0.00000000 -0.55051160 1.3042 -1.36 0.74112800 0.52707475 0.90943856 0.63409914 0.150 877.6 -1.931 6.17191900 -1.58654201 0.05481839 1.17061492 0.10490549 -0.00267532 1.3582 -1.69 3.06236311 0.00558843 1.93944484 0.00000000 -0.42997222 1.2600 -1.30 0.74606525 0.50642417 0.90170882 0.63021739 0.200 748.2 -2.188 4.83403302 -1.29711030 0.05249728 1.20531288 0.17968066 -0.00337590 1.1648 -1.49 3.50112817 0.00319554 2.08901131 0.00000000 -0.53087673 1.2230 -1.25 0.74515270 0.44618739 0.86852504 0.61699385 0.250 654.3 -2.381 4.42687615 -1.18774055 0.02995137 1.37607187 0.22912175 -0.00355237 0.9940 -1.30 3.62815675 0.00181700 2.25003086 0.00000000 -0.58085678 1.1600 -1.17 0.72855743 0.45040229 0.85653847 0.58609155 0.300 587.1 -2.518 4.57008643 -1.24895678 0.03865827 1.34990775 0.15592549 -0.00244847 0.8821 -1.18 3.87633808 0.00212947 2.28338700 0.00000000 -0.66280655 1.0500 -1.06 0.72093248 0.42549471 0.83713164 0.57014335 0.400 503.0 -2.657 3.98311294 -1.13377346 0.04682762 1.37953880 0.11670946 -0.00207613 0.7046 -0.98 4.03388062 0.00068979 2.31408730 0.00000000 -0.72244113 0.8000 -0.78 0.71005053 0.42945015 0.82981877 0.54795548 0.500 456.6 -2.669 4.86034340 -1.38019755 0.03822425 1.51949871 0.18347677 -0.00001896 0.5799 -0.82 4.31418239 0.00064780 2.33333479 0.00000000 -0.79644275 0.6620 -0.62 0.66934213 0.43333698 0.79737057 0.49113105 0.600 430.3 -2.599 4.67510367 -1.35362409 0.02523729 1.66662746 0.21967977 0.00000000 0.5021 -0.70 4.75196667 0.00087070 2.23421777 0.00000000 -0.90120145 0.5800 -0.50 0.66733247 0.44599448 0.80264793 0.49077603 0.750 410.5 -2.401 4.30862113 -1.30799859 0.00995253 1.85625091 0.29782648 0.00000000 0.3687 -0.54 4.70451938 -0.00031282 2.05217228 0.00000000 -0.89829099 0.4800 -0.34 0.66329494 0.46723155 0.81133563 0.48213254 1.000 400.0 -1.955 3.57339281 -1.23082022 0.03605351 1.81217177 0.24372341 0.00000000 0.1746 -0.34 4.56020155 -0.00101097 1.63506217 0.00000000 -0.87330858 0.3300 -0.14 0.63504015 0.50143305 0.80914220 0.45955396 1.500 400.0 -1.025 2.92216459 -1.18750273 0.02768934 2.03469107 0.22521403 -0.00009996 -0.0820 -0.05 4.83342978 0.00009741 0.69338467 0.00000000 -0.94685865 0.3100 0.00 0.60012607 0.51633193 0.79167542 0.42572864 2.000 400.0 -0.299 2.39779653 -1.16319283 0.04011300 2.04340485 0.27382886 -0.00033356 -0.2821 0.12 4.59028522 0.00108512 -0.09761879 0.00000000 -0.90845421 0.3000 0.00 0.56961713 0.50688464 0.76249309 0.40178822 2.500 400.0 0.000 1.64147667 -1.06543862 0.08310064 1.88987024 0.18739875 -0.00121364 -0.4108 0.25 4.13415056 0.00035459 -0.34931995 0.00000000 -0.80518214 0.3000 0.00 0.55384735 0.51465398 0.75605265 0.39825312 3.000 400.0 0.000 1.66482796 -1.12677535 0.09403648 1.90503920 0.13268085 -0.00087595 -0.4466 0.30 4.18978319 0.00072950 -0.33269783 0.00000000 -0.81689247 0.3000 0.00 0.53658882 0.50365207 0.73593000 0.38493023 4.000 400.0 0.000 0.90564754 -1.07619985 0.13838017 1.71178342 0.01379686 -0.00061861 -0.4344 0.30 4.50906779 0.00084112 -0.41320697 0.00000000 -0.87331394 0.3000 0.00 0.51345287 0.45311429 0.68479662 0.35578953 5.000 400.0 0.000 0.61234440 -1.13079589 0.15259121 1.59358719 0.06464958 0.00000000 -0.4368 0.30 4.56385964 0.00068188 -0.42395126 0.00000000 -0.87800447 0.3000 0.00 0.51417184 0.43900131 0.67608789 0.34990851 6.000 400.0 0.000 0.32672294 -1.15734380 0.12420910 1.69183532 0.32368231 0.00000000 -0.4586 0.30 4.55836575 0.00137322 -0.38759507 0.00000000 -0.88436295 0.3000 0.00 0.49080507 0.42084190 0.64652728 0.32047977 7.500 400.0 0.000 -0.24139803 -1.14070070 0.10950824 1.71125604 0.60252124 0.00000000 -0.4433 0.30 5.08281865 0.00167053 -0.32638288 0.00000000 -0.98803311 0.3000 0.00 0.47063810 0.41701232 0.62880800 0.29895226 10.00 400.0 0.000 -0.96313983 -1.09295336 0.11343926 1.67160339 0.77620830 0.00000000 -0.4828 0.30 5.49692364 -0.00070392 -0.25811162 0.00000000 -1.05008478 0.3000 0.00 0.46023151 0.38872242 0.60242690 0.28453650 """) # Theoretically identical to the original Abrahamson et al. (2015) # correction, but in any case taken from Montalva et al. (2017) Matlab # code to ensure consistency with author's implementation COEFFS_MAG_SCALE = CoeffsTable(sa_damping=5, table="""\ imt dc1 pga 0.200000000 0.010 0.200000000 0.020 0.200000000 0.050 0.200000000 0.075 0.200000000 0.100 0.200000000 0.150 0.200000000 0.200 0.200000000 0.250 0.200000000 0.300 0.200000000 0.400 0.143682921 0.500 0.100000000 0.600 0.073696559 0.750 0.041503750 1.000 0.000000000 1.500 -0.058496250 2.000 -0.100000000 2.500 -0.155033971 3.000 -0.200000000 4.000 -0.200000000 5.000 -0.200000000 6.000 -0.200000000 7.500 -0.200000000 10.00 -0.200000000 5.000 -0.200000000 6.000 -0.200000000 7.500 -0.200000000 10.00 -0.200000000 """) CONSTS = { # Period-Independent Coefficients (Table 2 of BC Hydro) 'n': 1.18, 'c': 1.88, 'c4': 10.0, 'C1': 7.2, 'theta9': 0.4 }
[docs]class MontalvaEtAl2017SSlab(AbrahamsonEtAl2015SSlab): """ Adaptation of the Abrahamson et al. (2015) BC Hydro subduction in-slab GMPE, calibrated to Chilean strong motion data """ def _compute_magnitude_term(self, C, dc1, mag): """ Computes the magnitude scaling term given by equations (2) and (3), corrected by a local adjustment factor - see documentation for interface version for changes """ base = C['theta1'] + (C['theta4'] * dc1) dmag = self.CONSTS["C1"] + dc1 if mag > dmag: f_mag = C['theta5'] * (mag - dmag) else: f_mag = C['theta4'] * (mag - dmag) return base + f_mag def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (4) """ return ((C['theta2'] + C['theta14'] + C['theta3'] * (mag - self.CONSTS["C1"])) * 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 vlin b theta1 theta2 theta3 theta4 theta5 theta6 theta7 theta8 theta10 theta11 theta12 theta13 theta14 theta15 theta16 phi tau sigma phi_S2S pga 865.1 -1.186 5.87504394 -1.75359772 0.13125248 0.80276784 -0.33486952 -0.00039095 1.0988 -1.42 4.53143081 0.00567350 1.01494528 0.00000000 -0.73080261 0.9969 -1.00 0.69118080 0.47462209 0.83844918 0.56436373 0.010 865.1 -1.186 5.87504394 -1.75359772 0.13125248 0.80276784 -0.33486952 -0.00039095 1.0988 -1.42 4.53143081 0.00567350 1.01494528 0.00000000 -0.73080261 0.9969 -1.00 0.69118080 0.47462209 0.83844918 0.56436373 0.020 865.1 -1.186 5.97631438 -1.77010766 0.12246057 0.84131709 -0.28054559 -0.00038903 1.0988 -1.42 4.57416129 0.00565448 1.03738201 0.00000000 -0.73868917 0.9969 -1.00 0.69938258 0.47631913 0.84617723 0.57187735 0.050 1053.5 -1.346 7.45297044 -2.03336398 0.08332151 1.03131243 -0.03954116 0.00000000 1.2536 -1.65 4.56070915 0.00848068 1.31034079 0.00000000 -0.69848828 1.1030 -1.18 0.70173433 0.53776165 0.88409200 0.57850117 0.075 1085.7 -1.471 8.04759521 -2.10610081 0.08012671 1.03436999 -0.01295063 -0.00009638 1.4175 -1.80 4.36639286 0.00921589 1.48158019 0.00000000 -0.65335577 1.2732 -1.36 0.71412373 0.56188074 0.90867082 0.59936738 0.100 1032.5 -1.624 7.76085108 -1.99370934 0.07303120 1.07565004 0.00758131 -0.00078515 1.3997 -1.80 3.90922953 0.00629627 1.65618649 0.00000000 -0.55051160 1.3042 -1.36 0.74112800 0.52707475 0.90943856 0.63409914 0.150 877.6 -1.931 6.17191900 -1.58654201 0.05481839 1.17061492 0.10490549 -0.00267532 1.3582 -1.69 3.06236311 0.00558843 1.93944484 0.00000000 -0.42997222 1.2600 -1.30 0.74606525 0.50642417 0.90170882 0.63021739 0.200 748.2 -2.188 4.83403302 -1.29711030 0.05249728 1.20531288 0.17968066 -0.00337590 1.1648 -1.49 3.50112817 0.00319554 2.08901131 0.00000000 -0.53087673 1.2230 -1.25 0.74515270 0.44618739 0.86852504 0.61699385 0.250 654.3 -2.381 4.42687615 -1.18774055 0.02995137 1.37607187 0.22912175 -0.00355237 0.9940 -1.30 3.62815675 0.00181700 2.25003086 0.00000000 -0.58085678 1.1600 -1.17 0.72855743 0.45040229 0.85653847 0.58609155 0.300 587.1 -2.518 4.57008643 -1.24895678 0.03865827 1.34990775 0.15592549 -0.00244847 0.8821 -1.18 3.87633808 0.00212947 2.28338700 0.00000000 -0.66280655 1.0500 -1.06 0.72093248 0.42549471 0.83713164 0.57014335 0.400 503.0 -2.657 3.98311294 -1.13377346 0.04682762 1.37953880 0.11670946 -0.00207613 0.7046 -0.98 4.03388062 0.00068979 2.31408730 0.00000000 -0.72244113 0.8000 -0.78 0.71005053 0.42945015 0.82981877 0.54795548 0.500 456.6 -2.669 4.86034340 -1.38019755 0.03822425 1.51949871 0.18347677 -0.00001896 0.5799 -0.82 4.31418239 0.00064780 2.33333479 0.00000000 -0.79644275 0.6620 -0.62 0.66934213 0.43333698 0.79737057 0.49113105 0.600 430.3 -2.599 4.67510367 -1.35362409 0.02523729 1.66662746 0.21967977 0.00000000 0.5021 -0.70 4.75196667 0.00087070 2.23421777 0.00000000 -0.90120145 0.5800 -0.50 0.66733247 0.44599448 0.80264793 0.49077603 0.750 410.5 -2.401 4.30862113 -1.30799859 0.00995253 1.85625091 0.29782648 0.00000000 0.3687 -0.54 4.70451938 -0.00031282 2.05217228 0.00000000 -0.89829099 0.4800 -0.34 0.66329494 0.46723155 0.81133563 0.48213254 1.000 400.0 -1.955 3.57339281 -1.23082022 0.03605351 1.81217177 0.24372341 0.00000000 0.1746 -0.34 4.56020155 -0.00101097 1.63506217 0.00000000 -0.87330858 0.3300 -0.14 0.63504015 0.50143305 0.80914220 0.45955396 1.500 400.0 -1.025 2.92216459 -1.18750273 0.02768934 2.03469107 0.22521403 -0.00009996 -0.0820 -0.05 4.83342978 0.00009741 0.69338467 0.00000000 -0.94685865 0.3100 0.00 0.60012607 0.51633193 0.79167542 0.42572864 2.000 400.0 -0.299 2.39779653 -1.16319283 0.04011300 2.04340485 0.27382886 -0.00033356 -0.2821 0.12 4.59028522 0.00108512 -0.09761879 0.00000000 -0.90845421 0.3000 0.00 0.56961713 0.50688464 0.76249309 0.40178822 2.500 400.0 0.000 1.64147667 -1.06543862 0.08310064 1.88987024 0.18739875 -0.00121364 -0.4108 0.25 4.13415056 0.00035459 -0.34931995 0.00000000 -0.80518214 0.3000 0.00 0.55384735 0.51465398 0.75605265 0.39825312 3.000 400.0 0.000 1.66482796 -1.12677535 0.09403648 1.90503920 0.13268085 -0.00087595 -0.4466 0.30 4.18978319 0.00072950 -0.33269783 0.00000000 -0.81689247 0.3000 0.00 0.53658882 0.50365207 0.73593000 0.38493023 4.000 400.0 0.000 0.90564754 -1.07619985 0.13838017 1.71178342 0.01379686 -0.00061861 -0.4344 0.30 4.50906779 0.00084112 -0.41320697 0.00000000 -0.87331394 0.3000 0.00 0.51345287 0.45311429 0.68479662 0.35578953 5.000 400.0 0.000 0.61234440 -1.13079589 0.15259121 1.59358719 0.06464958 0.00000000 -0.4368 0.30 4.56385964 0.00068188 -0.42395126 0.00000000 -0.87800447 0.3000 0.00 0.51417184 0.43900131 0.67608789 0.34990851 6.000 400.0 0.000 0.32672294 -1.15734380 0.12420910 1.69183532 0.32368231 0.00000000 -0.4586 0.30 4.55836575 0.00137322 -0.38759507 0.00000000 -0.88436295 0.3000 0.00 0.49080507 0.42084190 0.64652728 0.32047977 7.500 400.0 0.000 -0.24139803 -1.14070070 0.10950824 1.71125604 0.60252124 0.00000000 -0.4433 0.30 5.08281865 0.00167053 -0.32638288 0.00000000 -0.98803311 0.3000 0.00 0.47063810 0.41701232 0.62880800 0.29895226 10.00 400.0 0.000 -0.96313983 -1.09295336 0.11343926 1.67160339 0.77620830 0.00000000 -0.4828 0.30 5.49692364 -0.00070392 -0.25811162 0.00000000 -1.05008478 0.3000 0.00 0.46023151 0.38872242 0.60242690 0.28453650 """) CONSTS = { # Period-Independent Coefficients (Table 2 of BC Hydro) 'n': 1.18, 'c': 1.88, 'c4': 10.0, 'C1': 7.2, 'theta9': 0.4 }