Main Content

gravitywgs84

Implement 1984 World Geodetic System (WGS84) representation of Earth gravity

Description

g = gravitywgs84(h,lat) implements the mathematical representation of the geocentric equipotential ellipsoid of WGS84 using altitude h and geodetic latitude lat.

g = gravitywgs84(h,lat,lon,method,[noatm,nocent,prec,jd],action) uses both latitude and longitude, as well as other optional inputs. method must be 'CloseApprox', 'Exact', or TaylorSeries.

example

gtotal = gravitywgs84(h,lat,lon,'Exact',[noatm,nocent,prec,jd],action) calculates an array of total gravity values in the direction normal to the Earth surface at point P in the direction normal to an ellipsoid confocal to the Earth WGS84 ellipsoid passing through point P.

example

[gn gt] = gravitywgs84(h,lat,lon,'Exact',noatm,nocent,prec,jd,action) calculates the components of house of in directions normal and tangential to the Earth WGS84 ellipsoid.

example

Examples

collapse all

This example shows how to calculate the normal gravity at 5000 meters and 55 degrees latitude using the Taylor Series approximation method with errors for out-of-range inputs.

g = gravitywgs84(5000, 55, 'TaylorSeries', 'Error')
g = 
9.7997

This example shows how to calculate the normal gravity at 15,000 meters, 45 degrees latitude, and 120 degrees longitude using the Close Approximation method with atmosphere, centrifugal effects, and no precessing, with warnings for out-of-range inputs.

g = gravitywgs84(15000, 45, 120, 'CloseApprox')
g = 
9.7601

This example shows how to calculate the normal and tangential gravity at 1000 meters, 0 degrees latitude, and 20 degrees longitude using the Exact method with atmosphere, centrifugal effects, and no precessing, with warnings for out-of-range inputs.

[gn, gt] = gravitywgs84( 1000, 0, 20, 'Exact')
gn = 
9.7772
gt = 
0

This example shows how to calculate the normal and tangential gravity at 1000 meters, 0 degrees latitude, and 20 degrees longitude and 11,000 meters, 30 degrees latitude, and 50 degrees longitude using the Exact method with atmosphere, centrifugal effects, and no precessing, with no actions for out-of-range inputs.

h = [1000; 11000];
lat = [0; 30];
lon = [20; 50];
[gn, gt] = gravitywgs84( h, lat, lon, 'Exact', 'None' )
gn = 2×1

    9.7772
    9.7594

gt = 2×1
10-4 ×

         0
   -0.7751

This example shows how to calculate the normal gravity at 15,000 meters, 45 degrees latitude, and 120 degrees longitude and 5000 meters, 55 degrees latitude, and 100 degrees longitude using the Close Approximation method with atmosphere, no centrifugal effects, and no precessing, with warnings for out-of-range inputs.

h = [15000 5000];
lat = [45 55];
lon = [120 100];
g = gravitywgs84( h, lat, lon, 'CloseApprox', [false true false 0])
g = 1×2

    9.7771    9.8109

This example shows how to calculate the normal and tangential gravity at 1000 meters, 0 degrees latitude, and 20 degrees longitude using the Exact method with atmosphere, centrifugal effects, and precessing at Julian date 2451545, with warnings for out-of-range inputs.

[gn, gt] = gravitywgs84( 1000, 0, 20, 'Exact', ...
              [ false false true 2451545 ], 'Warning')
gn = 
9.7772
gt = 
0

This example shows how to calculate the normal gravity at 15,000 meters, 45 degrees latitude, and 120 degrees longitude using the Close Approximation method with no atmosphere, with centrifugal effects, and with precessing at Julian date 2451545, with errors for out-of-range inputs:

g = gravitywgs84( 15000, 45, 120, 'CloseApprox', ...
        [ true false true 2451545 ], 'Error')
g = 
9.7601

This example shows how to calculate the total normal gravity at 15,000 meters, 45 degrees latitude, and 120 degrees longitude using the Exact method with no atmosphere, with centrifugal effects, and with precessing at Julian date 2451545, with errors for out-of-range inputs.

gn = gravitywgs84(15000, 45, 120, 'Exact', ...
        [true false true 2451545], 'Error')
gn = 
9.7601

Input Arguments

collapse all

Altitudes, specified as an array of m values, with respect to the WGS84 ellipsoid, in meters.

Data Types: double

Geodetic latitudes, specified as an array of m latitudes in degrees, where the north latitude is positive, and south latitude is negative.

