A Sanborn sheet knows plenty about a building: shape, construction, use, lot boundaries and nearby streets. What it lacks is the first thing a GIS wants: a place to put the page on Earth.4

At Library of Congress scale, that missing coordinate becomes a bulk problem: the Sanborn package exceeds 50,000 map records and 440,000 images.3 A researcher can open the scans. That does not make them automatically overlayable on present-day Chicago.

Matt Hendrick built AutoGeoRef to avoid repeating that placement manually for page after page.1 The interesting part is not a vision model somehow “understanding” an old map. The model does not actually place the sheet.

It reads clues. Deterministic code then proposes, challenges and sometimes rejects the placement.

The model reads

AutoGeoRef first makes a smaller copy that a vision reader can take in at once. The reader marks street names, positions and directions; later geometry returns to the full-resolution pixel frame.12

Two crossed labels on paper suggest a junction. The program then asks where those two street names meet in modern geometry. One point now has two coordinate systems: pixels on the historical page and geographic coordinates in the current city.2

With enough pairs, AutoGeoRef can search for a transformation between paper and ground.

Four-stage pipeline showing the historical scan, vision reading street names, deterministic lookup of modern intersections and a transformation fitted with validation gatesAutoGeoRef uses the model to extract visual clues. Placement then moves through a reproducible pipeline. IRZ analysis from AutoGeoRef

The split changes what happens when a read is wrong.

If the reader sees WALLACE where the sheet says W. LAKE, the mistake becomes an inconsistent street proposal. AutoGeoRef's walkthrough documents exactly that case: the first read produces too few useful corners and the fit is refused. A stronger reader can try again, but the acceptance rules are not loosened to rescue the page.2

RANSAC is not enough

The first placement goes through RANSAC: sample a few correspondences, calculate the transform they imply, then make the remaining points prove that they belong to the same answer. In the project's worked example, the search runs 5,000 trials and treats points within 25 metres as agreeing with a candidate model.2

RANSAC discards plenty of bad pairs. A page can still be neatly aligned to the wrong block.

A handful of internally consistent intersections can support a mathematically tidy transformation in the wrong place. A parallel street one block away may produce a disturbingly plausible answer.

The project surrounds that fit with seven separate refusal gates. A sheet cannot be mirrored; its scale and rotation need to fit the rest of the volume; stretching is bounded; anchors need to occupy enough of the page instead of forming a narrow line. A leave-one-out check also asks whether removing a single anchor destroys the solution.2

A small residual is therefore not independent evidence. The same points can build a model and then congratulate it.

The volume checks the sheet

One page is easy to fool. The whole bound atlas is harder.

Atlas sheets are not independent samples. They were printed in the same book, at scales and orientations that do not change arbitrarily, and AutoGeoRef uses that mundane physical fact as evidence. An initial pass establishes the volume's behaviour, then later placements need to remain inside compatible windows.2

The volume can also help a page that has too little evidence of its own. Once scale and orientation are sufficiently established by the volume, a sheet with too few useful intersections can sometimes be solved mostly as a translation. Fewer anchors become meaningful because four of the transformation's unknowns have already been constrained.2

Crucially, that sheet can retain the fact that its orientation came from the volume rather than from its own evidence.

That provenance tells more than a lone confidence percentage.

“Placed” hides the method. “Strict accept”, “rescued using volume parameters” and “reviewer-verified” describe why the result exists.

When the present contradicts the past

The revealing case is the sheet for which the software cannot find a convincing answer.

The matcher eventually compares two historical objects: an old sheet and a city that has spent a century changing underneath it.

Highways erase blocks. Urban renewal removes streets. Names change. Shorelines are filled. Parks, rail yards and the old Chicago World's Fair site provide few modern intersections corresponding to what the sheets once described.1

A street that cannot be found in 2026 may be evidence of demolition or renaming, not a broken matcher.

Forcing an answer would effectively make the 2026 street grid judge the 1905 one, then blame the archival sheet for everything the city changed later.

AutoGeoRef leaves some sheets unpublished instead. Its export documentation says flagged sheets are excluded. Human corrections carry a separate reviewer-verified status and can be distinguished from automatic accepts.1

Three separate layers showing an intact historical scan, georeferencing ground control points with status metadata, and the modern street network used for comparisonKeeping the transformation separate from the scan makes a placement revisable without manufacturing a new historical source. IRZ analysis from AutoGeoRef / IIIF exports

5.4 metres from a human

Chicago's numbers also make the demo harder to oversell.

Across 35 Chicago volumes that can be compared with human georeferencing on OldInsuranceMaps.net, AutoGeoRef reports publishing 78% of 3,773 sheets. The typical difference from the human placement is 5.4 metres.1

That should not be rewritten as “5.4 metres of absolute error.” OldInsuranceMaps.net is a human reference, created through a crowdsourcing workflow documented by Adam Cox, rather than perfect geodetic ground truth.5

The median still hides an uncomfortable tail: 10.8% of published sheets in that Chicago comparison are more than 15 metres from the human placement.1

The project notes that a standard Chicago lot is about 25 feet, or 7.6 metres, wide. Fifteen metres can therefore move a historical building by multiple lots.1

So AutoGeoRef is better described as a strong starting position than a cartographic oracle. It removes much of the first-pass labour while leaving doubtful sheets visible as doubtful.

Publish the uncertainty

The exports preserve that caution after the placement run ends.

In gcps/p<N>.json, the sheet keeps the pairs that pin it down: a source-image pixel on one side, a WGS84 coordinate on the other. The project also generates IIIF Georeference annotations that target the Library of Congress image service instead of redistributing a newly baked “corrected” raster.1

A different viewer can redo the warp instead of trusting a baked rectified image.

A baked rectified image can hide the decision. Ground control points expose it: these are the correspondences that produced this particular placement.

A researcher can move a point, swap a reference dataset, recalculate and compare the new placement with the old one.

For archives, scientific datasets or any system aligning old documents to modern reference data, that may be AutoGeoRef's most reusable idea: automate the proposal without automating away the conditions under which the proposal is valid.

Perhaps the strongest feature is that REJECTED is a real output. A later researcher can find the sheet, see why it failed or passed, and try again with better evidence.