https://github.com/junzis/flight-data-processor
Flight data clustering and flight phase identification
https://github.com/junzis/flight-data-processor
fuzzy-logic machine-learning
Last synced: 3 months ago
JSON representation
Flight data clustering and flight phase identification
- Host: GitHub
- URL: https://github.com/junzis/flight-data-processor
- Owner: junzis
- Created: 2016-02-20T11:23:27.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-07-23T21:43:28.000Z (almost 5 years ago)
- Last Synced: 2025-03-01T09:51:23.528Z (3 months ago)
- Topics: fuzzy-logic, machine-learning
- Language: Python
- Homepage:
- Size: 4.14 MB
- Stars: 54
- Watchers: 8
- Forks: 18
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
```bash
$ 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:```bash
$ python test_phases.py
```The essential code to identify the flight phases is:
```python
import flightphase
flightphase.fuzzylabels(times, alts, spds, rocs)
```## 3. View flights
Use the same previously created MongoDB collection:
```bash
$ python flightview.py --db test_db --coll flights
```## Screen shots
### example flight phase identification
### example fuzzy logic membership functions
### example flight viewer
