Seismic Facies and Structural (faults and fractures) Analysis Using Multiple Seismic Attributes

Muhammad Khan
9 min readApr 26, 2021

--

Project Overview

Seismic Facies and Structural (faults and fractures) Analysis Using Multiple Seismic Attributes

3D seismic data is playing key role in oil and gas exploration last many decades. Reservoir rocks (Oil and gas storage rock) are heterogenous in nature means rock properties (porosity, permeability, lithology and rock types) vary aerial and vertically but mainly depend the rock depositional processes and later on tectonic activity. In this project, 11 different types of seismic attributes have been used to predict the seismic facies and identify faults & fractures using Machine Learning (ML) techniques (Unsupervised and Supervised).

A seismic facies unit is a sedimentary body (contain same characteristic in term fossils, sedimentary structure, grain color and sizes) which is different from adjacent units in its seismic characteristics. For seismic facies analysis following seismic attributes taken into consideration: Amplitude, Sweetness, Envelope, Polarity, CosPhase, AI,Ampl_Contrast and, Rms_Amplitude.

Combination of these seismic attributes helped to map seismic facies by using Unsupervised and supervised ML Techniques. Facies are rock bodies. The second objective is to identify faults and fracture corridors that are tectonically developed Million of year later after the rock deposition.

Seismic facies and faults & fractures are playing a key role in oil and gas production.

Problem Statement

The main objective of this project is to establish relationship of different seismic attributes that are computed from seismic data at reservoir level and also find the relationship with rock property (porosity, lithology, etc.) to identify the sweet spot of oil and gas wells drilling.

To capture the reservoir rock heterogeneity and map good reservoir facies separately with adjacent bad reservoir facies, need to use automatic ML clustering techniques which help to integrate and use the full extent of all available data and produce fruitful results by increasing confidence for oil and gas exploration and development.

KMeans and SVM clustering algorithms have been used to map and predict seismic facies using different seismic attributes on the basis of the unsupervised and supervised ML techniques. Both techniques produced promising results that helped to capture the reservoir heterogeneity and separate the good facies from bad reservoir facies.

Metrics

Predicted seismic facies are validated at few known locations that are also used in supervised ML classification techniques. ML techniques helps to identify the best reservoir and fractures areas that are directly relate to rock porosity (Storage capacity) and permeability in term of fractures reservoir.

For KMeans, Elbow plot and silhouette coefficient results predict that 4 clusters are good enough to map rock facies having the same characteristic on the basis of multiple attributes. I observed, if all stratigraphic columns data is used attributes silhouette coefficient value is 0.364 and if used few attributes having a higher correlation coefficient than silhouette coefficient value increase to 0.46.

As I discussed in the project review section, rock heterogenous nature also impacted the coefficient values.

SVM case, model prediction accuracy on test data is 0.666 which is fine, and results also are acceptable. We can increase the accuracy by reducing the number of labeled data from 5 to 4 by merging very adjacent facies.

Data Analysis

Data information:

Public domain Seismic data has been used in G&G application and extracted seismic attributes at reservoir level to predict facies and identify the minor discontinuities (minor faults and fractures). Cloudspin and F03 data are available on most G&G applications vendors' websites.

In the project, two CSV data files have been used. The names of the files are Seismic_Horizons.csv, Supervised_Horizon_data.csv. These two files contain the Seismic attributes and label data information for the supervised ML classifier.

Data Exploration

Following steps are covered during data exploration task

· Import required Python Libraries

· Import data set as pandas DataFrame

· Check the data Statistic

· Check the number of Columns in dataset

· Find Null values in data set

· Check the Duplicates

Following python libraries are used.

# Import Required Librariesimport pandas as pdimport numpy as npfrom pandas import read_csvfrom pandas.plotting import scatter_matriximport matplotlib.pyplot as plt%matplotlib inlineimport seaborn as snsplt.style.use('seaborn-white')from sklearn.datasets import make_blobsfrom sklearn.cluster import KMeansfrom sklearn.preprocessing import MinMaxScalerfrom sklearn.metrics import silhouette_scorefrom sklearn.preprocessing import StandardScalerfrom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import cross_val_scorefrom sklearn.metrics import classification_reportfrom sklearn.metrics import confusion_matrix

Data files are imported as csv files. No Null and duplicates values are found in the dataset. Dataset is clean form when exported from G&G application. For details, please see jupyter notebook available on Github.

Data Visualization

The following steps are covered during the data exploration task

1: Generate Histogram to check the seismic attributes data distribution

2: Generate Heatmap of Seismic Attributes

3: Pairplot of data

4: Check the number of Columns in the dataset

Histograms show no outlier in the data found
Heat map represents the data column data correlation and relationship

I observed there are two sets of seismic attributes that are having a good correlation with each other.

On the basis heatmap, data need to two divided into two groups.

Stratigraphic group (strata) : Amplitude, Sweetness, Envelope, Polarity, AI, CosPhase, Ampl_Contrast, and RMS_amplitude good correlation between each other

Structural Group (Structure): Dip,Azimuth,Variance,CosPhase,Ampl_Contrast Good correlation between each other.

the figure shows the pair plot of the Stratigraphic group dataset. It is observed some attributes has good correlation with each other that can used for seismic facies clustering.
The figure shows the pair plot of the Structural group dataset. This plot helped to identify key attributes for faults and fracture prediction.
The figure represents the seismic amplitude at the reservoir level. The red color represents the good reservoir quality

Methodology

Un-Supervised and Supervised Machine Learning Techniques are used to reveal geological features from data.

Data Preprocessing

In this task, data is divided into two groups (strata and Structural). Second, data is scaled before using in ML classification technique. Some scatter plots are created to analyze the relationship of the variables. No other data preprocessing task is required because data is already cleaned form when exported from G&G application.

