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](https://www.researchgate.net/publication/332013573_OpenAP_The_open-source_aircraft_performance_model_and_associated_toolkit)
Databases:
---------
- Aircraft
- Engines
- Drag polar
- Kinematic ([WRAP](https://github.com/junzis/wrap))
- Navigation
Libraries
---------
- `prop`: aircraft and engine properties
- `thrust`: model to compute aircraft thrust
- `drag`: model to compute aircraft drag
- `fuel`: model to compute fuel consumption
- `kinematic`: a utility library to access WRAP data
- `aero`: common aeronautical conversions
- `nav`: model to access navigation information
- `segment`: a utility library to determine climb, cruise, descent, level flight
- `phase`: a wrapper around `segment`, providing identification of all flight phases
- `traj`: package contains a set of tools related with trajectory generation
Examples
--------
Get the aircraft and engine data:
```python
from openap import prop
aircraft = prop.aircraft('A320')
engine = prop.engine('CFM56-5B4')
```
Compute maximum aircraft engine thrust:
```python
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:
```python
from openap import Drag
drag = Drag(ac='A320')
D = drag.clean(mass=60000, tas=200, alt=20000, path_angle=5)
D = drag.initclimb(mass=60000, tas=150, alt=1000, path_angle=10)
D = drag.approach(mass=50000, tas=150, alt=1000, path_angle=-10)
```
Compute the fuel flow:
```python
from openap import FuelFlow
ff = FuelFlow(ac='A320', eng='CFM56-5B4')
FF = ff.at_thrust(thr=50000)
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:
```python
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()
```
========================================================================
This repository contains all OpenAP databases and a Python implementation which facilitates the data access and aircraft performance computation.
[Download the related research paper](https://www.researchgate.net/publication/332013573_OpenAP_The_open-source_aircraft_performance_model_and_associated_toolkit)
Databases:
---------
- Aircraft
- Engines
- Drag polar
- Kinematic ([WRAP](https://github.com/junzis/wrap))
- Navigation
Libraries
---------
- `prop`: aircraft and engine properties
- `thrust`: model to compute aircraft thrust
- `drag`: model to compute aircraft drag
- `fuel`: model to compute fuel consumption
- `kinematic`: a utility library to access WRAP data
- `aero`: common aeronautical conversions
- `nav`: model to access navigation information
- `segment`: a utility library to determine climb, cruise, descent, level flight
- `phase`: a wrapper around `segment`, providing identification of all flight phases
- `traj`: package contains a set of tools related with trajectory generation
Examples
--------
Get the aircraft and engine data:
```python
from openap import prop
aircraft = prop.aircraft('A320')
engine = prop.engine('CFM56-5B4')
```
Compute maximum aircraft engine thrust:
```python
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:
```python
from openap import Drag
drag = Drag(ac='A320')
D = drag.clean(mass=60000, tas=200, alt=20000, path_angle=5)
D = drag.initclimb(mass=60000, tas=150, alt=1000, path_angle=10)
D = drag.approach(mass=50000, tas=150, alt=1000, path_angle=-10)
```
Compute the fuel flow:
```python
from openap import FuelFlow
ff = FuelFlow(ac='A320', eng='CFM56-5B4')
FF = ff.at_thrust(thr=50000)
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:
```python
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()
```
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
openap-1.0.dev1.tar.gz
(2.6 MB
view hashes)
Built Distribution
Close
Hashes for openap-1.0.dev1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44db43611b31caee738275fcdeff9c14a2582646e44b51381c916fcf5e93c9db |
|
MD5 | b4ce5745b0b36580a5ce22e98fda1c7a |
|
BLAKE2b-256 | b2108af97751139b68219826687a052586e05b4976f83e1d32ce2991befad87f |