EPSG
EPSG guidance note #7-2, http://www.epsg.org
2002-12-21
Note: These formulas have been transcribed from EPSG Guidance Note #7-2. Users are encouraged to use that document rather than the text which follows as reference because limitations in the transcription will be avoided. The simplest of all polynomials is the general polynomial function. In order to avoid problems of numerical instability this type of polynomial should be used after reducing the coordinate values in both the source and the target coordinate reference system to ‘manageable’ numbers, between –10 and +10 at most. This is achieved by working with offsets relative to a central evaluation point, scaled to the desired number range by applying a scaling factor to the coordinate offsets. Hence an evaluation point is chosen in the source coordinate reference system (XS0, YS0) and in the target coordinate reference system (XT0, YT0). Often these two sets of coordinates do not refer to the same physical point but two points are chosen that have the same coordinate values in both the source and the target coordinate reference system. (When the two points have identical coordinates, these parameters are conveniently eliminated from the formulas, but the general case where the coordinates differ is given here). The selection of an evaluation point in each of the two coordinate reference systems allows the point coordinates in both to be reduced as follows: XS - XS0 YS - YS0 and XT – XT0 YT – YT0 These coordinate differences are expressed in their own unit of measure, which may not be the same as that of the corresponding coordinate reference system. ) A further reduction step is usually necessary to bring these coordinate differences into the desired numerical range by applying a scaling factor to the coordinate differences in order to reduce them to a value range that may be applied to the polynomial formulae below without introducing numerical precision errors: U = mS.(XS - XS0) V = mS.(YS - YS0) where XS , YS are coordinates in the source coordinate reference system, XS0 , YS0 are coordinates of the evaluation point in the source coordinate reference system, mS is the scaling factor applied the coordinate differences in the source coordinate reference system. The normalised coordinates U and V of the point whose coordinates are to be transformed are used as input to the polynomial transformation formula. In order to control the numerical range of the polynomial coefficients An and Bn the output coordinate differences dX and dY are multiplied by a scaling factor, mT. mT.dX = A0 + A1.U + A2.V + A3.U^2 + A4.U.V + A5.V^2 + A6.U^3 + A7.U^2.V + A8.U.V^2 + A9.V^3 mT.dY = B0 + B1.U + B2.V + B3.U^2 + B4.U.V + B5.V^2 + B6.U^3 + B7.U^2.V + B8.U.V^2 + B9.V^3 from which dX and dY are evaluated. These will be in the units of the target coordinate reference system. The polynomial coefficients are given as parameters of the form Aumvn and Bumvn, where m is the power to which U is raised and n is the power to which V is raised. For example, A7 is represented as coordinate operation parameter Au2v1. The relationship between the two coordinate reference systems can now be written as follows: (XT - XT0) = (XS – XS0) + dX (YT - YT0) = (YS – YS0) + dY or XT = XS – XS0 + XT0 + dX YT = YS – YS0 + YT0 + dY where: XT , YT are coordinates in the target coordinate reference system, XS , YS are coordinates in the source coordinate reference system, XS0 , YS0 are coordinates of the evaluation point in the source coordinate reference system, XT0 , YT0 are coordinates of the evaluation point in the target coordinate reference system, dX, dY are derived through the scaled polynomial formulas.