Georeferencing a scanned map: how many control points, and where.
Four points placed in the corners beat twelve strung along a road. Here is what a control point has to be, how to choose between a polynomial and a spline, and why a near-zero error is often the worst sign of all.
A scanned map knows nothing about the world. It is a grid of pixels, and pixel (1204, 880) means nothing until you say what it is. Georeferencing is that sentence, repeated a handful of times: this pixel is that place. From a few of those pairs, software works out the rule that converts every other pixel, and the image stops being a picture and starts being a map.
Everything that goes wrong afterwards — a parcel boundary twenty metres into the neighbour's field, a network plan that will not overlay the cadastre — comes from the handful of pairs at the start. They are worth spending ten minutes on.
What a control point has to be
Two conditions, and the second is the one people lose.
It has to be identifiable on both sides. You must be able to put your cursor on it in the scan, and on the same thing in the real world — in a reference layer, on an aerial image, or from a coordinate you already hold. A road intersection, a building corner, a bridge abutment, a survey monument.
And it has to be the same thing. This is where accuracy quietly dies. The centre of a road intersection is not a point: it is a region of about fifteen metres, and you and the aerial image will not choose the same middle. A tree is not a point either — the trunk is, the crown is not, and the scan shows you the crown. A building corner drawn on a 1:20 000 map is a symbol two metres wide.
Prefer things that are sharp by construction: the corner of a wall, the crossing of two fence lines, a survey marker, a bridge deck end. A sharp point that is a little further from the area of interest beats a vague point sitting in the middle of it.
How many
The floor is set by the transformation you intend to use — the mathematical rule fitted to your pairs.
- A first-order polynomial (affine: shift, rotate, scale, shear) needs 3 points as a bare minimum. Use at least 4, because with exactly 3 the fit passes through all of them perfectly and tells you nothing about whether they were right.
- A second-order polynomial needs 6; give it 10 or more.
- A thin-plate spline works with any number, and passes through every point exactly, which is a property to be suspicious of. More on that below.
In practice, for a clean modern scan of a flat, properly projected map, 4 to 6 well-spread points is the sweet spot. Beyond that you are usually not adding accuracy — you are adding opportunities to make a mistake, and one bad point poisons the fit for the whole sheet.
Where — the part that actually matters
Placement beats count, and it is not close. The rule is simple: surround the area you care about.
Points clustered in the middle leave the edges to be extrapolated, and extrapolation error grows with distance from the cluster. Points strung along a single road are worse still: they are nearly collinear, so they pin down position and direction along that line and almost nothing across it. The map is free to rotate about that axis, and it will.
Aim for a spread that looks like the four corners of a rectangle, plus one in the middle if you have a fifth. If your area of interest is a strip — a pipeline, a river, a road corridor — take the trouble to find points off the strip, on both sides. Two points a kilometre either side of the corridor are worth more than six along it.
Polynomial or spline
The choice comes down to one question: is the distortion in your scan uniform or local?
A polynomial applies one smooth rule to the whole sheet. It corrects rotation, scale, and the mild skew of a sheet fed crooked through a scanner. It cannot correct a fold, a stretched corner, or paper that has taken up humidity unevenly — and that is a feature, not a limitation: it will not invent a correction where you gave it no evidence.
A thin-plate spline bends the image locally so that it passes through every control point exactly. That is exactly what you want for an old paper map with real local deformation — a scanned cadastral sheet from 1960, a plan that lived folded in quarters for forty years.
It is also exactly what you do not want if one of your points is wrong. The polynomial would have shrugged and shown you a large error. The spline obeys: it drags the surrounding image over to satisfy the bad point, producing a local warp that is invisible in the numbers and obvious on screen — a road that develops a sudden kink, a lot boundary that bulges.
A working rule: fit a polynomial first, even if you intend to use a spline. The polynomial's residuals tell you which point is bad. Fix or remove it, then switch to the spline for the final result.
Reading the RMSE
The root-mean-square error is the typical distance between where your control points landed and where the fitted rule says they should have landed. It comes out in the units of your target system — metres, usually.
What counts as good depends entirely on the source, and the only honest benchmark is the map's own precision. A line drawn 0.3 mm wide on a 1:20 000 sheet is 6 metres on the ground. An RMSE of 3 m on that sheet is already finer than the map can justify; chasing 0.5 m is chasing the thickness of the draughtsman's pen.
- Modern orthophoto or clean digital plan: sub-metre is reasonable.
- Good 1:5 000 paper sheet: 1–2 m.
- 1:20 000 topographic sheet: 3–6 m is honest.
- Old, folded, hand-drawn: 10 m and a spline, and be glad.
And now the counter-intuitive part. With a thin-plate spline, the RMSE is near zero by construction — the surface passes through every point. It is not a measure of accuracy. It is a measure of nothing at all. A spline fit reporting 0.001 m tells you the arithmetic worked, not that the map is right.
The same trap appears with polynomials at the minimum count: 3 points for a first-order fit, 6 for a second-order, always give a perfect score. If your error is suspiciously small, count your points before congratulating yourself.
Five mistakes worth naming
- All points along one road. Nearly collinear, and the sheet pivots about that line.
- A point on a fold. The paper there is not where it says it is, and with a spline you will bake the fold into the result.
- Mixing coordinate systems. Reading a reference in one projection and entering it as another produces a plausible-looking fit with a constant offset. Check the units too: a value in feet entered as metres is a clean 3.28× scale error.
- Trusting a low RMSE from a spline or a minimal polynomial. See above.
- Never looking at the result. The numbers cannot see a river running up a hillside.
Checking, in ninety seconds
Overlay the georeferenced result on something you trust — a reference layer, an orthophoto — set it half transparent, and look at three places: the middle, and two opposite corners, and specifically look at features you did not use as control points. Roads should meet roads. Rivers should sit in valleys. A shoreline should follow the shoreline.
If the middle is right and the corners drift, you clustered your points. If everything is shifted by a constant amount, suspect the projection. If one region is fine and another is rubber-sheeted, you have a bad control point and a spline that obeyed it.
Try it on your own sheet
The geomatics module does the whole path in the browser: place the control points, pick the transformation, read the RMSE, then detect the objects by their colour and export to KML, GeoJSON, GeoPackage, Shapefile or GeoTIFF.
Nothing is loaded from a third party in the workshop, and your file is erased two hours after your last action.
Open the geomatics module