geodat.icn: Procedures for geodetic datum conversion

procedure geodat:          define geodetic conversion
procedure nadcon:          define NAD data conversion
procedure molodensky:      define geodetic conversion
procedure ellipsoid:       return [a, 1/f] for named ellipsoid

link geodat
July 31, 2000; William S. Evans and Gregg M. Townsend
This file is in the public domain.

These procedures provide "projections" that convert among geodetic
datums, which relate locations on the earth's surface to longitude
and latitude coordinates.  As measurement techniques improve,
newer datums typically give slightly different values from older
ones.  The values returned here are used with the project()
procedure of cartog.icn.

geodat(s1, s2) defines a geodetic datum conversion.
molodensky() performs an algorithmic datum conversion.
nadcon(s1, s2) uses data files for more precise conversion.

ellipsoid(s) return the parameters of the named ellipsoid.
____________________________________________________________

geodat(f, t) returns a projection from longitude and latitude
in datum f to longitude and latitude in datum t.
f and t are strings.  If f and t equal "NAD83", "NAD27",
"HARN", or "HPGN", geodat returns a nadcon projection.
Failing that, geodat returns a molodensky projection.

The input to the projection is a list of signed numeric values,
angles measured in degrees, with each pair representing one
location; longitude precedes latitude.  The output is a list
with the same form and length as the input list.
____________________________________________________________

nadcon(f, t) returns a projection from longitude and latitude
in datum f to longitude and latitude in datum t.  The strings
f and t must each be one of "NAD83", "NAD27", "HARN", or "HPGN".
The projection uses our implementation of the National Oceanic
and Atmospheric Administration's (NOAA's) North American Datum
Conversion Utility (NADCON); for more information, see
    http://www.ngs.noaa.gov/TOOLS/Nadcon/Nadcon.html

nadcon() requires data grid (.loa and .laa) files, which must be
found in the current directory or along the space-separated path
given by the environment variable DPATH.  These files can be
downloaded from:
    http://www.cs.arizona.edu/icon/ftp/data/nadcon/
    ftp://ftp.cs.arizona.edu/icon/data/nadcon/

The projection's input and output are lists of signed numbers.
Output is properly rounded and so may not agree exactly with
the equivalent NOAA programs.
____________________________________________________________

molodensky(dx, dy, dz, ain, fin, aout, fout) returns a projection
from input longitude and latitude to output longitude and latitude.
The projection uses the standard Molodensky transformation.
The input datum is specified by an ellipsoid with parameters
ain, the equatorial radius in metres, and fin, the flattening;
and by three shift values dx, dy, and dz.  The output datum is
specified by an ellipsoid with parameters aout and fout.

If dz is null, then dx and dy are interpreted as the names of
an input and output datum.  The names are the ID codes
specified in NIMA TR 8350.2.

The projection's input and output are lists of signed numbers.
____________________________________________________________

ellipsoid(s) return a list [a, 1/f] containing the defining
parameters of the standard ellipsoid model named s;  a is the
equatorial radius and 1/f is the flattening factor.  Names are
listed in the code; the default is "WGS84".
____________________________________________________________

Ellipsoid and datum parameters are from:

        Department of Defense World Geodetic System 1984
        National Imagery and Mapping Agency
        Technical Report TR8350.2
        Third Edition, Amendment 1 (3 January 2000)
        ftp://ftp.nima.mil/pub/gg/tr8350.2/

Source code | Program Library Page | Icon Home Page