The fatiando package has been deprecated. Please check out the new tools in the Fatiando a Terra website: www.fatiando.org

Compute normal gravity and reductions (fatiando.gravmag.normal_gravity)

Gravity of ellipsoid models and common reductions (Bouguer, free-air)

Reference ellipsoids

This module uses instances of ReferenceEllipsoid to store the physical constants of ellipsoids. To create a new ellipsoid, just instantiate ReferenceEllipsoid and give it the semimajor axis a, the flattening f, the geocentric gravitational constant GM, and the angular velocity omega. All other quantities, like the gravity at the poles and equator, eccentricities, etc, are computed by the class from these 4 parameters.

Available ellipsoids:

  • WGS84 (values taken from Hofmann-Wellenhof and Moritz, 2005):

    >>> from fatiando.gravmag.normal_gravity import WGS84
    >>> print(WGS84.name)
    World Geodetic System 1984
    >>> print('{:.0f}'.format(WGS84.a))
    6378137
    >>> print('{:.17f}'.format(WGS84.f))
    0.00335281066474748
    >>> print('{:.10g}'.format(WGS84.GM))
    3.986004418e+14
    >>> print('{:.7g}'.format(WGS84.omega))
    7.292115e-05
    >>> print('{:.4f}'.format(WGS84.b))
    6356752.3142
    >>> print('{:.8f}'.format(WGS84.E)) # Linear eccentricity
    521854.00842339
    >>> print('{:.15f}'.format(WGS84.e_prime)) # second eccentricity
    0.082094437949696
    >>> print('{:.10f}'.format(WGS84.gamma_a)) # gravity at the equator
    9.7803253359
    >>> print('{:.11f}'.format(WGS84.gamma_b)) # gravity at the pole
    9.83218493786
    >>> print('{:.14f}'.format(WGS84.m))
    0.00344978650684
    

Normal gravity

  • gamma_somigliana: compute the normal gravity using the Somigliana formula (Hofmann-Wellenhof and Moritz, 2005). Calculated on the ellipsoid.
  • gamma_somigliana_free_air: compute normal gravity at a height using the Somigliana formula plus the free-air correction \(-0.3086H\ mGal/m\).
  • gamma_closed_form: compute normal gravity using the closed form expression from Li and Gotze (2001). Can compute anywhere (on, above, under the ellipsoid).

Bouguer

  • bouguer_plate: compute the gravitational attraction of an infinite plate (Bouguer plate). Calculated on top of the plate.

You can use fatiando.gravmag.prism and fatiando.gravmag.tesseroid to calculate the terrain effect for a better correction.

References

Hofmann-Wellenhof, B. and H. Moritz, 2005, Physical Geodesy, Springer-Verlag Wien, ISBN-13: 978-3-211-23584-3

Li, X. and H. J. Gotze, 2001, Tutorial: Ellipsoid, geoid, gravity, geodesy, and geophysics, Geophysics, 66(6), p. 1660-1668, doi: 10.1190/1.1487109


class fatiando.gravmag.normal_gravity.ReferenceEllipsoid(name, a, f, GM, omega)[source]

Bases: object

A generic reference ellipsoid.

It stores the physical constants defining the ellipsoid and has properties for computing other (derived) quantities.

All quantities are expected and returned in SI units.

Parameters:

  • a
    : float

    The semimajor axis (the largest one, at the equator). In meters.

  • f
    : float

    The flattening. Adimensional.

  • GM
    : float

    The geocentric gravitational constant of the earth, including the atmosphere. In \(m^3 s^{-2}\).

  • omega
    : float

    The angular velocity of the earth. In \(rad s^{-1}\).

E

Linear eccentricity

GM

Geocentric gravitational constant (including the atmosphere)

a

Semimajor axis

b

Semiminor axis

e_prime

Second eccentricity

f

Flattening

gamma_a

Normal gravity at the equator

gamma_b

Normal gravity at the poles

m

\(\omega^2 a^2 b / (GM)\)

omega

Angular velocity

fatiando.gravmag.normal_gravity.bouguer_plate(topography, density_rock=2670, density_water=1040)[source]

Calculate the gravitational effect of an infinite Bouguer plate.

Note

The effect is calculated on top of the plate.

Uses the famous \(g_{BG} = 2 \pi G \rho t\) formula, where t is the height of the topography. On water (i.e., t < 0), uses \(g_{BG} = 2 \pi G (\rho_{water} - \rho_{rock})\times (-t)\).

Parameters:

  • topography
    : float or numpy array

    The height of topography (in meters).

  • density_rock
    : float

    The density of crustal rocks

  • density_water
    : float

    The density of ocean water

Returns:

  • g_bouguer
    : float or array

    The computed gravitational effect of the Bouguer plate

fatiando.gravmag.normal_gravity.gamma_closed_form(latitude, height, ellipsoid=<fatiando.gravmag.normal_gravity.ReferenceEllipsoid object>)[source]

Calculate normal gravity at a height using the closed form expression of Li and Gotze (2001).

Parameters:

  • latitude
    : float or numpy array

    The latitude where the normal gravity will be computed (in degrees)

  • height
    : float or numpy array

    The height of computation (in meters). Should be ellipsoidal (geometric) heights for geophysical purposes.

  • ellipsoid
    : ReferenceEllipsoid

    The reference ellipsoid used.

Returns:

  • gamma
    : float or numpy array

    The computed normal gravity (in mGal).

fatiando.gravmag.normal_gravity.gamma_somigliana(latitude, ellipsoid=<fatiando.gravmag.normal_gravity.ReferenceEllipsoid object>)[source]

Calculate the normal gravity by using Somigliana’s formula.

This formula computes normal gravity on the ellipsoid (height = 0).

Parameters:

  • latitude
    : float or numpy array

    The latitude where the normal gravity will be computed (in degrees)

  • ellipsoid
    : ReferenceEllipsoid

    The reference ellipsoid used.

Returns:

  • gamma
    : float or numpy array

    The computed normal gravity (in mGal).

fatiando.gravmag.normal_gravity.gamma_somigliana_free_air(latitude, height, ellipsoid=<fatiando.gravmag.normal_gravity.ReferenceEllipsoid object>)[source]

Calculate the normal gravity at a height using Somigliana’s formula and the free-air correction.

Parameters:

  • latitude
    : float or numpy array

    The latitude where the normal gravity will be computed (in degrees)

  • height
    : float or numpy array

    The height of computation (in meters). Should be ellipsoidal (geometric) heights for geophysical purposes.

  • ellipsoid
    : ReferenceEllipsoid

    The reference ellipsoid used.

Returns:

  • gamma
    : float or numpy array

    The computed normal gravity (in mGal).