User Guide
User Guide
User Guide
chaosgeology
chaosgeology
One annotated inline with 9 facies classes Auto-classified cube with 9 facies classes
chaosgeology
chaosgeology
2
Background
• MalenoV was created as part of the Summer project of Charles Rutherford Ildstad in
ConocoPhillips in July 2017.
• The tool was inspired by the work of Anders U. Waldeland who showed at that he was
successfully classifying the seismic facies of salt using 3D convolutional networks
(http://earthdoc.eage.org/publication/publicationdetails/?publication=88635).
chaosgeology
chaosgeology
• MalenoV reads standard 3D SEGY seismic and performs a 3D neural network architecture of
choice on a given set of classification data points (facies annotation /supervision). It then
uses the learned weights and filters of the neural network to classify seismic at any other
location in the seismic cube into the facies classes that have been previously been defined by
the user. Finally the facies classification is written out as a SEGY cube with the same
dimensions as the input cube
• Currently a 5 layer basic 3D convolutional network is implemented but this can be changed by
the users at liberty
• The tool is public with a GNU Lesser General Public License v3.0
3
Free seismic data - to test MalenoV and other software
Since there is a limited number of free seismic dataset publicly available we decided to make available the
Poseidon (3500km2) seismic dataset acquired for ConocoPhillips Australia including Near, Mid, Far stacks,
well data and velocity data
The Dutch government F3 seismic dataset can also be downloaded from the same location including
This data is only 1 GB
Training data for multi facies prediction, faults and steep dips
Trained neural network models for steep dips and multi facies
4
Requirements
• In order to run the tool you need
• A good/ high performance, Cuda enabled graphics card
• A PC with more than 32GB memory (best 128 GB)
• Install Atom and Anaconda
chaosgeology
chaosgeology
5
Training a neural network
• Implement a neural network architecture and
optimizer
• The currently architecture is a variant from Anders
Waldeland Eage Paper
• This architecture works on seismic data cubelets
(Voxels) of 65x65x65 chaosgeology
chaosgeology
6
Training a neural network - Training data locations
• Create at least two sets of inline, crossline, Z (twt) training data point sets of the
seismic facies you want to classify.
• The tool also allows for classification of n number of facies at the same time. In
this case one needs n data point sets for the training
• One easy way to make il, xl, z point data is using the paintbrush in GEOPROBE
(Landmark) and then using the GEOPROBE utilities to convert the binary file into
chaosgeology
chaosgeology
an Ascii file
• Il, xl, x data can also be made in Petrel
• Training data point sets and seismic needs to be one folder (best C:)
7
Training a neural network - Setting up the tool
Input seismic survey
Number of created training cubes per iteration. This is strongly dependent on your
machine memory. 35000 cubelets works well for 64GB memory.
Data augmentation is currently not implemented. Leave at False
Enter the name of an already trained model here if you want to train
the model more or one other classification training data. In this case
type keras.models.load_model(´F3_two_facies_steep_dip.h5´)
8
Training a neural network - Setting up the tool
• After the first iteration has been run on the cubelets
the tool will estimate how long training will take
• It has been shown than training all the classification
points at least 5 times and 5 epochs per iteration is
a good starting point.
• If you have a lot more classification points than you
chaosgeology
chaosgeology
9
Classifying seismic with a trained model
Input seismic survey
chaosgeology
chaosgeology
10
Classifying seismic with a trained model
• The tool will show allowable inline, xline, z range for
classification. Values outside this array will lead to
abortion of the classification
• During the classification (prediction) the tool will
update how long it will take to classify the rest of
the user defined array chaosgeology
chaosgeology
11
Load classified segy into petrel
chaosgeology
chaosgeology
12
Future work
It was beyond the scope of this project to develop the tool further than the current in/out function
Please share your extensions and experiences
• Implement other well proven architectures (ResNet-50, U-nets, harmonic nets, GAN, etc)
• Change input cube sizes by user
• Make the tool work with near, mid, far offset data simultaneously
• Use tool for seismic noise recognition and prediction
• Improve classification speed
• …
• …
• …
13
Some examples
• We successfully trained models to recognize sandstone and shale facies in the Heimdal Formation, identify faults,
identify salt domes and various other interesting seismic facies. This is despite the simple network architecture and lack
of augmentation implemented at the moment.
• He we show a crude classification example from the public F3 dataset by the Dutch government (segy is in the raw data folder)
• All the data to make your own classification are uploaded on the repository in in Google Drive
chaosgeology
chaosgeology
14
Multi facies classification (F3 dataset)
Input data classes
• Labeled seismic
inline 339 with
8 facies types
• Else facies for
chaosgeology
chaosgeology
non specific
facies
• Trained model
for 8 hours
15
Multi facies classification (F3 dataset)
Input data classes
• Labeled seismic
inline 339 with
8 facies types
• Else facies for
chaosgeology
chaosgeology
non specific
facies
• Trained model
for 8 hours
16
Multi facies classification (F3 dataset)
One annotated inline with 9 facies classes Auto-classified cube with 9 facies classes
chaosgeology
chaosgeology
17
Multi facies classification (inline)
Low coherency
else
chaosgeology
chaosgeology
High amp continuous
else
grizzly
Low amplitude
High_amp
else
salt
18
Multi facies classification (xline)
Low coherency
else
else
else
grizzly
High_amp_
Low amplitude
salt
19
Faults classification on the F3 dataset
• Classified area
of fault
presence
• Classified area
of fault absence
The neural network does a great job in mapping faults but the spatial
resolution is not optimal. This is a function of the neural network architecture
chosen with the 5 layer CNN and 65 sample input cubes. U-nets and resnet
may be more appropriate. Training a GAN could be an optimal solution to
map more detailed faults.
20
Classifying faults on the F3 dataset
chaosgeology
chaosgeology
21
Classifying faults using a 5 layer CNN on the F3 dataset
chaosgeology
chaosgeology
22
Seismic facies classification (Grid Fm facies)
• Trained CNN on one x-line
• Predicted on multiple in-lines
and x-lines
chaosgeology
chaosgeology
Training
prediction
Seismic data courteously from PGS
23
Multi-facies prediction
Else Facies
Channel Facies
Else Facies
chaosgeology
chaosgeology
Grizzly Facies
Coherent 2 Facies
Coherent 1 Facies
Faulted Facies
Training
prediction
Grid Facies
Seismic data courteously from PGS
24
Multi-facies prediction
chaosgeology
chaosgeology
Training
Predict
25
Lithology classification: Using the wells only for training
• Very crude approach:
• Take the well lithologies (TGS facies browser)
• Time convert them using a very regional model (AkerBP)
• Make 5 facies (limestone , volcanic, shale , sand, else)
• Train on fullstack seismic (10hrs) chaosgeology
chaosgeology
• Predict /classify
26
Sand /shale classification unnamed dataset
chaosgeology
chaosgeology
Top Chalk
Sandstone
Shale
Volcanics
27
Getting inline, xline, z data file from Petrel faults polygons
Faults /or any polygon data:
Interpret faults/polygon convert to polygon equal space polygon point every 15 meters convert back to faults
create one new fault stick with new name on seismic line move previously converted faults to the newly created fault
stick export as Charisma fault sticks Ascii massage in Excel or similar to get space separated inline, xline, z file
feed into MalenoV
chaosgeology
chaosgeology
It would of course be much better if somebody had a script to convert UTM x,y,z to inline/xline/z data based on a
specific seismic survey. SEGYIO from Statoil could help.
In Geoprobe us the utilities to import x,y,z data convert to points snap points to seismic do check if inline is first
column use in MalenoV
28
Want to learn more about Convolutional networks:
there are tons of really good and free courses out there. Here some of the material I read
• Understanding neural networks easily
chaosgeology
chaosgeology
29