Flows, Time & Interactivity (2D + Time) - CS-GY 6313 - Fall 2025
2025-10-31
What happens when we apply static techniques to massive urban datasets?
This is 140 million NYC taxi trips visualized as a static heatmap.
What can you learn from this?
Nothing. It’s a “yellow blob.”

Learn to visualize urban dynamics—movement and time—using interactive, linked views
We’ll learn how to move from this “yellow blob” to meaningful insights about urban mobility patterns.
How do we make better decisions about urban development?
To understand a city, we must explore how these interact over space and time.
The Classic Framework for Movement Analysis
The Urban Challenge:
Understanding millions of these paths, all interacting simultaneously


❌ Cognitive overload - Generates overwhelming numbers of plots/tables
❌ Batch-oriented - No exploration, just predetermined queries
❌ Distances experts from data - Requires intermediary (data scientist)
❌ Cannot scale - Modern data volumes overwhelm traditional tools
❌ Result: The “yellow blob” problem
Even simple questions require generating dozens of individual plots, each manually programmed
This is tedious, slow, and limiting
❌ Tools can’t handle 170M trips
❌ Requires programming/database expertise
❌ Time-consuming and frustrating
❌ Distances experts from the data
❌ Hard to explore, compare, or follow up on patterns
Role: Presentation
Limitation: Cannot handle 140 million data points
Role: Exploration
Power: Query and filter to reveal patterns
“Overview first, Zoom and Filter, then Details-on-Demand”
— Ben Shneiderman (1996)

Start with the big picture (even if it’s a “yellow blob”)

Focus on items of interest

Get specifics when needed
Research shows that even a half-second delay dramatically impacts analysis quality.
Challenge: How do we make sense of this data?
Taxi activity patterns showing regularity and anomalies
Let users query data through direct manipulation of visualizations
Where?
When?
What?
Instead of writing SELECT * FROM trips WHERE..., you draw on a map
TaxiVis interface showing visual query components
Full TaxiVis interface showing linked views
TaxiVis interface with labeled components
“How do trips to JFK vs. LGA differ on Sundays vs. Mondays?”

Side-by-side comparison of Sunday vs Monday airport trips
All three fundamental spatio-temporal query types:
“What taxis were in Midtown at rush hour?”
“Where were high-fare trips on New Year’s Eve?”
“When do trips to airports peak?”

We need multiple visualization strategies
How it works:
Result: Clear visualization at every zoom level

As you zoom in, you see more detail. As you zoom out, you see a representative sample.


When to use: Heat maps for overview and patterns, LOD for specific trip details, Grid maps for comparing defined regions

Actions in one view are reflected in all other views
This creates a “dialogue” where you can ask questions by interacting with any visualization component, and all views update to answer your question.
“What is the temporal pattern for trips from JFK Airport?”
TaxiVis showing all taxi trips
The map shows the “yellow blob”—all trips. The time series shows aggregate patterns for the entire city.
User selecting JFK region on the map
By clicking and dragging, the user selects a geographic region. In this case, the area around JFK Airport.
Time series and charts update to show only JFK data
The time series and histograms now show the temporal pattern for only trips from the JFK area.
The linking works in both directions
This bidirectional dialogue enables exploratory analysis that would be impossible with static visualizations.
“Where do trips go during morning rush hour?”
Reveals spatial patterns specific to that time slice


What if I want to see a pattern, not just a single time slice?
Select recurring time periods:
This reveals periodic behavior—the heartbeat of the city

Weekday Mornings (Mon-Fri, 7-9am)

Inbound commuter patterns
Weekend Nights (Sat-Sun, 10pm-2am)

Entertainment district activity
Recurrent selection reveals systematic differences in urban activity patterns.
Remember the Modifiable Areal Unit Problem from Week 8?
The default boundaries might be wrong for your analysis.
Merging Regions - Users can interactively select and merge multiple regions into a custom area
Example: Create your own “Midtown” by merging adjacent census tracts


Double-click to select multiple adjacent regions
Double-click or Ctrl+click to select multiple adjacent regions on the map

Click the “Merge” button in the control panel

The merged region is now treated as a single entity in all visualizations
The tool adapts to your analysis. You define the boundaries that make sense for your question.
Asking about movement between specific locations
Complex, requires knowing SQL and field names
Draw an arrow
Simple, visual, intuitive
This is what we mean by “visual query”—you draw your question, the system answers.
Arrow tool selected in toolbar
The arrow tool lets you create origin-destination (OD) queries by drawing directly on the map.
User drawing arrow from JFK to LGA
Example: Draw an arrow from JFK Airport to LaGuardia Airport to ask:
“Show me all trips that went from JFK to LGA”
Dashboard showing only JFK→LGA trips
The visualization is the interface.

Harlem vs other neighborhoods taxi activity


More pickups at LGA than JFK (most days)
Train stations >> airports for pickups
Weekday pattern: Train station pickups constant Mon-Thu, drop Fri-Sat
Rush hour problem: Airport trips take much longer 3-5PM

Memorial Day vs regular Mondays
Daily heat maps showing Hurricane Sandy impact
Why? Lower Manhattan had a 5-day power outage
You can literally see the power outage as a dark region on the map.
Hurricane Irene impact on taxi trips
Other urban data:
Same challenges: Scale, complexity, spatio-temporal nature

Cities are vertical, not just horizontal
We’ll extend these ideas to 3D urban visualization and the Urbane framework
Same principles apply: interactive, visual, scalable
The Problem:
The Solution:
The Result:
If you had access to TaxiVis, what would you explore?
Think about:
Discussion:
Next week: 3D & Immersive Urban Visualization
