Source code for openquake.hazardlib.gsim.berge_thierry_2003
# -*- coding: utf-8 -*-# vim: tabstop=4 shiftwidth=4 softtabstop=4## Copyright (C) 2014-2025 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:`BergeThierryEtAl2003SIGMA`."""importcopyimportnumpyasnpfromscipy.constantsimportgfromopenquake.hazardlib.gsim.baseimportGMPE,CoeffsTablefromopenquake.hazardlibimportconstfromopenquake.hazardlib.imtimportPGA,SA# TODO: Check whether lower validity bound is 4 or 7 kmdef_compute(self,ctx:np.recarray,imts,mean,sig,tau,phi,mag_conversion_sigma=0.):form,imtinenumerate(imts):C=self.COEFFS[imt]# clip distance at 4 km, minimum distance for which the equation is# valid (see section 2.2.4, page 201). This also avoids singularity# in the equationrhypo=np.array(ctx.rhypo)# make a copyrhypo[rhypo<4.]=4.mean[m]=C['a']*ctx.mag+C['b']*rhypo-np.log10(rhypo)mean[m,ctx.vs30>=800]+=C['c1']mean[m,ctx.vs30<800]+=C['c2']# convert from log10 to ln, and from cm/s2 to gmean[m]=mean[m]*np.log(10)-2*np.log(10)-np.log(g)sigma=C['sigma']*np.log(10)sig[m]=np.sqrt(sigma**2+C['a']**2*mag_conversion_sigma**2)
[docs]classBergeThierryEtAl2003SIGMA(BergeThierryEtAl2003Ms):""" Implements GMPE developed by Catherine Berge-Thierry, Fabrice Cotton, Oona Scoti, Daphne-Anne Griot-Pommera, and Yoshimitsu Fukushima and published as "New Empirical Response Spectral Attenuation Laws For Moderate European Earthquakes" (2003, Journal of Earthquake Engineering, 193-222) The class implements also adjustment of the sigma value as required by the SIGMA project to make standard deviations compatible with Mw (the GMPE was originally developed for Ms). Additional reference: Carbon, D. et al., 2012, Final preliminary Probabilistic Hazard map for France's southeast 1/4, Deliverable D4-18, p.31, SIGMA project. """
[docs]classBergeThierryEtAl2003MwW(BergeThierryEtAl2003Ms):""" Mw version of the Berge-Thierry et al. (2003) GMPE. For this conversion we use the Weatherill et al. (2016) conversion equation between Ms and Mw Bilinear magnitude conversion relation. """
[docs]classBergeThierryEtAl2003MwL_MED(BergeThierryEtAl2003Ms):""" Mw version of the Berge-Thierry et al. (2003) GMPE. For this conversion we use the Lolli et al. (2014) conversion equation between Ms and Mw for the Euro-Mediterranean region. Exponential model: Mw = exp(a+b*Ms)+c with slope=b*exp(a+b*Ms) Parameters: (a,b,c) = (2.133,0.063,-6.205) """
[docs]classBergeThierryEtAl2003MwL_ITA(BergeThierryEtAl2003Ms):""" Mw version of the Berge-Thierry et al. (2003) GMPE. For this conversion we use the Lolli et al. (2014) conversion equation between Ms and Mw for the ITA region. Exponential model: Mw = exp(a+b*Ms)+c with slope=b*exp(a+b*Ms) Parameters: (a,b,c) = (1.421,0.108,-1.863) """
[docs]classBergeThierryEtAl2003MwL_GBL(BergeThierryEtAl2003Ms):""" Mw version of the Berge-Thierry et al. (2003) GMPE. For this conversion we use the Lolli et al. (2014) conversion equation between Ms and Mw for the GBL region (i.e. Global Scale). Exponential model: Mw = exp(a + b * Ms) + c with slope = b * exp(a + b * Ms) Parameters: for Ms<=5.5: (a,b,c) = (2.133,0.063,-6.205) for Ms>5.5: (a,b,c) = (-0.109,0.229,2.586) """