KPG1_LINTD

Obtains a linear transformation between two sets of x,y positions with least squared error

Description:

The co-efficients of a linear transformation are returned which maps the (XA,YA) positions to the corresponding (XB,YB) positions with least squares error. The type of fit can be specified as:

o A shift of origin only (IFIT 1)

o A shift and rotation (IFIT = 2)

o A shift, rotation and magnification (IFIT = 3)

o A shift, rotation, magnification and shear (IFIT = 4)

If the value of IFIT is too high for the supplied data, a lower value will be used and returned in IFIT. The returned coefficients are such that:

Fitted XB position = C(1) + C(2)XA + C(3)YA

Fitted YB position = C(4) + C(5)XA + C(6)YA

Invocation

CALL KPG1_LINTD( N, XA, YA, XB, YB, IFIT, C, MAXERR, RMSERR, STATUS )

Arguments

N = INTEGER (Given)
The number of supplied positions.
XA( N ) = DOUBLE PRECISION (Given)
The X co-ordinates at the first set of positions.
YA( N ) = DOUBLE PRECISION (Given)
The Y co-ordinates at the first set of positions.
XB( N ) = DOUBLE PRECISION (Given)
The X co-ordinates at the second set of positions.
YB( N ) = DOUBLE PRECISION (Given)
The Y co-ordinates at the second set of positions.
IFIT = INTEGER (Given and Returned)
The type of fit required. A lower value will be used (and returned) if a fit of the specified type could not be obtained.
C( 6 ) = DOUBLE PRECISION (Returned)
The coefficients of the linear fit.
MAXERR = DOUBLE PRECISION (Returned)
The maximum error between the supplied (XB,YB) positions and the fitted (XB,YB) positions, in pixels.
RMSERR = DOUBLE PRECISION (Returned)
The RMS error between the supplied (XB,YB) positions and the fitted (XB,YB) positions, in pixels.
STATUS = INTEGER (Given and Returned)
The global status.