Class InterpolatedTransform

All Implemented Interfaces:
Serializable, Parameterized, Lenient­Comparable, Math­Transform

public class InterpolatedTransform extends DatumShiftTransform
Transforms between two CRS by performing translations interpolated from a grid file. The source and target coordinate reference systems are typically, but not necessarily, two-dimensional geographic CRS. The actual number of dimensions is determined by Datum­Shift­Grid​.get­Translation­Dimensions().
Example: this transform is used for example with NADCON and NTv2 datum shift grids.

Input and output coordinates

First, "real world" input coordinates (x,y) are converted to grid coordinates (gridX, gridY), which are zero-based indices in the two-dimensional grid. This conversion is applied by an affine transform before to be passed to the transform methods of this Interpolated­Transform class.

Translation vectors are stored in the datum shift grid at the specified grid indices. If the grid indices are non-integer values, then the translations are interpolated using a bilinear interpolation. If the grid indices are outside the grid domain ([0 … width-1] × [0 … height-1] where width and height are the number of columns and rows in the grid), then the translations are extrapolated. The translation is finally added to the input coordinates.

The input and output coordinates can have any number of dimensions, provided that they are the same than the number of translation dimensions. However current implementation uses only the two first dimensions for interpolations in the grid.

See Also:

Defined in the sis-referencing module