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


log_mean [-1.60943791 -0.69314718 -0.51082562 -0.35667494 -0.10536052]
beta [ 0.1904678   0.34344428  0.37524771  0.3902132   0.39421843]
log_mean [-1.44476737 -0.61299075 -0.42800993 -0.26777226  0.        ]
beta [ 0.25709826  0.44293806  0.47886312  0.49239491  0.4951858 ]
log_mean [-0.62383246 -0.32100745 -0.2008292  -0.09482446  0.08577916]
beta [ 0.19231067  0.32261657  0.34520986  0.35434283  0.35672838]

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


mean_tot(ln(x)) =  [ 0.35236071  0.64494374  0.76074345  0.8739955   1.0956855 ]
cov_tot(ln(x)) =  [ 0.68570668  0.65813327  0.66267092  0.66403787  0.66277261]

In [24]: