Excess Mass Associated with a Gravity Anomaly

Calculate the excess mass associated with a de-trended gravity anomaly

Introduction

When modeling gravity data, excess mass refers to the mass required to produce the gravity anomaly. Assuming the density contrast between the excess mass and the surrounding rock is positive, the excess mass will be positive. If the density contrast between the mass and surrounding rock is negative, the excess mass will be negative. Using Gauss's Law it is possible to calculate the excess mass directly from the observed gravity anomaly, without reference to the shape of the mass.

[Top]

Mathematical basis for excess mass

Green found this solution to the excess mass within the Earth using a hemisphere for the hypothetical surface, $S$. Assume the flat top of the hemisphere is the surface of the Earth ($z=0$) The surface integral can be divided into the flat top and the hemisphere. By assuming the radius of the hemisphere is extremely large, some tricks are played with the limits of integration to simplify the problem. The equation for the surface integral becomes, $$\oint_S \vec g \cdot \vec n dA = \int_{z=0} \int g(x,y) dx dy + \int_{\phi = 0}^{2 \pi} \int_{\theta = \pi/2}^{\pi} g(r, \theta) sin \theta d \theta d \phi = 4 \pi GM $$ this reduces to, $$\int_{z=0} \int g(x,y) dx dy = 2 \pi GM $$ so the anomalous mass is, $$M = \frac{1}{2 \pi G} \int_{- \infty}^{\infty} \int_{- \infty}^{\infty} g(x,y) dx dy $$ In practice, the anomalous mass is found by numerically integrating the gridded gravity data across an area: $$M = \frac{1}{2 \pi G} \sum_{i=1}^{N} \sum_{j=1}^{M} \Delta g(x,y) \Delta x \Delta y$$ where:

  • $\Delta g(x,y)$ is the observed gravity anomaly
  • $M$ and $N$ are the number of grid points in the
  • $X$ and $Y$ directions, respectively, and
  • $\Delta x$ and $\Delta y$ are the grid spacing in the $X$ and $Y$ directions.

Model assumptions

This model assumes that:

[Top]

Model calculations

The mathematical grid shown below is an example of a grid of gravity data. The background gravity value is 0.2 mGal, so $\Delta g(x,y)$ is the difference from 0.2 mGal. To calculate the excess mass for this example of gravity data:

  • interpolate the gravity data on to a regular grid
  • find the background gravity value
  • for each grid point, subtract the background value and sum
  • multiply the sum by $\frac{1}{2 \pi G} \Delta x \Delta y$

grid

The excess mass for the above grid of gravity data is approximately $M = -1.57 \times 10^{10}$ kg, with the values posted next to each grid point given in mGals. The negative mass indicates that mass is missing and the gravity low is caused by the occurrence of lower density material. If the anomaly were caused by an air-filled cave system in limestone
($\rho = 2300$ kg m$^{-3}$), the volume of the cave system is $6.8 \times 10 ^6$m$^3$.

[Top]

Calculate excess mass using perl

The following perl script calculates the excess mass for a file of gridded gravity data. The data file should have the following format:


EASTING  NORTHING  GRAVITY(in mGal)

perl script: calc_excess_mass.pl

##################################
# Calculate the excess mass
#
# USAGE: perl script_name.pl data.txt threshold 0_or_1 spacing > out_file
# where, 
# script_name.pl is the name of the perl script
# data.txt is the name of gridded gravity data file
# threshold is the background gravity value
# 0_or_1 is a flag value , 1 or 0, 
#   1 = positive gravity anomaly
#   0 = negative gravity anomaly
# spacing is the grid spacing in meters
##################################
# USAGE statement
my $scriptname = $0;

if (($#ARGV +1) != 4) {
  my $Usage = "Usage: perl $scriptname data_file threshold(0 or 1) spacing > outfile
where,
  is the name of the gridded gravity data file
  is the background value of gravity
 <0 or 1> is a flag:
   0 = negative gravity anomaly
   1 = positive gravity anomaly
  is the grid spacing in meters
   is a name for the output\n";
  
  print "$Usage\n";
  exit;
}

my $xyz_file = $ARGV[0];
my $gravity_threshold = $ARGV[1];
my $pos_or_neg = $ARGV[2];
my $spacing = $ARGV[3];

# Open the data file 
open IN, "<$xyz_file" or die "cannot open $xyz_file: $!\\n";

my $total = 0;
my $count = 0;
my $anomaly = 0;

# Now, check if excess mass is due to a 
# positve or a negative gravity anomaly

# If anomaly is negative
if (!pos_or_neg) { # total all values < zero
  
  #Read in each line from input file
  while () {

    # Split line into values, split at space
    ($east, $north, $gravity) = split (" "); 
  
    #Subtract threshold from all gravity values
    $anomaly = $gravity - $gravity_threshold;
  
    # Screen resulting gravity value and sum 
    if ($anomaly < 0) {
      $total = $total + $anomaly;
      $count = $count + 1;
    }
  } 
}     
elsif (pos_or_neg) { # total all values > zero
  #Read in each line from input file
  while () {

    # Split line into values, split at space
    ($east, $north, $gravity) = split (" "); 
  
    #Subtract threshold from all gravity values
    $anomaly = $gravity - $gravity_threshold;
  
    # Screen resulting gravity value and sum 
    if ($anomaly > 0) {
      $total = $total + $anomaly;
      $count = $count + 1;
    }
  } 
}

# Convert to kg 
$total = $total/1e5;
#Calculate total excess mass
$xcess_mass = (1.0/(2.0 * 3.14159 * 6.67e-11)) * $total * $spacing * $spacing;
printf "Excess mass = %.2e kg (based on %d gravity values)\n", $xcess_mass, $count;
print "Finished!\n";
.
[Top]

Some References

Telford, W.M., Geldart, L.P. and Sheriff, R.E. (1990) Applied Geophysics, Cambridge University Press.


Citation
Connor, L. J. and C. B. Connor (2015) Calculating the excess mass from a de-trended gravity anomaly using perl.
Reference: https://gscommunitycodes.usf.edu/geoscicommunitycodes/public/geophysics/Gravity/excess_mass.php