Making-of: Trails of Wind. How we created a map of the global…
By: David Von Buseck
Tags: Aviation, Travel, Design, Maps, Data Visualization

Making-of: Trails of Wind

How we created a map of the global architecture of airport runways, which turned out to be a wind map.

This article is a collaborative work by David Elsche, Steffen Hänsch, and Sascha Collet.

While Flying on a plane the man-made structures and how they change the face of the earth are overwhelming. The bird’s eye view casts a whole other light on how humans interact with landscapes, using every valley for villages, shaping fields around forests, building highways through mountain passes. Some of the largest man-made structures, however, are the ones needed for air travel itself: airports. But why they were built the way they are and how is the direction a runway faces determined?

After doing some research we found out that most airport runways are built in the average wind direction of that location to prevent crosswind landing, which could be dangerous for airplanes and passengers alike. In regions with very irregular wind directions, runways are often designed in various directions to ensure a smooth course of operation. That is why, in regions like these, airports don’t just have parallel runways but form distinct shapes, like triangles and squares, depending on how wind directions usually change.

Airport Runway Shapes

We concluded that the orientation and the gigantic number of airports theoretically could provide information about the general wind direction of a region, as airports reflect the wind directions in their architecture.

Data Exploration

Tools JupiterLab, Altair

In the search for a suitable record, we came across the Ouraiports page. It contains an extensive collection of all airports in the world that also provides further information like passenger frequency, altitude above and below sea level and another dataset with detailed references about the runways (length, width, surface, etc.). After removing irrelevant data like heliports, closed airports and runways without coordinates we compared the runway dataset with the airports dataset.

As you can see many of the runways in the dataset are not georeferenced, which is why a large number of runways cannot be represented. The resulting lack of many airports is especially noticeable in South America, Africa and Papua New Guinea.

After visualizing the runways rudimentarily using Folium to see deviating runway lines in the dataset, we removed errors manually.

Runways differ greatly in terms of their length and width and in most cases follow the specifications of aircraft types that land on the airport. The required length of a runway for the take-off of an aircraft type depends on a variety of properties like weight, aerodynamics, engines and the local air pressure and ranges between a few hundred meters up to several thousand meters for an A380 (see page 130).

This visualized dataset shows that there is a much clearer structure by the width of the runway than by the length.

To compare the runway directions, it was important to display them uniformly. We computed the midpoint between the runway endpoint coordinates with Geographiclib and calculated the angle of rotation compared to the north-south-axis to project the lines later on the map.

After calculating the respective angle it’s time to have a look at the global runway orientation. Therefore we reduced the orientation to almost a semicircle of 179° to avoid double counting the angles (since landing strips can be flown on from both sides) and to give a clearer representation.

What is striking here is the elevated orientation of the runways in the direction of the magnetic north. A clearly increased number can be seen north-south (0°) as well as at the east-west-axis (90°), with smaller peaks are at 45° and -45°.

For further use in a web application, all unimportant information was removed and exported in a final JSON file. The coordinate points were rounded to six digits after the decimal point to decrease the file size.