In [22]:
# Clear existing variables
def clearall():
all = [var for var in globals() if var[0] != "_"]
for var in all:
del globals()[var]
clearall()
import numpy as np
import scipy.stats as stat
import matplotlib.pyplot as plt
import os
from conversions import from_median_to_mean
noBlg = 3
Sa_ratios = [1, 1.2, 0.9]
bTSa = [np.array([0.1904678, 0.34344428, 0.37524771, 0.3902132, 0.39421843]),
np.array([ 0.21424855, 0.36911505, 0.3990526, 0.41032909, 0.41265483]),
np.array([ 0.21367852, 0.35846285, 0.38356651, 0.39371426, 0.39636487])]
SaT50 =[np.array([0.2, 0.5, 0.6, 0.7, 0.9]),
np.array([0.3, 0.6, 0.7, 0.8, 1.0]),
np.array([0.5, 0.7, 0.8, 0.9, 1.1])]
w = np.array([0.3, 0.3, 0.4])
allSa, allbTSa = [], []
In [23]:
# Converting the Sa(T1) to Sa(Tav), the common IM
for blg in range(0,noBlg):
SaTlogmean_av, bTSa_av = np.log(SaT50[blg])*Sa_ratios[blg], np.array(bTSa[blg])*Sa_ratios[blg]
allSa.append(SaTlogmean_av)
allbTSa.append(bTSa_av)
print "log_mean", SaTlogmean_av
print "beta", bTSa_av
In [24]:
# Combine the fragility of each building in a single lognormal curve with
# mean = weighted_mean(means) and std = SRSS(weighted_std(means),weighted_mean(stds))
log_meanSa, log_stSa = [],[]
for i in range(0,len(SaT50[0])):
SaLS = [ele[i] for ele in allSa]
StdSaLS = [ele[i] for ele in allbTSa]
log_meanSa.append(np.average(SaLS,weights = w)) # weighted log-mean
log_stSa.append(np.sqrt(np.sum(w*(np.power((SaLS-log_meanSa[i]),2)+np.power(StdSaLS,2))))) # weighted log-std (dispersion)
[meanSa, stSa] = from_median_to_mean(np.exp(log_meanSa),log_stSa)
cov = np.divide(stSa,meanSa)
print "mean_tot(ln(x)) = ", meanSa
print "cov_tot(ln(x)) = ", cov
In [24]: