OpenAP: Open Aircraft Performance Model and Toolkit
Open-source aircraft performance model and toolkit for Python. Calculate aircraft performance, fuel consumption, and emissions for air transportation studies and simulations.
Requirements: Python 3.11+
🕮 User Guide
The OpenAP handbook is available at openap.dev.
Installation
Install the latest stable release from PyPI:
Install the development branch from GitHub (may not be stable):
Content
Model Data
Data in this repository includes:
Aircraft data: Collected from open literature.
Engine data: Primarily from the ICAO emission data-bank, including fuel flow and emissions.
Drag polar model data: Exclusively derived from open data (reference).
Fuel model data: Polynomial models derived from the acropole model by @JarryGabriel.
Kinematic data: The kinematic model describes speed, altitude, and vertical rate (reference).
Navigation data: Airport and waypoints obtained from X-Plane.
Python Packages
The OpenAP Python library includes the following packages:
prop: Module for accessing aircraft and engine properties.aero: Module for common aeronautical conversions.nav: Module for accessing navigation information.thrust: Module providesThrust()class for computing aircraft thrust.drag: Module providesDrag()class for computing aircraft drag.fuel: Module providesFuelFlow()class for computing fuel consumption.emission: Module providesEmission()class for computing aircraft emissions.kinematic: Module providesWRAP()class for accessing kinematic performance data.phase: Module providesFlightPhase()class for determining flight phases.gen: Module providesFlightGenerator()class for trajectory generation.
Example:
Units: Input parameters can be scalar, list, or ndarray. Speeds are in knots, altitudes in feet, vertical rates in feet/min. Mass is in kilograms (SI).
Add-ons
The OpenAP library can also be used to interact with BADA performance models if you have access to the BADA data from EUROCONTROL. You can use the following code:
The methods and attributes of openap.addon.bada4.FuelFlow() are the same as those of openap.FuelFlow().
Alternative Backends: CasADi and JAX
OpenAP supports multiple computational backends beyond NumPy:
CasADi: For symbolic computations and optimization
JAX: For automatic differentiation and GPU acceleration
Installation
Install with optional backend support:
Usage
The API is identical to the standard openap module. The backends are implemented using a protocol-based architecture in openap/backends/.