Skip to content

junzis/flight-data-processor

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
May 28, 2018 12:12
June 19, 2020 21:53
July 23, 2020 23:43
June 19, 2020 21:53
June 19, 2020 21:53

Flight Data Processor

This is a python library to process and analyze flight data (e.g. from decoded ADS-B messages). Following functions and algorithms are implemented:

  • Extract continuous full or partial flight path data
    • Unsupervised Machine Learning, Clustering using DBSCAN
  • Smoothing, filtering, and interpolating flight data
    • Spline filtering
    • Weighted average filtering
    • Time-based weighted average filtering
  • Segmenting flight into different phases:
    • using Fuzzy Logic with data interpolation methods
    • supporting phases: ground, climb, descend, cruise, and level flight

Paper and citation

The source code of this repository complements the following publication:

https://arc.aiaa.org/doi/10.2514/1.I010520

If you use the code for your research, please cite:

@article{sun2017flight,
  title={Flight Extraction and Phase Identification for Large Automatic Dependent Surveillance--Broadcast Datasets},
  author={Sun, Junzi and Ellerbroek, Joost and Hoekstra, Jacco},
  journal={Journal of Aerospace Information Systems},
  pages={1--6},
  year={2017},
  publisher={American Institute of Aeronautics and Astronautics}
}

Required software

  • Python 3.x
  • MongoDB 3
  • Dependent Python libraries
    • scipy
    • scikit-learn
    • skfuzzy
    • pymongo

Code examples

1. Flight clustering

  1. install MongoDB

  2. extract flight from ADS-B positions

    $ python flightextract.py --csv data/sample_adsb_decoded.csv --db test_db --coll flights

2. Fuzzy segmentation

You can use previously created collection in MongoDB. Or, using provided pickled data, run:

$ python test_phases.py

The essential code to identify the flight phases is:

import flightphase
flightphase.fuzzylabels(times, alts, spds, rocs)

3. View flights

Use the same previously created MongoDB collection:

$ python flightview.py --db test_db --coll flights

Screen shots

example flight phase identification

flight phases

example fuzzy logic membership functions

fuzzy logic membership

example flight viewer

flight viewer

About

Flight data clustering and flight phase identification

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages