π OpenAP
OpenAP is an open-source aircraft performance library that aims to support air transportation research and simulations. It provides aircraft performance models and relevant data, allowing users to calculate key flight parameters such as drag, thrust, and fuel consumption.
The library also enables users to estimate aircraft emissions, generate flight trajectories based on kinematic parameters, and identify different flight phases. With its modular Python code, OpenAP can be used for various applications, from basic performance calculations to complex trajectory optimization (with the openap.top
extension). The library combines both empirical data collected from literature, and parameters derived from open sources data. The model and associated Python library has been fairly widely used in academic research, flight simulation, and air traffic management studies.
OpenAP library has two parts: OpenAP model data and Python modules. The model data includes aircraft, engine, drag polar, kinematic, and navigation data. The Python modules provide functionalities for computing aircraft performance, emissions, and trajectories. The library is designed to be user-friendly, flexible, and extensible, allowing users to easily integrate it into their projects.
Chapters
The user guide for OpenAP is organized into the following chapters:
Data
Follow model datasets are all made public, under GPL open-source license:
- Aircraft data: Collected from open literature.
- Engines data: Primarily from the ICAO emission data bank, including fuel flow and emissions.
- Drag polar data: Exclusively derived from open data (reference).
- Kinematic data: Kinematic model (formally WRAP) describe speed, altitude, and vertical rate.
- Navigation data: Airport and waypoints obtained from X-plane.
Modules
OpenAP Python library includes the following modules, which support a variety of functionalities, including performance models, emission models, trajectory generation, and trajectory optimization:
prop
: module for accessing aircraft and engine datathrust
: module for computing aircraft maximum thrustdrag
: module for computing aircraft dragfuel
: module for computing fuel flowemission
: module for computing aircraft emissionskinematic
: module for accessing kinematic dataaero
: module for common aeronautical conversionsnav
: module for accessing navigation informationphase
: module for determining climb, cruise, descent, level flighttraj
: module for generating trajectories based on the kinematic model
Other modules that can be installed separately:
top
: a package for generating optimal trajectories (see Trajectory Optimization chapter)
Install
Install the stable release from pypi:
pip install --upgrade openap
Or, you can also install the latest development version from GitHub:
pip install --upgrade git+https://github.com/junzis/openap
Using OpenAP
Most of the functionalities (except aircraft and engine properties) in OpenAP are provided as Python classes. You can import these as follows:
from openap.prop import aircraft, engine
from openap.drag import Drag
from openap.thrust import Thrust
from openap.kinematic import WRAP
from openap.phase import FlightPhase
from openap.gen import FlightGenerator
from openap.fuel import FuelFlow
from openap.emission import Emission
# when opeap-top is installed
from openap.top import CompleteFlight, Climb, Cruise, Descent, MultiPhase
You can also import these Classes directly from the openap
package as:
from openap import (
Drag,
Thrust,
WRAP,
FlightPhase,
FlightGenerator,
FuelFlow,
Emission, )
Contribute
If you encounter any issues, please file a bug report on the GitHub issue tracker. You are even more welcomed to contribute to the project by submitting a pull request.
Book and Paper
The OpenAP is the one outcome of my PhD research work (2015-2019). The Python library was first published in the following paper: Sun (2022)
To cite the paper:
@article{sun2020openap,
title = {OpenAP: An open-source aircraft performance model for air transportation studies and simulations},
author = {Sun, Junzi and Hoekstra, Jacco and Ellerbroek, Joost},
journal = {Aerospace},
volume = {7},
number = {8},
pages = {104},
year = {2020},
month = jul,
publisher = {Multidisciplinary Digital Publishing Institute},
link = {https://doi.org/10.3390/aerospace7080104},
doi = {10.3390/aerospace7080104}, }
The libaray has evolved significantly since the paperβs publication. Key improvements include:
- Updated aircraft and engine data
- More accuracte fuel flow and emissions models
- Symbolic implementation for optimization with CasADi