Code Monkey home page Code Monkey logo

adaptive-subtraction's Introduction

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.

adaptive-subtraction's People

Contributors

uber30 avatar nickluiken avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.