A comparison of national and international carriers in domestic flight routes.
This is my entry for the Vizualizing Marathon 2012 with the Global Flights Network data. It was one of the winning submissions in the infographics section! In this post I talk a bit about the design process of my visualization.
Each circle represents a country with airports as nodes and flight routes as edges. Routes operated by foreign airlines are displayed in red, while the remaining routes are displayed in black.
See how domestic routes in some countries are nearly fully operated by foreign airlines (e.g. Nigeria , Belize ), and in some mostly by national airlines (e.g. Pakistan , Algeria ).
It also becomes visible how generally larger countries have more domestic routes and small ones barely have any or none (see e.g. Belgium ). There are outliers to this rule though, e.g. island countries such as Solomon Island .
My initial aim was to submit the visualization as an interactive application. But in the end, time ran out. While I had a working prototype I felt it was not finished yet, and opted for the simpler but stronger submission of only the static small multiple overview.
Watch the video to see a screencast of the interactive version. When users click on a network circle, the map fades in, already zoomed and panned to the appropriate area, with the airports and routes shown for the corresponding country. This was implemented with the help of our Unfolding map library.
As typical in a fast paced (and in this case rather short) iterative design process, I tried out lots of different things. In the beginning, I dug into the data set to understand it myself, and to find some interesting stories.
A direction I investigated for a while was the relation between domestic and international flights depending on country size (population or area).
Next, I tried finding a visualization technique more appropriate to show flight routes in countries.
Yet, the conclusion of “the bigger the country the more domestic routes exist” felt a bit obvious. So I went with the comparison of national and international carriers in domestics flights.
Data & Code
To be able to quickly sketch out visualization prototypes with different perspectives on the data, some simple querying mechanism was needed. I created data beans, wrote a simple O/R mapper, and implemented a basic caching mechanism. In the end, an actual database probably would have been better – but these detours happen in a weekend session, I suppose.
I also combined the flights data from the marathon with additional country data (from OpenGeocode.org). This was mainly to get area, population and other information for the experiments above, but was also needed to be able to find the country polygon of the background map. The marathon data set provided English country names, but those were not unified (e.g. it included “South Korea” for the airports, but “Republic of Korea” for the airlines).
I will publish the code in a few days (which still will be in dire need of documentation and refactoring).
A big thank you goes to Joris Klerkx, and all others from the meetup at KU Leuven for feedback and critique.
The work was inspired by similar network visualizations. I always wanted to try something similar to this (by Mason Brown?). My colleague Sybil Derrible showed me his great work on Network Centrality of Metro Systems back in Singapore. And of course the ever amazing Circos software by Martin Krzywinski (see for instance this small multiples of his older Schemaball project).