ParameterPerturbation FunctionBased onEquationNotes
DtopUniformDtop_min/Dtop_max
self.dtop_min + (self.dtop_max - self.dtop_min) * np.random.uniform()

lengthTruncated Normallength_sigma
sample_trunc_norm_dist(self.length, self.length_sigma)
def truncated_normal(mean, std_dev, std_dev_limit=2):
return float(
truncnorm(-std_dev_limit, std_dev_limit, loc=mean, scale=std_dev).rvs()
)

DbotTruncated Normaldbot_sigma
(as above)

dipTruncated Normaldip_sigma
(as above)

slip_rateTruncated Normalslip_rate_sigma
(as above)

coupling_coeffTruncated Normalcoupling_coeff_sigma
(as above)

mwTruncated Normal0.2 (hardcoded)
sample_trunc_norm_dist(self.mw, 0.2, std_dev_limit=1)

Recur_int_median-mw→moment, slip_rate, nhm_moment
moment = mag_scaling.mag2mom_nm(mw)
moment_base = mag_scaling.mag2mom_nm(self.mw)
moment_rate_base = moment_base * 1 / self.recur_int_median

# if the slip rate is 0, then the moment rate does not need scaling
if self.slip_rate > 0:
slip_factor = slip_rate / self.slip_rate
else:
slip_factor = 1

moment_rate = moment_rate_base * slip_factor
recur_int_median = moment / moment_rate

  • No labels