Tutorial 06: Seismic AVO Forward Modeling#
Note
This tutorial is available as a Python script examples/06_seismic_avo_forward.py and an interactive Jupyter notebook examples/notebooks/06_seismic_avo_forward.ipynb.
Generate pre-stack seismic angle gathers from geological models through rock physics and AVO reflectivity.
What You Will Learn#
End-to-end workflow: porosity → velocities → reflectivity → seismic
Use
compute_reflectivityfor angle-dependent AVO modelingBuild convolution matrices with
create_conv_matrixGenerate synthetic pre-stack angle gathers
Key Concepts#
AVO (Amplitude Variation with Offset) analysis exploits the fact that reflection amplitudes change with incidence angle, providing information about fluid content and lithology.
Code Highlights#
from geobrain.physics.wave import RickerWavelet, compute_reflectivity, create_conv_matrix
# Angle-dependent reflectivity
refl = compute_reflectivity(vp1, vs1, rho1, vp2, vs2, rho2,
theta=[12, 24, 36], method='shuey')
# Wavelet convolution
ricker = RickerWavelet()
wavelet, _ = ricker(f0=25.0, dt=0.001)
W = create_conv_matrix(wavelet, n_samples)
seismic = refl @ W[nsW:-nsW].T
Results#
Fig. 46 Ricker wavelets at different dominant frequencies.#
Fig. 47 Elastic property fields: Vp, Vs, density.#
Fig. 48 Synthetic pre-stack seismic angle gathers.#