Registration: code for coordinate transformations

History:

The FORTRAN code developed at Wisconsin for the Dane County Project shows how this process is carried out. Authorship is quite complex, as the comments show. Cliff Petersohn pulled this particular package together while a graduate student in Civil Engineering at UW-Madison. He later left for Intergraph, where his first assignment was to deal with the conversion of coordinates on the individual sheets of the Milwaukee parcel projeect, we can imagine that the Intergraph code bears (or bore back then) a resemblance to this code... The ESRI code probably relates to the ODYSSEY code, but the less said the better...

Landmarks:

At the top is the routine to change individual coordinates. Very simple. The six parameters have to be saved from the solution subroutine (where they are called "W") and provided as the argument COVECT (a bit inelegant, but the issue of "local variables" makes life miserable...

The routine AFFINE is pretty verbose, writing out the points provided (you have to load them from the files before you call this.). It does not actually do the solution, it calls a generic equation solver captured from another (non-GIS) source... Then it fills in the residuals vector, and generates a report.

The equation solver CHLSKY treats the problem as numerical matrix manipulation based on Cholesky (?) .


Other options:

Code file also includes a version of the Projective (Helmert) transformation that handles barrel distrotion from a center point (more use with airphotos...). This is much the same except that the coefficients are 8 instead of 6. The solution is NOT a single pass, but iterative. The value of EPS determines if the solution will be accepted...


How to handle residuals:

In the Dane County project, we didn't take the affine as gospel. We "distributed the residuals", so that cooridnates at or near the control points can out on the control point value no matter what. This routine needed some surgery, due to division by zero. Weights could get crazy very near the control points.


Version of 22 January 2001