Skip to content

This repository implements the frequency-domain adapt-then-combine full waveform inversion in Python, a fully distributed version of the FWI suited for seismic networks.

Notifications You must be signed in to change notification settings

bshin/fd-atcfwi

Repository files navigation

Frequency-Domain Adapt-Then-Combine Full Waveform Inversion (FD-ATCFWI)

This repository implements the Frequency-Domain Adapt-Then-Combine Full Waveform Inversion (FD-ATCFWI) with Tikhonov and total variation regularization for distributed, high-resolution subsurface imaging in seismic networks. As long as the seismic network graph is connected, each receiver in the network obtains a subsurface image locally via data exchange with directly connected receivers.

The code uses GMRES to solve the Helmholtz equation with 2nd Clayton-Enquist boundary conditions. The forward solver is a Python version of the Helmholtz solver implemented in Fast Helmholtz solver.

ATC-FWI result

The figure shows reconstruction of the Marmousi benchmark model at different receivers whose location is indicated by the triangle.

Running the script

The main file is FWIHELM_MAIN.py where you can select the algorithm (FWIor ATCFWI) and the subsurface model (two_ellipses or marmousi). In config.py predefined parameter and simulation settings are stored which are loaded by the script. If you want to play with parameter settings, you can do that there.

Note: Running the ATCFWI can result in very long (several hours) simulation time. Therefore, this option should be chosen after deciding for a proper simulation machine or time of the day!

Requirements

  • numpy
  • matplotlib
  • scipy
  • scikit-image
  • joblib
  • pyprind

Citation

If you find our work helpful, please cite the following paper:

@inproceedings{Shin2025,
  author = {Shin, Ban-Sok and Shutin, Dmitriy},
  title = {Distributed Subsurface Imaging with Tikhonov and Total Variation Regularization for Seismic Networks},
  booktitle = {European Signal Processing Conference (EUSIPCO)},
  year={2025}
}

Thank you 🌠

About

This repository implements the frequency-domain adapt-then-combine full waveform inversion in Python, a fully distributed version of the FWI suited for seismic networks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages