Maps from public data

Maps from public data

Jaar
2025
Rol
Cartographer, Developer
Bijdragen
Data pipeline, Cartography, Rendering

Four places, each mapped from public data: a valley in northern Vermont, two Dutch cities, and a stretch of Brazilian frontier. The maps are meant to be looked at. Each one names the dataset it was made from.

The Lamoille River in northern Vermont. White is the water as it runs now. Blue is the valley floor, from the state's LiDAR survey.

The Wrong Way Bridge

A bridge near Cambridge, Vermont crosses the Lamoille, and the road bends away from the river before it reaches the span. People who grew up driving it assumed bad surveying, or a botched shortcut toward St. Albans.

The bridge was built in 1950 to begin an extension of Route 15 that would have run along a rail corridor on the south bank. The valley flooded repeatedly, the extension was dropped, and the approach embankment kept the bearing of a road that was never built.

Vermont publishes its LiDAR, so the ground comes down as a height model fine enough to hold a road cut. The 1948 USGS Mount Mansfield sheet shows the valley two years before the bridge went in. Between them you can date the geometry.

For the map I took out everything except height and water. No roads, no labels, no parcels, no buildings. The river is white, and the blue is the floor it cut.

The same LiDAR coloured by height instead. The bands either side of the channel are old courses of the river.

Haarlem by construction year

The Dutch buildings register records a construction year for every footprint in the country. For Haarlem I grouped the years into the periods the city grew in: before 1850, 1850 to the first war, the interwar years, the postwar expansion, and recent infill.

The medieval centre comes out yellow along the Spaarne. The nineteenth-century belt is blue around it. The postwar districts are grey, and their street patterns are visibly planned rather than accumulated.

Haarlem by construction year, from the national buildings register. Yellow is the oldest fabric, blue the nineteenth-century expansion, grey the postwar districts.

Street names

A street name records what someone decided to commemorate. The register gives the names and the geometry. It does not say that Anton de Kom was a Surinamese-Dutch resistance writer, or that the Egelantiersgracht is named after a rose.

So I ran the names through a language model on my own machine and asked it for three things: what the name refers to, which theme it belongs to, and the reason, in a sentence.

name
Anton de Komplein
theme
helden
sub
verzetsmensen
reason
Anton de Kom was een Surinaams-Nederlands verzetsstrijder en dichter, en zijn naam is in Amsterdam bekend.

One row as the model returned it: heroes, resistance figures, and the reason. Every name on the map carries one.

The model can answer that a name refers to nothing in particular, and a large share of Amsterdam's names do. Those streets stay dark. I ran the list through a second model as well and compared the two sets of answers.

The map draws the whole city in faint grey and lights only the streets in one theme. Flower and tree names cluster in the Jordaan, where seventeenth-century speculative building laid them out in rows. They turn up again in postwar districts.

Flower and tree names across Amsterdam, and the blocks where they run densest: Egelantiersgracht, Bloemgracht, Rozengracht, Lindengracht.

In Haarlem I drew the same question a different way. The city is covered with a grid, and each cell takes whichever theme is most common inside it, so the map reports on neighbourhoods instead of individual streets. Church names sit near the old parishes. Water names follow the Spaarne and the old harbour. Military and overseas names, many of them colonial, sit in the later expansions.

Haarlem by dominant street-name theme: religion on the left, water on the right.

This was one day's work from data extraction to render, so it is not a source anyone should cite. It is enough to show where a slower pass would pay off.

Burn severity in Rondônia

Clearing and burning in Rondônia runs on an annual cycle. In visible light from orbit the result looks orderly: rectangles, straight edges, blocks of pasture.

I took two Sentinel-2 scenes either side of a burn, one from August and one from the following month, and computed a normalised burn ratio for each from the near-infrared and shortwave-infrared bands. The difference between the two dates gives the severity. Where smoke or cloud sits over the scene the index breaks down, so I masked those areas instead of smoothing them.

Under the index the rectangles come apart. Old clearings, new clearings, regrowth and fresh scars separate out. The brightest areas are the heaviest loss, and most of them sit along the forest edge.

Burn severity across part of Rondônia, from the difference between two Sentinel-2 dates. Orange is the heaviest loss.

How I work

Each of these starts from a dataset a stranger can download. I make a small number of styling decisions to bring out one thing, and I keep a record of where every layer came from, so the map holds up when someone asks. Classifications carry their reasons. The parts that were quick rather than rigorous say so.

If you have a dataset and a question about a place, email me at jason@storybynumbers.com.