#include "worgen.h" #include "proj.h"FUNCTION c_transinit (inproj, inunit, inzone, indatum, inparm, outproj, outunit, outzone, outdatum, outparm, prtprm, fname)
long *inproj; long *inunit; long *inzone; long *indatum; double inparm[15]; long *outproj; long *outunit; long *outzone; long *outdatum; double outparm[15]; long prtprm[2]; char *fname;
Defines input projection system. Valid codes are:
GEO 0 Geographic UTM 1 Universal Transverse Mercator SPCS 2 State Plane Coordinates ALBERS 3 Albers Conical Equal Area LAMCC 4 Lambert Conformal Conic MERCAT 5 Mercator PS 6 Polar Stereographic POLYC 7 Polyconic EQUIDC 8 Equidistant Conic TM 9 Transverse Mercator STEREO 10 Stereographic LAMAZ 11 Lambert Azimuthal Equal Area AZMEQD 12 Azimuthal Equidistant GNOMON 13 Gnomonic ORTHO 14 Orthographic GVNSP 15 General Vertical Near-Side Perspective SNSOID 16 Sinusoidal EQRECT 17 Equirectangular MILLER 18 Miller Cylindrical VGRINT 19 Van der Grinten HOM 20 Oblique Mercator (Hotine) ROBINSON 21 Robinson SOM 22 Space Oblique Mercator (SOM) ALASKA 23 Alaska Conformal GOODE 24 Interrupted Goode MOLLWEIDE 25 Mollweide INT MOLLW 26 Interrupted Mollweide HAMMER 27 Hammer WAGNER IV 28 Wagner IV WAGNER VII 29 Wagner VII OBLEQA 30 Oblated Equal Area
Unit code for coordinates. Valid unit codes are:
= 0: radians (default) = 1: feet = 2: meters = 3: seconds of arc = 4: degrees of arc = 5: packed DMS (DDDMMMSSS.SS)
Zone for UTM and State Plane projection systems. Refer to Table C for the coverage of UTM zones and to Table B for state plane zone codes. For the Southern Hemisphere UTM, use a negative zone code.
Input datum code. If the value is less than 100, it represents a spheroid which is defined by a semimajor and semiminor (or eccentricity squred) axis. If the value is greater than 100 it also represents a datum. Datums are defined by a spheroid and x, y, and z shifts.
If the input projection (inproj) is not GEO, UTM, or SPCS, and the inparm array elements 1 and 2 contain values, they must match the values defining the spheroid represented in indatum. The input datum indatum and the output datum outdatum must both be either above 100 or below 100 for a transformation to occur. A fatal error will result if not.
Supported spheroids include:
Axes in Meters Code Spheroid Name Semi-Major Semi-Minor 0 Clarke 1866 (default) 6378206.4 6356583.8 1 Clarke 1880 6378249.145 6356514.86955 2 Bessel 6377397.155 6356078.9628 3 International 1967 6378157.5 6356772.2 4 International 1909 6378388.0 6356911.94613 5 WGS 72 6378135.0 6356750.519915 6 Everest 6377276.3452 6356075.4133 7 WGS 66 6378145.0 6356759.769356 8 GRS 1980 6378137.0 6356752.31414 9 Airy 6377563.396 6356256.91 10 Modified Everest 6377304.063 6356103.039 11 Modified Airy 6377340.189 6356036.143 12 WGS 84 6378137.0 6356752.314245 13 Southeast Asia 6378155.0 6356773.3205 14 Australian National 6378160.0 6356774.719 15 Krassovsky 6378245.0 6356863.0188 16 Hough 6378270.0 6356794.343479 17 Mercury 1960 6378166.0 6356784.283666 18 Modified Mercury 1968 6378150.0 6356768.337303 19 Sphere 6370997.0 6370997.0Here is a list of supported datums. A Datum Query tool is also available.
Array of fifteen projection parameters. These parameters define each map projection. See Table A for the definition of the fields for each projection.
Defines the output projection system. Refer to the inproj parameter description for a list of valid projection system codes.
Unit code for output coordinates. Refer to inunit for a list of valid unit codes.
Zone for UTM and State Plane projection systems. Refer to Table C for the coverage of UTM zones and to Table B for state plane zone codes.
Output datum code. Refer to the indatum parameter description for additional information on valid datum codes and their application.
Array of fifteen projection parameters. These parameters are required to define each map projection. See Table A for the definition of the fields for each projection.
Report destination flags. Fields are as follows:
prtprm[GEO_TERM] Print to terminal? TRUE or FALSE prtprm[GEO_FILE] Print to file? TRUE or FALSE
Name of disk or printer file. The file must be closed before the call to c_transinit(). c_transinit() will open the file, write to it, and close it. Filenames are those used with the FILEUTIL report utility. This parameter is NULL if a print file is not used.
This function initializes the parameters used to transform coordinate pairs from map projection, unit, and/or datum to another. It initializes by performing initial parameter checking, packing and comparing earth datum codes, and reporting projection parameters to the user. The primary workhorse for the projection conversion routines of this package is the U.S. Geological Survey's General Cartographic Transformat ion Package (GCTP), although it has been buffered from the application routines to minimize changes to calling programs when the GCTP is changed or added to. The datum conversion routines were implemented based on DATUMCHG, which utilizes the Bursa-Wolf 7 parameter transformation.
c_trans() is called to perform the actual transformation of coordinate pairs.
c_transinit() returns
E_SUCC (0) --> successful completion E_FAIL (-1) --> coordinate transformation parameters invalid
The following documents have been used as references for the c_transinit() utility. Also, the tables (A, B, C) referenced in the parameter descriptions in c_transinit() are included.
Clarie, Charles N., State Plane Coordinates by Automatic Data Processing, Publication 62-4, U.S. Department of Commerce, Environmental Science Services Administration, Coast and Geodetic Survey, United States Government Printing Office, Washington D.C., 1973
Software Documentation for GCTP General Cartographic Transformation Package: National Mapping Program Technical Instructions,, U.S. Geological Survey National Mapping Division, May 1982.
Snyder, John P., Map Projections--A Working Manual, U.S. Geological Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United States Government Printing Office, Washington D.C., 1987.
Snyder, John P., New Equal-Area Map Projections for Noncircular Regions, The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.
Snyder, John P. and Voxland, Philip M., An Album of Map Projections, U.S. Geological Survey Professional Paper 1453, United States Government Printing Office, Washington D.C., 1989.
Table A: Parameters Required for Definition of Map Projections
Table B: Jurisdictions, State Plane Coordinate Systems, and Zone Representations
Table C: UTM Zone Codes, Locations and Central Meridians