Skip to main content

Open Aircraft Performance Model (OpenAP) in Python

Project description

OpenAP: Open Aircraft Performance Model and Toolkit

This repository contains the OpenAP model data and Python packages for aircraft performance and emission calculations.

🕮 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

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.

Examples:

import openap

openap.prop.aircraft("A320")
fuelflow = openap.FuelFlow("A320")
fuelflow.enroute(mass, tas, alt) # -> kg/s

The input parameters can be scalar, list, or ndarray. Most of the OpenAP methods' parameters are in aeronautical units, such as knots, feet, feet/min. The mass is always in SI units, i.e., kilograms.

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().

Symbolic Implementation for CasADi

The OpenAP model can also be used with the CasADi library for symbolic computations. The symbolic model is available in the openap.casadi package. For example, you can use the following code to create a symbolic model for fuel flow:

from openap.casadi import FuelFlow

fuelflow = FuelFlow()

All the methods of openap.casadi.FuelFlow() are the same as those of openap.FuelFlow(), and they are now symbolic functions that can be used to compute fuel flow for given flight conditions in CasADi DM, SX, or MX types.

How did we implement this? When the casadi module is initiated, a metaclass is used to replace the sci function from numpy, which overrides all the numpy functions with casadi functions. For more details, check the openap/casadi/__init__.py code.

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}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openap-2.4.tar.gz (9.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openap-2.4-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

Details for the file openap-2.4.tar.gz.

File metadata

  • Download URL: openap-2.4.tar.gz
  • Upload date:
  • Size: 9.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for openap-2.4.tar.gz
Algorithm Hash digest
SHA256 a07b05316dd646bc8e7a1298c47941439f8d40f8bd1e87ce174fcf308406d3aa
MD5 f6390d118ae27ffe6cff5a14ab8d3c06
BLAKE2b-256 f9908e32c7ae454f1ced6a96590064b2c2e88bfc75e171a80beb82b8905b6e36

See more details on using hashes here.

File details

Details for the file openap-2.4-py3-none-any.whl.

File metadata

  • Download URL: openap-2.4-py3-none-any.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for openap-2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 33c8d1366c7b1fd9b6d13aff8c21f81b1f780f7f5917b2026f2d6b4e8b0bf260
MD5 1e9da1360de9c6d25ff5d1fde0d58934
BLAKE2b-256 bf3ce44ba37ec362e9bbe13ba5aa17b625a0ff955272e8b7e83e826ee7b10fa5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page