Skip to content

Seismic data processing with ML and deep learning

License

Notifications You must be signed in to change notification settings

learnserd/SeismicPro

Repository files navigation

License: CC BY-NC-SA 4.0 Python Run Status

SeismicPro

Machine learning for field seismic data processing.

Content

About

SeismicPro provides a framework for machine learning on field seismic data.

Installation

git clone --recursive https://github.com/gazprom-neft/SeismicPro.git

Tutorials

A set of IPython Notebooks introduces step-by-step the SeismicPro framework:

  1. Index explains how to index data with respect to traces, field records, shot points etc.
  2. Batch shows how to load data, perform various actions with seismic traces and visualize them.
  3. Dataset describes how to calculate some parameters for all dataset.
  4. Models notebook shows how to build and run pipelines for model training, inference and evaluation with respect to ground-roll noise attenuation problem.

File formats

Seismic data

Seismic data are expected to be in SEG-Y format.

SPS data

SPS data are expected as R, S, X text files in csv (comma-separated-values) format with required and optional headers:

  • Required R file headers: rline, rid, x, y, z.
  • Required S file headers: sline, sid, x, y, z.
  • Required X file headers: FieldRecord, sline, sid, from_channel, to_channel, from_recaiver, to_receiver.

Picking data

File with first-break picking data is expected to be in csv (comma-separated-values) format with columns FieldRecord, TraceNumber, FIRST_BREAK_TIME.

Datasets

Problem Number of datasets Number of fields
Ground-roll attenuation 3 551, 991, 628
First-break picking 3 1001, 1001, 460
Spherical divergence correction 1 10

Models

Model Architecture Metrics
Ground-roll attenuation U-Net 1D 0.004 MAE for dataset 1
Ground-roll attenuation U-Net Attention 1D 0.007 MAE for dataset 1
First-break picking U-Net 1D 0.06 MAE for dataset 1
0.7 MAE for dataset 2
15.9 MAE for dataset 3
First-break picking Coppen's analytical method 7.57 MAE for dataset 1
7.19 MAE for dataset 2
12.6 MAE for dataset 3
First-break picking Hidden Markov model 2.6 MAE for dataset 1
23.4 MAE for dataset 2
8.0 MAE for dataset 3
Spherical divergence correction Time and speed based method 0.0017 Derivative metric

Installation

SeismicPro module is in the beta stage. Your suggestions and improvements are very welcome.

SeismicPro supports python 3.5 or higher.

Installation as a python package

With pipenv:

pipenv install git+https://github.com/gazprom-neft/SeismicPro.git#egg=SeismicPro

With pip:

pip3 install git+https://github.com/gazprom-neft/SeismicPro.git

After that just import seismicpro:

import seismicpro

Installation as a project repository

When cloning repo from GitHub use flag --recursive to make sure that batchflow submodule is also cloned.

git clone --recursive https://github.com/gazprom-neft/SeismicPro.git

Literature

Some articles related to seismic data processing:

Citing SeismicPro

Please cite SeismicPro in your publications if it helps your research.

Khudorozhkov R., Illarionov E., Broilovskiy A., Kalashnikov N., Podvyaznikov D. SeismicPro library for seismic data processing and ML models training and inference. 2019.
@misc{seismicpro_2019,
  author       = {R. Khudorozhkov and E. Illarionov and A. Broilovskiy and N. Kalashnikov and D. Podvyaznikov},
  title        = {SeismicPro library for seismic data processing and ML models training and inference},
  year         = 2019
}

About

Seismic data processing with ML and deep learning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages