Seismic Modelling and Inversion using PyLops based Python External Attributes

June 26, 2021

The 6.6.8 release of the WMPlugins includes a number of new Python external attribute scripts that use the PyLops linear operator library for seismic modelling and inversion. These scripts also demonstrate the use of the new user interface parameter elements introduced in the 6.6.8 release of the External Attribute plugin.

Assuming wmPlugins is installed using the OpendTect Installation Manager, the scripts will be in the bin/python/wmpy/PyLops folder of the OpendTect software folder and include:

  • PyLops/ex_poststack_inversion.py
  • PyLops/ex_poststack_relative_inversion.py
  • PyLops/ex_poststack_modelling.py
  • PyLops/ex_prestack_modelling.py
  • PyLops/ex_make_1d_seismic.py

Using these scripts requires a Python environment with the PyLops python module and it’s dependencies installed. The section Installing PyLops describes the PyLops installation process. Note that a PyLops python environment includes all the modules required to run any attribute script included with the WMPlugins not just those in the PyLops folder.

Post-Stack Seismic Inversion

The PyLops/ex_poststack_inversion.py script uses the pylops.avo.poststack.PoststackInversion operator to do post-stack seismic inversion. The output is either the log Acoustic Impedance (AI) volume or the residual error.

The inputs required are volumes of the seismic to be inverted, a background log AI model and the seismic wavelet. Note that the polarity of the seismic wavelet must match the data.

The following figures show inversion input and output for a 1D model created by the PyLops/ex_make_1d_seismic.py script.

Impedance Model (red) and Background Model (blue)

Impedance Model (red) and Background Model (blue)

Impedance Model (red) and Seismic Model (blue)

Impedance Model (red) and Seismic Model (blue)

Impedance Model (red) and Inverted Impedance (blue)

Impedance Model (red) and Inverted Impedance (blue)

There is also a PyLops/ex_poststack_relative_inversion.py script that runs the inversion without a background model:

Impedance Model (red) and Inverted Relative Impedance (blue)

Impedance Model (red) and Inverted Relative Impedance (blue)

Inverted Relative Impedance Example

Inverted Relative Impedance Example

Prestack Modelling

The PyLops/ex_prestack_modelling.py script uses the pylops.avo.avo.AVOLinearModelling operator to create a pre-stack angle volume from well data. The output is either an Aki-Richards or Fatti approximate reflectivity model filtered by a user specified wavelet.

The inputs required are 3 log data cubes with compressional sonic (DT in us/m), shear sonic (DTS in us/m) and density (RHOB in g/cc). These can be created from well log data using the “Create Log Cube” right mouse button context menu in the scene well tree or the “Processing|Create Seismic Output|From Well Logs” main menu. Also needed is a wavelet with the appropriate polarity for the data being modelled.

The generated synthetics can be displayed in the 3D window and compared with real angle stack data through the well location.

Installing PyLops

The PyLops Python package and it’s dependencies can be installed in an active conda environment using:

conda install -c conda-forge pylops

or

pip install pylops

See the PyLops documentation for more information.