Design Document for C_TRANSINIT

TRANSINIT

AUTHOR: Jenn Willems

Functional Summary:

Initializes the parameters needed for datum and projection conversions. This function must be called for each combination of projection/datum conversion.

Comments:

C_TRANSINIT will replace c_projon. It will initialize any parameters needed for projection or datum transformations.

Background:

C_PROJON was used to do the initialization of the GCTP package. C_TRANSINIT will also be used to initialize the datum transformation parameters.

Requirements:

1. The call should use parameters that are available in c_projon, so 
   implementation into the LAS will be easier.
2. All initialization should be taken care of in this call as to minimize
   the things to be done in c_trans which will be called multiple times.
3. This will be called once for each datum/projection combination.

Overall design:

Flow diagram:


Algorithm:

TRANSINIT:
Do error checking
Check DMS angles
Pack datum and spheroid parameter arrays:
  Check for valid datum codes
  Set datum flag for appropriate conversion
  Retrieve in and out datum parameters from datum table
  Fill projection parameter arrays
Initialize forward and inverse transformations

PARAMETERS:

INPROJ
Input projection number.

INUNIT
Input projection unit code.

INZONE
Input projection zone code.

INDTMNUM
Input datum number.

INPARM
15 input projection parameters.

OUTPROJ
Output projection number.

OUTUNIT
Output projection unit code.

OUTZONE
Output projection zone code.

OUTDTMNUM
Output datum number.

OUTPARM
15 output projection parameters.

PRTPRM
Report destination.

FNAME
File name if printing to file.

RETURN VALUE(S):

Datum code value out of valid range
One datum code only represents spheroid
Cannot convert from NAD27 to NAD27
Could not retrieve input datum information
Could not retrieve output datum information
LASTABLES not defined
Error returned from inverse initialization
Error returned from forward initialization

Testing criteria:

See testing criteria for C_TRANS