示例#1
0
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
示例#2
0
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     
示例#3
0
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 
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
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
示例#8
0
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
示例#9
0
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
示例#10
0
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
示例#11
0
def mag2avs_Mu13inter(mag):
    from mag_tools import mw2m0
    
    m0 = mw2m0(mag)
    sig = 1.64
    return 1.66E-7 * m0**(1./3.), sig
示例#12
0
def mag2area_Mu13inter(mag):
    from mag_tools import mw2m0
    
    m0 = mw2m0(mag)
    sig = 1.54
    return 1.34e-10 * m0**(2./3.), sig
示例#13
0
    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)