Open Aircraft Performance Model (OpenAP) in Python
Project description
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openap1-1.0.dev1.tar.gz.
File metadata
- Download URL: openap1-1.0.dev1.tar.gz
- Upload date:
- Size: 2.6 MB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3779967da1e9ec13b2241d1bfb5792f0fb424e76d6be88fd447b5b393217c806
|
|
| MD5 |
9d13cfbffc7e5dcd7407bbd26a3bcfbd
|
|
| BLAKE2b-256 |
f3475a91669e726d477722dbd1305adc91ce897dec90f8b09820c21b15354bf2
|
File details
Details for the file openap1-1.0.dev1-py2.py3-none-any.whl.
File metadata
- Download URL: openap1-1.0.dev1-py2.py3-none-any.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 2, Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acd819673f4329d33ed148d412929f19a8f4c334504eaeb3b91162e74c067f29
|
|
| MD5 |
db1e070c8af62d5f682e41a824de1533
|
|
| BLAKE2b-256 |
911d8bce4ed97cd9bb88bf28fd538a1dc5d8a1f5c3d6630949bd30fd4146fcad
|