MapScan
Turning flat map images into data I could actually combine.
I wanted to see what California looked like when forest, rainfall, elevation, geology, population, fire, and agriculture could be viewed together. The maps existed. Their data was trapped inside pixels.
Open the interactive map↗I’ve always loved maps, data, and playing with the union of the two. In the past, when I wanted to compare maps, I composited them by hand in Photoshop. A transparent overlay was rarely enough. Each map used a different crop, scale, rotation, or projection, so I spent time warping and skewing the images until the coastlines looked approximately right.
Even then, the result was still a picture. I could not turn one tree type off, recolor a rainfall band, move geology behind population, or share a precise combination with someone else. The information was visible but not manipulable.
The question was simple: could AI recover the geography and the legend from a flattened image without reducing the fidelity of the original map?
Nine maps, nine different kinds of trouble.
I found maps I liked and gave them to Claude. Some were clean categorical diagrams. Others were dense, partial, textured, or layered with labels and boundaries. Click any image to inspect it.
Two loops: first geometry, then data.
I asked Claude to work backwards from the Mapbox map shape as a first step because it represents the final rendering. Alignment had to pass before extraction could begin; otherwise a perfect set of pixels would still be in the wrong place.
- 01
Read the image
Claude finds the map frame, the legend, the thematic marks, and the visual noise—labels, roads, borders, water, and background—that should not become data.
- 02
Work backwards from Mapbox
California’s coast, state boundary, and county geometry are rendered from Mapbox as the geographic reference. The source image is projected into that same pixel space.
- 03
Align, compare, repeat
Candidate projection, rotation, scale, skew, and local warp settings are scored against the reference. Comparisons run statewide and again at difficult edges such as the Bay Area and Colorado River.
- 04
Recover the legend classes
Legend labels and swatches become named classes. Pixels are classified at the source’s native resolution so the output preserves the original distinctions instead of tracing simplified shapes.
- 05
Diff, repair, publish
The extraction is flipped against the source and inspected at several zoom levels. Missing data, false colors, text holes, and spill outside California feed another iteration before Web Mercator tiles are published.
This was not a single prompt that produced a finished map. The system made a candidate, rendered evidence, measured what was wrong, changed its assumptions, and tried again. Fine coastline details, partial source extents, gradient colors, city labels, water, and overlapping legends all required different tests.
The final product keeps each recovered legend item independently selectable. Datasets can be combined, reordered, recolored, and given their own opacity while Mapbox remains the live geographic canvas underneath.
Try the result
Build a map the source images could never make.
Select individual classes across datasets, change their colors and opacity, reorder the dataset stack, then copy a link to the exact composition.
Launch MapScan↗The interesting part starts when the layers meet.
I’m assembling a set of combinations that make relationships in the data easier to see. Those examples will appear here next.
Layer combinations, observations, and saved map views coming next.