Source code for openquake.hazardlib.gsim.bchydro_2016_epistemic

# -*- 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 openquake.hazardlib.gsim.base import CoeffsTable
from openquake.hazardlib.gsim.abrahamson_2015 import (
    AbrahamsonEtAl2015SInter, AbrahamsonEtAl2015SInterLow,
    AbrahamsonEtAl2015SInterHigh, AbrahamsonEtAl2015SSlab,
    AbrahamsonEtAl2015SSlabLow, AbrahamsonEtAl2015SSlabHigh)


[docs]def get_sigma_statistical(mag): """ Based on interpretation of the sigma_mu suggested for the GMPE in the Hanford Site PSHA Project, alongside observation of trends in sigma_mu for other models. The sigma_mu is determine by interpolation of this multi-segment linear model dependent only on magnitude (not distance or period) <= 5.5 = 0.15 6.5 = 0.1 7.5 = 0.1 8.0 = 0.15 >= 9.0 = 0.3 """ if mag <= 5.5: return 0.15 elif (mag > 5.5) and (mag <= 6.5): return 0.15 - 0.05 * (mag - 5.5) elif (mag > 6.5) and (mag <= 7.5): return 0.1 elif (mag > 7.5) and (mag <= 8.0): return 0.1 + (mag - 7.5) * (0.05 / 0.5) elif (mag > 8.0) and (mag <= 9.0): return 0.15 + (mag - 8.0) * 0.15 else: return 0.3
[docs]class BCHydroSERASInter(AbrahamsonEtAl2015SInter): """ SERA Adjustment of the BC Hydro GMPE for subduction interface events with theta6 calibrated to Mediterranean data. Introduces two 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. """ experimental = True def __init__(self, theta6_adjustment=0.0, sigma_mu_epsilon=0.0): super().__init__() self.theta6_adj = theta6_adjustment self.sigma_mu_epsilon = sigma_mu_epsilon
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types): """ Returns mean and stddevs applying the statistical uncertainty if needed """ mean, stddevs = super().get_mean_and_stddevs(sites, rup, dists, imt, stddev_types) if self.sigma_mu_epsilon: sigma_mu = get_sigma_statistical(rup.mag) return mean + (sigma_mu * self.sigma_mu_epsilon), stddevs else: return mean, stddevs
def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (1) """ return (C['theta2'] + self.CONSTS['theta3'] * (mag - 7.8)) *\ np.log(dists.rrup + self.CONSTS['c4'] * np.exp((mag - 6.) * self.CONSTS['theta9'])) +\ ((self.theta6_adj + C['theta6']) * dists.rrup) 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 BCHydroSERASInterLow(AbrahamsonEtAl2015SInterLow): """ SERA Adjustment of the BC Hydro GMPE for subduction interface events with theta6 calibrated to Mediterranean data, for the low magnitude scaling branch. """ experimental = True def __init__(self, theta6_adjustment=0.0, sigma_mu_epsilon=0.0): super().__init__() self.theta6_adj = theta6_adjustment self.sigma_mu_epsilon = sigma_mu_epsilon
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types): """ Returns mean and stddevs applying the statistical uncertainty if needed """ mean, stddevs = super().get_mean_and_stddevs(sites, rup, dists, imt, stddev_types) if self.sigma_mu_epsilon: sigma_mu = get_sigma_statistical(rup.mag) return mean + (sigma_mu * self.sigma_mu_epsilon), stddevs else: return mean, stddevs
def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (1) """ return (C['theta2'] + self.CONSTS['theta3'] * (mag - 7.8)) *\ np.log(dists.rrup + self.CONSTS['c4'] * np.exp((mag - 6.) * self.CONSTS['theta9'])) +\ ((self.theta6_adj + C['theta6']) * dists.rrup) 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 BCHydroSERASInterHigh(AbrahamsonEtAl2015SInterHigh): """ SERA Adjustment of the BC Hydro GMPE for subduction interface events with theta6 calibrated to Mediterranean data, for the high magnitude scaling branch. """ experimental = True def __init__(self, theta6_adjustment=0.0, sigma_mu_epsilon=0.0): super().__init__() self.theta6_adj = theta6_adjustment self.sigma_mu_epsilon = sigma_mu_epsilon
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types): """ Returns mean and stddevs applying the statistical uncertainty if needed """ mean, stddevs = super().get_mean_and_stddevs(sites, rup, dists, imt, stddev_types) if self.sigma_mu_epsilon: sigma_mu = get_sigma_statistical(rup.mag) return mean + (sigma_mu * self.sigma_mu_epsilon), stddevs else: return mean, stddevs
def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (1) """ return (C['theta2'] + self.CONSTS['theta3'] * (mag - 7.8)) *\ np.log(dists.rrup + self.CONSTS['c4'] * np.exp((mag - 6.) * self.CONSTS['theta9'])) +\ ((self.theta6_adj + C['theta6']) * dists.rrup) 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 BCHydroSERASSlab(AbrahamsonEtAl2015SSlab): """ SERA 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. """ experimental = True def __init__(self, theta6_adjustment=0.0, sigma_mu_epsilon=0.0): super().__init__() self.theta6_adj = theta6_adjustment self.sigma_mu_epsilon = sigma_mu_epsilon
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types): """ Returns mean and stddevs applying the statistical uncertainty if needed """ mean, stddevs = super().get_mean_and_stddevs(sites, rup, dists, imt, stddev_types) if self.sigma_mu_epsilon: sigma_mu = get_sigma_statistical(rup.mag) return mean + (sigma_mu * self.sigma_mu_epsilon), stddevs else: return mean, stddevs
def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (1) """ return ((C['theta2'] + C['theta14'] + self.CONSTS['theta3'] * (mag - 7.8)) * np.log(dists.rhypo + self.CONSTS['c4'] * np.exp((mag - 6.) * self.CONSTS['theta9'])) + ((self.theta6_adj + C['theta6']) * dists.rhypo)) + C["theta10"] 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 BCHydroSERASSlabLow(AbrahamsonEtAl2015SSlabLow): """ SERA Adjustment of the BC Hydro GMPE for subduction in-slab events with theta6 calibrated to Mediterranean data, for the low magnitude scaling branch. """ experimental = True def __init__(self, theta6_adjustment=0.0, sigma_mu_epsilon=0.0): super().__init__() self.theta6_adj = theta6_adjustment self.sigma_mu_epsilon = sigma_mu_epsilon
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types): """ Returns mean and stddevs applying the statistical uncertainty if needed """ mean, stddevs = super().get_mean_and_stddevs(sites, rup, dists, imt, stddev_types) if self.sigma_mu_epsilon: sigma_mu = get_sigma_statistical(rup.mag) return mean + (sigma_mu * self.sigma_mu_epsilon), stddevs else: return mean, stddevs
def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (1) """ return ((C['theta2'] + C['theta14'] + self.CONSTS['theta3'] * (mag - 7.8)) * np.log(dists.rhypo + self.CONSTS['c4'] * np.exp((mag - 6.) * self.CONSTS['theta9'])) + ((self.theta6_adj + C['theta6']) * dists.rhypo)) + C["theta10"] 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 BCHydroSERASSlabHigh(AbrahamsonEtAl2015SSlabHigh): """ SERA Adjustment of the BC Hydro GMPE for subduction interface events with theta6 calibrated to Mediterranean data, for the high magnitude scaling branch. """ experimental = True def __init__(self, theta6_adjustment=0.0, sigma_mu_epsilon=0.0): super().__init__() self.theta6_adj = theta6_adjustment self.sigma_mu_epsilon = sigma_mu_epsilon
[docs] def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types): """ Returns mean and stddevs applying the statistical uncertainty if needed """ mean, stddevs = super().get_mean_and_stddevs(sites, rup, dists, imt, stddev_types) if self.sigma_mu_epsilon: sigma_mu = get_sigma_statistical(rup.mag) return mean + (sigma_mu * self.sigma_mu_epsilon), stddevs else: return mean, stddevs
def _compute_distance_term(self, C, mag, dists): """ Computes the distance scaling term, as contained within equation (1) """ return ((C['theta2'] + C['theta14'] + self.CONSTS['theta3'] * (mag - 7.8)) * np.log(dists.rhypo + self.CONSTS['c4'] * np.exp((mag - 6.) * self.CONSTS['theta9'])) + ((self.theta6_adj + C['theta6']) * dists.rhypo)) + C["theta10"] 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 """)