Implementation of seismic-based bedload transport models, including the saltation-mode model (Tsai et al., 2012) and multi-mode model (Luong et al., 2024). This package is designed to estimate bedload flux using seismic methods.
- Saltation-mode bedload transport model
- Multi-mode bedload transport model (in testing)
- Forward modeling for PSD, and backward inversion for bedload flux
- Support for grain size distributions (pD) in forward and inverse modeling
You can install the package using either pip or by cloning this repo and install it locally:
pip install seismic_bedloadimport numpy as np
import matplotlib.pyplot as plt
from seismic_bedload import SaltationModel, MultimodeModel
from seismic_bedload import log_raised_cosine_pdf
f = np.linspace(0.001, 20, 100) #frequency window
D = 0.3 # grain size (m)
H = 4.0 # flow depth (m)
W = 50 # river width (m)
theta = np.tan(1.4*np.pi/180)
r0 = 600 # source-receiver distance (m)
qb = 1e-3 # volumetric bedload flux per unit width (m2/s)
model = SaltationModel()
# Forward modeling of PSD
psd = model.forward_psd(f, D, H, W, theta, r0, qb)
# Reproduce Tsai results
plt.plot(f, psd)
plt.show()
# Inverting bedload flux using Pinos dataset
PSD_obs = np.loadtxt("data/pinos/PSD.txt")
H = np.loadtxt("data/pinos/flowdepth.txt")
# Need to make sure PSD_obs and H have the same length
idx = np.arange(49, (49+317))
PSD_obs = PSD_obs[idx]
H = H/100 # depth to meter
# Data for Pinos
f = np.linspace(30, 80, 10) # frequency (Hz)
D = np.asarray(np.linspace(0.0001,0.07,100))
sigma = 0.85
mu = 0.009
s = sigma/np.sqrt(1/3-2/np.pi**2)
pD = log_raised_cosine_pdf(D, mu, s)/D
tau_c50 = 0.045 # Critical shield for D50 (-)
D50 = 0.005 # mean grain size D50 (m)
W = 10 # river width (m)
theta = np.tan(0.7*np.pi/180) # slope (-)
r0 = 17 # source-receiver distance (m)
qb = 1 # Set qb = 1 for inverse mode m2/s
bedload_flux = model.inverse_bedload(PSD_obs, f, D, H, W, theta, r0, qb = 1, D50=D50, tau_c50=tau_c50, pdf = pD) # m2/s
bedload_flux = bedload_flux * 2700 # to (kg/m/s)Allows grain size distribution (pD) to be called from forward and inverse method- Implementing empirical models
- Multi-mode model testing
- Particle velocity update
Tsai, V.C., Minchew, B., Lamb, M.P. and Ampuero, J.P., 2012. A physical model for seismic noise generation from sediment transport in rivers. Geophysical Research Letters, 39(2).
Luong, L., Cadol, D., Bilek, S., McLaughlin, J.M., Laronne, J.B. and Turowski, J.M., 2024. Seismic modeling of bedload transport in a gravel‐bed alluvial channel. Journal of Geophysical Research: Earth Surface, 129(9), p.e2024JF007761.
This project is licensed under the MIT License.