Visual analytics for large-scale spatial and mobility data

Bring your city to life with animations, insights and analytics

CityPhi is a visualization, animation and data analytics platform that works with spatial, temporal and mobility data. It lets you display and animate large-scale data sets in 3D, and simultaneously explore, chart and analyze this data through interactive visual queries.

CityPhi generates stunning and responsive scenes even with millions of geometries in the frame, allowing detailed animations at the metropolitan and regional levels.CityPhi lets you explore time and motion in addition to space.

And CityPhi works together with popular Python tools to create a unique interface for spatial analytics that makes discovering relationships and meaningful patterns in your data interactive and fast.


See CityPhi in action

An animated history of the development of NYC. The New York City PLUTO parcel dataset includes construction dates for >1,000,000 current buildings in the city, and has been a popular source of exploration since its release in 2013 as in this CityLab article, in which we see buildings colored by age. Working with this data in CityPhi we can easily create and navigate an animated history of the construction of New York City, synchronized with charts showing context by decade. For the purposes of visualization, buildings are erected at a constant construction rate of 2 stories per week + 1 year. Find the PLUTO data and more at the NYC OpenData portal.

This visualization shows ~8,000 transit trips between the hours of 7 and 8am in the Seattle metropolitan area. (Note that transit trips to work are excluded due to data confidentiality). Individuals change color during their trip (yellow: walk/access/egress, blue: in-vehicle, red: waiting). Transit trajectories illustrate the single most popular path between an origin and destination as taken from the regional travel model, illustrating walk time, wait time and in-vehicle time along the route. Note that in-vehicle/blue dots should not be interpreted as individual transit vehicles. Traffic flow and speed from the regional travel model and extruded activities as in the preceding video are also illustrated as animated layers. More information on source data, provided by PSRC, is available at

This visualization shows 11 million synthesized daily activities completed by 3.6 million individuals making 14 million trips in the Seattle metropolitan area. This data excludes work activities due to confidentiality. Activities are shown as time-animated vertical extrusions and colored by purpose (blue:home, orange:school, red:meal, pink:social, light green:personal business, green:shopping, etc...) Hourly traffic flow and speed from the regional travel model are also illustrated as an animated layer. More information on source data, provided by PSRC, is available at

GTFS data is a relatively accessible data source for many cities that contains plenty of interesting information to explore interactively with CityPhi. This week we set out to create a visualization of Seattle weekday transit services (Wednesday, April 1, 2015), but ended up producing interesting interactive dashboards along the way for synchronized timetable/itinerary diagrams and for exploring and querying the most frequent transit stops in the city. As always, things get more interesting once we create some visual analytics and start asking questions, which is why CityPhi plays nicely with the IPython notebook, and other Python libraries like pandas, matplotlib and Bokeh. (We also want to acknowledge the graphic design of the timetable diagram we first saw on the TRAVIC GTFS visualization.)

Did you know 3rd Ave and Virginia St was the most frequent transit stop in the city, with over 900 daily stops? Rounding out the top 10 are stops in the Downtown Seattle Transit Tunnel which runs just under 3rd Ave.

Maps and animations

Crafting an effective visualization requires finding a good ‘data story’, which can involve several iterations with your data to develop. CityPhi is designed to work in core memory from disaggregate data where possible, allowing navigation, animation, filtering, coloring and queries in interactive-time without costly pre-processing. So you can find your data stories sooner.

CityPhi provides new dimensions to your maps and gives you control over filter, color, extrusion, width, and time/animation. Both attributes and trajectories can be animated in time and a 3D scene lets you zoom, pan and animate data with a focus on responsive frame rates.

Visual analytics

CityPhi provides ways to work with disaggregate data interactively, to extrude, filter, color and animate the data to help find patterns in the noise. CityPhi also provides a query system that can be used to explore detailed statistics and distributions, providing the analyst with a highly customizable interactive-time dashboard. Change the camera, or move through time, and update queries instantly.

CityPhi + Python

CityPhi is also a full data visualization tool for Python data scientists, with a Python API and IPython/Jupyter Notebook integration for both experimentation and reproducible computation. CityPhi is designed to work in core memory and integrates well with Pandas or NumPy workflows, reducing the time between data wrangling and mapping, and permitting a fluid environment for developing visual analytics.