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

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

• 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).