Pre-release
This release is a pre-release and may not be stable for production use.
Open Aircraft Performance Model (OpenAP) Toolkit
This repository contains all OpenAP databases and a Python implementation which facilitates the data access and aircraft performance computation.
Download the related research paper
Databases:
- Aircraft
- Engines
- Drag polar
- Kinematic (WRAP)
- Navigation
Install
To install latest version from the GitHub:
pip install git+https://github.com/junzis/openap
Libraries
prop: aircraft and engine propertiesthrust: model to compute aircraft thrustdrag: model to compute aircraft dragfuel: model to compute fuel consumptionkinematic: a utility library to access WRAP dataaero: common aeronautical conversionsnav: model to access navigation informationsegment: a utility library to determine climb, cruise, descent, level flightphase: a wrapper aroundsegment, providing identification of all flight phasestraj: package contains a set of tools related with trajectory generation
Examples
Get the aircraft and engine data:
from openap import prop
aircraft = prop.aircraft('A320')
engine = prop.engine('CFM56-5B4')
Compute maximum aircraft engine thrust:
from openap import Thrust
thrust = Thrust(ac='A320', eng='CFM56-5B4')
T = thrust.takeoff(tas=100, alt=0)
T = thrust.climb(tas=200, alt=20000, roc=1000)
T = thrust.cruise(tas=230, alt=32000)
Compute the aircraft drag:
from openap import Drag
drag = Drag(ac='A320')
D = drag.clean(mass=60000, tas=200, alt=20000, path_angle=5)
D = drag.nonclean(mass=60000, tas=150, alt=100, flap_angle=20,
path_angle=10, landing_gear=True)
Compute the fuel flow:
from openap import FuelFlow
ff = FuelFlow(ac='A320', eng='CFM56-5B4')
FF = ff.at_thrust(thr=50000, alt=30000)
FF = ff.takeoff(tas=100, alt=0, throttle=1)
FF = ff.enroute(mass=60000, tas=200, alt=20000, path_angle=3)
FF = ff.enroute(mass=60000, tas=230, alt=32000, path_angle=0)
Accessing the WRAP parameters:
from openap import WRAP
wrap = WRAP(ac='A320')
param = wrap.takeoff_speed()
param = wrap.takeoff_distance()
param = wrap.takeoff_acceleration()
param = wrap.initclimb_vcas()
param = wrap.initclimb_vs()
param = wrap.climb_range()
param = wrap.climb_const_vcas()
param = wrap.climb_const_mach()
param = wrap.climb_cross_alt_concas()
param = wrap.climb_cross_alt_conmach()
param = wrap.climb_vs_pre_concas()
param = wrap.climb_vs_concas()
param = wrap.climb_vs_conmach()
param = wrap.cruise_range()
param = wrap.cruise_alt()
param = wrap.cruise_init_alt()
param = wrap.cruise_mach()
param = wrap.descent_range()
param = wrap.descent_const_mach()
param = wrap.descent_const_vcas()
param = wrap.descent_cross_alt_conmach()
param = wrap.descent_cross_alt_concas()
param = wrap.descent_vs_conmach()
param = wrap.descent_vs_concas()
param = wrap.descent_vs_post_concas()
param = wrap.finalapp_vcas()
param = wrap.finalapp_vs()
param = wrap.landing_speed()
param = wrap.landing_distance()
param = wrap.landing_acceleration()
Generating trajectories
from openap.traj import Generator
trajgen = Generator(ac='a320')
trajgen.enable_noise() # enable Gaussian noise in trajectory data
data_cl = trajgen.climb(dt=10, random=True) # using radom paramerters
data_cl = trajgen.climb(dt=10, cas_const_cl=280, mach_const_cl=0.78, alt_cr=35000)
data_de = trajgen.descent(dt=10, random=True)
data_de = trajgen.descent(dt=10, cas_const_de=280, mach_const_de=0.78, alt_cr=35000)
data_cr = trajgen.cruise(dt=60, random=True)
data_cr = trajgen.cruise(dt=60, range_cr=2000, alt_cr=35000, m_cr=0.78)
data_all = trajgen.complete(dt=10, random=True)
data_all = trajgen.complete(dt=10, alt_cr=35000, m_cr=0.78,
cas_const_cl=280, mach_const_cl=0.78,
cas_const_de=280, mach_const_de=0.78)
Release files for openap1 1.0.dev1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openap1-1.0.dev1.tar.gz | 2.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openap1-1.0.dev1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 5.3 MB
Release files / openap1-1.0.dev1.tar.gz
| Download URL | openap1-1.0.dev1.tar.gz |
|---|---|
| Size | 2.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3779967da1e9ec13b2241d1bfb5792f0fb424e76d6be88fd447b5b393217c806
|
|
BLAKE2b-256 checksum How to use checksums |
f3475a91669e726d477722dbd1305adc91ce897dec90f8b09820c21b15354bf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3
|
Release files / openap1-1.0.dev1-py2.py3-none-any.whl
| Download URL | openap1-1.0.dev1-py2.py3-none-any.whl |
|---|---|
| Size | 2.7 MB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
acd819673f4329d33ed148d412929f19a8f4c334504eaeb3b91162e74c067f29
|
|
BLAKE2b-256 checksum How to use checksums |
911d8bce4ed97cd9bb88bf28fd538a1dc5d8a1f5c3d6630949bd30fd4146fcad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3
|