Giter VIP home page Giter VIP logo

elastic-impedance-inversion-using-recurrent-neural-networks's Introduction

Semi-Supervised Sequence Modeling for Elastic Impedance Inversion

Motaz Alfarraj, and Ghassan AlRegib

Codes and data for a manuscript published in Interpretation Journal, Aug 2019.

This repository contains the codes for the paper:

M. Alfarraj, and G. AlRegib, "Semi-Supervised Sequence Modeling for Elastic Impedance Inversion," in Interpretation, Aug. 2019. [ArXiv] [SEG Digital Library]

Abstract

Recent applications of machine learning algorithms in the seismic domain have shown great potential in different areas such as seismic inversion and interpretation. However, such algorithms rarely enforce geophysical constraints — the lack of which might lead to undesirable results. To overcome this issue, we have developed a semisupervised sequence modeling framework based on recurrent neural networks for elastic impedance inversion from multiangle seismic data. Specifically, seismic traces and elastic impedance (EI) traces are modeled as a time series. Then, a neural-network-based inversion model comprising convolutional and recurrent neural layers is used to invert seismic data for EI. The proposed workflow uses well-log data to guide the inversion. In addition, it uses seismic forward modeling to regularize the training and to serve as a geophysical constraint for the inversion. The proposed workflow achieves an average correlation of 98% between the estimated and target EI using 10 well logs for training on a synthetic data set.

Sample Results

Estimated EI Section

Incident Angle (degrees) Estimated EI True EI Absolute Difference
0
10
20
30

Scatter plots

0 degrees 10 degrees 20 degrees 30 degrees

Sample traces

x=3300 meters x=8500 meters

Data

The data used in this code are from the elastic model of Marmousi 2 The synthesis of the seismic data is described in the paper

dl=0

The data file should be downloaded automatically when the code is run.

Alternatively, you can download the data file manually at this link and place it in the same folder as main.py file

Both elastic impedance and seismic are saved in the same data.npy file..

Running the code

Requirements:

These are the python libraries that are needed to run the code. Newer version should work fine as well.

bruges==0.3.4
matplotlib==3.1.1
numpy==1.17.0
pyparsing==2.4.1.1
python-dateutil==2.8.0
torch==1.1.0
torchvision==0.3.0
tqdm==4.33.0
wget==3.2

Note: This code is built using PyTorch with GPU support. Follow the instructions on PyTorch's website to install it properly. The code can also be run without GPU, but it will be much slower.

Training and testing

To train the model using the default parameters (as reported in the paper), and test it on the full Marmousi 2 model, run the following command:

python main.py

However, you can choose those parameters by including the arguments and their values. For example, to change the number of training traces, you can run:

python main.py -num_train_wells 10

The list arguments can be found in the file main.py.

Citation:

If you have found our code and data useful, we kindly ask you to cite our work

@article{alfarraj2019semi,
  title={Semi-supervised Sequence Modeling for Elastic Impedance Inversion},
  author={Alfarraj, Motaz and AlRegib, Ghassan},
  journal={Interpretation},
  volume={7},
  number={3},
  pages={1--65},
  year={2019},
  publisher={Society of Exploration Geophysicists and American Association of Petroleum~…}
}

elastic-impedance-inversion-using-recurrent-neural-networks's People

Contributors

motazalfarraj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

elastic-impedance-inversion-using-recurrent-neural-networks's Issues

Forward Model and Raw Data for Generating Synthetic Seismic

Dear Motaz,

Thank you for sharing your implementation with your paper.
Very interesting!

I was wondering, in your paper you state that the modeling for the synthetic seismic data (which you invert), you followed the approach outlined in Martin et al 2006.

Can you confirm this was done using a physics based approach using the same acquisition geometry and software used for the Marmousi 2 data?

Any chance to release the non-noisy data as well?

Many thanks!

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.