Un-Supervised Machine Learning

Implementation

First, I used the KMeans clustering techniques to find the number of data clusters on the basis of different variables which can be used to identify the good reservoir and fault & fracture zones.

Stratigraphic Analysis

AI vs Amplitude cross plot to identify the number of clusters

In KMeans clustering first run with 5 clusters. The below figure represents the cross plot of AI vs Amplitude and color-coded with cluster color. Stars are the centroid location of KMeans algorithm.

the figure represents the seismic amplitude at the reservoir level. The red color represents the good reservoir quality
The figure represents the KMean clustering at the reservoir level. The blue color represents the good reservoir quality

Results

Model Evaluation and Validation

KMeans Clustering technique captures the seismic Red amplitude of interest as shown in the figure: Seismic Amplitude display but divide into two clusters (Blue and Magenta). we need to revise the number of clusters.

To get the correct number of clusters I used the Elbow plot method to find the corrected number of Clusters

Elbow Plot

For Elbow Plot, SSE is computed for 10 numbers clusters

On the basis of the Elbow plot, I selected 4 Clusters (classes) for the next Kmeans run.

Cross plot of KMeans clusters with Cluster centroid (Star symbol).

Here clusters are not center like the previous image because here all variables of data are used

Rms_Amplitude and AI variable cross plot color-coded with cluster and KMeans centroids location

The figure represents the seismic amplitude at the reservoir level. The red color represents the good reservoir quality
The figure represents the KMeans clustering 2nd run results at the reservoir level. The red color cluster represents the good reservoir quality. Results are improved as compared to the previous run.

Results

Model Evaluation and Validation

KMeans Clustering technique with 4 clusters and all variables produced good results that captured the seismic Red amplitude of interest as one cluster (blue), which helps to easily identify the sweet spot by incorporating all seismic attributes in a quick way.

Structural Analysis

In this task, KMeans clustering technique is used to reveal Faults and fractures that are not clear on a dataset

Elbow plot of Structure datsset

On the basis of the Elbow plot, 5 classes need to select but for structure analysis, I selected two clusters. Here I am interested to find fault exists or not (two clusters). I can make more clusters for detailed analysis.

Rms_Amplitude and AI variable cross plot color-coded with Structure cluster generated using KMeans 2 clusters.
The figure represents the seismic rms_amplitude at the reservoir level.
The figure represents the Structural analysis KMeans Clustering results reservoir level. The red color represents the small faults and fracture corridor areas.

Results

Model Evaluation and Validation

KMeans Structural analysis Clustering technique with 2 clusters helps to identify the major fault (white color) and minor discontinuities (blue), which could be minor faults or fractures corridor zones. KMeans clustering technique using multiple structural-related seismic attributes helps to reveal hidden structural elements from data.

Supervised Machine Learning

Implementation

There are many ML algorithms are available but I used SVM to predict facies using the supervised learning technique.

The above figure represents the seismic rms_amplitude at the reservoir level. Stars are the labeled data locations used for facies prediction.
Rms_Amplitude and AI variable cross plot color-coded with label facies of supervised machine learning dataset.
Bar graph of Label facies of supervised machine learning dataset to see the facies distribution by code.
SVM first run facies prediction results

The above figure represents the Seismic facies predicted using SVM at reservoir level using all variables. Stars are the labeled data locations used for facies prediction. Results are improved as comparing the KMeans 2nd run as shown in the below figure.

The above figure represents the Seismic facies predicted using KMeans Clustering 2nd run (4clusters) at the reservoir level

Results

Model Evaluation and Validation

SVM classifier results are better than KMeans prediction but still some places at label point wrong cluster prediction.

Need to refine the model by reducing the number of variables to improve the prediction

To improve the result some seismic attributes are dropped and only four seismic attributes (AI, Rms_Amplitude, Sweetness, and amplitude) are selected.

Above figure represents pair plot of seismic attributes for selected SVM 2nd run
SVM 2nd run facies prediction results

The above figure represents the Seismic facies predicted using SVM 2nd run (4clusters) at reservoir level by using four seismic attributes and labeled data. Results are improved a lot as compare to KMeans 2nd run and SVM 1st run. There is observed above 80 % accuracy.

Results

Model Evaluation and Validation

SVM refine model results are improved by reducing the number of variables.

Still few label points are not predicted well but mostly label points exist in the zone of interest predicted accurately.

Conclusion:

KMeans and SVM classifiers help to reveal the hidden stratigraphic and structural features from multiple numbers of seismic attributes. Python data analytic analysis (Histogram, scatterplot, Matrix plot) enables to find the correlation and dependency of different seismic attributes on each other to feed the right set of attributes to ML classifier to get valuable information from data to identify the sweet spot for oil and gas exploration and field development.

All the ML techniques that I gained in this Nanodegree will help me to automate and reveal the maximum information from the geological and geophysics data. It also provides me a new dimension of how to view data and get utilize in a proper way.

Way Forward or Improvement:

We can improve the results using another classifier or pycaret lib which helps to run all classifiers in one go and select the best accuracy model.

GitHub Link: To get the python code please visit the GitHub link https://github.com/mkhanes70/NanoDegree-Capstone-Project

Resources:

https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1365-2478.1978.tb01600.x

https://library.seg.org/doi/full/10.1190/1.2392789

Multiple Google StackOverflows

https://www.youtube.com/watch?v=EItlUEPCIzM

https://www.youtube.com/watch?v=EItlUEPCIzM&list=RDCMUCh9nVJoWXmFb7sLApWGcLPQ&start_radio=1&t=17

https://www.youtube.com/watch?v=FB5EdxAGxQg

--

--