LOGICAL FUNCTION LAMBERT( CNAME, A, B, C, XC, YV ) ENTRY POLSTE( CNAME, A, B, C, X, Y ) ENTRY TRMERC( CNAME, A, B, C, X, Y ) ENTRY EQMERC( CNAME, A, B, C, X, Y ) ENTRY ALBERS( CNAME, A, B, C, X, Y ) ENTRY SETLAM( A, B, C, X, Y ) ENTRY SETPOL( A, B, C, X, Y ) ENTRY SETTRM( A, B, C, X, Y ) ENTRY SETEQM( A, B, C, X, Y ) ENTRY SETALB( A, B, C, X, Y ) ENTRY LAM2LL( X, Y, LON, LAT ) ENTRY LL2LAM( LON, LAT, X, Y ) ENTRY LAM2UTM( X, Y, Z, U, V ) ENTRY UTM2LAM( X, Y, Z, U, V ) ENTRY POL2LL ( X, Y, LON, LAT ) ENTRY LL2POL ( LON, LAT, X, Y ) ENTRY LAM2POL( X, Y, U, V ) ENTRY POL2LAM( X, Y, U, V ) ENTRY POL2UTM( X, Y, Z, U, V ) ENTRY UTM2POL( X, Y, Z, U, V ) ENTRY TRM2LL( X, Y, LON, LAT ) ENTRY LL2TRM( LON, LAT, X, Y ) ENTRY TRM2LAM( X, Y, U, V ) ENTRY LAM2TRM( X, Y, U, V ) ENTRY TRM2UTM( X, Y, Z, U, V ) ENTRY UTM2TRM( X, Y, Z, U, V ) ENTRY TRM2POL( X, Y, U, V ) ENTRY POL2TRM( X, Y, U, V ) ENTRY EQM2LL( X, Y, LON, LAT ) ENTRY LL2EQM( LON, LAT, X, Y ) ENTRY EQM2LAM( X, Y, U, V ) ENTRY LAM2EQM( X, Y, U, V ) ENTRY EQM2UTM( X, Y, Z, U, V ) ENTRY UTM2EQM( X, Y, Z, U, V ) ENTRY EQM2TRM( X, Y, U, V ) ENTRY TRM2EQM( X, Y, U, V ) ENTRY EQM2POL( X, Y, U, V ) ENTRY POL2EQM( X, Y, U, V ) ENTRY ALB2LL( X, Y, LON, LAT ) ENTRY LL2ALB( LON, LAT, X, Y ) REAL A ! first secant latitude, or P_ALPHA REAL B ! second secant latitude B > A, or P_BETA REAL C ! central meridian, or P_GAMMA REAL XC ! Longitude of Cartesian origin REAL YC ! Latitude of Cartesian origin REAL X ! (Input) Cartesian easting in meters REAL Y ! (Input) Cartesian northing in meters REAL U ! (Output) Cartesian easting in meters REAL V ! (Output) Cartesian northing in meters REAL LON ! East longitude in decimal degrees REAL LAT ! North latitude in decimal degrees INTEGER Z ! UTM zone (1...36)
LAMBERT()
, POLSTE()
,
TRMERC()
, EQMERC()
, and
ALBERS()
set up USGS National Mapping Division General
Cartographic Transformation Package, routine
GTPZ0()
by
map-projection name for particular named
Lambert Conformal Conic, Polar Stereographic, Transverse Mercator,
Equatorial Mercator, or Albers Equal-Area Conic projections,
respectively. If CNAME
is the grid name, the
subroutine returns the corresponding coordinate system
name, and coordinate definition parameters
A,B,C,X,Y.
SETLAM()
, SETPOL()
,
SETTRM()
, SETEQM()
, and
SETALB()
set up GTPZ0()
according to
map-projection parameters supplied as arguments, for anonymous
Lambert Conformal Conic, Polar Stereographic, Transverse Mercator,
Equatorial Mercator, or Albers Equal-Area Conic projections,
respectively.
Note that except for Cray vector machines (Y-MP, C-90, T-90,
J-90), inputs are 4-byte REAL
single precision
(unlike the double precision used internally by
GCTP
). Calculations for which precision is important
should use GCTP
directly; further note that by
default, LAMBERT()
etc., use the GRS 1980
spheroid to represent the surface of the Earth (which may be
important to know for high-precision calculations).
Other entries behave as follows:
ENTRY Name | Input Coordinate System | Output Coordinate System |
---|---|---|
LAM2LL | Lambert Conformal Conic | LAT-LON |
LL2LAM | LAT-LON | Lambert Conformal Conic |
LAM2UTM | Lambert Conformal Conic | UTM |
UTM2LAM | UTM | Lambert Conformal Conic |
LL2POL | LAT-LON | Polar Stereographic |
POL2LL | Polar Stereographic | LAT-LON |
LAM2POL | Lambert Conformal Conic | Polar Stereographic |
POL2LAM | Polar Stereographic | Lambert Conformal Conic |
POL2UTM | Polar Stereographic | UTM |
UTM2POL | UTM | Polar Stereographic |
TRM2LL | Transverse Mercator | LAT-LON |
LL2TRM | LAT-LON | Transverse Mercator |
TRM2LAM | Transverse Mercator | Lambert Conformal Conic |
LAM2TRM | Lambert Conformal Conic | Transverse Mercator |
TRM2UTM | Transverse Mercator | UTM |
UTM2TRM | UTM | Transverse Mercator |
TRM2POL | Transverse Mercator | Polar Stereographic |
POL2TRM | Polar Stereographic | Transverse Mercator |
EQM2LL | Equatorial Mercator | LAT-LON |
LL2EQM | LAT-LON | Equatorial Mercator |
EQM2LAM | Equatorial Mercator | Lambert Conformal Conic |
LAM2EQM | Lambert Conformal Conic | Equatorial Mercator |
EQM2UTM | Equatorial Mercator | UTM |
UTM2EQM | UTM | Equatorial Mercator |
EQM2TRM | Equatorial Mercator | Transverse Mercator |
TRM2EQM | Transverse Mercator | Equatorial Mercator |
EQM2POL | Equatorial Mercator | Polar Stereographic |
POL2EQM | Polar Stereographic | Equatorial Mercator |
ALB2LL | Albers Equal-Area Conic | LAT-LON |
LL2ALB | LAT-LON | Albers Equal-Area Conic |
See the section on horizontal coordinate and grids for more about I/O API grid and coordinate system conventions. See also USGS package GCTP and routines LL2UTM and UTM2LL.
LAMBERT(), POLSTE(), TRMERC(), EQMERC()
, or
ALBERS()
, CNAME
must be the name either
of a coordinate system or a grid found in file
GRIDDESC
; furthermore, the projection-type of that
coordinate system must be respectively LAMGRD3
(i.e.,
Lambert Conformal Conic), POLGRD3
(Polar Stereographic),
TRMGRD3
(Transverse Mercator), EQMGRD3
(Equatorial Mercator), or ALBGRD3
()Albers Equal-Area
Conic) respectively.
You must call LAMBERT()
or SETLAM()
before calling conversion functions with Lambert input or output
coordinates; likewise POLSTE()
or
SETPOL()
, TRMERC()
or
SETTRM()
, EQMERC() or SETEQM()
, or
ALBERS() or SETALB()
before calling
coordinate-transform functions for respectively Polar
Stereographic, Transverse Mercator, Equatorial Mercator, or Albers
Equal-Area Conic.
CNAME has length at most 16.
If named map projections are specified by LAMBERT(), POLSTE(),
TRMERC(), EQMERC(),
or ALBERS()
, then a file
with logical name
GRIDDESC exists and contains
correctly formatted coordinate system descriptions and grid
descriptions.
USE M3UTILIO
(See sample programs LATLON, PRESZ, or UTMTOOL, for usage examples.)
Up: Coordinate and Grid Related Routines
To: Models-3/EDSS I/O API: The Help Pages