Data Types: double

Geodetic longitudes, specified as an array of m longitudes, in degrees, where the east longitude is positive, and west longitude is negative.

Only use this input when you specify method as 'CloseApprox' or 'Exact'.

Data Types: double

Gravity calculation method, specified as:

  • 'TaylorSeries' — Medium gravity precision

  • 'CloseApprox' — Close gravity precision

  • 'Exact' — Exact gravity precision

For more information, see Limitations.

Data Types: double

Exclude or include Earth atmosphere, specified as true or false:

  • false — Include the mass of the atmosphere in the value for the Earth gravitational field.

  • true — Exclude the mass of the atmosphere in the value for the Earth gravitational field.

Only use this input when you specify method as 'CloseApprox' or 'Exact'.

Data Types: logical

Remove or include centrifugal effects, specified as:

  • false — Calculate gravity including the centrifugal force resulting from the Earth angular velocity; the centrifugal contribution is included.

  • true — Calculate gravity based on pure attraction resulting from the normal gravitational potential; the centrifugal contribution is excluded.

Only use this input when you specify method as 'CloseApprox' or 'Exact'.

Data Types: logical

Include or exclude a precession reference frame.

  • false — Calculate gravity using the angular velocity of the Earth as the value of the standard Earth rotating at a constant angular velocity.

  • true — Calculate gravity using the International Astronomical Union (IAU) value of the Earth angular velocity and the precession rate in right ascension. For the precession rate in right ascension, this option calculates Julian centuries from Epoch J2000.0 using the Julian date, jd.

Only use this input when you specify method as 'CloseApprox' or 'Exact'.

Data Types: logical

Julian date, specified as a scalar, to calculate Julian centuries from Epoch J2000.0. The prec option uses this option to calculate Julian centuries from Epoch J2000.0 for the precession rate in right ascension.

Only use this input when you specify method as 'CloseApprox' or 'Exact'.

Data Types: double

Action for out-of-range input, specified as:

  • Warning — Displays warning and indicates that the input is out-of-range.

  • Error — Displays error and indicates that the input is out-of-range.

  • None — Does not display warning or error.

Data Types: char | string

Output Arguments

collapse all

Gravity values normal to the Earth surface at specific longitude and latitude, returned as an array of m gravity values in the direction normal to the Earth surface. A positive value indicates a downward direction.

Total gravity at a specific lat lon location, normal to the ellipsoid confocal to WGS84 ellipsoid, returned as an array of m gravity values. A positive value indicates a downward direction.

Dependencies

This output is available only with method specified as 'Exact'. When method is 'TaylorSeries' or 'CloseApprox', the function assumes that gn equals g.

Total gravity values normal to the WGS84 ellipsoid at a specific lat lon location, returned as an array of m gravity values. A positive value indicates a downward direction.

gn is the component of gtotal that is colinear with geodetic normal line at point P.

Dependencies

This output is available only with method specified as'Exact'. When method is 'TaylorSeries' or 'CloseApprox', the function assumes that gn equals g.

Tangential gravity at a specific lat lon location, returned as an array of m gravity values. gt is the component of gtotal that is orthogonal to gn at point P in the meridian plane (plane passing through point P and the North and South poles of Earth).

Dependencies

This output is available only with method specified as 'Exact'.

Limitations

  • The WGS84 gravity calculations are based on the assumption of a geocentric equipotential ellipsoid of revolution. Since the gravity potential is assumed to be the same everywhere on the ellipsoid, there must be a specific theoretical gravity potential that can be uniquely determined from the four independent constants defining the ellipsoid.

  • Limit use of the WGS84 Taylor Series model to low geodetic heights. It is sufficient near the surface when submicrogal precision is not necessary. At medium and high geodetic heights, it is less accurate.

  • Limit use of the WGS84 Close Approximation model to a geodetic height of 20,000.0 meters (approximately 65,620.0 feet). Below this height, the function gives results with submicrogal precision.

  • To predict and determine a satellite orbit with high accuracy, instead of the gravitywgs84 function, use the gravitysphericalharmonics function with the EGM96 option and degree and order 70.

References

[1] National Imagery and Mapping Agency (NIMA). “Department of Defense World Geodetic System 1984: Its Definition, and Relationship with Local Geodetic Systems, TR8350.2, Third Ed.” Department of Defense, Washington, DC: 1997.

Version History

Introduced in R2006b