3 min readJust now
–
Press enter or click to view image in full size
Pittsburgh
Visualizing how a city changes over the day
I’ve always found it hard to get a feel for how a city actually changes across time. Maps are great at showing where things are, but not when places wake up, peak, or quiet down. I wanted something that made those temporal patterns visible, so I started building a small project to model and visualize urban “energy.”
The result is an interactive heatmap that aggregates venues like restaurants, cafes, attractions, and campuses. You can scrub through the day and watch activity clusters grow, fade, and shift across the city. It’s meant to show exact crowds based on real world live activity.
The underlying data comes from geolocation API. Each venue is c…
3 min readJust now
–
Press enter or click to view image in full size
Pittsburgh
Visualizing how a city changes over the day
I’ve always found it hard to get a feel for how a city actually changes across time. Maps are great at showing where things are, but not when places wake up, peak, or quiet down. I wanted something that made those temporal patterns visible, so I started building a small project to model and visualize urban “energy.”
The result is an interactive heatmap that aggregates venues like restaurants, cafes, attractions, and campuses. You can scrub through the day and watch activity clusters grow, fade, and shift across the city. It’s meant to show exact crowds based on real world live activity.
The underlying data comes from geolocation API. Each venue is categorized, then assigned a 24 hour activity curve based on typical usage patterns. Coffee shops peak early, offices mid-day, bars late, parks seasonally. These curves are obviously approximations, but they give the system a time dimension.
For any selected hour, each venue contributes weighted influence into a spatial grid around its location. The contribution decays with distance and is scaled by that venue’s current activity level. I sum all contributions, smooth the result, and render it as a heatmap. Clusters emerge naturally without defining neighborhoods.
Using it outside familiar cities:
Press enter or click to view image in full size
Ukraine
Press enter or click to view image in full size
Gaza
After testing this in a few cities I know well, I started trying locations where I had much less intuition for what patterns “should” look like. That included areas like Gaza and parts of Ukraine and Russia.
What stood out wasn’t anything about specific sites, but how clearly different spatial signatures emerge even when you don’t know the geography. Coastal corridors, border-adjacent towns, industrial zones, and dense urban cores all produce very different heatmap shapes over time.
In these regions, the map often highlighted small clusters that wouldn’t stand out on a normal places map but became visible once time and density were combined. It effectively surfaces “where activity concentrates” without needing prior local knowledge.
It’s still a modeled signal based on venue presence and time curves. But as an exploratory tool, it turned out to be useful for scanning unfamiliar areas and getting a rough sense of where points of interest might exist.
Next I want to experiment with day type curves, event overlays, and alternative visual encodings that might show temporal flow better than a heatmap.
If you work with urban data or visualization, I’d love feedback on the modeling approach or ideas for improving it.