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