Despite how good they look, I’ve always been bothered by the fact that they were primarily vibes-based. So, I decided to take a crack at making a web-based, data-driven version using land cover data from the USGS. Admittedly I leaned heavily on Claude Opus 4.7 to help implement the raster resampling and blob-ifying, and I am sure there are cleaner ways to make this work.
Whoa! I’ve never heard of this! I should read the Nightingale piece… but if you had to explain in just a couple sentences what it’s showing, what the methodology is, why it was done like that originally, what would you say?
Love the resolution slider.
Are the blob shapes hardcoded in that notebook? I wonder how hard it’d be to load the tiles dynamically and generate the blobs on the fly so people outside Minneapolis could see themselves on the map.
Generally, a ‘potato plan’ is a way of mapping areas of interest as soft blobs rather than hard boundaries. I guess the name comes from the fact that people think the blobs look like potatoes. They’re typically used either when detailed boundary data isn’t available, or when showing specific blocks and streets would distract from a big-picture idea.
Both of these were true in the case of Patrick Abercrombie’s original ‘potato plan’ map. There was no convenient data since it was the 1940s, and being more specific was tricky because he was describing a general plan for creating “new towns” but didn’t have the authority to designate specific sites for redevelopment. So, he decided blobs would do the trick.
As for methodology, I don’t believe there is an established process for drawing a ‘potato plan’. Which is part of my frustration with them, and what led me to want to see if there is a more data-based way to generate one.
In my notebook, I’m using data from the National Land Cover Database to draw the blobs. That dataset contains a grid of 30m cells covering the U.S. each labeled with its dominant land-cover type. Data at that resolution for a large area is heavy, so I clipped it down to a 100km square around Minneapolis. There’s probably a more efficient way to handle the data and show a much larger area, but I didn’t look into that.
To your last question, no the blobs aren’t hard coded. The data starts as raster like this. The notebook resamples those 30m cells down to the slider resolution (using the most common category), then for each category traces blob outlines with d3.contours() and smooths them with d3.line().curve(d3.curveBasisClosed). So the blobs are generated on the fly, but the map extent is baked in.
Sorry that wasn’t just a couple sentences!
P.S. Loading tiles dynamically so anyone could center the map on their own city is a great idea. I think it’s mostly a matter of figuring out a way to fetch and stitch the NLCD tiles.
I love this. Excellent work! Creating blobby convex shapes isn’t too hard, but tessellating mixed convex and concave boundaries like this is much harder, and something I’ve been wanting to do for a while.
While I was aware of the Abercrombie London plan, I didn’t know about the potato maps collection from Züger and Christiaanse, which looks interesting. A pity that appears out of print.
Generally, a ‘potato plan’ is a way of mapping areas of interest as soft blobs rather than hard boundaries. I guess the name comes from the fact that people think the blobs look like potatoes. They’re typically used either when detailed boundary data isn’t available, or when showing specific blocks and streets would distract from a big-picture idea.
Sounds like a metaballs-inspired approach might work quite well too, once the data has been downsampled in an appropriate way Metaballs - Wikipedia
The last bit also tells us how we should interpret the resulting map - as a “most common” rough estimate for a given level of “blobby coarseness”, which is appropriate because the aesthetic also signals “rough estimate”. EDIT: does make me wonder if we should worry about unintentional “gerrymandering” effects.