def cumslip_from_rate(mrange, cumrate, mu, area): from mag_tools import mw2m0 from numpy import nan, nansum, array area = sqkm2sqm(area) M0array = [] for i, mw in enumerate(mrange[0:-1]): # get eq rate rate = cumrate[i] - cumrate[i+1] if rate < 0.0 or cumrate[i+1] < 0.0: tmpM0r = nan else: tmpM0r = mw2m0(mw) * rate M0array.append(tmpM0r) # now sum moment rate M0r = nansum(M0array) # clac total slip sr = m2mm(M0r / (mu * area)) # get slip per mag bin srpb = m2mm(array(M0array) / (mu * area)) # get cummulative slip cumsr = [] for i in range(0, len(srpb)): cumsr.append(nansum(srpb[i:])) return M0r, sr, srpb, cumsr
def mag2area_So15inter_SS(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) # in N-m c = 1.77E-10 sig = 1.527 return 10**(log10(c) + (2./3.) * log10(m0)), sig # in m
def mag2avs_So15inter_SS(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) # in N-m c = 1.23E-07 sig = 1.527 return 10**(log10(c) + (1./3.) * log10(m0)), sig # in m
def mag2maxs_So15inter(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) a = 2.70e-6 b = 1.99 sig = 1.501 return 10**(log10(a) + b * log10(m0)), sig # in m
def mag2avs_So15inter(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) a = 3.39E-8 b = 2.29 sig = 1.522 return 10**(log10(a) + b * log10(m0)), sig # in m
def mag2wid1_So15inter(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) a = 6.75E-03 b = log10(1.59) sig = 1.264 return 10**(log10(a) + b * log10(m0)), sig # in km
def mag2area_So15inter(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) # in N-m a = 1.72E-09 b = log10(4.17) sig = 1.481 return 10**(log10(a) + b * log10(m0)), sig # in km^2
def mag2srl_Cea14(mag, reg): from numpy import log10 from mag_tools import mw2m0 if reg == 'all': a = 16.23 b = 2.03 sig = 0.27 elif reg == 'au': # Aust & Ungava a = 16.21 b = 1.83 sig = 0.18 logM0 = log10(mw2m0(mag)) return 10**((logM0 - a) / b), sig # srl in km
def mag2area_I06intra(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) # in N-m m0_dynecm = m0 * 10E7 a = 0.57 b = -13.5 # correct for dyne-cm to N-m sig = 0.9 return 10**(a * log10(m0_dynecm) + b), sig # in km**2
def mag2wid2_So15inter(mag): from numpy import log10 from mag_tools import mw2m0 m0 = mw2m0(mag) a = 1.66E-04 b = log10(1.90) sig = 1.259 wid = 10**(log10(a) + b * log10(m0)) # check if wid GT 200 km for i in range(0, len(wid)): if wid[i] > 200.: wid[i] = 200. return wid, sig # in km
def mag2avs_Mu13inter(mag): from mag_tools import mw2m0 m0 = mw2m0(mag) sig = 1.64 return 1.66E-7 * m0**(1./3.), sig
def mag2area_Mu13inter(mag): from mag_tools import mw2m0 m0 = mw2m0(mag) sig = 1.54 return 1.34e-10 * m0**(2./3.), sig
bins, reg_fmag, log10(reg_flen)) meanfwid, stdwid, meanmagw, newbins = get_binned_stats_mean( bins, reg_fmag, log10(reg_fwid)) meanfarea, stdarea, meanmaga, newbins = get_binned_stats_mean( bins, reg_fmag, log10(reg_farea)) meanfavs, stdavs, meanmagav, newbins = get_binned_stats_mean( bins, reg_fmag, log10(reg_favs)) meanfmxs, stdmxs, meanmagmx, newbins = get_binned_stats_mean( bins, reg_fmag, log10(reg_fmxs)) ''' ######################################################################################## ''' coeftxt = 'Function,a,b,SEa,SEb,sig,Condition\n' # make uncertainty arrays for weighting for ODR reg_logMo = (mw2m0(array(reg_fmag))) #sx = ones(len(reg_fmag))*0.1 # uniform uncertainty of 0.2 mu #sx = ones(len(reg_fmag))*0.2 im = [7.5, 8.0] isi = [0.2, 0.1] sx = interp(reg_fmag, im, isi) #idx = reg_fmag >= 8.0 #sx[idx] = 0.1 sy = sx # do ODR on raw data func = models.polynomial(1) #data = Data(array(inter_fmag),log10(array(inter_flen))) data = odrpack.RealData(array(reg_fmag), log10(array(reg_flen)), sx=sx, sy=sy)