Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 3.39 KB

README.md

File metadata and controls

53 lines (42 loc) · 3.39 KB

LOGO

Reproducible material to perform adaptive subtraction to correct predicted multiples. Synthetic seismic data is modeled and multiples are predicted following the SRME method. We tried using an L1-L1 approach, where the optimization on the patched data is conducted by the ADMM. Additionally, the Curvelet Transform is used to separate primaries from multiples, and with 2 masking methods multiples are (better) supressed.

Project structure

This repository is organized as follows:

  • 📂 adasubtraction: python library containing routines to step-by-step process to remove multiples from synthetic and real data;
  • 📂 data: folder containing the SEAM Phase 2D Velocity Model. You can find instructions to directly download the data;
  • 📂 figures: folder containing some figures used in the notebooks;
  • 📂 notebooks: set of jupyter notebooks compressing data generation, surface related multiples prediction and multiples elimination;
  • 📂 scripts: set of python scripts used to to forward seismic modeling and to predict multiples;

Notebooks

The following notebooks are provided:

  • 📙 Data_Modeling.ipynb: notebook doing modeling of seismic data and primaries with ghosts with the Devito engine;
  • 📙 Multiples_Prediction.ipynb: notebook carrying out multidimensional convolution with a full seismic data set to predict surface related multiples;
  • 📙 Adaptive_Subtraction.ipynb: notebook performing adaptive subtraction on with the ADMM in a 1D example (as in Guitton and Verschuur, 2004), on synthetic seismic CSGs and on the Voring dataset;
  • 📁 Primary_Multiple_Curvelet_Separation: set of notebooks generating masks with predicted multiples and conducting separation of primaries and multiples in the curvelet domain. Three different cases are illustrated;

Scripts

The following scripts are provided:

  • 📃 model_data.py: wrapper for seismic modeling of a full 2D dataset. Recommended to run this script on the terminal instead of running the code on the notebooks.
  • 📃 create_multiples.py: wrapper for SRME prediction using MDC. Recommended to run this script on the terminal instead of running the code on the notebooks.

Getting started 👾 🤖

To ensure reproducibility of the results, we suggest using the environment.yml file when creating an environment. Note that for the notebook Primary_Multiple_Curvelet_Separation.ipynb is neccesary to use a different environment (instructions are provided).

To create main environment, simply run:

./install_env.sh

Additionally, you will need to install pylops_37 env:


./install_pylops_37_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 adasubtraction

or in developer mode:

pip install -e adasubtraction

Remember to always activate the environment by typing:

conda activate adasubtraction

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.