Air Traffic Simulation

Co-authored with Kristine Frank, Mark Hoffmann and Dan Erik Petersen.


In this project we developed an extensible software system for simulating air traffic. The simulator may be used to evaluate new ways of conducting air traffic. The basic system allows the user to set up an airspace with a number of airports and airways between them, and create a flight timetable. The timetable can then be visualised by running a simulation, where an animated display shows the flights flying according to the timetable. Additionally, the system has a rather advanced session system, allowing the user to record and later replay a sequence of interactions with the system.

Project description

This project was carried out under the guidance of Prof. Dines Bjørner (IMM/DTU) as part of the introductory teaching in computer science at DTU.

The goal of the project was to develop a basic system for simulating air traffic. The system should allow extensions to be easily added. The three main functions of the system, called Air Traffic Simulator (ATS), are:

  • Setting up airports, possibly with airways connecting them to other airports;
  • Creating a schedule for the air traffic. We refer to the schedule as a timetable;
  • Visualising the timetable by running an animated simulation.

We developed a model of air traffic using ideas due to Prof. Dines Bjørner. In this model we view an airspace as a geometrical space which aircraft can enter and exit only at designated points, called airports. An airspace may contain one or more airways, which are corridors though the airspace, originating and ending directly above airports. A flight is a unique combination of an aircraft and a route, where a route is a list of airports with corresponding departure times for all but the last airport. The timetable is the complete set of flights.

Our model has a number of limitations. For example, to properly model the way air traffic is managed today over Europe and the US, where nearly all aircraft follow airways, it is necessary to define airways for all pairs of airports, i.e. the graph with airports as vertices and airways as edges should be complete. Obviously, for moderate numbers of airports this becomes infeasible. The ATS software is designed such that if there is an airway between the departure and destination airports, the aircraft will follow this airway, while in the absence of an airway, the aircraft will fly the shortest route between the two airports, namely along a geodesic.

ATS software description

The ATS program provides a graphical interface for setting up the airspace and the flight timetable and using these to run a simulation.

In ATS an airspace is considered to consist of a set of airports with associated zones of control, named airdomes, and a set of airways connecting pairs of airports. An airspace is created in the airspace editor in ATS.

Timetable editor
In the timetable editor, flights can be added, deleted and modified. A flight is specified by a flight number, the type of aircraft used, the origin and destination airports and the time of departure. A flight can have several legs, i.e. have one or more intermediate landings. The arrival time is automatically calculated based on the departure time and the cruise speed of the chosen type of aircraft.

Once an airspace and a timetable have been set up, the simulation can be run. In the simulation, flights are displayed like on the radar screen used by air traffic controllers. The display also shows airports and airways. The user can zoom and pan freely. The simulation can be accelerated to 190 times the normal speed.

When the simulation is stopped a few statistics about the scenario just simulated are displayed. These include the density of traffic at individual airports and the number of incidents where two or more aircraft have violated spacing regulations.

ATS has a rather advanced session management system that allows the user to undo any action that changes the underlying data structures. It is also possible to record a sequence of actions and then replay them later. This is particularly useful for demonstrating the system.

ATS is designed to support plug-ins for new types of projections. A simple cylindrical projection and a conformal conical projection are currently included. The interface to these plug-ins is designed to also support non-cartographical projections, e.g. to show the air traffic in 3-D.

A rudimentary user’s guide for ATS is included in an appendix in the project report.

Download report and ATS software

Download report:

Download ATS software: (please read the installation instructions below)

Installation instructions for ATS software

Note that the source was made for Java 1.2 and a few modifications are necessary to compile it with current Java versions. Let me know if you need help with this.

To run the ATS program you must have a Java Runtime Environment installed.

Download the ATS zip file from the link above. Extract the contents of the zip file using WinZip or a similar program. Make sure you select use folder names when unzipping. The ATS files are now in a directory called



To run the program open a command prompt and change to the directory where you unzipped ATS. Type

cd ats

and then

java ats.gui.WelcomeFrame

. The ATS program should now start.

If the program does not start, you may need to add the directory where the Java Runtime Environment is installed to your system path. Consult the documentation for the Java Runtime Environment for information on how to do this.

See also

Eurocontrol is the European Organization for the Safety of Air Navigation. The organization coordinates air traffic control over Europe and has extensive information about regulations, procedures and delay statistics.

IATA (International Air Transport Association) has a large collections of links related to air traffic. The site also has a searchable database of airport and airline codes.

  • Print
  • email
  • Digg
  • StumbleUpon
  • Facebook
  • Twitter
  • Google Bookmarks
  • Google Buzz
  • Posterous

Leave a Reply

Your email address will not be published. Required fields are marked *