2024年5月5日日曜日

Dispersion Analysis

SASW (Spectral analysis of surface waves)

extract the phase from cross-power spectrum S
Θ12(ω) = arg(S12(ω)) = k(ω)(x2-x1)
V(ω) = ω(x2-x1) / Θ12(ω)

MASW (Multi source Analysis of surface waves)
https://github.com/luan-th-nguyen/PyDispersion/blob/master/src/dispersion.py
calculate dispersion curves after Park et al. 1998

for fi in range(fmax_idx): # loop over frequency range     for ci in range(len(c)): # loop over phase velocity range         k = 2.0*np.pi*f[fi]/(c[ci])         img[ci,fi] = np.abs(np.dot(dx * np.exp(1.0j*k*x),                            U[:,fi]/np.abs(U[:,fi])))

Slant stack method after McMechan and Yedlin 1981

for fi in range(fmax_idx): # loop over frequency range     for pi in range(len(p)): # loop over slowness         k = 2.0*np.pi*f[fi]*p[pi]         Upf[pi,fi] = np.dot(dx * np.exp(1.0j*k*x), U[:,fi]/np.abs(U[:,fi]))   Utaup = np.zeros((len(t)//2, len(p)), dtype = complex)
    for pi in range(len(p)):
    Utaup[:,pi] = get_ifft(Upf[pi,:])


0 件のコメント:

コメントを投稿