How far is a century-old map from the ground it describes? We measured it, sheet by sheet, around Bangalore.
60 mmedian held-out error of the best method, 42 control points on 11 sheets
0/24scans where printed corners + the Kalianpur datum failed
12/12edition pairs aligned 1910s → 1970s by image matching
14 mcontrol-point picking precision, from a blind re-pick
Panel 1 · The index
57 H/9 is Bangalore
The archive names 349 scans like 57 H]09 Salem District (1927). The district label is unreliable. The sheet number holds the geography exactly.
57Degree sheet: 4° × 4°, 76–80° E, 12–16° N. Read from the index sheet in the deposit.
57 HQuarter-inch sheet: 1° × 1°, lettered A–P down the columns from the north-west.
57 H/9One-inch sheet: 15′ × 15′, numbered 1–16 the same way. Its 1927 filename says “Salem District”; its header reads Bangalore.
Panel 2 · The datum
A 180-metre ghost
Every arrow is a real control point: where the printed sheet corners place it, against where it is today. Read as modern GPS coordinates, the old graticule pushes everything about 180 m to the south-east. Read on the Kalianpur datum the surveyors actually used, the shared offset disappears and only local error remains.
arrows exaggerated ×40
178 mmedian error over 42 held-out points
−mean offset (east, north)
Panel 3 · One locked test
Six methods, the same 42 points
The points were frozen with a checksum before any method saw them, and each method was evaluated once. The printed sheet geometry with its own datum beats image matching against a modern map.
Each dot is one control point's error against OpenStreetMap, on a log scale; the bar marks the median. Hover a dot for the feature. Control points are AI-picked and AI-checked; OSM's own error is perhaps 5–20 m.
Panel 4 · Two surveys
Same hills, measured twice
The 1910s sheets give heights in feet, the 1970s metric sheets in metres. The triangulation stations match across sixty years, so they tie the two editions together without any modern map.
Older edition → newer edition, median relative error over 13 features picked on both. Matching the two old maps directly worked on every pair (12/12). Going through the modern map was worse, and impossible for 7 of 13 features.
Panel 5 · The pipeline
From archive to evidence
349scans inventoried with checksums and rights flags
251sheets resolved from their numbers
24study scans: 12 sheets × 2 editions
96neatline corners, every one checked
57control-point picks, locked by sha256
6registration methods
1evaluation run, never re-tuned
Panel 6 · The ledger
What is known, and what is not yet
Built
Inventory of Zenodo 8388121; filename labels proven unreliable, sheet grid verified against printed neatlines.
Batch registration reusing MapAlign's LoFTR + MAGSAC++, whole-sheet and tiled, with failures recorded rather than dropped.
A datum bug caught: pyproj silently applies a zero shift for Kalianpur 1880/1937 in India; the code now refuses it.
Mosaics of both series as Cloud-Optimized GeoTIFFs, plus seam diagnostics.
48 tests, three locked point sets, and a sensitivity analysis.
Not yet known
Accuracy below about 20–30 m: OSM's own error and symbol-scale picking error are of that size.
Per-sheet accuracy: only 57 H/9 has five or more points per edition.
Whether SuperPoint + LightGlue, or affine models, change the ranking.
Any change in Bangalore's tanks. Segmentation and change analysis have not started.
Next
Human review of all 39 control-point features, then a v3 lock and re-run.
Verify edition years and survey seasons on all 24 scans.
Segmentation of water and settlements (December), then change with uncertainty (January).
The atlas, with rights settled first for post-1965 sheets.