Example #1
0
def test_windows():

    array1 = np.zeros(7, dtype=np.int)
    array2 = np.zeros(8, dtype=np.int)
    array1[3] = 1
    array2[4] = 1

    assert(my_centered(array1, 5))[2] == 1
    assert(my_centered(array2, 5))[2] == 1
    assert(my_centered(array1, 9))[4] == 1
    assert(my_centered(array2, 9))[4] == 1

    tr = Trace()
    tr.stats.sac = {}
    tr.stats.sac['dist'] = 3.0
    tr.data = my_centered(array1, 15) + 1
    params = {}
    params['hw'] = 1
    params['sep_noise'] = 0
    params['win_overlap'] = True
    params['wtype'] = 'hann'
    params['causal_side'] = True
    win = get_window(tr.stats, g_speed=1.0, params=params)
    assert(len(win) == 3)
    assert(pytest.approx(win[0][10]) == 1.0)

    snr = snratio(tr, g_speed=1.0, window_params=params)
    assert(int(snr) == 1)
Example #2
0
def windowed_waveform(correlation, g_speed, window_params):
    window = get_window(correlation.stats, g_speed, window_params)
    win = window[0]
    if window[2]:
        win_caus = (correlation.data * win)
        win_acaus = (correlation.data * win[::-1])
        msr = win_caus + win_acaus
    else:
        msr = win - win + np.nan
    return msr
Example #3
0
def energy(corr_o, corr_s, g_speed, window_params):

    success = False
    window = wn.get_window(corr_o.stats, g_speed, window_params)

    win = window[0]
    if window[2]:
        u1 = 2 * np.multiply(np.power(win, 2), corr_s.data)
        u2 = 2 * np.multiply(np.power(win[::-1], 2), corr_s.data)
        adjt_src = [u1, u2]
        success = True
    else:
        adjt_src = [win - win + np.nan, win - win + np.nan]

    return adjt_src, success
Example #4
0
def windowed_waveform(corr_o, corr_s, g_speed, window_params):

    success = False
    window = wn.get_window(corr_o.stats, g_speed, window_params)
    win = window[0] + window[0][::-1]
    if window[2]:

        u_s = np.multiply(win, corr_s.data)
        u_o = np.multiply(win, corr_o.data)

        adjt_src = np.multiply(win, (u_s - u_o))
        success = True
    else:
        adjt_src = win - win + np.nan

    return adjt_src, success
Example #5
0
def log_en_ratio(correlation, g_speed, window_params):
    delta = correlation.stats.delta
    window = get_window(correlation.stats, g_speed, window_params)
    win = window[0]

    if window[2]:

        sig_c = correlation.data * win
        sig_a = correlation.data * win[::-1]
        E_plus = np.trapz(np.power(sig_c, 2)) * delta
        E_minus = np.trapz(np.power(sig_a, 2)) * delta
        msr = log(E_plus / (E_minus + np.finfo(E_minus).tiny))

        if window_params['plot']:
            plot_window(correlation, win, msr)
    else:
        msr = np.nan
    return msr
Example #6
0
def energy(correlation, g_speed, window_params):

    window = get_window(correlation.stats, g_speed, window_params)
    msr = [np.nan, np.nan]
    win = window[0]

    if window[2]:
        # causal
        E = np.trapz((correlation.data * win)**2)
        msr[0] = E
        if window_params['plot']:
            plot_window(correlation, win, E)

        # acausal
        win = win[::-1]
        E = np.trapz((correlation.data * win)**2)
        msr[1] = E
        if window_params['plot']:
            plot_window(correlation, win, E)

    return np.array(msr)
Example #7
0
def log_en_ratio_adj(corr_o, corr_s, g_speed, window_params):

    success = False
    window = wn.get_window(corr_o.stats, g_speed, window_params)
    win = window[0]

    wn.my_centered(corr_s.data, corr_o.stats.npts)

    if window[2]:
        sig_c = corr_s.data * win
        sig_a = corr_s.data * win[::-1]
        E_plus = np.trapz(np.power(sig_c, 2)) * corr_s.stats.delta
        E_minus = np.trapz(np.power(sig_a, 2)) * corr_s.stats.delta
        # to win**2
        u_plus = sig_c * win
        u_minus = sig_a * win[::-1]
        adjt_src = 2. * (u_plus / E_plus - u_minus / E_minus)
        success = True
    else:
        adjt_src = win - win + np.nan
    return adjt_src, success