Skip to main content

OpenAP: Open Aircraft Performance Model and Toolkit

PyPI version PyPI - Python Version License: LGPL v3

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:

pip install --upgrade openap

Install the development branch from GitHub (may not be stable):

pip install --upgrade git+https://github.com/junzis/openap

Plotting is optional. Install the plotting dependencies when needed:

pip install "openap[plot]"

Aircraft models, flight-phase identification, filtering, and statistical fitting work without Matplotlib. Plotting functions load Matplotlib only when called. The openap[all] extra includes plotting and both optional backends.

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 provides Thrust() class for computing aircraft thrust.
  • drag: Module provides Drag() class for computing aircraft drag.
  • fuel: Module provides FuelFlow() class for computing fuel consumption.
  • emission: Module provides Emission() class for computing aircraft emissions.
  • kinematic: Module provides WRAP() class for accessing kinematic performance data.
  • phase: Module provides FlightPhase() class for determining flight phases.
  • gen: Module provides FlightGenerator() class for trajectory generation.

Example:

import openap

# Get aircraft properties
aircraft = openap.prop.aircraft("A320")
print(aircraft["mtow"])  # max takeoff weight: 78000 (kg)

# Calculate fuel flow during cruise
fuelflow = openap.FuelFlow("A320")
ff = fuelflow.enroute(mass=60000, tas=250, alt=30000)
print(ff)  # fuel flow: 0.92 (kg/s)

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:

from openap.addon import bada4

fuelflow = bada4.FuelFlow()

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:

pip install openap[casadi]  # CasADi backend
pip install openap[jax]     # JAX backend
pip install openap[all]     # Both backends and plotting

Usage

# CasADi backend
import openap.casadi as oc

fuelflow = oc.FuelFlow("A320")
fuelflow.enroute(mass, tas, alt)  # works with CasADi DM, SX, or MX types

# JAX backend
import openap.jax as oj

fuelflow = oj.FuelFlow("A320")
fuelflow.enroute(mass, tas, alt)  # works with JAX arrays

The API is identical to the standard openap module. The backends are implemented using a protocol-based architecture in openap/backends/.

Citing OpenAP

@article{sun2020openap,
  title={OpenAP: An open-source aircraft performance model for air transportation studies and simulations},
  author={Sun, Junzi and Hoekstra, Jacco M and Ellerbroek, Joost},
  journal={Aerospace},
  volume={7},
  number={8},
  pages={104},
  year={2020},
  publisher={Multidisciplinary Digital Publishing Institute}
}

Metadata

Release files for openap 2.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openap 2.6.1
File Size Uploaded
openap-2.6.1.tar.gz 10.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for openap 2.6.1
File Interpreter ABI Platform
openap-2.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 MB

Release files / openap-2.6.1.tar.gz

Download URL openap-2.6.1.tar.gz
Size 10.1 MB
Tags Source
SHA-256 checksum
How to use checksums
c861704a0f487ccdf3dcafb9244e6977971bead3f1aab8aded03e8697eb93d36
BLAKE2b-256 checksum
How to use checksums
c154c96e28751e5aade0af4e7f51e7cd7d6acb06a05c1061715d71d92481e0cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / openap-2.6.1-py3-none-any.whl

Download URL openap-2.6.1-py3-none-any.whl
Size 2.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
969222ed90f6f50928376ef4b36ed1052f8ecbca4d7b6cb0a74a087d8aba66d1
BLAKE2b-256 checksum
How to use checksums
8f03297230e5a126d889aea49b6cec8f6605c1f201909f7f8e95bd7e56a7656e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

2.6.2

2 release files

This release

2.6.1 This release

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4

2 release files

2.3

2 release files

2.2

2 release files

2.1

2 release files

2.0

2 release files

1.5

2 release files

1.4

2 release files

1.3

2 release files

1.2

3 release files

1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page