No manual pinscontrol points are placed by the tool, not by an operator
A web tool that pins scanned mid-century aerial photographs onto the modern map on its own. It takes a rough area from the flight logbook, matches the old frame against present-day orthophoto imagery by overall landscape structure rather than by landmarks, and scores how much better the winning placement fits than the ones it rejected. Placements that do not clearly win are refused rather than written out.

A European mapping and survey organisation holding a large archive of mid-20th-century aerial photography. The scans are valuable precisely because they record a landscape before decades of construction, but each one is only a picture: nothing in the file says where on Earth it was taken. Getting them onto the modern map has always meant an operator placing control points by hand, frame by frame.
A photo archive that is not on the map cannot be queried, compared against today, or delivered as a data product. Placing frames by hand is skilled, slow work whose cost scales with the size of the archive, which is what keeps most of it unplaced.
Placement runs unattended at roughly five to thirteen minutes per frame, so the size of an archive stops being a staffing question. Where the tool succeeds the cost is compute; where it refuses, an operator picks up a frame that is already loaded, oriented and half-placed rather than a blank one.
A sixty-year-old black-and-white frame and a present-day colour orthophoto do not share recognisable features: the same farm looks nothing like itself six decades on. Matching on individual landmarks was tried first and failed badly. The frames are also not north-up, they are keystoned by the aircraft never being quite level, and they carry no position of any kind in the file.
Matching runs on overall landscape structure rather than on landmarks, because field edges, hedgerows and road lines survive sixty years where buildings do not. A rough area comes from the flight index, the frame is compared against a free public orthophoto service over standard WMS, coarse orientation is settled by trying each quarter-turn and letting the right one win by a wide margin, and a second cautious pass lets the frame tilt and stretch so accuracy stops being good in the middle and poor at the corners. Frames already placed in the same flight line then seed much better starting guesses for the ones between them, which routinely carries a whole line.
An automatic placement always returns some best answer, including when the answer is nonsense. An archive quietly seeded with confidently wrong positions is worse than an unplaced one, so the system had to be able to say no and mean it.
Every placement is scored on how much better it fits than the alternatives it beat, and anything under threshold is discarded and written nowhere, leaving the frame marked for a person. What is kept is not handed to the export directly: it is written out as a grid of ordinary control points, the same format an operator has always used, so the automatic answer can be inspected, nudged, extended or overruled in the existing editor. Automatic points are tagged as automatic, and a re-run replaces only its own and never touches a point a person placed.
The computer always produces some best-fitting position, even when the answer is nonsense. A wrong placement must never be able to pass itself off as a good one.
We had already been wrong in the obvious way. Feature matching is what most teams reach for on this problem, and on sixty-year-old scans it does not work, so the approach that shipped is the one that came second. The refusal behaviour comes from the same place: on data like this the useful question is not how often a tool is right, it is whether it knows when it is not.
Placement core
A web-free core library that fits a transform from photo space to world metres, validates it with live per-point error, then warps and clips the frame to a cloud-optimised GeoTIFF. The folder-batch CLI that still drives offline runs today came out of this stage.
Automatic matching
Rough positioning from the flight index, whole-image structural matching against the public orthophoto service, orientation resolved by trial, and the confidence score that decides whether an answer is kept at all.
Refinement and neighbours
A cautious second pass for the aircraft tilt, kept only where it genuinely improves the match, and neighbour-seeded starting guesses so one placed frame can chain through a flight line.
Batch runs and review
The job queue and its per-frame status, the result view with its georeferenced downloads, and the wipe-through comparison against present-day imagery.
The tool is judged on two things: how much of an archive it places with nobody touching it, and whether the frames it does place can be trusted without checking every one. The second is the harder half, and it is what the design is built around.
We would rather hand over a frame short and one honest refusal than a full set where one is quietly in the wrong place.
Unattended batch placement
Point it at a folder of scans and a flight index and it works through them on its own, reporting per-frame status, reference used and run time.
Confidence gate
A placement that does not clearly beat the alternatives it was compared against is discarded and the frame is flagged for a person, rather than written out quietly alongside the good ones.
Editable control points
Results arrive as ordinary control points. Any point can be switched off, deleted, or added by clicking the photo and the reference side by side, with the transformation and the per-point error recalculated immediately.
Neighbour referencing
A frame that will not match the reference imagery can be placed against already-placed neighbours from the same flight line instead, and is marked in the export as having taken that route.
Verification wipe
A slider that wipes between the placed photograph and present-day satellite imagery, so a placement can be judged by eye in seconds rather than in a GIS.
Standard GIS output
Georeferenced GeoTIFF plus world file, clipped to the frame edge and in the project coordinate system, alongside the frame outline and the point list.
A scanned aerial photograph from the 1960s is just a picture. Nothing in the file says where on Earth it was taken, which way up it is, or how much ground it covers. Everything that makes an archive useful, comparing then against now, measuring what changed, publishing it as a layer, depends on answering those three questions first, and the traditional answer is an operator placing pins by hand on every frame.
This tool answers them without the operator. The flight logbook gives a rough area, accurate to a kilometre or two, which is not good enough to use but is good enough to know which piece of the modern map to compare against. The old frame is then slid and rotated over present-day orthophoto imagery until the two line up best, like laying tracing paper over a map and shifting it until the roads meet.
The important part is what is compared. Recognising individual landmarks was tried first and failed, because a black-and-white farm from sixty years ago looks nothing like the same farm in a modern colour photo. But the overall shape of the landscape, field edges, hedgerows and road lines, is still there, and that is what the match picks up on.
Then comes the part that decides whether any of this is usable. A matcher always returns a best answer, so every result is scored on how much better it fits than everything it rejected. A genuine match stands out; a wrong one does not. Below threshold the answer is thrown away and nothing is written, and the frame is marked as needing a human. That single rule is what separates an archive you can trust from one seeded with confident mistakes.
The accepted placement is not sent straight to the export either. It is converted into a grid of control points, the same thing an operator would have placed by hand, so that everything downstream, the accuracy table, the live preview and the export, reads one format. A person can open a frame, see the automatic pins, and nudge, add or delete them exactly as if they had placed them, and re-running the automatic step replaces only its own pins.
From those points the frame is warped onto a north-up grid, trimmed to the frame edge and written out as a georeferenced GeoTIFF with its world file, its outline and its point list, ready to open in any GIS.
Scanned frames, drawings or survey imagery with no coordinates attached are a placement problem before they are a GIS problem. Book a technical session and we will tell you what can be automated on your data and what cannot.