How Geoinformatics Exploration uses the FracSIS API to integrate with Matlab.
By Dr Dan Core, Geoinformatics Exploration Inc.
Geoinformatics Exploration (GXL) facilitates risk managed exploration via a structured analysis process using all available geological, geochemical and geophysical data.
For any given project GXL integrates and validates vast amounts of spatial and non-spatial data. This data is stored in FracSIS object-oriented databases and other relational and object-relational databases allowing rapid retrieval of information.
GXL aims to generate the best possible exploration targets, and therefore spends considerable time and effort looking for the best ways to process and visualise geoscientific information. GXL routinely develops in-house software for processing data and generating targets using empirical, statistical and probabilistic methods. For the data processing to be as efficient as possible, GXL writes many of its own algorithms for use within FracSIS.
For instance, customised scripts are written to avoid multiple imports and exports of data. This programming uses the FracSIS Python API and operates directly on the databases from within FracSIS to create new objects or modify existing ones. For batch processing or algorithms that require multiple runs for a successful result, GXL prefers stand-alone applications capable of accessing FracSIS databases. This set-up provides greater flexibility and prevents unnecessary objects from being generated in the databases. This allows for data management processes to be streamlined and data integrity maintained.
For processing geophysical, geochemical, and structural data, many of these algorithms are incorporated into a program called 'The GXL Toolbox'. This is written in Matlab, a technical computing language by US software developer The Mathworks.
The GXL Toolbox links directly to FracSIS using the FracSIS C++ API and Matlab C++ executable (mex) files. These C++ programs convert points, polylines, polygons, trisurfaces, 2D grids, and 3D grids from FracSIS databases into a format that can be manipulated using Matlab functions.
After calculations are complete, a separate set of programs writes the resulting Matlab objects back into the FracSIS database. The use of Matlab facilitates many functions for manipulating exploration data, including Fourier transforms of potential field data, isosurfacing, and creation of Voronoi polygons around point data. Fourier transforms are useful for frequency domain filtering of potential field data and edge detection algorithms. Voronoi polygons are useful for locating folds and faults using bedding data.
In addition to Matlab's built-in functions, it is easy to create user-defined data-processing functions within Matlab. For example, GXL has written an algorithm that automatically detects and models intrusions using magnetics data. Matlab is widely used throughout universities, research institutions and the industry and therefore many other specialist and generic applications are freely available for download on the web.
Linking Matlab with FracSIS has allowed GXL to use the advanced visualisation, database, and coordinate-handling of FracSIS in tandem with Matlab's powerful processing capabilities. The two pieces of software complement each other well.
Dan Core is Principal Geochemist at Geoinformatics Exploration. www.geoinformex.com; The Mathworks: www.mathworks.com
The FracSIS API is part of Fractal Technologies commitment to supporting open systems in the exploration and mining industry. The FracSIS API is provided at no cost to our customers, allowing other systems within our customer’s organisation to read, write, and process data in a FracSIS database. Companies in-house software development and customisation capabilities can use the API as part of their information systems toolset. However, many exploration and mining companies do not have these resources. Fractal Technologies has successfully implemented several customisation projects with companies where the FracSIS API has been used to maximise the benefit of using FracSIS by integrating the data stored in FracSIS databases with other software systems.
If you want to know more about how the FracSIS API can benefit your organisation contact
"API" is an acronym for Application Program Interface. One of the primary purposes of an API is to provide external access to commonly used functions within a software product. Programmers can take advantage of the API by making use of its functionality in other software programs, saving them the task of programming everything from scratch to achieve their desired outcome.
Although APIs are generally designed for programmers, they are ultimately good for users because they guarantee that all programs using an API will have similar capabilities. They also provide an open environment where customised products and processes can be built by integrating existing products.