# Differences between different georeferencing transformation algorithms in QGIS

Expanding on Transformation types in geo-referencing of QGIS?, I'm trying to understand the exact transformations used by QGIS, and how they differ. The georeferencer documentation is of course a good starting point, but I need more details :

Currently, the following Transformation types are available:

The Linear algorithm is used to create a world file and is different from the other algorithms, as it does not actually transform the raster. This algorithm likely won’t be sufficient if you are dealing with scanned material.

The Helmert transformation performs simple scaling and rotation transformations.

The Polynomial algorithms 1-3 are among the most widely used algorithms introduced to match source and destination ground control points. The most widely used polynomial algorithm is the second-order polynomial transformation, which allows some curvature. First-order polynomial transformation (affine) preserves collinearity and allows scaling, translation and rotation only.

The Thin Plate Spline (TPS) algorithm is a more modern georeferencing method, which is able to introduce local deformations in the data. This algorithm is useful when very low quality originals are being georeferenced.

The Projective transformation is a linear rotation and translation of coordinates.

Specifically, what are the differences between linear, Helmert and projective?

The "linear" algorithm creates a world file, that includes 6 parameters allowing to define translation (lines 5 and 6), scaling (1 and 4) and rotation (2 and 3). Although, I remember reading somewhere that QGIS does not honour rotation in world files (?), but I cannot trace the source of this info - empirically, it certainly feels as if the "linear" fit in the georeferencer does not rotate the image.

The "Helmert" algorithm "performs simple scaling and rotation" (and translation, presumably, as you can use it to "move" an image to any coordinate)

The "Projective" transformation "is a linear rotation and translation of the coordinates".

I must confess, I cannot understand the differences between the above three.

In addition, a first-order polynomial "allows scaling, translation and rotation only".

In all cases, it seems to me that the algorithm uses fitting of the 6 parameters (2 each for translation, rotation and scale) to minimize the differences between GCP and target positions. Apart from different fitting strategies (plain least-square, vs. more robust fitting, outlier-tolerant or so), I do not see the differences, and in any case with 6 GCP the matrix being square, there should be an unique solution common to all.

On the other hand, I understand indeed how a second-order polynomial third-order polynomial and spline differ, of course. But this really gives only 4 strategies (5, if indeed linear does not do rotation): first order without rotation, first order, second order, third order and spline, for the 7 options available.

• I’ve tried to edit your question body so that it asks a single question. By doing that it may be able to attract a potential answerer but I think it may still be asking more than one unmarked questions so anything you can do to make your question clearer may assist your chances of getting it answered.
– PolyGeo
Jul 31, 2020 at 7:37
• Helmert is usually a 7 parameter (X, Y, Z, Rx, Ry, Rz and S) or sometimes 5 parameter (X, Y, Z, Rz, S) transformation. So straight away we're looking at different parameter numbers and therefore different transformation operations to the linear transformation. Projective transformations are a form of Homography and "defined" by two planes. So again, different parameters and therefore different approaches. I always understood this as a 4 parameter (X, Y, Z, S) transformation, though I believe rotation does feature in most. Jul 31, 2020 at 8:26
• @Phil georeferencing is 2D only transformation. Jul 31, 2020 at 10:25
• @Zoltan absolutely right - though remove the Z elements of my thinking and the results are broadly similar. Aug 7, 2020 at 8:26

Linear transformation only set the offset and scale (no rotation), minimum two points required (raster is not resampled as the original pixels are preserved)

Helmert transformation is sometimes called orthogonal transformation as it preserves angles (4 parameters: offset x and y, rotation and scale), minimum two points required.

Polynomial 1 transformation is usually called affine transformation, it allows different scales in x and y direction (6 parameters, two independent linear transformations for x and y), minimum three points required.

Polynomial 2 similar to polynomial 1 but quadratic polynomials are used for x and y. No global scale, rotation at all.

Thin plate spline uses several local polynomials, but it minimizes the curvature of the polynomial surface.

Projective transformation is not for maps, as it is a transformation between two non-parallel plain using central projection (it may be good for a non-perpendicular photo of a map).

I wouldn't offer to use Polynomial 2, 3 thin plate spline and projective transformation for real maps, they shouldn't be so distorted.

• Projective transformation is used a fair bit when georeferencing aerial imagery. Obviously depends on the workflow of the data and the geospatial information collected at time of image capture. It is not the only method by far. Polynom 2, 3 and spline (and to some extent projective) have real applications in working with historic mapping. Old paper can warp over time and scans are not necessarily clear. That's assuming the original map was non-distorted to begin with. Where scanning is not possible, photographs may require a projective transformation to be applied. Aug 7, 2020 at 8:31
• I would add that thin plate spline can be very useful for a) aerial imagery that is not (properly) orthorectified and/or otherwise locally deformed, b) with a fairly dense grid of points if you don't know the raster's projection and cannot deduce it easily. Feb 16, 2021 at 13:46
• Could you elaborate on why not to use Polynomial 2, 3? Georeferencing this map: upload.wikimedia.org/wikipedia/commons/2/23/… I got best results using this two transformation types (with 187 points it fits almost perfectly on a OSM basemap with polynominal 3, with all otheres, there are displacements). Mar 21, 2021 at 20:40
• See results with polynominal 3, by far the exactest of all transformation settings in this case (most fill colors set to transparent to be see the basemap) - compare the red line, corresponding almost exactly the coastline: i.stack.imgur.com/sMb2U.jpg Mar 21, 2021 at 20:53

I have just updated the QGIS docs (v3.16) with more comprehensive information on this. See https://docs.qgis.org/3.16/en/docs/user_manual/working_with_raster/georeferencer.html#available-transformation-algorithms

The new docs capture some of the information from prior answers to this question, as well as comments/experiences from elsewhere. In particular, complementing the answer above, the use of thin plate spline and projective, which are particularly useful for pictures-of-maps, damaged maps, and poorly orthorectified aerial images, are covered.

• Nice update. I especially appreciated the part: "parallel lines remain parallel" that was useful information for me. Apr 22, 2021 at 21:27
• Is @Zoltan's image wrong on the Polynom 1? The outermost left and right lines did not remain parallel there. Jan 26 at 14:24