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.
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.
Locations
To date, we have collected data with active installations at the following airports:
Solberg Airport in Whitehouse Station, NJ (KN51)
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.
Database
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.
Coding
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.
Dissemination
The team continues to present and publish results from the project. Here is a list of our papers and presentations to date:
- Mitkas, Danae Z. and David J. Lovell (2020). A Data Collection Scheme to Support Applications for Capacity Enhancements at Small Airports. 9th International Conference for Research in Air Transportation (ICRAT) 2020.
- Ha, Hui J. and Seth B. Young (2020). Classification of Runway Configurations for Capacity Analysis of Airports Serving Small Aircraft. 9th International Conference for Research in Air Transportation (ICRAT) 2020.
- Mitkas, Danae Z., David J. Lovell, and Seth B. Young (2020). Learning to recognize and stratify flight training activities at GA airports using ADS-B data. 8th OpenSky Symposium.
- Mitkas, Danae Z., David J. Lovell, Sandeep Venkatesh, and Seth B. Young (2021). Leveraging local ADS-B transmissions to assess the performance of air traffic at general aviation airports. 14th USA/Europe Air Traffic Management Seminar (ATM) 2021.
- Aishwarya Bokil and Seth B. Young (2022). Development of QGIS tools to aid in airport operations modeling using ADS-B data. 10th International Conference for Research in Air Transportation (ICRAT) 2022.
- Zhuoxuan Cao and David J. Lovell (2022). Identifying Aviation Operation Types Using Flight Trajectories. 10th International Conference for Research in Air Transportation (ICRAT) 2022.
- Danae Z. Mitkas, David J. Lovell, Seth B. Young, and Sandeep Venkatesh (2022). Developing Capacity Estimation Metrics for Airports Accommodating Smaller Aircraft Using Locally Collected Automated Dependent Surveillance-Broadcast Data. Transportation Research Record 2676, pp. 285–295.
- Zhuoxuan Cao, David J. Lovell, Aishwarya Bokil, and Seth B. Young (2023). Debuffering Timestamped ADS-B Records for Kinematic Applications. 15th USA/Europe Air Traffic Management Seminar (ATM) 2023.