Machine learning for field seismic data processing.
SeismicPro provides a framework for machine learning on field seismic data.
git clone --recursive https://github.com/gazprom-neft/SeismicPro.git
A set of IPython Notebooks introduces step-by-step the SeismicPro framework:
- Index explains how to index data with respect to traces, field records, shot points etc.
- Batch shows how to load data, perform various actions with seismic traces and visualize them.
- Dataset describes how to calculate some parameters for all dataset.
- Models notebook shows how to build and run pipelines for model training, inference and evaluation with respect to ground-roll noise attenuation problem.
Seismic data are expected to be in SEG-Y format.
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.
File with first-break picking data is expected to be in csv (comma-separated-values) format with columns FieldRecord, TraceNumber, FIRST_BREAK_TIME.
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 |
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 |
SeismicPro
module is in the beta stage. Your suggestions and improvements are very welcome.
SeismicPro
supports python 3.6 or higher.
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
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
Some articles related to seismic data processing:
- Deep learning tutorial for denoising
- Seismic images construction
- Difraction
- Automatic first-breaks picking: New strategies and algorithms
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
}