FAA NEXTOR II Project DO-10 / NEXTOR III Project DO-6

Small Airport Capacity Modeling Factors

The Federal Aviation Administration is interested in developing new capacity modeling factors for small aircraft operations at busy general aviation airports, as current estimates for small airport operating capacity are dated. This research seeks to identify specific data that will contribute to the development of modernized airport capacity models for small aircraft operations.

This work is being performed jointly between:

  • The University of Maryland (Prime) (David Lovell, Principal Investigator)
  • The Ohio State University (Sub) (Seth Young, Principal Investigator)
as a joint contract under the NEXTOR III aviation operations research consortium.

  • Project team
  • Hardware installation
  • Locations
  • AWS Architecture
  • Coding
  • Interactive flight display
  • Interactive map

Project team

This project is being conducted by the University of Maryland and the Ohio State University under contract to the Federal Aviation Administration. At the University of Maryland, Professor David Lovell leads the team. MS student Danae Mitkas worked on the project for two years, until she graduated and took a job at the FAA. A new Ph.D. student, Zhuoxuan Cao, has joined the team at UMD. At the Ohio State University, Professor Seth Young leads the team. MS student Hui Jeong Ha worked on the project for its first year, until her graduation. MS student Sandeep Venkatesh then joined the project at OSU, and continued until his graduation. Now, new Ph.D. student Aishwarya Bokil is taking up the reins at OSU.

Professor David LovellProfessor Seth YoungDanae MitkasSandeep VenkateshAishwarya BokilZhuoxuan Cao

Hardware setup

The core of the data collection hardware is a Raspberry Pi configured with a Software-Defined Radio (SDR) to decode ADS-B transmissions. We put two such devices at each subject airport, one for receiving and decoding the older 978 MHz UAT version of ADS-B, and one for receiving and decoding the newer 1090 Mhz Extended Squitter (ES) format. We keep track of core temperature and free disk space on the remote data collection units, and we have the ability to remotely ping them, reboot them, or tunnel into them via secure SSH.

These devices transmit their data to our AWS infrastructure in two ways:

  • The data are sent in real time to AWS using the MQTT messaging protocol. In this form, the data feed the real-time flight table and mapping application.
  • The data are sent on an hourly basis to our EC2 instance over secure SSH connections. These data are decoded and ingested into a Postgres database for long-term archival and data analysis purposes.


To date, we have active installations at the following airports:

We have development sites that occasionally produce data while new features are developed, but these are for testing purposes only. We have plans to expand to more airports with a wider variety of characteristics, but we have to do so at a pace and in a manner that observes necessary travel restrictions and protocols related to the Covid-19 outbreak.


We make use of two primary database services from AWS:

  • The primary database for permanent storage of our numerical data is a Postgres database that resides on our EC2 instance. This is fed with data files that are updated hourly from all of our locations. This database is queried for purposes of analysis. We are generating a QGIS user interface to show the results of queries in graphical format, such as mapping of aircraft locations and line and bar charts of important parameters over time.
  • We also use a DynamoDB database for temporary storage of the real-time data and related statistics to feed the flight list, mapping, and dashboard applications. This database is fed by AWS Lambda functions that response to incoming real-time data on the MQTT channels. The web server that drives these applications queries this database via the AWS API functionality.


There are quite a few different coding/scripting languages that are used for this project:

  • BASH scripts: On the Raspberry Pis and on the EC2 instance, we make extensive use of BASH scripts in the Linux environment to handle the primary background functions. Almost everything else that gets invoked does so as a result of one of these scripts.
  • C: On the Raspberry Pis, there are local real-time flight lists and a real-time LED counter that keep track of the current status of the tracking software. These functions are written in C. The software-defined radio code is also in C, as is the decoder for the 978 UAT data.
  • Python: On the Raspberry Pis, the decoder for the 1090ES data is written in Python. Also, the AWS MQTT communications library is invoked via a Python script. On the EC2 instance, the decoder and database ingester are written in Python, as are small snippets of code that periodically query the Postgres database to feed summary statistics to the dashboard web app. Some of the AWS Lamda functions that handle real-time message processing are also written in Python.
  • Node.JS: Some of the AWS Lambda functions are written in Node.JS.
  • Javascript: The flight list, mapping, and dashboard web apps all use Javascript to support particular features of the pages. So does this project page!

Flight Display

The project team, sponsors, and airport partners are able to view a dynamically updated list of all flights currently being tracked at all of the airport stations. This list can be sorted and/or filtered according to any of the data fields to allow the user to focus on any particular subset of the data.

Map Display

The project team, sponsors, and airport partners are able to view a dynamic mapping display that shows aircraft currently being tracked in real time. In addition to showing aircraft locations and headings graphically, there is a smaller version of the flight data table. There are also optional tables that show some system statistics, METAR weather reports at the nearest study airport, lat/long coordinates of the mouse cursor, and some individual device statistics. By clicking on an individual aircraft icon, or on a flight in the flight list, additional information pops up, including aircraft n-number, callsign, type, and engine type. Any of the n-numbers shown can be clicked to link through to the FAA registration page for that particular aircraft.


The team continues to present and publish results from the project. Here is a list of our papers and presentations to date: