IGUG: A MATLAB package for 3D inversion of gravity data using graph theory

Saeed Vatankhah, Vahid Ebrahimzadeh Ardestani, Susan Soodmand Niri, Rosemary Renaut, Hojjat Kabirzadeh

Research output: Contribution to journalArticlepeer-review

14 Scopus citations


We present an open source MATLAB package, IGUG, for 3D inversion of gravity data. The algorithm implemented in this package is based on methodology that was introduced by Bijani et al. (2015). A homogeneous subsurface body is modeled by an ensemble of simple point masses. The model parameters are the Cartesian coordinates of the point masses and their total mass. The set of point masses, assumed to each have the same mass, is associated to the vertices of a weighted complete graph in which the weights are computed by the Euclidean pairwise distances separating vertices. Kruskal's algorithm is used to solve the minimum spanning tree (MST) problem for the graph, yielding the reconstruction of the skeleton of the body described by the model parameters. The algorithm is stabilized using an equidistance function that restricts the spatial distribution of point masses and favors a homogeneous distribution for the subsurface structure. The non-linear global objective function for the model parameters comprises the data misfit term and the equidistance stabilization function. A regularization parameter λ is introduced to balance the two terms of the objective function, and reasonable physically-relevant bound constraints are imposed on the model parameters. A genetic algorithm is used to minimize the bound constrained objective function for a fixed λ, subject to the bound constraints. A new diagnostic approach is presented for determining a suitable choice for λ, requiring a limited number of solutions for a small set of λ. This contrasts the use of the L-curve which was suggested for estimating a suitable λ in Bijani et al. (2015). Simulations for synthetic examples demonstrate the efficiency and effectiveness of the implementation of the algorithm. It is verified that the constraints on the model parameters are not restrictive, even with less realistic bounds acceptable approximations of the body are still obtained. Included in the package is the script GMD.m which is used for generating synthetic data and for putting measurement data in the format required for the inversion implemented within IGUG.m. The script Diagnostic_Results.m is included within IGUG.m for analyzing and visualizing the results, but can also be used as a standalone script given import of prior results. The software can be used to verify the simulations and the analysis of real data that is presented here. The real data set uses gravity data from the Mobrun ore body, north east of Noranda, Quebec, Canada.

Original languageEnglish (US)
Pages (from-to)19-29
Number of pages11
JournalComputers and Geosciences
StatePublished - Jul 2019


  • 3D inversion
  • Equidistance function
  • Graph theory
  • Gravity
  • Mobrun

ASJC Scopus subject areas

  • Information Systems
  • Computers in Earth Sciences


Dive into the research topics of 'IGUG: A MATLAB package for 3D inversion of gravity data using graph theory'. Together they form a unique fingerprint.

Cite this