department of exploration geophysics · 2020-03-18 · while the mathematical details of...
TRANSCRIPT
Don’t Bury Western Australia’s Geophysical Data: Uncovering Prospective Mineral Terrains with Regional Potential Field, Seismic and MT Transects through Cooperative Inversion
(Project M493)
Prof Brett Harris, Dr Ralf Schaa, Dr Andrew Pethick
C u r t i n Un i v e r s i t y
17 October 2019
Depar tment of Exp lo ra t ion Geophys i c s
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 1 of 60
ABSTRACT
Many of Australia’s prospective mineral terrains extend below expanses of deep cover. Examples are the vast
areas of the Yilgarn Craton and Mt Isa Inlier that remain unexplored as they descend beneath sedimentary basins.
As depth of investigation and or thickness of barren cover increases so does the cost and complexity of exploring
each cubic kilometre of rock. Discovery of tier one mineral deposits in these setting requires improvement in deep
geophysical exploration technologies.
This research presents regional scale strategies for seismic and magnetotelluric (MT) imaging with a focus on
cooperative inversion using Seismic and Magnetotelluric methods. These methods are intended to assist mineral
discovery below cover.
Seismic and MT datasets are typically processed independently and later integrated during interpretation. We
have developed, implemented and tested cooperative inversion workflows that provide alternative pathways to
reconstructing the subsurface. We link seismic imaging, unsupervised learning and inversion of MT data in a
unified process. The workflow is tested on the 450 km long Yilgan‐Officer Basin‐Musgraves (YOM) 2D seismic and
MT transects. We extend our MT analysis from the 2D YOM transect to recover a vast 3D conductivity distribution
with the aid of the AusLAMP 50 km by 50 km MT grid. We demonstrate how the AusLAMP MT grid can be
integrated with the relatively dense sampled 2D YOM transect MT data to generate coarse 3D conductivity imaging
that spans thousands of cubic kilometres. Elements of the research are published in two peer reviewed
documents:
Le C.V.A., Harris, B.D., Pethick, A.M., 2019, New perspectives on Solid Earth Geology from Seismic
Texture to Cooperative Inversion, Scientific Reports, DOI: 10.1038/s41598‐019‐50109‐z.
(https://rdcu.be/bUeKc)
Schaa R., Harris B., Pethick A., 2019, Magnetotelluric Inversion Strategies; AEGC conference Perth
Eastern Australia. (https://2019.aegc.com.au/programdirectory/docs/309.pdf )
During the course of the project software was developed for cooperative inversion of seismic and magnetotulluric
data. This includes: (i) a toolbox to create prior models based on unsupervised clustering of seismic attribute data,
(ii) an interactive graphical user interface to manually create prior models based on post stack seismic sections
and (iii) an interactive data cleaning tool for editing and exporting EDI data for use with MT inversion codes.
Our Cooperative Inversion of magnetotelluric and seismic data was driven through a suite of specialized software.
This includes an earth model software toolkit, JGeoEarthTools, whose functionality spans transformations
between earth model formats and between different coordinate projections to unsupervised statistical learning.
Overall, this package facilitates the recovery of otherwise hidden geological objects within geophysical datasets.
Quality control and MT data processing ancillary tools were developed within the project to ensure suitable inputs
to new inversion workflows. Note that JGeoEarthTools is a valuable software package in its own right for
unsupervised clustering of seismic sections.
This research leverages off the hundreds of line kilometres of regional Geoscience Australia/GSWA seismic and
MT transects located in Western Australia and the Pawsey Centre Cray XC40 supercomputer. Supercomputing
facilities were essential for regional 3D MT inversions that included recently acquired (2019) AusLAMP MT grid
stations. The techniques developed unlocked value in existing high‐quality seismic and MT data. In particular
objects hidden within seismic reflectivity images can be detected with unsupervised learning and seismic guided
cooperative inversion can significantly improve subsurface representation of conductivity distribution.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 2 of 60
Table of Contents Abstract ................................................................................................................................................................... 1
Table of Contents .................................................................................................................................................... 2
Major Outcomes ...................................................................................................................................................... 3
Report Structure ...................................................................................................................................................... 4
PART A .................................................................................................................................................................... 5
1 Introduction .................................................................................................................................................... 6
1.1 What is Cooperative Inversion? ........................................................................................................................ 7
1.2 What are Seismic Attributes? ............................................................................................................................ 8
1.3 What is k‐means clustering? ............................................................................................................................. 8
PART B .................................................................................................................................................................. 10
2 Custom‐made Software ................................................................................................................................. 11
2.1 Software for model preparation using unsupervised learning from seismic attributes ................................. 11
2.2 Software for model preparation using structural constraints ......................................................................... 13
2.3 Software for magnetotelluric data preparation .............................................................................................. 14
2.4 Software for model and data visualisation ..................................................................................................... 15
PART C ................................................................................................................................................................... 16
3 Data Description ............................................................................................................................................ 17
3.1 Seismic ............................................................................................................................................................. 17
3.2 Magnetotellurics ............................................................................................................................................. 17
4 Data Preparation for Cooperative Inversion ................................................................................................... 18
4.1 Seismic ............................................................................................................................................................. 18
4.2 Magnetotellurics ............................................................................................................................................. 19
4.3 Potential Field Framework .............................................................................................................................. 19
4.4 Supercomputer Configuration ........................................................................................................................ 20
PART D .................................................................................................................................................................. 22
5 Develop Cooperative Inversion Schemes ........................................................................................................ 23
5.1 CI using prior models based on structural constraints (interpreted geological models) ................................ 23
5.2 Cooperative Inversion using prior models based on unsupervised clustering of seismic attributes .............. 24
6 Cooperative Inversion outcomes.................................................................................................................... 24
6.1 Based on structural constraints ...................................................................................................................... 24
6.2 Based on unsupervised clustering of seismic attributes ................................................................................. 25
References ............................................................................................................................................................ 28
Published Papers ................................................................................................................................................... 29
APPENDICES .......................................................................................................................................................... 30
Appendix A ............................................................................................................................................................ 31
ASEG Extended Abstract ............................................................................................................................................... 31
Appendix B ............................................................................................................................................................ 32
JEarthGeoTools User Manual ....................................................................................................................................... 32
Appendix C ............................................................................................................................................................ 58
Cooperative Inversion Workflows ................................................................................................................................. 58
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 3 of 60
MAJOR OUTCOMES
This research developed workflows and code for facilitating cooperative inversion of seismic and magnetotelluric
data to improve subsurface imaging. Major research outcomes include:
New software (also see Figure 1 approximately 37000 lines of code).
i. Software modules facilitating seismic and magnetotelluric (MT) cooperative inversion
ii. Unsupervised learning toolkit for geophysical input (i.e. seismic reflectivity attributes) was built
iii. Software was developed for automating data and model preparation for cooperative inversion
Comparison and analysis of MT inversion strategies.
i. A multi‐tiered 3D MT inversion strategy was developed and tested (i.e. this method facilitates
inclusion of sparse 3D MT stations)
ii. Potential fields driven geologically constrained MT inversion outcomes for the a plus 300 km
long transect through central Australia. transect
iii. Inversion outcomes and results from many thousands of CPU hours on the Pawsey Cray
Cascade supercomputer.
iv. Large‐scale conductivity distribution spanning approximately 16,000 km2 of central Australia
Figure 1: Infographic overviewing of the code development for cooperative inversion
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 4 of 60
REPORT STRUCTURE
This report provides outcomes for Project M493. Significant outcomes include peer reviewed Journal Papers, new
methods, new code and practical examples of implementation of new subsurface imaging along the plus 400km
long YOM (Yilgarn Craton, Officer Basin, Musgrave Block) seismic and MT transect. It is provided in the following
parts:
Part A:
Preface describing our Cooperative Inversion toolbox.
Part B:
Description of the software developed for our Cooperative Inversion toolbox
Part C:
Description of the data that were used to trial our Cooperative Inversion toolbox
Part D:
Description of the Cooperative Inversion trial results from the YOM transect
Appendices:
Publications listing including AEGC abstract, Peer reviewed Journal paper (Nature – Scientific Reports) and
a software user manual
Publications:
Note: Some key research outcome from M493 are presented within peer reviewed research by Cuong V.A.L., Harris
B., Pethick A., 2019, “New perspectives on the Solid Earth Geology from Seismic Texture to Cooperative Inversion”,
Scientific Reports. This document is open source and complements this report.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 5 of 60
PART A Preface describing our Cooperative Inversion scheme
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 6 of 60
1 INTRODUCTION
We have set out to develop a toolbox to address the challenges of practical applied inversion — linking seismic
and magnetotelluric datasets together with the aim of recovering subsurface electrical resistivity. With co‐located
seismic and magnetotelluric (MT) data becoming increasingly available it makes sense to develop practical
algorithms and software solutions to automatically combine the information contained from both datasets to
improve subsurface imaging. The newly developed software toolbox is intended to provide non‐specialists a
framework for cooperative inversion. Examples of application of regional cooperative inversion are applied along
the GA/GSWA Yilgarn Craton, Officer Basin, Musgrave Block (YOM) seismic and MT transect as shown in figure 2
(see Le C.V.A., Harris, B.D., and Pethick, A.M., 2019).
Large differences between the MT method and the seismic reflection method exist. While seismic data provides
high‐resolution structural and stratigraphic subsurface information, MT data yields relatively low‐resolution
information about subsurface electrical resistivity distributions (Cuong et al., 2016). Broadband MT data is rapidly
attenuated and resolution decreases with depth. Sharp geo‐electrical transitions become increasingly difficult to
resolve and are typically imaged as highly smoothed transitional zones within the MT derived conductivity imaging.
Seismic reflection methods are not subject to the same resolution limitations. The structural information derived
from seismic datasets can potentially complement magnetotelluric inversion — mitigating the limitations of the
poor boundary resolution of the MT method.
Our toolbox provides two different frameworks for cooperative inversion: (1) a more traditional method, where
the interpreted seismic boundaries are incorporated into the starting MT inversion model, and (2) a new
innovative approach, which adapts information from geo‐statistical clustering of a combination of seismic texture
attributes and incorporate these in a prior model ready for MT inversion. The first method requires user‐
interaction, whereas the second method has potential for automation. Below we provide baseline descriptions of
the seismic attribute analysis, cooperative inversion and the geo‐statistical methods that have been adapted and
deployed. We then present details of our cooperative inversion toolbox.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 7 of 60
Figure 2: Location of the YOM Transect. This figure shows the location of the Yilgarn Craton, Officer
Basin, Musgrave Block (YOM) seismic and MT transect. It is modified from;Le C.V.A., Harris, B.D., and
Pethick, A.M., 2019. The full Journal paper is open sources and can be accessed at
https://rdcu.be/bUeKc.
1.1 What is Cooperative Inversion?
While the mathematical details of geophysical inversion are complicated, the concept of inversion is relatively
simple. It entails iteratively matching data acquired in the field to model data. When the model data match the
field data the model is considered a possible subsurface parameter distribution. While matching field and model
data is a necessary condition for recovering the true subsurface parameter distribution, it is not sufficient. This is
because there are many models that will generate data that will fit the field data equally well (i.e. the solution is
non‐unique).
A desirable inversion outcome results in a rock property model that explains all observed geophysical data with
reasonable geological and petrophyiscal constraints.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 8 of 60
There exist different approaches to incorporate constraints in the inversion process. One common approach is to
establish a mathematical relationship between different rock properties. The mathematical relationship linking
the various rock properties can be explicitly included in the inversion process (e.g. the objective function that is
subject to optimisation). This is commonly known as joint inversion.
Another approach is to link the rock properties implicitly via the design of a starting or prior model derived from
other data. We call this approach cooperative inversion. For example MT inversion may be guided by manual
interpretation of seismic reflection imaging or based on geostatistical analysis of seismic attribute data. A detailed
analysis of inversion strategies can be found in the publication of Cuong et al. (2016).
1.2 What are Seismic Attributes?
Seismic attributes are derived from processed seismic reflectivity imaging. Attributes can be understood as a form
data enhancement. They are routinely uses as an aid to interpretation and sometime to assist in recovery of rock
properties. There are many different seismic attributes and we focus here on a specific subset which are known
as textural attributes.
Textural seismic attributes are most commonly derived from the Grey Level Co‐Occurrence Matrix (GLCM). The
GLCM is an array representing a number of levels of “pixel brightness” or grey‐levels within an image. The GLCM
seismic texture attributes are used as an input within our toolbox. These inputs are computed using the well‐
known Open‐Source software package, OpendTect. Three groups of attributes are supported as detailed in the
OpendTect User Documentation:
1. Contrast measures: Contrast, Dissimilarity, Homogeneity
2. Orderliness measures: Angular Second Moment (ASM), Energy, Entropy
3. Statistical measures: GLCM Mean, GLCM Variance, GLCM Standard Deviation, GLCM Correlation
Images of several attributes are presented for the YOM seismic Transect in Cuong V.A.L., et. al. 2019. It presents
three examples of textural attributes (GLCM Standard Deviation, GLCM Correlation and Energy) together with the
original seismic image for a 70 km long and 5 km deep window. The attributes shown in the paper reveal seismic
textures linked to weakly consolidated sediments, flood basalts and thick salt walls. Textural differences are
effective in summarizing the large scale distribution of these major rock types. There are significant differences in
contributions from GCLM seismic attributes in representation of different rock units and hence we use a
combination of attributes for isolating common rock mass volumes as a seed for the prior conductivity framework
within the cooperative inversion. This is implemented using k‐means clustering, a machine‐learning algorithm.
1.3 What is k‐means clustering?
K‐means clustering is an unsupervised learning algorithm developed by MacQueen (1967) and Hartigan and Wong
(1979). Unsupervised learning is used to find patterns often hidden in a complex image. The number of clusters
‘k’ must be specified. In our implementation we auto‐generate cluster images for different numbers of clusters
and different input seismic attributes.
The k‐means clustering algorithm initializes the centroids through randomly distributing them throughout the
dataspace and then by assigning each data point to a cluster. An iterative procedure is then followed until the
error is sufficiently reduced or a maximum number of iterations is reached. The iterative steps include (i)
computing the distances for each data point to each cluster centroid; and assigning datapoints to their closest
centroid (ii) the centroids are then updated by calculating the central position of the points within that cluster.
The iterative process stops when the within‐cluster variation cannot be reduced. The within cluster variation is
defined as the summation of Euclidean distances between the data points and their assigned cluster centroids.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 9 of 60
We deploy k‐means clustering with inputs being GLCM seismic texture attributes (examples for the YOM transect
are provided in Cuong V.A.L. et. al. 2019). Cuong V.A.L. et. al. 2019 show cluster distribution along the YOM
transect using texture attributes: dissimilarity, mean, contrast and correlation. The clusters identify the Lennis Fm
and Patterson Fm, salt walls, the Table Hill Volcanics, Neo‐Proterozoic sediments below the Table Hill volcanics
and basement rock.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 10 of 60
PART B Description of the developed software for our Cooperative Inversion toolbox
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 11 of 60
2 CUSTOM‐MADE SOFTWARE Our software toolbox provides the non‐specialist a practical framework for cooperative inversion of
magnetotelluric data using seismic constraints. We pay attention to the new scheme that provides a near
automatic framework for cooperative inversion using k‐means clustering. Utilities for interactive model
preparation based on manual interpretation of seismic images are also created, as well as interactive data editing
tools. When planning and developing software modules, the following points have been taken into consideration:
The team set out to automate and encapsulate long and complex workflows within user‐friendly software
that would encourage uptake of cooperative inversion.
The software packages were designed to reduce data and model preparation time and to reduce the
number of steps requiring user input for cooperatively inverting co‐located seismic and MT datasets.
The packages developed should attempt to cover all aspects of the workflow, including: (i) data preparation,
(ii) model preparation with structural constraints or using unsupervised learning with seismic attributes to
model and (iii) data visualization.
2.1 Software for model preparation using unsupervised learning from seismic attributes
JGeoEarthTools: Written in Java (~15,000 lines of code).
Detailed methods and examples of applying unsupervised learning based on seismic textures are provided in
Coung, Harris and Pethick 2019.
Our software for unsupervised learning is called JGeoEarthTools and was written during the course of this project.
The output of JGeoEarthTools is a prior model based on categorised subvolumes of seismic attributes ready for
MT inversion. JGeoEarthTools has been developed for a wide range of users. This might include (i) beginner‐users
accessing functionality through a graphical user interface (cf. Figure 4), (ii) power‐users who want to run advanced
workflows through the command line, (iii) software developers who want to use JGeoEarthTools as a software
library. Overall this software facilitates semi‐automatic cooperative inversion in one workflow.
JGeoEarthTools addresses three problems.
(1) The first problem is in processing and converting between different geophysical earth model formats: a
seismic dataset cannot be directly input into an MT inversion package and MT inversion results are not
compatible with seismic visualization packages (e.g. OpendTect). These incompatibilities between different
geophysical earth model file formats is a major hurdle in the efficient application of cooperative inversion
and requires interconnections between various formats. This interconnectivity between formats is achieved
using a common earth model data structure (cf. Figure 3).
(2) Secondly, JGeoEarthTools addresses the ability to conduct unsupervised learning on any implemented
geophysical earth model format — mainly seismic attributes. JGeoEarthTools reads SEGY files of seismic
attributes and carries out k‐means clustering to categorise seismic facies based on the provided seismic
attributes. The clustering result is the basis for a starting model for magnetotelluric inversion.
(3) Thirdly, starting resistivity values can be assigned to the previous identified clusters via a flood‐filling
algorithm that assigns resistivity values from a previous inversion result (for example from a half‐space
inversion). Note that manual allocation of resistivity values is also possible using the interactive software
described further below in section 2.2. In addition JGeoEarthTools include other functionalities such as
down‐sampling of model files and most‐frequency filtering utilities.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 12 of 60
Figure 3: The functions within JGeoEarthTools, including KMeans clustering, down‐sampling and file format conversion are performed on an array of different geophysical earth model file standards.
The full functionality of JGeoEarthTools is described in the User Manual (cf. Appendix B); however a complete
workflow to generate a prior model for cooperative inversion consists of six core commands (cf. Appendix C):
(1) K‐means clustering of seismic attributes files. (the cluster information is stored in a specific JGeo format)
(2) Convert ModEM (magnetotelluric) model file to JGeo format (e.g. from a previous unconstrained inversion run)
(3) Map resistivities from the converted ModEM file to the k‐means clusters
(4) Downsample the k‐means cluster file to the same mesh as the ModEM file
(5) Apply a most frequency filter to provide a smoother prior model
(6) Convert the smoothed JGeo file back to ModEM format as prior model for MT inversion.
(Note that the commands can be carried out in different order, for example down‐sampling can be done before clustering, which speeds up the process).
Figure 4 Screenshot of the JGeoEarthTools graphical user interface.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 13 of 60
2.2 Software for model preparation using structural constraints
MTModelBuilder: Written in VB.NET (~12,000 lines of code).
MTModelBuilder facilitates creation of 2D models where structural constraints are provided as a high‐resolution
bitmap image (Figure 5). The image represents the subsurface that consist of several geological units and usually
reflects the interpretation of a seismic section. Each geological unit is depicted by a distinct colour code and the
user interactively assigns a resistivity value to each geological unit. In this approach, each colour pixel serves as a
proxy for resistivity. After allocating the resistivity values, the image can be exported to various formats for
magnetotelluric inversion: Occam1D and Occam2D (Constable et al., 1987), Rebocc2D (Siripunvaraporn and
Egbert, 2000) and ModEM2D (Egbert and Kelbert, 2012; Kelbert et al., 2014).
Note that the bitmap image has to be created by the user beforehand and as mentioned above, is usually based
on the structural interpretation of a seismic image, but can of course be based on other prior information as well.
One possible procedure is to use specialised image editing software. Free image editing software are for example
GIMP (raster graphics editor) or Inkscape (vector graphics editor); commercial variants are Adobe Photoshop® or
Adobe Illustrator®. In this workflow an image of the interpreted seismic section is loaded in the image editing
software and a new image layer is overlain. Using the seismic interpretation image as a template, in the new layer
the interpreted geological units of the seismic section are manually drawn using the tools available in the image
editing software; subsequently the units are filled with distinct colours. This image is saved as a high‐resolution
bitmap and used in MTModelBuilder.
Note that it is of importance that the relative image dimensions are linked to the extents of the survey. The
distance from the first station on the left, to the image edge on the left has to be provided in meters; likewise the
distance of the last station on the right, to the right image edge has to be given in meters. Furthermore the image
top and base have to be given in meters. For zero topography, the top is simply set to 0; whereas the image base
is the depth extent in meters of the displayed section starting from the top. The procedure is further detailed in
the software help files, which also describe the various options that this utility offers.
Figure 5 Screenshot of the MTModelBuilder user interface showing a conceptual geological 2D model of the Officer Basin.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 14 of 60
2.3 Software for magnetotelluric data preparation
MTSanitizer: Written in VB.NET (~7,500 lines of code).
MTSanitizer is a simple tool written for post‐processing and visualisation of standard EDI files (Figure 6). This tool
facilitates interactive editing of data points such as outliers and noise. Before inversion, data has to be free of
outliers in order to avoid introducing spurious biases in the recovered resistivity model. MTSanitizer displays EDI
data as apparent resistivity and phase, and as real/imaginary components of the impedance tensor and tipper
vector. Using the different display formats, the data can be visually inspected for any noise or outliers and
accordingly edited.
Upon starting MTSanitizer, the user selects a directory that contains the EDI files subject to interactive editing. EDI
files are identified by their filename ending, expected to be “*.edi”; all located EDI files of the directory are loaded
into MTSanitizer and shown with their filename in the left panel of the program. Upon clicking on a filename, the
EDI file is displayed in the main window in aforementioned formats. A displayed data point can be deleted by
clicking on it – this deletes the data point and all related components at that period. Deleted data points are
currently linearly interpolated. Edited data can then be exported to various MT data formats; merging of different
datasets (such as broadband and long‐period) is also possible. The following data formats are currently supported:
EDI, Rebocc2D, Mare2DEM, ModEM2D and ModEM3D. The various options that this utility offers is further
detailed in the software help files.
Note that the EDI file standard is quite flexible and supports many different formats. MTSanitizer only supports
EDI files where the MT responses are stored as the real and imaginary part of the impedance tensor as well as the
real and imaginary part of the tipper vector, including their respective error estimates. This is the most common
EDI data format. Other formats, such as the spectral format, are currently not supported.
Figure 6 MTSanitiser User Interface showing editable plot panels of magnetotelluric data components.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 15 of 60
2.4 Software for model and data visualisation
MTview: Written in Python (~2,500 lines of code).
MTview is a collection of Python modules for displaying data and models for ModEM2D and Rebocc2D. MTview
generates publication quality images. The modules are script‐driven and require user action such as providing
paths, files and various plot parameters. Examples of figures created with MTview are shown in Figure 7.
Model files from Rebocc2D and ModEM2D can be visualised as 2D sections, where the user can edit parameters
that control various aspects of the displayed image, such as: the horizontal and vertical extent; colour map and
stretch, font sizes, image size and resolution. Furthermore, MT data files from ModEM2D and Rebocc2D can be
displayed as data profiles, showing apparent resistivity and phase curves at each station for observed and
calculated data. Data misfits (RMS) are also provided for each station and component in this layout. The data files
can furthermore be displayed as data maps, which show the data as sections along selected stations and periods.
Of course, every detail can eventually be fine‐tuned as the source code of the scripts are available.
The choice of Python for MTview stems from its strength and flexibility of available visualisation libraries and it is
widely used in but also outside of academia. The provided Python scripts require only standard Python libraries,
which can be easily installed using the standard installation tools that Python provides (depending on the Python
distribution). The provided scripts are heavily commented and provide thorough user documentation.
At this place we would also like to mention the open source package MTPy, also written in Python and maintained
by Geoscience Australia (Kirkby et al., 2019) and previously started by University of Adelaide (Krieger at al., 2014).
MTPy also provides much functionality for processing and displaying MT data (but currently lacks capability for
Rebocc2D and ModEM2D).
Figure 7 Examples of figures produced by MTView. Top‐left: Rebocc2d model inversion result. Bottom‐left: apparent resistivity pseudo‐section for all stations and broadband periods. Left: curves of apparent resistivity and phase at one station showing observed and calculated data.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 16 of 60
PART C Description of the data that were used to trial our Cooperative Inversion toolbox
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 17 of 60
3 DATA DESCRIPTION Our cooperative inversion framework offers a new approach to add value to the existing geophysical data. One
research goal was to leverage off the thousands of line kilometres of regional Geoscience Australia/GSWA seismic
and MT transects located in Western Australia; hence the project title “Don’t Bury Western Australia’s Geophysical
Data”.
A challenging regional‐scale focus area spanning the Yilgarn Craton–Officer Basin–Musgrave Province (YOM) was
selected to test the newly developed cooperative inversion workflows. Key data included a long seismic reflection
transect, a 2D MT transect and newly acquired MT data from the AusLAMP grid. Furthermore, auxiliary potential
field data in the form of a geological GOCAD model was utilised to provide the structural framework of a 3D prior
model.
3.1 Seismic
TWT Seismic Data
Deep seismic reflection data was acquired along a 484 km transect across the Yilgarn Craton – Officer
Basin – Musgrave Province in 2011 by Geoscience Australia in collaboration with the Geological Survey of
Western Australia (Holzschuh, 2013). The survey line follows the Great Central Road and hence was not
straight, but followed a crooked line geometry. No data was collected through the Warburton aboriginal
community from stations 6555 to 6669, which results in a gap in the seismic section. Final products in
SEGY format as provided by Geoscience Australia are post‐stack time migrated data with a maximum
record length of 22 seconds two‐way travel time (TWT). Detailed information on acquisition and
processing parameters can be found in Holzschuh (2013).
Velocity Data
Stacking velocities are provided as an ancillary data file and was used by us for depth‐conversion of the
TWT seismic data. For all further processing and analysis the depth‐converted seismic data was used. That
is, the various textural seismic attributes were all based on the depth‐converted seismic amplitude data.
Also, structural interpretations were based on the depth‐converted seismic section.
3.2 Magnetotellurics
YOM Data
Magnetotelluric impedance and tipper data were measured by Geoscience Australia in collaboration with
the Geological Survey of Western Australia in 2011 at 72 broadband (BB) MT sites and 31 long‐period (LP)
MT sites along the seismic line. The average site spacing was approximately 5–10 km for broadband data
and 10–15 km for long period data (Duan et al., 2013). Impedance tensor data contain the components
of the ratios of horizontal electric fields to horizontal magnetic fields; tipper data contain the ratios of
vertical to horizontal magnetic field components. The maximum period range for the BB data is ~0.002
sec to ~100 sec; whereas the maximum period range for the LP data is 2 sec to ~13000 sec.
AusLAMP Data
AuScope AusLAMP long‐period MT data are currently acquired on a ~50 km grid nationwide (Thiel et al.,
2018). Sixteen AusLAMP stations proximal to the YOM line were included to extend the dimensional scope
from 2D inversion to 3D inversion.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 18 of 60
4 DATA PREPARATION FOR COOPERATIVE INVERSION Seismic, MT and geological datasets are not readily linked and must be processed for compatibility and further
processing. The various datasets are in different domains and are unified for cooperative inversion: seismic is in
time, while MT earth models and geological models are in depth. The following points need consideration:
Seismic data stored as ‘wiggle traces’ are not compatible with MT inversion software
The MT data is provided in an uncleaned form and may suffer from outliers or various noise
contaminations such as static shift, dead‐bands, 2D/3D effects etc.
Inversion of data is slow and in order for Cooperative Inversion to be efficiently applied,
supercomputing resources are essential.
4.1 Seismic
Depth Conversion
Two‐way travel time (TWT) reflection seismic data was converted to depth using stacking velocities that
comes together with the TWT seismic data. Conversion was carried out in SeisSpace. The depth‐converted
seismic section was used for cooperative inversion workflows.
Seismic Interpretation
Lithostratigraphic boundaries have been identified from the depth‐converted seismic section, based on
published geological seismic interpretations of the TWT seismic section. Identified boundaries are used
directly as structural inversion constraints in some cooperative inversion strategies.
Seismic Attributes
Seismic attributes are derived quantities from the seismic data that may exhibit features previously not
directly apparent in the seismic amplitude data. Subvolumes with common characteristics are identified
using k‐means clustering. We have calculated several seismic attributes from the seismic data for cooperative
inversion. See also the introductory sections 1.2 (seismic attributes) and 1.3 (k‐means clustering).
Figure 8 Seismic attribute section (‘GLCM Entropy’) resampled on magnetotelluric grid (image created with MTview)
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 19 of 60
4.2 Magnetotellurics
MT post‐processing
Industry standard EDI data are made available by Geoscience Australia without any further edit. For inversion
the data are post‐processed using custom‐made software MTSanitiser (see section 2.3). The EDI files were
edited for outliers as well as dead‐band noise. For some 3D inversions broadband and long‐period
magnetotelluric data was merged, which also can be done in MTSanitiser. The cleaned MT data can be
exported as EDI files and also in suitable formats for various inversion programs.
MT data analysis
Analysis of the cleaned MT can provide information about the geoelectric subsurface structure. In a
geoelectric context, analysis of MT data provides information about subsurface dimensionality (1D, 2D or
3D) and possible strike direction (in case of 2D). This information informs the model setup for inversion and
whether the data has to be rotated for 2D inversion. We used MTPy for MT data analysis (Kirkby et al., 2019).
Figure 9 Phase tensor pseudo section with colours indicating the skew angle of the ellipses. Angles larger than |3◦| suggest 3D; white and nearly circular ellipses indicate 1D; everything else is interpreted 2D.
4.3 Potential Field Framework
Potential field information was implicitly incorporated in 3D cooperative magnetotelluric inversion using the
3D geological GOCAD model by Goodwin et al. (2013). This 3D GOCAD model was constructed by extending
the seismic interpretation into 3D space derived from multiple seismic and drill‐hole datasets, surface
geology as well as gravity and magnetic datasets using forward modelling. The GOCAD model consists of
surfaces and faults representing the 3D architecture of the study area and was integrated as structural
constraints in 3D cooperative inversion. The model was matched to the depth converted seismic YOM
transect and the Table Hill Volcanics has been added as an additional geological unit.
Figure 10 Adapted GOCAD model for geologically constrained inversion of the YOM data.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 20 of 60
4.4 Supercomputer Configuration
Regional‐scale magnetotelluric inversion requires access to supercomputing facilities. Inversions were
carried out on the facilities of the Pawsey Supercomputing Centre; supercomputing facilities used on Pawsey
were the Magnus Cray XC40 supercomputer and the Zeus SGI Linux Cluster. While Magnus is able to run
massively parallel jobs on thousands of CPU cores, it is limited in memory with 64GB per node. Zeus has
double the memory per node and was more suited for inversion in that regard, however computations take
longer as there are only a limited number of nodes available.
The ModEM (2D & 3D) source code was compiled on both, Magnus and Zeus. While compilation on Magnus
was straightforward using the Cray Fortran compiler and available online help files, compilation on Zeus
required the help from the Pawsey Centre. For Zeus, the Intel Compiler was used, which initially failed due
to errors with regards to the LAPACK library (a standard software library for numerical linear algebra). Linking
against Intel’s Math Kernel Library (MKL), which contains an optimised version of the LAPACK library, also
failed. However, using the LAPACK library compiled with the GNU Compiler Collection (GCC) eventually was
successful when statically linking the GNU compiled LAPACK library. The header of the Makefile for Zeus for
compiling ModEM2D is shown below. Also shown is a job script for the Slurm Workload manager, which
requires special reference to the LAPACK library.
# Makefile suited for building the Mod2DMT program on Pawsey/Zeus
include Makefile.local
# -------------------------------------------------------------------
# INTEL FLAGS (MPI-version) linked with GCC-build LAPACK library
# -------------------------------------------------------------------
# F90
# mpif90 :: Generic name for Fortran Intel compiler
# FFLAGS
# -O3 :: highest optimisation
# -traceback :: feedback where error occurred
# -heap-arrays :: allocate memory on the heap
# -static-intel :: link statically
# MPIFLAG
# -fpp :: Intel Fortran preprocessor
# -DMPI :: Preprocessor variable definition
#
# MODULE
# -module :: directory to store module files
# OBJDIR
# -path :: directory to store module files
# LIBS
# -L<library> :: library to link with (static)
# -------------------------------------------------------------------
F90 = mpif90
FFLAGS = -O3 -traceback -heap-arrays -static-intel
MPIFLAGS = -DMPI -fpp
MODULE = -module $(OBJDIR)
OBJDIR = ./_objs/2D_MT
LIBS = -L/pawsey/sles12sp3/devel/broadwell/gcc/4.8.5/lapack/3.8.0/lib64 –llapack
Table 1 Makefile header for compiling ModEM2D on Zeus
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 21 of 60
#!/bin/bash
# SLURM directives:
# -------------------------------------------------------------------
#SBATCH --job-name=clusters_v2
#SBATCH --nodes=8
#SBATCH --ntasks=8
#SBATCH --mem-per-cpu=120000
#SBATCH --account=pawsey0102
#SBATCH --time=23:00:00
# Load Intel modules:
# -------------------------------------------------------------------
module purge
module load broadwell intel openmpi
# Export the location of the LAPACK library:
# -------------------------------------------------------------------
export
LD_LIBRARY_PATH=/pawsey/sles12sp3/devel/broadwell/gcc/4.8.5/lapack/3.8.0/lib64:$LD_LIBRARY_PATH
# Actual command to run Mod2DMT on the Zeus cluster:
# -------------------------------------------------------------------
srun --export=all -n 8 -N 8 mod2dmt -I NLCG prior.mod data_3pc.modem2d
Table 2 Slurm script for running a ModEM2D MPI job on Zeus
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 22 of 60
PART D Description of the Cooperative Inversion trial results
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 23 of 60
5 DEVELOP COOPERATIVE INVERSION SCHEMES For cooperative inversion (CI), constraints are typically introduced implicitly via the prior model and/or by
manipulating the spatial distribution of inversion parameters such as “smoothness” or discretization. High
resolution seismic reflection imaging is ideally suited to constrain large scale geometries for inversion of
lower resolution potential field or electromagnetic data. This sets CI apart from joint inversion, where
constraints are usually introduced explicitly via the objective function (Harris et al., 2018), see also section
1.1 of the Introduction.
We trialled two cooperative inversion approaches: a manual‐driven scheme, where prior information is
carefully incorporated into a starting model; and a semi‐automatic scheme, where prior information is based
on an unsupervised learning algorithm of seismic attributes combined with initial half‐space inversion of MT
data. Both approaches are briefly outlined below.
5.1 CI using prior models based on structural constraints (interpreted geological models)
1D/2D Inversion
Incorporation of prior constraints are based on an interpreted seismic 2D section. The seismic section
provides structural constraints, such as horizons and faults, and it is assumed that these represent changes
in lithology in conjunction with changes in electrical resistivity. The interpreted seismic section is saved as a
high‐resolution bitmap that consist of several geological units. The user then interactively assigns resistivity
values to each geological unit and saves the image as a starting model for inversion for various programs.
This can be done with aforementioned software tool MTModelBuilder. We used the following free inversion
programs for 1D/2D inversion: Occam1D, ModEM2D and Rebocc2D.
3D Inversion
Incorporation of prior constraints are here based on a geological model. In particular we used the GOCAD
model as published by Goodwin et al. (2013). The existing surfaces were augmented with major structures
interpreted from the depth‐converted YOM seismic imaging and information from two nearby wells
(Empress‐1A and Yowalga‐3).
Surfaces include the expansive Table Hill Volcanics; note that these Cambrian Table Hill Volcanics (THV) are
made up of multiple basaltic flows, accumulating to a thicknesses up to 165 m (Korsch et al., 2013, pp. 37).
The basalt unit is intersected at Empress‐1A and has an average well log resistivity of approximately 220 ohm
m.. The Table Hill Volcanics is a distinct unit forming a high‐reflectivity layer within the 2D seismic imaging
(note that the THV have also been incorporated in the starting model for 2D MT inversion). The remainder
of the 3D GOCAD resistivity model was populated using averaged values from unconstrained inversions.
Resistivity were assigned to the various lithological units and 3D inversion was carried out using ModEM3D
(Kelbert et al., 2014)
Incorporation of AusLAMP data
Full, unconstrained 3D inversion was carried with broadband YOM Transect MT data and AusLAMP sparse
3D grid long period MT datda. AusLAMP is a national long‐period magnetotelluric survey, acquired on a 50km
grid Australia‐wide (Thiel et al.,2018). We used 18 AusLAMP stations, North and South of the YOM MT
transect. The additional data from just a few sparse stations significantly enhanced the outcome of 3D MT
inversion. A question that was addressed was; ‘how many additional off‐line AusLAMP stations are required
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 24 of 60
to further improve characterisation of off‐line conductors?’. The workflow consisted of a multi‐tiered 3D MT
inversion approach which combined the broadband MT data from the 450 km long YOM transect with the
sparse 3D MT stations from the AusLAMP survey. In the initial phase the following three datasets were
created:
Merged dataset from Broadband and Low‐Period impedances from both YOM and from available AusLAMP stations (horizontal component data only).
Merged dataset as before but with vertical component data (Tipper) included.
Only YOM broadband impedances
The three datasets were then used for sequential inversions. Initial starting model for inversion was a half‐
space model. Starting models for subsequent inversions for each dataset was based on the inversion result
of the previous run. See Schaa R., Harris B., Pethick A., 2019, Magnetotelluric Inversion Strategies; AEGC
conference Perth.
5.2 Cooperative Inversion using prior models based on unsupervised clustering of seismic attributes
2D Inversion
The magnetotelluric and the seismic YOM datasets are both 2D and as such only 2D inversion was carried
out. To incorporate multiple seismic attributes in 2D magnetotelluric inversion, we employed a machine‐
learning approach, specifically we used the well‐known k‐means clustering algorithm. This algorithm is a type
of unsupervised learning, which finds clusters in unlabelled data – in this case seismic texture attributes. The
number of clusters is denoted by the variable ‘k’ and has to be provided beforehand by the user. The
algorithm then works iteratively to assign each data point to one of k clusters based on the features that are
provided in the seismic attribute data. Data points are clustered based on feature similarity. The clustering
algorithm automatically provides structural constraints for inversion based on similarities in seismic textures.
With the understanding that identified clusters represent different lithologies, representative electrical
resistivity values are assigned to each cluster. This can be handled in two ways:
a. Manual allocation of resistivity values (using the program MTModelBuilder, see above)
b. Automatically by mapping resistivities from ModEM models (e.g. from unconstrained inversions).
This is managed via program JGeoEarthTools, which handles the entire inversion workflow for
incorporating seismic attributes in cooperative inversion. See the JGeoEarthTools User Manual.
6 COOPERATIVE INVERSION OUTCOMES
6.1 Based on structural constraints The constrained inversions used starting models based on structural information from seismic imaging. This
framework was populated with prior resistivity from previous half‐space inversions except for the Table Hill
Volcanics which was populated with resistivity directly from wire‐line line logs (obtained in the well Empress‐1A).
Inversion results broadly honoured these soft constraints maintaining the relative sharp resistivity contrasts as
imposed in the starting model. In general, inversion results for 1D, 2D and 3D all exhibit improved RMS data fits
and preferable subsurface resistivity distributions consistent with the seismic information. An example of 3D
inversion of the 2D YOM profile data is shown in Figure 11.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 25 of 60
For the multitiered 3D unconstrained inversion we included data from the AusLAMP grid in the vicinity of the
YOM transect. This inversion furthermore included long‐period and tipper data and resulted in superior data
fits as compared with 2D/3D inversion of the broadband YOM transect alone. Given that the data from the
50 km AusLAMP grid will be available in the near future, existing or new 2D MT profiles can be improved by
inversion that incorporates a background model based on long‐period AusLAMP data. The results are
described in more detail in Schaa R., Harris B., Pethick A., 2019, Magnetotelluric Inversion Strategies; AEGC
conference Perth.
Figure 11 Prior 3D model (A) and (B) and section through model after inversion (C) of magnetotelluric data. The 2D profile data of the YOM line was subject to 3D inversion using the ModEM3D software. The prior model was based on an adapted 3D geological GOCAD model.
6.2 Based on unsupervised clustering of seismic attributes
The subsurface resistivity distribution after cooperative inversion is by design biased towards the prior resistivity
structure, which depends on the initial clustering results and the assigned cluster resistivity values – these can
come from previous unconstrained inversions, which are then automatically mapped onto the clusters, or these
can be assigned manually to each cluster using MTModelBuilder (cf. section 2.2).
The amount of bias depends on the specifics of the inversion algorithm, where Occam‐based inversion schemes
tend to provide smoother results (cf. Siripunvaraporn & Sarakorn, 2011; Patro et al., 2013; Tietze et al., 2015). For
our framework, we have so far only used ModEM2D for cooperative inversion based on prior models using
unsupervised clustering of seismic attributes. ModEM2D (and ModEM3D) is based on a non‐linear conjugate
gradient algorithm (NLCG), which penalizes smoothed deviations from a prior model and prefers solutions close
to the prior model. Hence, the resulting inversion outcomes show resemblance to their prior models.
Figure 12 (top) shows a prior model based on k‐means clustering of eight clusters and five textural attributes
(Entropy, Energy, Dissimilarity, Correlation and Angular Momentum). The clusters were manually assigned
resistivity values using MTModelBuilder. The inversion result after 43 iterations is shown in the lower panel, and
the large resistivity contrast near the centre depicts the change from the Officer Basin in the West to the Musgrave
(A)
(B) (C)
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 26 of 60
Province in the East. Resistivity structures in the Officer Basin are complex and linked to the structure in the prior
model. The inversion resulted in excellent RMS fits for most stations and provides an alternative resistivity model
as compared with the inversion results using prior models based on interpreted seismic sections.
Figure 12 Top: prior model using k‐means clustered seismic attributes allocated with initial resistivity values. Bottom: inversion result after 43 iteration.
CONCLUDING REMARKS
Our objective in this project was to create and trial cooperative inversion frameworks linking seismic and MT data,
to recovering rock properties at depths that exceed that which is practical for routine minerals exploratory drilling.
Development focused on regional scale cooperative inversion methods spanning many hundreds of kilometres
with particular attention to applications that will assist explorers searching for Tier 1 Ore bodies in mineralized
terrains that descend below barren cover in Western Australia.
We have demonstrated cooperative inversion techniques for building geo‐electrical frameworks relevant to
shallower exploration depths. We considered several cooperative inversion approaches. One scheme is relatively
manual requiring prior information to be carefully incorporated into a starting model, A second scheme is semi‐
automatic.For this method prior information is based on unsupervised learning (i.e. clustering) from seismic
attributes combined with half‐space inversion of MT data. We tested the cooperative inversion strategies along
the regional scale Geoscience Australia/GSWA seismic and MT transect along the YOM transect..
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 27 of 60
During the course of the project the main software programs developed, were:
JGeoEarthTools: A tool to create prior models based on unsupervised clustering of seismic attribute data.
MTModelBuilder:
An interactive tool to manually create prior models based on interpreted seismic sections.
MTSanitiser:
An interactive data cleaning tool for editing and exporting EDI data for use with MT inversion codes.
The project outcomes demonstrate new options, with practical examples from imaging the subsurface with
geophysical methods. These methods have been designed to assist in extending mineral exploration and discovery
to greater depths in deep covered often underexplored minerals provinces.
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 28 of 60
REFERENCES
Constable S.C., Parker R.L. and Constable C.G., 1987, “Occam's inversion: A practical algorithm for generating
smooth models from electromagnetic sounding data”, Geophysics, 52, 289–300
Cuong V.A.L., Harris B., Pethick A., Takougang T.E. Brendan H., “Semiautomatic and Automatic Cooperative
Inversion of Seismic and Magnetotelluric Data”, Surveys in Geophysics, 37, 2016
Egbert G.D. and Kelbert A., 2012, “Computational recipes for electromagnetic inverse problems”, Geophysical
Journal International, 189, 251–267.
Goodwin J., Jones T., Brennan T. and Nicoll M., 2013, “Geophysical investigation and 3D geological model of the
Yilgarn Craton–Officer Basin–Musgrave Province region”, in Neumann, N.L., (editor) and Geoscience Australia
(issuing body), Yilgarn Craton‐Officer Basin‐Musgrave Province Seismic and MT Workshop, Canberra,
Geoscience Australia, 96‐129
Harris B., Pethick A., Schaa R., and Cuong V.A.L.., 2018, “Cooperative Inversion: A Review”, ASEG Extended
Abstracts, 1‐3
Korsch R., Blewett R., Pawley M., Carr L., Hocking R., Neumann N.L., Smithies R.H., Quentin de Gromard R., Howard
H., Kennett B., Aitken A., Holzschuh J., Duan J., Goodwin J.A., Jones T., Gessner K., Gorczyk W., 2013,
“Geological setting and interpretation of the southwest half of deep seismic reflection line 11GA‐YO1: Yamarna
Terrane of the Yilgarn Craton and the western Officer Basin”, in Neumann, N.L., (editor) and Geoscience
Australia (issuing body), Yilgarn Craton‐Officer Basin‐Musgrave Province Seismic and MT Workshop, Canberra,
Geoscience Australia, 24‐50
Hartigan J.A. and Wong, M.A., 1979, “A K‐means clustering algorithm”, Applied Statistics, 28, 100–108.
Kelbert A., Meqbel N., Egbert G.D., Tandon K., “ModEM: A modular system for inversion of electromagnetic
geophysical data”, 2014, Computers & Geosciences, 66, 40‐53
Kirkby, A.L., Zhang, F., Peacock, J., Hassan, R., Duan, J., 2019. The MTPy software package for magnetotelluric data
analysis and visualisation. Journal of Open Source Software, 37, pp. 1358
Krieger L., and Peacock J., 2014. “MTpy: A Python toolbox for magnetotellurics. Computers and Geosciences”, 72,
167‐175
MacQueen J., 1967, “Some methods for classification and analysis of multivariate observations”, in Proceedings
of the Fifth Berkeley Symposium on Mathematical Statistics and Probability, eds L. M. Le Cam & J. Neyman,
281‐297, University of California Press.
OpendTect 6.2, User Documentation, dGB Earth Sciences
Patro P.K., Uyeshima M., and Siripunvaraporn W., 2013, “Three‐dimensional inversion of magnetotelluric phase
tensor data”, Geophysical Journal International, 192, 58‐66
Schaa R., Harris B., Pethick A., 2019, “Magnetotelluric Inversion Strategies”, ASEG Extended Abstracts (in press)
Siripunvaraporn W., and Egbert G., 2000, An efficient data‐subspace inversion method for 2‐D magnetotelluric
data, Geophysics, 65, 791–803
Siripunvaraporn W. and Sarakorn W., 2011, “An efficient data space conjugate gradient Occam's method for three‐
dimensional magnetotelluric inversion”, Geophysical Journal International, 186, 567‐579
Thiel S., Goleby B.R.and Heinson G., 2018, “Magnetotelluric imaging of intracontinental deformation zones:
example of the Musgraves Province in Central Australia”, Abstract, Australian Geoscience Council Convention,
Adelaide, Australia
Tietze K., Ritter O., and Egbert G.D., 2015, “3‐D joint inversion of the magnetotelluric phase tensor and vertical
magnetic transfer functions”, Geophysical Journal International, 203, 1128‐1148
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 29 of 60
PUBLISHED PAPERS
Cuong V.A.L., Harris B., Pethick A., 2019, “New perspectives on the Solid Earth Geology from Seismic Texture to Cooperative Inversion”, Scientific Reports 9 (1):14737. doi: 10.1038/s41598-019-50109-z. (Published: https://rdcu.be/bUeKc).
Schaa R., Harris B., Pethick A., 2019, Magnetotelluric Inversion Strategies; AEGC conference Perth Eastern Australia (paper published and has been presented: https://2019.aegc.com.au/programdirectory/docs/309.pdf )
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 30 of 60
APPENDICES AEGC abstract, software user manual and flowcharts
Don’t Bury Western Australia’s Geophysical Data (MRIWA Project M493)
Page 31 of 60
APPENDIX A
ASEG Extended Abstract The abstract “Magnetotelluric inversion strategies” can be obtained from the link below:
Schaa R., Harris B., Pethick A., 2019, Magnetotelluric Inversion Strategies; AEGC conference Perth
Eastern Australia. (https://2019.aegc.com.au/programdirectory/docs/309.pdf )
Page 32 of 60
APPENDIX B
JEarthGeoTools User Manual
Introduction
What is JGeoEarthTools?
JGeoEarthTools enables the conversion between earth model standards of each of the different geophysical rock properties. This is done through the use of a common earth model on a rectilinear grid or volume.
This means that earth models from, but not limited to, potential field, passive and active source electromagnetic and seismic methods can be transformed into other formats for use in inversion, interpretation
and forward modelling. This software's intended use is in cooperative inversion workflows that use information from multiple datasets to help constrain or initialize earth models.
Project Overview
Project: MRIWA Project M493
Applicants: Curtin University
Deep Exploration Technologies CRC
Researchers: Brett Harris
Andrew Pethick
Ralf Schaa
Page 34 of 60
Getting Started
JGeoTools is written in Java for operating system portability. Testing is performed on Windows 10 x86 64bit, however no non‐java third party libraries are used so running on OSX and Linux should be simple. If
you have any problems with this software, please contact us.
To run JGeoEarth Tools install Java JDK/JRE (we use SE 12) must be installed. Visit Oracle to download Java (link)
Open the command window
Windows: Open Command Prompt or write a batch script
OSX: Open Terminal
Linux: Open Terminal
Enter the command java ‐jar JGeoTools.jar
This should run the program and print the commands available.
If you require more primary memory than the default 8 GB than as long as you have a 64 bit Java installation you can use the following command (replace the number with the desired memory requirements):
16GB: java ‐jar ‐Xmx16G JGeoTools.jar
32GB: java ‐jar ‐Xmx32G JGeoTools.jar
The flood fill function (map conductivities) is a recursive function and may result in a stack overflow. If this occurs you will need to increase the stack using the ‐Xss tag:
java ‐jar ‐Xss16m ‐Xmx32G JGeoTools.jar
Page 35 of 60
Commands
Data Input
Rectilinear Section/Volume ‐i %filename This is the default format for this program
ModEM file format ‐im %filename This will read in a ModEM 2d or 3d mesh into the corresponding 2D/3D rectilinear grid. If read in 2D coordinates, local coordinates (easting only) will be set by initialized by the offset from origin in the ModEM file and a coordinate transformation file must be used.
WSINV 3D volume file format(3D) ‐iw %filename This is the WSINV3D earth model description file as outlined by (Siripunvaraporn W.) This is largely untested but may work.
VTK (Currently Not Implemented) ‐iv %filename This is currently not implemented, but is a placeholders for possible future versions.
Seismic ASCII (Currently untested) ‐is %filename Input Opendtect seismic ascii file. Currently implemented, but untested.
SEGY 3D (Currently Not Implemented) ‐iy %filename Current not implemented
SEGY 2D ‐iy2d %filename SGY standard 2d format. Only tested for a coordinate transformation scalar of 1000. There are many different variations of SGY with different byte header settings. Your experience may vary.
Model Vision Poly File Format (Currently Untested) ‐imv %filename Model Vision Poly File format (currently untested)
ASCII XYZV (Scatter points) formatted File(2D) ‐ix2d %filename Interpolation modifiers must be set when using this input
Force grid mesh size must be set when using this input
Example:
The command "java ‐jar ‐Xmx16G JGeoTools.jar ‐iy2d example.sgy" will run JGeoTools and import the SGY into a rectilinear mesh to be used for processing
Data Output
Rectilinear Section/Volume ‐o %filename This is the default format for this program
ModEM file format ‐om %filename
WSINV 3D volume file format(3D) ‐ow %filename
VTK (Currently Not Implemented) ‐ov %filename Currently Not Implemented
Seismic ASCII ‐os %filename
SEGY 3D ‐oy %filename Currently Not Implemented
SEGY 2D ‐ot2d %filename Currently Not Implemented
ASCII XYZV (Scatter points) formatted File(2D) ‐ox %filename An x,y,z,value ASCII file. The implementation is not terribly advanced and is essentially for nearest neighbor gridding. Currently this is being used for Res2D gridding.
The command "java ‐jar ‐Xmx16G JGeoTools.jar ‐iy2d example.sgy ‐o example.ASCII" will run JGeoTools and import the SGY into a rectilinear mesh and export to the Rectilinear 2D ASCII file format
Page 36 of 60
Commands
Value Replacement
Replace Value ‐repv %search_value %replace_value Replace one value with another
Replace Value (Terrain & Halfspace) ‐rept %search_value %replace_value Replace one value with another within the terrain and halfspace. That is, it will start from the top of the trace and while the search value is found, values will be replaced until a non‐search value is found. This process is repeated from the bottom up.
Cluster Mapping ‐mapvc %inputvaluefile %mappingmode (mode: 1=mean, 2=median) Map values into clusters (or connected patches of same value)
Eliminate Duplicate Offsets ‐ed %offset_tolerance Remove offsets that are within a certain amount of another offset. Good for sanitizing input for SEGY conversion.
Project values onto a Mare2DEM Mesh ‐pjm2d %inputResistivityFile %inputPolyFile %outputResistivityFile Project the values of the input models onto a Mare2D mesh and export a new resistivity file.
Statistical
KMeans Statistical Clustering ‐kmeans %nClusters %maxIterations %kmeanssavefile This will run a if %maxIterations is set to ‐1, run until misfit is 0. Random numbers will be used to initialize the seed model if a kmeanssavefile is not specified. Values from the kmeans save
Transformation
Transform from local‐to‐global coordinates using an affine transform ‐tl %transformation_file The coordinates transform properties uses a Java properties file. The affine transform handles translation,
rotation and scaling. As long as you have three local coordinates and the three corresponding global
coordinates defined, transformations between both local and global coordinates can be made, even if it is
outside of the bounds of the provided coordinates.
Format: Example.properties
LOCAL_X1 = 0
LOCAL_X2 = 100
LOCAL_X3 = 100
LOCAL_Y1 = 0
LOCAL_Y2 = 0
LOCAL_Y3 = 100
GLOBAL_X1 = 3000
GLOBAL_X2 = 3100
GLOBAL_X3 = 3100
GLOBAL_Y1 = 6000
Transform from global‐to‐local coordinates using an affine transform ‐tg %transformation_file
Page 37 of 60
GLOBAL_Y2 = 6000
GLOBAL_Y3 = 6100
Transform from local‐to‐global coordinates using a non‐linear transform ‐tnl %non_linear_transformation_file If coordinate systems are not linearly mapped, for example when converting a jagged poly‐line in real
coordinates to a ModEM2d local coordaintes, then this is the transformation system that should be used. This
is used for coordinate transforms of 2D transect lines only, this is not to be used for 3D datasets. The format
is basically an offset‐ordered list of local X, Local Y and corresponding Global X, Global Y points.
LX LY GX GY
LocalX1 LocalY1 GlobalX1 GlobalY1
LocalX2 LocalY2 GlobalX2 GlobalY2
...
LocalXN LocalYN GlobalXN GlobalYN
Example Format (includes the header line LX LY GX GY):
LX LY GX GY
‐19227.073 0 ‐165332.0487 6927032.407
1772.927 0 ‐146163.7861 6932578.214
21772.927 0 ‐127908.2979 6937859.934
40772.927 0 ‐110565.5841 6942877.568
58772.927 0 ‐94135.64467 6947631.116
75772.927 0 ‐78618.47968 6952120.579
91772.927 0 ‐64014.0891 6956345.955
106772.927 0 ‐50322.47294 6960307.245
120772.927 0 ‐37543.63118 6964004.45
133772.927 0 ‐25677.56383 6967437.568
145772.927 0 ‐14724.2709 6970606.6
156772.927 0 ‐4683.752376 6973511.546
166772.927 0 4443.991736 6976152.406
175772.927 0 12658.96144 6978529.18
183772.927 0 19961.15673 6980641.869
190772.927 0 26350.5776 6982490.471
196772.927 0 31827.22407 6984074.987
201772.927 0 36391.09613 6985395.417
Transform from global‐to‐local coordinates using a non‐linear transform ‐tng %non_linear_transformation_file
Page 38 of 60
Filters
Maximum Frequency Filter ‐maxfq %filterx %filtery %filterz Selects the most frequently occuring Integer within filter. This filter converts all values to integers prior to running. The filter size (in terms of number of cells) is defined by filterx, filtery and filterz. In 2D cases, filtery is not used. Currently a dummy value must be included for 2D grids.
Modifiers
Interpolation ‐xm %mode These values are used when importing XYZV 2D scattered point datasets.
Modes:
1(Nearest Neighbour)
2(Inverse Distance)
3(Linear)
4(Cubic)
Interpolation Search x ‐xsx %distance These values are used when importing XYZV 2D scattered point datasets.
These values are the search distance
Interpolation Search y ‐xsy %distance
Interpolation Search z ‐xsz %distance
Spatial Resolution
This tag is used when importing XYZV 2D scattered point datasets and Model Vision poly files. They specify the output mesh resolution of scattered points.
Spatial Resolution x ‐dx %spacing Force Spatial Resolution in x direction (dx Spacing)
Spatial Resolution y ‐dy %spacing Force Spatial Resolution in y direction (dy Spacing)
Spatial Resolution z ‐dz %spacing Force Spatial Resolution in the vertical direction (dz Spacing)
Page 39 of 60
Mapping (to be used for mapping SEGY to Rectilinear Grid)
Global SEGY to Local Rectilinear Grid Transformation ‐fmt %tf_file (Input non‐linear transformation file)
This force mesh function is a specific function related to SEGY files.
Since SEGY files can become extremely big, computation on them
becomes memory and CPU intensive. In cases of k‐means clustering,
we want to subsample them down to a smaller mesh size upon
import. This is a less memory intensive way to subsampling SEGY
down into a smaller mesh size.
If the ‐fmt tag is used, the segy in global coordinates will be converted
via the transformation to the local rectilinear grid mesh.
SEGY map to lower/higher resolution mesh ‐fm %rectilinear_file (Input rectilinear file)
Examples
Example 1: Convert ModEM to Standard Rectilinear Format
This step converts ModEM models to the standardized ASCII rectilinear format
java ‐jar ../JGeoTools.jar ‐im Data/Input_Model.rho ‐o Data/Output_Model.txt
Breakdown:
java Java must be added to the system paths,this needs to be jdk/jre 1.8 or higher
‐jar a tag to tell java to open a Jar file
.../JGeotools.jar the path to the compiled JGeoTools API
‐im a tag saying the input file is a ModEM rho file
Data/Input_Model.rho path to input ASCII ModEM 2D file in local coordinates
Data/Output/MT/Model_01_Local.txt path to output ASCII rectilinear file in ModEM local coordinates
Page 40 of 60
Example 2: Downsampling SGY to ModEM grid
Running command to convert the original ModEM file from local coordinates to standardized rectilinear grid
This step is composed of smaller steps:
1. Load the SGY Seismic attribute
2. Map the seismic ascii data from global coordinates to local coordinates using the mesh from ModEM
3. Export the data to standard ascii format
java ‐jar ‐Xmx6000m ../JGeoTools.jar ‐iy2d Data/Original/Seismic_Attributes/YOM_Seismic_depth_Texture_Correlation_64.sgy ‐fm Data/Output/MT/Model_01_Local.txt ‐fmt
Transformation/YOMGlobalSeismicToLocalMTTransform ‐o Data/Output/Seismic/Downsampled/YOM_Seismic_depth_Texture_Correlation_64_Local.txt
Page 41 of 60
Breakdown:
java Java must be added to the system paths,this needs to be jdk/jre 1.8 or higher
‐jar a tag to tell java to open a Jar file
‐Xmx6000m a tag to use more than 4gb memory. In this case 6000 mb is used— higher numbers can be used if an out of memory exception is encountered.
.../JGeotools.jar the path to the compiled JGeoTools API
‐iy2d The following input file is in a 2D SGY file format
Data/Original/Seismic_Attributes/YOM_Seismic_
depth_Texture_Correlation_64.sgy
path to the 2D segy file format
‐fm The seismic data will be projected into a new rectilinear grid upon import
Data/Output/MT/Model_01_Local.txt The input model to be used to down‐sample the seismic section.
‐fmt This command is specific to mapping seismic SGY to local ModEM coordinates.
Transformation/YOMGlobalSeismicToLocalMTTra
nsform
Path for non‐linear local to global transformation file
‐o Output the result into the standard rectilinear file format
Data/Output/Seismic/Downsampled/YOM_Seism
ic_depth_Texture_Correlation_64_Local.txt
Output downsampled file
Example 3: KMeans Clustering
K‐Means clustering is described in the section K‐Means Clustering.
The usage:
The method ‐kmeans takes in any number of attributes (i.e., the k‐means dimensions), the number of target clusters, the maximum number of iterations and the K‐means clustering output file. All input files
selected will be included for the K‐means clustering method. Note that the input files must have the same rectilinear mesh, otherwise step 2 must be performed to normalize the grids. Another consideration is
that some clusters may not have any associated points, that is some centroids may represent outliers, a small number of points or no data at all.
The output file:
java ‐jar ‐Xmx6000m ../JGeoTools.jar ‐i %ATT0% ‐i %ATT1% ‐kmeans 3 200 Data/Output/KMeans/kmeans.txt ‐o Data/Output/KMeans/Clustering_Result_Local.txt
Page 42 of 60
Breakdown:
java Java must be added to the system paths,this needs to be jdk/jre 1.8 or higher
‐jar a tag to tell java to open a Jar file
‐Xmx6000m a tag to use more than 4gb memory. In this case 6000 mb is used— higher numbers can be used if an out of memory exception is encountered.
.../JGeotools.jar the path to the compiled JGeoTools API
‐i Input File
%ATT0% %ATT1% Paths to the input files (i.e., dimension)
‐kmeans Tells JGeoTools to take the inputs for a K‐means clustering.
3 The number of target clusters (This number is just for illustration, use higher numbers when appropriate
200 Maximum number of iterations (This may not be reached if cluster assignment does not change in an iteration)
Data/Output/KMeans/kmeans.txt Path to the clustering result (See below for description). If you wish to continue k‐means clustering, point this path to the previous output clustering result.
‐o Output the result into the standard rectilinear file format
Data/Output/KMeans/Clustering_Result_Local.txt Output Clustering file. This file will contain the grid with each cell assigned the corresponding cluster result (id of the centroid).
Example Output
Version: 1
NClusters: 10
NDimensions: 3
Iteration Cluster_0_dim_0 Cluster_0_dim_1 Cluster_1_dim_0 Cluster_1_dim_1 Cluster_2_dim_0 Cluster_2_dim_1
1 7.3087816 1.0047317 4.0743976 2.077148 3.32717 6.588672
1 7.3087816 1.0047317 4.0743976 2.077148 3.32717 6.588672
2 6.4140596 1.525588 3.1859615 3.493386 2.782297 6.28927
3 5.511826 1.7032617 2.580508 4.10425 2.310531 6.095014
Page 43 of 60
The result is stored for each iteration, with the final line of the file as the final iteration. The cluster number Cluster_x, where x is cluster number from 0 to N‐1. Dimension or dim_y, where y is the input file. In this
case dim_0 is the value of %ATT0%, dim_1 is the value of %ATT1%.
That is, the final iteration in this example produced the following centroid values:
Iteration 3
Cluster 0 : %ATT0%=5.511826 %ATT1%=1.7032617
Cluster 1 : %ATT0%=2.580508 %ATT1%=4.10425
Cluster 2 : %ATT0%=2.310531 %ATT1%=6.09014
Example 4: Most Frequent Filtering
Running this command will run a Most Frequent Number filter on the data. This filter is a rectangular filter and is currently implemented for 2D only, but takes in 3D input. The second y dimension is currently
ignored.
java ‐jar ‐Xmx6000m ../JGeoTools.jar ‐i Data/Output/KMeans/Clustering_Result_Local.txt ‐maxfq 2 2 1 ‐o Data/Output/KMeans/Clustering_Result_Most_Frequent_2_2_1_Local.txt
Breakdown:
java Java must be added to the system paths,this needs to be jdk/jre 1.8 or higher
‐jar a tag to tell java to open a Jar file
‐Xmx6000m a tag to use more than 4gb memory. In this case 6000 mb is used— higher numbers can be used if an out of memory exception
is encountered.
.../JGeotools.jar the path to the compiled JGeoTools API
‐i Input File
Data/Output/KMeans/Clustering_Result_Local.txt Paths to the input file to be used for the most frequent filter
‐maxfq Tells JGeoTools to run a max frequency filter on the input
2 2 1 The radius of the rectangular filter for the x, y and z dimensions. A value of 2 will include the indices [i‐2, i‐1,i,i+1, i+2].
‐o Output the result into the standard rectilinear file format
Data/Output/KMeans/Clustering_Result_Most_Frequent_2_2_1_Local.txt Output Maximum frequency filtered file
Page 44 of 60
Example 5: Flood Fill Values by cluster group
Running command maps conductivities from the initial ModEM model onto the K‐means clustering result
A recursive flood fill algorithm is applied and may run out of memory. Increase the stack size using the ‐Xss tag. Currently set to 16 mb.
java ‐jar ‐Xmx6000m ‐Xss16m ../JGeoTools.jar ‐i Data/Output/KMeans/Clustering_Result_Most_Frequent_2_2_1_Local.txt ‐mapvc Data/Output/MT/Model_01_Local.txt 1 ‐o
Data/Output/MT/Model_01_Cluster_Mapped_Local.txt
Breakdown:
java Java must be added to the system paths,this needs to be jdk/jre 1.8 or higher
‐jar a tag to tell java to open a Jar file
‐Xmx6000m a tag to use more than 4gb memory. In this case 6000 mb is used— higher numbers can be used if an out of memory exception is
encountered.
‐Xss16m Stack size in m. This function is a recursive function and may result in a stack overflow error. If this is encountered, increase the
stack memory value
.../JGeotools.jar the path to the compiled JGeoTools API
‐i Input File
Data/Output/KMeans/Clustering_Result_Most_Frequent_2_2_1_Local.txt Path to the cluster groups (or the skeleton to be flood filled)
‐mapvc The values input file (values from this input will be used to fill the skeleton within regions of connected equal cluster/integer value)
Data/Output/MT/Model_01_Local.txt Tells JGeoTools to run a max frequency filter on the input
1 Grouping Mode. A value of 1 tells the program to flood fill using the mean value within that zone. If you wish to use the median
value instead use the value 2. (mean = 1, median = 2)
‐o Output the result into the standard rectilinear file format
Data/Output/MT/Model_01_Cluster_Mapped_Local.txt Output flood filled values (averaged values for each connected cluster id mapped to the input skeleton)
Page 45 of 60
Example 6: Output ASCII to ModEM model file
This method converts the final flood filled conductivity values (or any input file) into the ModEM model file format.
The following function is called:
java ‐jar ‐Xmx6000m ../JGeoTools.jar ‐i Data/Output/MT/Model_01_Cluster_Mapped_Local.txt ‐om Data/Output/MT/Model_01_KMeans_Conductivity.rho
Breakdown
java Java must be added to the system paths,this needs to be jdk/jre 1.8 or higher
‐jar a tag to tell java to open a Jar file
‐Xmx6000m a tag to use more than 4gb memory. In this case 6000 mb is used— higher numbers can be used if an out of memory exception is encountered.
.../JGeotools.jar the path to the compiled JGeoTools API
‐i Input File
Data/Output/MT/Model_01_Cluster_Mapped_Lo
cal.txt
Path to the cluster groups (or the skeleton to be flood filled)
‐om Output to ModEM model file format
Data/Output/MT/Model_01_KMeans_Conductivi
ty.rho
Path to output model file
Acknowledgments
Research Partners
MRIWA
Pawsey
Petrel
Geoscience Australia
Page 46 of 60
File Formats
This section overviews several of the major file formats that can be imported/exported in JGeoEarthTools.
SeismicASCII
The 2D Seismic ASCII File is based upon the simple file format in Opendtect. There are limitations applied in this software. These are:
Only ASCII is supported. Binary is currently not yet supported.
Trace numbers must be included for the 2D file (3D does not have trace numbers)
Otherwise follow the Opendtect specification below:
Simple File
The user can import simple ASCII or Binary file by using plain file Seismic I/O Plugin.
This can be reached via Survey > Import > Seismic > Simple File > 3D or 2D (Pre/Post‐stack) etc.
The input file must first be selected and its data format type specified, between ascii and binary (4‐bytes floats).
All data must be in the 'local' format, because a blunt binary read/write is performed.
(Part of) the input file can be visualized by pressing the examine button.
The data must consists of one trace per record (line). The samples are thus in columns,
from shallowest to deepest, with a regular step. The trace position and time/depth index can be
read from the input file, left of the trace, or can be provided.
If provided, start, step and number of samples are requested in the corresponding directions,
assuming the input file if regular and does not contain holes. Post‐stack volume must be sorted by
inlines, crossline, (offset), Z (time or depth).
Optionally, the user can scale the cube before loading as well by mentioning the amount of shift and
the corresponding factor. Either pass or discard the null traces before loading.
The easiest way to see what the format looks like is by producing a little export file from a bit of
seismics.
Excerpt from the Opendtect 6.0 Manual
Page 47 of 60
An example of the file is shown below:
8 5 9
1 50 0 * 10 90.5 * * * * * *
2 100 100 * * 82.7 84.2 85.3 84.7 * * *
3 150 200 * * 88.2 88.4 89.8 89.2 * * *
4 200 300 * * 92.6 90.5 91.5 90.4 * * *
5 250 400 * * 94.1 90.9 90.7 89.1 * * *
6 300 500 * * 94.9 90.5 88.5 86.1 * * *
7 350 600 * * * 86.9 85.1 83.2 * * *
8 400 700 * * * 87.5 86.2 84.0 * * *
9 450 800 * * * 87.9 87.3 85.6 * * *
10 500 900 * * * 86.8 87.0 86.6 * * *
11 550 1000 * * * 85.5 86.7 86.9 * * *
12 600 1100 * * * 84.5 84.7 84.8 80.3 * *
13 650 1200 * * * 81.2 81.0 81.3 76.5 * *
14 700 1300 * * * 83.2 80.8 79.6 73.9 * *
15 750 1400 * * * * * * * *
... Nth trace
Explanation
Line 1: Datum(8 m) dz_increment(5 m) trace_length(9 samples)
Line 2: Trace_Number(1) inline/easting(50) crossline/northing(0) sample_1(value=*=null) sample_2(value=10) ....
Page 48 of 60
How to Import a Seismic ASCII file and Export a SEGY file in Opendtect?
Step 1: Open Opendtect and select the Simple File import Option
Survey > Import > Seismic > Simple File > 2D/3D
Step 1: Importing Simple ASCII file
Step 2: Set up import options (From top to bottom)
ASCII must be selected
Select your ASCII file
Traces must start with a position
Trace number is included preceding the X/Y
No Ref/SP number is included after the trace number
File start does contain sampling info
Discard or Pass Null Traces
Set Output attribute
Page 49 of 60
Set Line name
Step 2: Setting up import options for Simple ASCII file
Step 3: Select SEG‐Y Export function
Survey > Export > Seismics > SEG‐Y > 2D/3D
Page 50 of 60
Step 3: Selecting SEGY Export
Step 4: Set up export options
Set up the options depending on your needs, but I select all data under the trace sub‐selection option button.
Page 51 of 60
Step 4: Setting up export options
XYZV Line
This format is an ascii format with scatter points in the form, x, y, z, value. There is a header line that is skipped.
X Y Z V
657815. 5733888. 41. 0.
657839. 5733891. 42. 1.
657840. 5733891. 45. 2.
657839. 5733891. 48. 3.
The following modifiers must be included:
‐xm ‐dx ‐dy ‐dz ‐xsx ‐xsy ‐xsz
These tags tell the specified interpolator how to construct a grid from the scattered points. A convex hull algorithm will eliminate data outside of the data extents.
Page 52 of 60
K-Means Clustering
K‐Means clustering is a simple statistical unsupervised learning algorithm. It works by grouping an N‐dimensional dataset into groups— categorizing each data point into a cluster as represented by a centroid. K‐Means predicts the centroid location through an iterative process. The coded solution has been based on the solution provided from DataOnFocus but has been completely rewritten for application in JGeoEarthTools:
Solution extremely modified from DataOnFocus and is almost all re‐written. The following is added:
Multi‐threading has been added. Parallelization is performed on each cluster group. For example 10 threads will be created if the number of clusters is chosen.
Maximum number of iterations can now be set in the inversion loop. This should be used for large datasets where computation of the solution is slow.
Enabled a N‐dimensional cluster group. Any number of clusters can be used, including one.
A constant Random number seed number is set so the initial clusters are consistent. A variable may be included in later releases if a different cluster output is required.
Output Cluster results. This ASCII file acts as a save‐state for the clustering result. This way the K‐Means clustering can be continued after being interrupted.
The method no longer accepts 1D arrays but rectilinear objects
It has been noticed that the cluster results are slightly different in the way the threading is performed. This may because random numbers are now accessed asynchronously rather than sequentially.
Setting up the K‐Means clustering is based on the following code:
1. It takes in the initial cluster points as input. This allows for any number of datasets.
2. The initial points are assigned to be random if a clustering groupings file is not chosen. The seed has been currently set to Random seed 1, which means, that each clustering result will be consistent each time you run the program.
3. A maximum number of iterations is allowed in case a perfect k‐means clustering result is not required. If a clustering groupings file has been selected then it will initialise the cluster point values with the last recorded index. This cluster file contains the grouping for all iterations.
4. It will then compute the error for each data‐point against all centroids. For each point, the centroid with the lowest error will be initialized with that initial cluster.
5. The centroids are then updated to minimize the global error. This is done through an "Expectant Minimization" algorithm (see Stanford Computer Science for more details).
6. The centroids are updated and errors recalculated
7. Steps 3‐6 are repeated until centroid assignment does not change from one iteration to the next or if the maximum number of iterations is reached
Page 53 of 60
public KMeans(String clusteringGroupingsFile, int [][] indices, float [][][] pts, int nClusters, int maxIterations, ArrayList<Double> minimumArray, ArrayList<Double> maximumArray) {
this.pts = pts;
this.indices = indices;
this.dim = pts.length;
this.nClusters = nClusters;
this.maxIterations = maxIterations;
this.clusteringGroupingsFile = clusteringGroupingsFile;
this.minimumArray = minimumArray;
this.maximumArray = maximumArray;
clusters = new ArrayList<>();
}
The code that performs the K‐Means clustering is:
public static RectilinearSection kmeans (String clusteringGroupingsFile, List<RectilinearSection> input, int nClusters, int maxIterations) {
logger.info("Running KMeans");
logger.info("...Number of Inputs=" + input.size());
logger.info("...Number of Clusters=" + nClusters);
logger.info("...Max Iterations=" + (maxIterations == ‐1 ? "Infinite" : maxIterations));
logger.info("...Validating Inputs");
maxIterations = maxIterations == ‐1 ? Integer.MAX_VALUE : maxIterations;
int nx = input.get(0).xs.size();
int nz = input.get(0).zs.size();
ArrayList<Double> offsets = input.get(0).offsets;
ArrayList<Double> xs = input.get(0).xs;
ArrayList<Double> ys = input.get(0).ys;
ArrayList<Double> zs = input.get(0).zs;
double originX = input.get(0).originX;
Page 54 of 60
double originY = input.get(0).originY;
double originZ = input.get(0).originZ;
boolean isValid = true;
int nth = 1;
LinkedHashMap<Integer, ArrayList<Integer>> validxs = new LinkedHashMap<>();
LinkedHashMap<Integer, ArrayList<Integer>> validys = new LinkedHashMap<>();
LinkedHashMap<Integer, ArrayList<Integer>> validzs = new LinkedHashMap<>();
ArrayList<Double> currentValidXs = new ArrayList<>(xs);
ArrayList<Double> currentValidYs = new ArrayList<>(ys);
ArrayList<Double> currentValidZs = new ArrayList<>(zs);
for(RectilinearSection s : input) {
ArrayList<Double> xts = new ArrayList<>(currentValidXs);
ArrayList<Double> yts = new ArrayList<>(currentValidYs);
ArrayList<Double> zts = new ArrayList<>(currentValidZs);
for(double d : s.xs) {
boolean found = false;
Double df = Double.NaN;
for(Double d2 : xts) {
if(approximatelyEqual(d,d2,TOLERANCE)) {
found = true;
df = d2;
}
}
xts.remove(df);
}
if(nx != s.xs.size()) {
int n = 1;
Page 55 of 60
for(RectilinearSection s2 : input) {
logger.info("Eastings do not match: Input " + n++ + "="+ + s2.xs.size());
}
isValid = false;
}
if(nz != s.zs.size()) {
isValid = false;
int n = 1;
for(RectilinearSection s2 : input) {
logger.info("Northings do not match: Input " + n++ + "="+ s2.ys.size());
}
}
if(originX != s.originX) {
isValid = false;
logger.info("Origin X does not match: Input " + nth + "="+ s.originX);
int n = 1;
for(RectilinearSection s2 : input) {
logger.info("‐‐‐Origin for " + n++ + "="+ s2.originX);
}
}
if(originY != s.originY) {
isValid = false;
logger.info("Origin Y does not match: Input " + nth + "="+ s.originY);
int n = 0;
for(RectilinearSection s2 : input) {
logger.info("‐‐‐Origin for " + n++ + "="+ s2.originY);
}
}
if(originZ != s.originZ) {
isValid = false;
logger.info("Origin Z does not match: Input " + nth + "="+ + s.originZ);
Page 56 of 60
int n = 0;
for(RectilinearSection s2 : input) {
logger.info("‐‐‐Origin for " + n++ + "="+ + s2.originZ);
}
}
nth++;
}
if(isValid) {
logger.info("...Valid!");
} else {
logger.info("...INVALID! Aborting.");
return null;
}
logger.info("...Creating Cluster Indices");
logger.info("..." + nx + " x " + nz + " x " + input.size());
int [][] indices = new int [nx][nz];
int nv = input.size();
logger.info("...Initializing blank array");
float [][][] pts = new float[nv][nx][nz];
logger.info("...Null Points Added");
logger.info("...Settings Points");
int countIncrement = (int) Math.min((double) nx/20.0,10000.0);
ArrayList<Double> minimumArray = new ArrayList<Double>();
ArrayList<Double> maximumArray = new ArrayList<Double>();
for(int k = 0 ; k < nv ; k++) {
RectilinearSection s = input.get(k);
double minVal = s.values.get(0).get(0);
double maxVal = s.values.get(0).get(0);
Page 57 of 60
for(int i = 0 ; i < nx ; i++) {
List<Double> vals = s.values.get(i);
if(((i+1)%countIncrement) == 0) System.out.println("...Trace " + i + " of " + nx + "(" + (100 *(double) i / (double) nx) + "%) complete");
for(int j = 0 ; j < nz ; j++) {
double val = vals.get(j);
pts[k][i][j] = (float) val;
minVal = Math.min(minVal, val);
maxVal = Math.max(maxVal, val);
}
}
minimumArray.add(new Double(minVal));
maximumArray.add(new Double(maxVal));
}
logger.info("...Computing K‐Means");
KMeans k = new KMeans(clusteringGroupingsFile, indices, pts, nClusters, maxIterations, minimumArray, maximumArray);
k.init();
k.calculate();
logger.info("...Formatting Output");
List<List<Double>> outputValues = new LinkedList<List<Double>>();
for(int i = 0 ; i < nx ; i++) {
int [] arr = indices[i];
List<Double> l = new LinkedList<Double>();
for(int j = 0 ; j < nz ; j++) {
l.add((double) arr[j]);
}
outputValues.add(l);
}
RectilinearSection section = new RectilinearSection(offsets, xs, ys, zs, outputValues, originX, originY, originZ);
return section; }
APPENDIX C
Cooperative Inversion Workflows Flowcharts
Prior Model Creation Using Unsupervised Clustering of Seismic Attributes (Automatised via batch files)
Prior Model Creation Using Structural Constraints (Manual via interpreted seismic sections)
K‐means clustering of seismic attributes files.
Convert ModEM model file to JGeo format
Map resistivities from converted ModEM file to the k‐means clusters
Downsample the k‐means cluster file to the
same mesh as the ModEM file
Apply a most frequency filter to provide a
smoother prior model
Convert the smoothed JGeo file back to
ModEM format as prior model for MT inversion
Structural/Stratigraphic Interpretation of Seismic
Section
Create Highres Bitmap of Interpreted Seismic with Geological Units
Load Bitmap into MTModelBuilder and assign Resistivities
Export suitable Prior Model File for Inversion
ProgramSet Meshing Parameters
Load suitable Datafile of Inversion Program
Page 59 of 60
Don’t Bury Western Australia’s Geophysical Data: Uncovering Prospective Mineral Terrains with Regional
Potential Field, Seismic and MT Transects through Cooperative Inversion
(MRIWA Project M493)