Skip to content

DIG-Kaust/DeepPrecs

Repository files navigation

LOGO

deepprecs is a Python library aimed at providing the fundamental building blocks to solve Inverse Problems with the aid of Deep Preconditioners: this library is implemented on top of Pytorch-Lightning (for network training) and PyLops (for physical operators).

For more details refer to the accompanying papers: Ravasi (2022), Deep Preconditioners and their application to seismic wavefield processing - Frontiers in Earth Science and Xu et al. (2022), Intelligent seismic deblending through deep preconditioner - IEEE.

Project structure

This repository is organized as follows:

  • 📂 deepprecs: python library containing routines for training and application of deep preconditioners to inverse problems;
  • 📂 data: folder containing instructions on how to retrieve the data used in the examples;
  • 📂 notebooks: set of jupyter notebooks applying deep preconditioners to a number of problems of increasing complexity;
  • 📂 scripts: set of python scripts used to run seismic interpolation experiments in batch mode;
  • 📂 config: set of configuration files to run scripts.

Notebooks

The following notebooks are provided:

  • 📙 sinusoids/Sinusoid_reconstruction_pl.ipynb: notebook performing 1D interpolation with deep precondtioners;
  • 📙 syncline/Syncline_deghosting_pl.ipynb: notebook performing deghosting of a Syncline shot gather with deep preconditioners (including training);
  • 📙 syncline/Syncline_deghosting_inferenceonly.ipynb: notebook performing deghosting of a Syncline shot gather with deep precondtioners (only inference with pre-trained model);
  • 📙 syncline/Syncline_deblending_pl.ipynb: notebook performing deblending of a Syncline receiver gather with deep precondtioners (including training);
  • 📙 marmousi/Marmousi_deghosting_pl.ipynb: notebook performing deghosting of a Marmousi shot gather with deep preconditioners (including training);

Getting started 👾 🤖

To ensure reproducibility of the results, we suggest using the environment.yml file when creating an environment.

Simply run:

./install_env.sh

It will take some time, if at the end you see the word Done! on your terminal you are ready to go. After that you can simply install your package:

pip install .

or in developer mode:

pip install -e .

Remember to always activate the environment by typing:

conda activate deepprecs

Disclaimer: All experiments have been carried on a Intel(R) Xeon(R) CPU @ 2.10GHz equipped with a single NVIDIA GEForce RTX 3090 GPU. Different environment configurations may be required for different combinations of workstation and GPU.

Citing 📰 🏆

If you find this library useful for your work, please cite the following papers

@article{ravasi2022,
	title={Deep Preconditioners and their application to seismic wavefield processing},
	authors={M., Ravasi},
	journal={Frontiers in Earth Science},
	year={2022}
}
@article{xu2022,
	title={Deep Preconditioners and their application to seismic wavefield processing},
	authors={W. Xu, V. Lipari, P. Bestagini, M. Ravasi, W. Chen, S. Tubaro},
	journal={IEEE Geoscience and Remote Sensing Letters},
	year={2022}
}

About

Deep Preconditioned Inverse problems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages