Gravity -- compute the earth's gravity field
Gravity [
-n name ] [
-d dir ] [
-N
Nmax ] [
-M Mmax ] [
-G |
-D |
-A |
-H ] [
-c lat h ] [
-w ] [
-p
prec ] [
-v ] [
--comment-delimiter commentdelim ]
[
--version |
-h |
--help ] [
--input-file
infile |
--input-string instring ] [
--line-separator linesep ] [
--output-file outfile
]
Gravity reads in positions on standard input and prints out the
gravitational field on standard output.
The input line is of the form
lat lon h.
lat and
lon are the latitude and longitude expressed as decimal degrees or
degrees, minutes, and seconds; for details on the allowed formats for latitude
and longitude, see the "GEOGRAPHIC COORDINATES" section of
GeoConvert(1).
h is the height above the ellipsoid in meters;
this quantity is optional and defaults to 0. Alternatively, the gravity field
can be computed at various points on a circle of latitude (constant
lat
and
h) via the
-c option; in this case only the longitude should
be given on the input lines. The quantities printed out are governed by the
-G (default),
-D,
-A, or
-H options.
All the supported gravity models, except for grs80, use WGS84 as the reference
ellipsoid
a = 6378137 m,
f = 1/298.257223563,
omega =
7292115e-11 rad/s, and
GM = 3986004.418e8 m^3/s^2.
-
-n name
- use gravity field model name instead of the default
"egm96". See "MODELS".
-
-d dir
- read gravity models from dir instead of the default.
See "MODELS".
-
-N Nmax
- limit the degree of the model to Nmax.
-
-M Mmax
- limit the order of the model to Mmax.
- -G
- compute the acceleration due to gravity (including the
centrifugal acceleration due the the earth's rotation) g. The
output consists of gx gy gz (all in m/s^2), where the
x, y, and z components are in easterly, northerly,
and up directions, respectively. Usually gz is negative.
- -D
- compute the gravity disturbance delta = g -
gamma, where gamma is the "normal" gravity due to
the reference ellipsoid . The output consists of deltax
deltay deltaz (all in mGal, 1 mGal = 10^-5 m/s^2), where the
x, y, and z components are in easterly, northerly,
and up directions, respectively. Note that deltax = gx,
because gammax = 0.
- -A
- computes the gravitational anomaly. The output consists of
3 items Dg01 xi eta, where Dg01 is in mGal (1
mGal = 10^-5 m/s^2) and xi and eta are in arcseconds. The
gravitational anomaly compares the gravitational field g at
P with the normal gravity gamma at Q where the
P is vertically above Q and the gravitational potential at
P equals the normal potential at Q. Dg01 gives the
difference in the magnitudes of these two vectors and xi and
eta give the difference in their directions (as northerly and
easterly components). The calculation uses a spherical approximation to
match the results of the NGA's synthesis programs.
- -H
- compute the height of the geoid above the reference
ellipsoid (in meters). In this case, h should be zero. The results
accurately match the results of the NGA's synthesis programs.
GeoidEval(1) can compute geoid heights much more quickly by
interpolating on a grid of precomputed results; however the results from
GeoidEval(1) are only accurate to a few millimeters.
-
-c lat h
- evaluate the field on a circle of latitude given by
lat and h instead of reading these quantities from the input
lines. In this case, Gravity can calculate the field considerably
more quickly. If geoid heights are being computed (the -H option),
then h must be zero.
- -w
- toggle the longitude first flag (it starts off); if the
flag is on, then on input and output, longitude precedes latitude (except
that, on input, this can be overridden by a hemisphere designator,
N, S, E, W).
-
-p prec
- set the output precision to prec. By default
prec is 5 for acceleration due to gravity, 3 for the gravity
disturbance and anomaly, and 4 for the geoid height.
- -v
- print information about the gravity model on standard error
before processing the input.
-
--comment-delimiter commentdelim
- set the comment delimiter to commentdelim (e.g.,
"#" or "//"). If set, the input lines will be scanned
for this delimiter and, if found, the delimiter and the rest of the line
will be removed prior to processing and subsequently appended to the
output line (separated by a space).
- --version
- print version and exit.
- -h
- print usage, the default gravity path and name, and
exit.
- --help
- print full documentation and exit.
-
--input-file infile
- read input from the file infile instead of from
standard input; a file name of "-" stands for standard
input.
-
--input-string instring
- read input from the string instring instead of from
standard input. All occurrences of the line separator character (default
is a semicolon) in instring are converted to newlines before the
reading begins.
-
--line-separator linesep
- set the line separator character to linesep. By
default this is a semicolon.
-
--output-file outfile
- write output to the file outfile instead of to
standard output; a file name of "-" stands for standard
output.
Gravity computes the gravity field using one of the following models
egm84, earth gravity model 1984. See
https://earth-info.nga.mil/index.php?dir=wgs84&action=wgs84#tab_egm84
egm96, earth gravity model 1996. See
https://earth-info.nga.mil/index.php?dir=wgs84&action=wgs84#tab_egm96
egm2008, earth gravity model 2008. See
https://earth-info.nga.mil/index.php?dir=wgs84&action=wgs84#tab_egm2008
wgs84, world geodetic system 1984. This returns the normal
gravity for the WGS84 ellipsoid.
grs80, geodetic reference system 1980. This returns the normal
gravity for the GRS80 ellipsoid.
These models approximate the gravitation field above the surface of the earth.
By default, the "egm96" gravity model is used. This may changed by
setting the environment variable "GEOGRAPHICLIB_GRAVITY_NAME" or
with the
-n option.
The gravity models will be loaded from a directory specified at compile time.
This may changed by setting the environment variables
"GEOGRAPHICLIB_GRAVITY_PATH" or "GEOGRAPHICLIB_DATA", or
with the
-d option. The
-h option prints the default gravity
path and name. Use the
-v option to ascertain the full path name of the
data file.
Instructions for downloading and installing gravity models are available at
<
https://geographiclib.sourceforge.io/C++/doc/gravity.html#gravityinst>.
- GEOGRAPHICLIB_GRAVITY_NAME
- Override the compile-time default gravity name of
"egm96". The -h option reports the value of
GEOGRAPHICLIB_GRAVITY_NAME, if defined, otherwise it reports the
compile-time value. If the -n name option is used, then
name takes precedence.
- GEOGRAPHICLIB_GRAVITY_PATH
- Override the compile-time default gravity path. This is
typically "/usr/local/share/GeographicLib/gravity" on Unix-like
systems and "C:/ProgramData/GeographicLib/gravity" on Windows
systems. The -h option reports the value of
GEOGRAPHICLIB_GRAVITY_PATH, if defined, otherwise it reports the
compile-time value. If the -d dir option is used, then
dir takes precedence.
- GEOGRAPHICLIB_DATA
- Another way of overriding the compile-time default gravity
path. If it is set (and if GEOGRAPHICLIB_GRAVITY_PATH is not set),
then $ GEOGRAPHICLIB_DATA/gravity is used.
An illegal line of input will print an error message to standard output
beginning with "ERROR:" and causes
Gravity to return an exit
code of 1. However, an error does not cause
Gravity to terminate;
following lines will be converted.
The gravity field from EGM2008 at the top of Mount Everest
echo 27:59:17N 86:55:32E 8820 | Gravity -n egm2008
=> -0.00001 0.00103 -9.76782
GeoConvert(1),
GeoidEval(1),
geographiclib-get-gravity(8).
Gravity was written by Charles Karney.
Gravity was added to GeographicLib,
<
https://geographiclib.sourceforge.io>, in version 1.16.