Airline and Airport Traffic and Delays: A JuiceKit Visualization Demo

September 28, 2009
226 Views

To fly is to be frustrated. If you’ve been traveling for long, you no doubt have your opinions about what airlines and airports are the biggest sources of suffering. Whether it is weather delays, getting stuck on the tarmac due to air traffic, maintenance problems, or missing a connection, it all feels outside of your control.

But a little knowledge can help. The Bureau of Transportation has maintained a giant database of air traffic information for decades of flights — point of origin, flight times, flight delays, type of delay, etc. It is 72 gigabytes of data… just the type of data that needs some visualization. JuiceKit to the rescue.

We’ve put together a pair of visualizations that can make this data accessible to your average non-data-monkey traveler:

  • Treemap uses size to represent the number of flights by airline and by point of origin. The color is used to show delay time — we’ve got all sorts of delay metrics, each of which tells an interesting story.

Airline Treemap

  • US map uses size to represent the number of flights and the color to display delay time. Filtering by airline yields additional details



To fly is to be frustrated. If you’ve been traveling for long, you no doubt have your opinions about what airlines and airports are the biggest sources of suffering. Whether it is weather delays, getting stuck on the tarmac due to air traffic, maintenance problems, or missing a connection, it all feels outside of your control.

But a little knowledge can help. The Bureau of Transportation has maintained a giant database of air traffic information for decades of flights — point of origin, flight times, flight delays, type of delay, etc. It is 72 gigabytes of data… just the type of data that needs some visualization. JuiceKit to the rescue.

We’ve put together a pair of visualizations that can make this data accessible to your average non-data-monkey traveler:

  • Treemap uses size to represent the number of flights by airline and by point of origin. The color is used to show delay time — we’ve got all sorts of delay metrics, each of which tells an interesting story.

Airline Treemap

  • US map uses size to represent the number of flights and the color to display delay time. Filtering by airline yields additional details.

Airline US Map

There are some interesting insights that pop out when you build a visualization this data.

  • The different airline strategies are quickly apparent in the treemap. Hub-and-spoke airlines (Delta, Continental) have one or two dominant boxes (origin location), surrounded by lots of small locations. A point-to-point airline like Southwest looks entirely different with lots of similarly sized boxes.

  • Flipping between delay types uncovers some unexpected results. For example, you might expect weather delays to be heavily correlated by airport. The data shows something a little different: Comair appears to be abnormally impacted by weather delays — as if a dark cloud chases around their airplanes. While Comair might be overstating weather delay data to prevent paying for meal vouchers, a more reasonable Wikipedia investigation suggests that Comair flies smaller weather-susceptible Bombardier airplanes.

A few details about this demo for our technical audience:

For those of you following JuiceKit development, this is a demo of some of the newer features available in our open source Juicekit 1.2 distribution, and some of the features that will be coming to the 1.3 version. Treemap styling is now elegant, crisp, and allows for white borders, fixing a couple rendering bugs. There is a new tree-level depth feature that can make it easier to navigate treemaps with lots of layers. The airports map demonstrates a geographic layout built using GeoLayout JuiceKit and Flare components. A major improvement demonstrated by the airline-selector dropdown is the ability to keep nodes consistent between data reloads. This allows us to animate the nodes even though they are generated by our new LiveQuery component.

Link to original post