├── .github └── workflows │ └── build-publish.yml ├── .gitignore ├── LICENSE ├── README.md ├── examples ├── data │ ├── flight_a319_opensky.csv │ └── flight_a320_qar.csv ├── example_fuel_emission_opensky_data.ipynb └── example_fuel_qar_data.ipynb ├── openap ├── __init__.py ├── addon │ ├── __init__.py │ └── bada4.py ├── base.py ├── casadi │ ├── __init__.py │ ├── aero_override.py │ └── numpy_override.py ├── contrail.py ├── data │ ├── .gitignore │ ├── LICENSE │ ├── aircraft │ │ ├── _synonym.csv │ │ ├── a19n.yml │ │ ├── a20n.yml │ │ ├── a21n.yml │ │ ├── a318.yml │ │ ├── a319.yml │ │ ├── a320.yml │ │ ├── a321.yml │ │ ├── a332.yml │ │ ├── a333.yml │ │ ├── a343.yml │ │ ├── a359.yml │ │ ├── a388.yml │ │ ├── b37m.yml │ │ ├── b38m.yml │ │ ├── b39m.yml │ │ ├── b3xm.yml │ │ ├── b734.yml │ │ ├── b737.yml │ │ ├── b738.yml │ │ ├── b739.yml │ │ ├── b744.yml │ │ ├── b748.yml │ │ ├── b752.yml │ │ ├── b763.yml │ │ ├── b772.yml │ │ ├── b773.yml │ │ ├── b77w.yml │ │ ├── b788.yml │ │ ├── b789.yml │ │ ├── c550.yml │ │ ├── e145.yml │ │ ├── e170.yml │ │ ├── e190.yml │ │ ├── e195.yml │ │ ├── e75l.yml │ │ └── glf6.yml │ ├── dragpolar │ │ ├── _synonym.csv │ │ ├── a20n.yml │ │ ├── a319.yml │ │ ├── a320.yml │ │ ├── a321.yml │ │ ├── a332.yml │ │ ├── a333.yml │ │ ├── a343.yml │ │ ├── a359.yml │ │ ├── a388.yml │ │ ├── b38m.yml │ │ ├── b734.yml │ │ ├── b737.yml │ │ ├── b738.yml │ │ ├── b739.yml │ │ ├── b744.yml │ │ ├── b748.yml │ │ ├── b752.yml │ │ ├── b772.yml │ │ ├── b77w.yml │ │ ├── b788.yml │ │ ├── b789.yml │ │ ├── c550.yml │ │ ├── e190.yml │ │ ├── e195.yml │ │ ├── e75l.yml │ │ └── glf6.yml │ ├── engine │ │ └── engines.csv │ ├── fuel │ │ └── fuel_models.csv │ ├── nav │ │ ├── airports.csv │ │ ├── fix.dat │ │ └── nav.dat │ └── wrap │ │ ├── _synonym.csv │ │ ├── a319.txt │ │ ├── a320.txt │ │ ├── a321.txt │ │ ├── a332.txt │ │ ├── a333.txt │ │ ├── a343.txt │ │ ├── a388.txt │ │ ├── b737.txt │ │ ├── b738.txt │ │ ├── b739.txt │ │ ├── b744.txt │ │ ├── b752.txt │ │ ├── b763.txt │ │ ├── b77w.txt │ │ ├── b788.txt │ │ ├── b789.txt │ │ └── e190.txt ├── drag.py ├── emission.py ├── extra │ ├── __init__.py │ ├── aero.py │ ├── filters.py │ ├── fuzzy.py │ ├── nav.py │ └── statistics.py ├── fuel.py ├── gen.py ├── kinematic.py ├── mass.py ├── phase.py ├── prop.py └── thrust.py ├── pyproject.toml ├── scripts ├── README.md ├── acropole_aircraft_params.csv ├── build_fuel_model.py ├── db │ ├── airports.csv │ ├── emission.csv │ └── engines.csv ├── engine2.py ├── extract.py ├── fuel_flow_correction_factor.py ├── gen_airport_database.py ├── gen_engine_cruise_perf.py ├── gen_engine_data_v27.py ├── input │ ├── civtfspec.csv │ ├── civtfspec.xls │ ├── edb-emissions-databank v23 (web).xlsx │ ├── edb-emissions-databank v25a (web).xlsx │ ├── edb-emissions-databank v27 (web).xlsx │ ├── edb-emissions-databank v28B (web).xlsx │ ├── engine_cruise_performance.csv │ └── wrap │ │ ├── a319.csv │ │ ├── a320.csv │ │ ├── a321.csv │ │ ├── a332.csv │ │ ├── a333.csv │ │ ├── a343.csv │ │ ├── a388.csv │ │ ├── b737.csv │ │ ├── b738.csv │ │ ├── b739.csv │ │ ├── b744.csv │ │ ├── b752.csv │ │ ├── b763.csv │ │ ├── b77w.csv │ │ ├── b788.csv │ │ ├── b789.csv │ │ └── e190.csv ├── inspect_engine_ff_emission.py ├── plot_fuel_model.py ├── test_acropole.py └── wrap_csv_to_fwf.py ├── test ├── data │ ├── flight_phase_test.csv │ └── flight_phlab.csv ├── flights │ └── C550 │ │ ├── phlab_20170320_08.csv │ │ ├── phlab_20170320_10.csv │ │ ├── phlab_20170320_12.csv │ │ └── phlab_20170320_14.csv ├── test_actypes.py ├── test_bada.py ├── test_drag.py ├── test_emission.py ├── test_fuel.py ├── test_kinematic.py ├── test_nav.py ├── test_phase.py ├── test_prop.py ├── test_thrust.py └── test_trajectory.py └── uv.lock /.github/workflows/build-publish.yml: -------------------------------------------------------------------------------- 1 | name: build and publish 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | workflow_dispatch: 8 | 9 | jobs: 10 | deploy: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | 15 | - name: Install uv 16 | uses: astral-sh/setup-uv@v3 17 | with: 18 | enable-cache: true 19 | 20 | - name: Set up Python 21 | uses: actions/setup-python@v5 22 | with: 23 | python-version: "3.11" 24 | 25 | - name: Build packages 26 | run: | 27 | uvx --with hatch-vcs hatchling build 28 | 29 | - name: Publish a Python distribution to PyPI 30 | uses: pypa/gh-action-pypi-publish@release/v1 31 | with: 32 | user: __token__ 33 | password: ${{ secrets.PYPI_API_TOKEN_OPENAP }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | tmp 2 | 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | *.py[cod] 6 | *$py.class 7 | 8 | .pytest_cache 9 | 10 | # C extensions 11 | *.so 12 | 13 | # Distribution / packaging 14 | .Python 15 | env/ 16 | build/ 17 | develop-eggs/ 18 | dist/ 19 | downloads/ 20 | eggs/ 21 | .eggs/ 22 | lib/ 23 | lib64/ 24 | parts/ 25 | sdist/ 26 | var/ 27 | *.egg-info/ 28 | .installed.cfg 29 | *.egg 30 | 31 | # PyInstaller 32 | # Usually these files are written by a python script from a template 33 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 34 | *.manifest 35 | *.spec 36 | 37 | # Installer logs 38 | pip-log.txt 39 | pip-delete-this-directory.txt 40 | 41 | # Unit test / coverage reports 42 | htmlcov/ 43 | .tox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *,cover 50 | .hypothesis/ 51 | 52 | # Translations 53 | *.mo 54 | *.pot 55 | 56 | # Django stuff: 57 | *.log 58 | local_settings.py 59 | 60 | # Flask stuff: 61 | instance/ 62 | .webassets-cache 63 | 64 | # Scrapy stuff: 65 | .scrapy 66 | 67 | # Sphinx documentation 68 | docs/_build/ 69 | 70 | # PyBuilder 71 | target/ 72 | 73 | # IPython Notebook 74 | .ipynb_checkpoints 75 | 76 | # pyenv 77 | .python-version 78 | 79 | # celery beat schedule file 80 | celerybeat-schedule 81 | 82 | # dotenv 83 | .env 84 | 85 | # virtualenv 86 | venv/ 87 | ENV/ 88 | 89 | # Spyder project settings 90 | .spyderproject 91 | 92 | # Rope project settings 93 | .ropeproject 94 | 95 | 96 | #vs code 97 | .vscode -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OpenAP: Open Aircraft Performance Model and Toolkit 2 | 3 | This repository contains the OpenAP model data and Python packages for aircraft performance and emission calculations. 4 | 5 | ## 🕮 User Guide 6 | 7 | The OpenAP handbook is available at [openap.dev](https://openap.dev/). 8 | 9 | ## Installation 10 | 11 | Install the latest stable release from PyPI: 12 | 13 | ```sh 14 | pip install --upgrade openap 15 | ``` 16 | 17 | Install the development branch from GitHub (may not be stable): 18 | 19 | ```sh 20 | pip install --upgrade git+https://github.com/junzis/openap 21 | ``` 22 | 23 | ## Content 24 | 25 | ### Model Data 26 | 27 | Data in this repository includes: 28 | 29 | - Aircraft data: Collected from open literature. 30 | - Engine data: Primarily from the ICAO emission data-bank, including fuel flow and emissions. 31 | - Drag polar model data: Exclusively derived from open data ([reference](https://research.tudelft.nl/files/71038050/published_OpenAP_drag_polar.pdf)). 32 | - Fuel model data: Polynomial models derived from the [acropole model](https://github.com/DGAC/Acropole) by [@JarryGabriel](https://github.com/JarryGabriel). 33 | - Kinematic data: The kinematic model describes speed, altitude, and vertical rate ([reference](https://github.com/junzis/wrap)). 34 | - Navigation data: Airport and waypoints obtained from [X-Plane](https://developer.x-plane.com/docs/data-development-documentation/). 35 | 36 | ### Python Packages 37 | 38 | The OpenAP Python library includes the following packages: 39 | 40 | - `prop`: Module for accessing aircraft and engine properties. 41 | - `aero`: Module for common aeronautical conversions. 42 | - `nav`: Module for accessing navigation information. 43 | - `thrust`: Module provides `Thrust()` class for computing aircraft thrust. 44 | - `drag`: Module provides `Drag()` class for computing aircraft drag. 45 | - `fuel`: Module provides `FuelFlow()` class for computing fuel consumption. 46 | - `emission`: Module provides `Emission()` class for computing aircraft emissions. 47 | - `kinematic`: Module provides `WRAP()` class for accessing kinematic performance data. 48 | - `phase`: Module provides `FlightPhase()` class for determining flight phases. 49 | - `gen`: Module provides `FlightGenerator()` class for trajectory generation. 50 | 51 | Examples: 52 | 53 | ```python 54 | import openap 55 | 56 | openap.prop.aircraft("A320") 57 | fuelflow = openap.FuelFlow("A320") 58 | fuelflow.enroute(mass, tas, alt) # -> kg/s 59 | ``` 60 | 61 | 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. 62 | 63 | ### Add-ons 64 | 65 | 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: 66 | 67 | ```python 68 | from openap.addon import bada4 69 | 70 | fuelflow = bada4.FuelFlow() 71 | ``` 72 | 73 | The methods and attributes of `openap.addon.bada4.FuelFlow()` are the same as those of `openap.FuelFlow()`. 74 | 75 | ## Symbolic Implementation for CasADi 76 | 77 | 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: 78 | 79 | ```python 80 | from openap.casadi import FuelFlow 81 | 82 | fuelflow = FuelFlow() 83 | ``` 84 | 85 | 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. 86 | 87 | 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. 88 | 89 | ## Citing OpenAP 90 | 91 | ``` 92 | @article{sun2020openap, 93 | title={OpenAP: An open-source aircraft performance model for air transportation studies and simulations}, 94 | author={Sun, Junzi and Hoekstra, Jacco M and Ellerbroek, Joost}, 95 | journal={Aerospace}, 96 | volume={7}, 97 | number={8}, 98 | pages={104}, 99 | year={2020}, 100 | publisher={Multidisciplinary Digital Publishing Institute} 101 | } 102 | ``` 103 | -------------------------------------------------------------------------------- /openap/__init__.py: -------------------------------------------------------------------------------- 1 | from .drag import Drag 2 | from .emission import Emission 3 | from .extra import aero, filters, nav, statistics 4 | from .fuel import FuelFlow 5 | from .gen import FlightGenerator 6 | from .kinematic import WRAP 7 | from .phase import FlightPhase 8 | from .thrust import Thrust 9 | -------------------------------------------------------------------------------- /openap/addon/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/openap/addon/__init__.py -------------------------------------------------------------------------------- /openap/base.py: -------------------------------------------------------------------------------- 1 | import importlib 2 | 3 | from openap.extra import ndarrayconvert 4 | 5 | 6 | class DragBase(object): 7 | """Base class for drag models.""" 8 | 9 | def __init__(self, ac, **kwargs): 10 | """Initialize BaseDrag object. 11 | 12 | Args: 13 | ac (string): ICAO aircraft type (for example: A320). 14 | 15 | """ 16 | if not hasattr(self, "sci"): 17 | self.sci = importlib.import_module("numpy") 18 | 19 | if not hasattr(self, "aero"): 20 | self.aero = importlib.import_module("openap").aero 21 | 22 | self.ac = ac.upper() 23 | 24 | def clean(self, mass, tas, alt, vs): 25 | raise NotImplementedError 26 | 27 | def nonclean(self, mass, tas, alt, flap_angle, vs=0, landing_gear=False): 28 | raise NotImplementedError 29 | 30 | 31 | class ThrustBase(object): 32 | """Base class for thrust models.""" 33 | 34 | def __init__(self, ac, eng=None, **kwargs): 35 | """Initialize ThrustBase object. 36 | 37 | Args: 38 | ac (string): ICAO aircraft type (for example: A320). 39 | eng (string): Engine type (for example: CFM56-5A3). 40 | 41 | """ 42 | if not hasattr(self, "sci"): 43 | self.sci = importlib.import_module("numpy") 44 | 45 | if not hasattr(self, "aero"): 46 | self.aero = importlib.import_module("openap").aero 47 | 48 | self.ac = ac.upper() 49 | 50 | def takeoff(self, tas, alt): 51 | raise NotImplementedError 52 | 53 | def climb(self, tas, alt): 54 | raise NotImplementedError 55 | 56 | def cruise(self, tas, alt, roc): 57 | raise NotImplementedError 58 | 59 | def idle(self, tas, alt, roc): 60 | raise NotImplementedError 61 | 62 | 63 | class FuelFlowBase(object): 64 | """Base class for fuel flow models.""" 65 | 66 | def __init__(self, ac, eng=None, **kwargs): 67 | """Initialize FuelFlowBase object. 68 | 69 | Args: 70 | ac (string): ICAO aircraft type (for example: A320). 71 | eng (string): Engine type (for example: CFM56-5A3). 72 | Leave empty to use the default engine specified 73 | by in the aircraft database. 74 | 75 | """ 76 | if not hasattr(self, "sci"): 77 | self.sci = importlib.import_module("numpy") 78 | 79 | if not hasattr(self, "aero"): 80 | self.aero = importlib.import_module("openap").aero 81 | 82 | self.ac = ac.upper() 83 | 84 | @ndarrayconvert 85 | def enroute(self, mass, tas, alt, vs=0, acc=0): 86 | raise NotImplementedError 87 | 88 | @ndarrayconvert 89 | def idle(self, mass, tas, alt, vs=0): 90 | raise NotImplementedError 91 | -------------------------------------------------------------------------------- /openap/casadi/__init__.py: -------------------------------------------------------------------------------- 1 | from .. import * 2 | from . import aero_override as aero 3 | from . import numpy_override as sci 4 | 5 | 6 | class RemoveDecoratorMeta(type): 7 | def __new__(cls, name, base, attr_dict): 8 | # for all methods in all base classes 9 | # reimplement in attr_dict 10 | for b in base: 11 | for elt in vars(b): 12 | if hasattr(getattr(b, elt), "orig_func"): 13 | attr_dict[elt] = getattr(b, elt).orig_func 14 | 15 | attr_dict["sci"] = sci 16 | attr_dict["aero"] = aero 17 | return super().__new__(cls, name, base, attr_dict) 18 | 19 | 20 | class Drag(drag.Drag, metaclass=RemoveDecoratorMeta): 21 | pass 22 | 23 | 24 | class Thrust(thrust.Thrust, metaclass=RemoveDecoratorMeta): 25 | pass 26 | 27 | 28 | class FuelFlow(fuel.FuelFlow, metaclass=RemoveDecoratorMeta): 29 | def __init__(self, ac, eng=None, **kwargs): 30 | self.Drag = Drag 31 | self.Thrust = Thrust 32 | super(FuelFlow, self).__init__(ac=ac, eng=eng, **kwargs) 33 | 34 | 35 | class Emission(emission.Emission, metaclass=RemoveDecoratorMeta): 36 | pass 37 | -------------------------------------------------------------------------------- /openap/casadi/numpy_override.py: -------------------------------------------------------------------------------- 1 | from numpy import * 2 | from casadi import * # this override the previous 3 | 4 | # numpy functions -> casadi functions 5 | abs = casadi.fabs 6 | where = casadi.if_else 7 | maximum = casadi.fmax 8 | minimum = casadi.fmin 9 | interp = lambda x, xp, yp: casadi.interpolant("LUT", "linear", [xp], yp)(x) 10 | -------------------------------------------------------------------------------- /openap/contrail.py: -------------------------------------------------------------------------------- 1 | # %% 2 | from scipy import optimize 3 | 4 | import numpy as np 5 | 6 | # %% 7 | gas_constant_water_vapor = 461.51 8 | gas_constant_dry_air = 287.05 9 | temperature_steam = 372.15 10 | pressure_steam = 101325 11 | temperature_ice_point = 273.16 12 | pressure_ice_point = 611.73 13 | 14 | ei_water = 1.2232 15 | spec_air_heat_capacity = 1004 16 | ratio_mass_water_vapor_air = 0.622 17 | spec_combustion_heat = 43e6 18 | propulsion_efficiency = 0.4 # variable 19 | 20 | 21 | def saturation_pressure_over_water(temperature): 22 | # Murphy and Koop 2005 23 | return np.exp( 24 | 54.842763 25 | - 6763.22 / temperature 26 | - 4.210 * np.log(temperature) 27 | + 0.000367 * temperature 28 | + np.tanh(0.0415 * (temperature - 218.8)) 29 | * ( 30 | 53.878 31 | - 1331.22 / temperature 32 | - 9.44523 * np.log(temperature) 33 | + 0.014025 * temperature 34 | ) 35 | ) 36 | 37 | 38 | def saturation_pressure_over_ice(temperature): 39 | # Murphy and Koop 2005 40 | return np.exp( 41 | 9.550426 42 | - 5723.265 / temperature 43 | + 3.53068 * np.log(temperature) 44 | - 0.00728332 * temperature 45 | ) 46 | 47 | 48 | def relative_humidity(specific_humidity, pressure, temperature, to="ice"): 49 | assert to in ("ice", "water") 50 | 51 | if to == "ice": 52 | saturation_pressure = saturation_pressure_over_ice(temperature) 53 | else: 54 | saturation_pressure = saturation_pressure_over_water(temperature) 55 | 56 | return ( 57 | specific_humidity 58 | * pressure 59 | * (gas_constant_water_vapor / gas_constant_dry_air) 60 | / saturation_pressure 61 | ) 62 | 63 | 64 | def rhw2rhi(relative_humidity_water, temperature): 65 | return ( 66 | relative_humidity_water 67 | * saturation_pressure_over_water(temperature) 68 | / saturation_pressure_over_ice(temperature) 69 | ) 70 | 71 | 72 | def critical_temperature_water(pressure): 73 | isobaric_mixing_slope = ( 74 | ei_water 75 | * spec_air_heat_capacity 76 | * pressure 77 | / ( 78 | ratio_mass_water_vapor_air 79 | * spec_combustion_heat 80 | * (1 - propulsion_efficiency) 81 | ) 82 | ) 83 | 84 | crit_temp_water = ( 85 | -46.46 86 | + 9.43 * np.log(isobaric_mixing_slope - 0.053) 87 | + 0.72 * (np.log(isobaric_mixing_slope - 0.053)) ** 2 88 | + 273.15 89 | ) 90 | 91 | return crit_temp_water 92 | 93 | 94 | def critical_temperature_water_and_ice(pressure): 95 | def func(temp_critical, crit_temp_water, isobaric_mixing_slope): 96 | return ( 97 | saturation_pressure_over_water(crit_temp_water) 98 | - saturation_pressure_over_ice(temp_critical) 99 | - (crit_temp_water - temp_critical) * isobaric_mixing_slope 100 | ) 101 | 102 | isobaric_mixing_slope = ( 103 | ei_water 104 | * spec_air_heat_capacity 105 | * pressure 106 | / ( 107 | ratio_mass_water_vapor_air 108 | * spec_combustion_heat 109 | * (1 - propulsion_efficiency) 110 | ) 111 | ) 112 | 113 | crit_temp_water = ( 114 | -46.46 115 | + 9.43 * np.log(isobaric_mixing_slope - 0.053) 116 | + 0.72 * (np.log(isobaric_mixing_slope - 0.053)) ** 2 117 | + 273.15 118 | ) 119 | 120 | sol = optimize.root_scalar( 121 | func, 122 | args=(crit_temp_water, isobaric_mixing_slope), 123 | bracket=[100, crit_temp_water], 124 | method="brentq", 125 | ) 126 | # print(sol.root, sol.iterations, sol.function_calls) 127 | crit_temp_ice = sol.root 128 | 129 | return crit_temp_water, crit_temp_ice 130 | -------------------------------------------------------------------------------- /openap/data/.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Django stuff: 53 | *.log 54 | local_settings.py 55 | 56 | # Flask stuff: 57 | instance/ 58 | .webassets-cache 59 | 60 | # Scrapy stuff: 61 | .scrapy 62 | 63 | # Sphinx documentation 64 | docs/_build/ 65 | 66 | # PyBuilder 67 | target/ 68 | 69 | # IPython Notebook 70 | .ipynb_checkpoints 71 | 72 | # pyenv 73 | .python-version 74 | 75 | # celery beat schedule file 76 | celerybeat-schedule 77 | 78 | # dotenv 79 | .env 80 | 81 | # virtualenv 82 | venv/ 83 | ENV/ 84 | 85 | # Spyder project settings 86 | .spyderproject 87 | 88 | # Rope project settings 89 | .ropeproject 90 | -------------------------------------------------------------------------------- /openap/data/aircraft/_synonym.csv: -------------------------------------------------------------------------------- 1 | orig,new 2 | a124,b744 3 | a306,a332 4 | a310,a318 5 | at72,e145 6 | at75,e145 7 | at76,e145 8 | b733,b734 9 | b735,b734 10 | b762,b763 11 | b77l,b77w 12 | c25a,c550 13 | c525,c550 14 | c56x,c550 15 | crj2,e145 16 | crj9,e75l 17 | e290,e190 18 | glf5,glf6 19 | gl5t,glf6 20 | lj45,glf6 21 | md11,b773 22 | pc24,c550 23 | su95,e170 24 | -------------------------------------------------------------------------------- /openap/data/aircraft/a19n.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A319neo 2 | 3 | mtow: 75500 4 | mlw: 62500 5 | oew: 42600 6 | mfc: 29700 7 | vmo: 350 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 160 13 | low: 120 14 | high: 150 15 | 16 | fuselage: 17 | length: 33.84 18 | height: 4.14 19 | width: 3.95 20 | 21 | wing: 22 | area: 124 23 | span: 35.8 24 | mac: 4.29 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: single-slotted 30 | area: 21.1 31 | bf/b: 0.780 32 | lambda_f: 0.900 #a20n 33 | cf/c: 0.176 #a20n 34 | Sf/S: 0.170 #a20n 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 7000 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: PW1124G1-JM 46 | options: 47 | A319-171N: PW1124G1-JM 48 | A319-151N: LEAP-1A24 49 | A319-153N: LEAP-1A26 50 | 51 | drag: 52 | cd0: 0.017 #a20n 53 | k: 0.038 #a20n 54 | e: 0.807 #a20n 55 | gears: 0.017 #a20n 56 | 57 | fuel: 58 | engine: V2524-A5 #a319 59 | fuel_coef: 2.33357287 #a319 60 | -------------------------------------------------------------------------------- /openap/data/aircraft/a20n.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A320neo 2 | 3 | mtow: 79000 4 | mlw: 66000 5 | oew: 44300 6 | mfc: 29700 7 | vmo: 350 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 194 13 | low: 150 14 | high: 180 15 | 16 | fuselage: 17 | length: 37.57 18 | height: 4.14 19 | width: 3.95 20 | 21 | wing: 22 | area: 124 23 | span: 35.8 24 | mac: 4.29 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: single-slotted 30 | area: 21.1 31 | bf/b: 0.780 32 | lambda_f: 0.900 33 | cf/c: 0.176 34 | Sf/S: 0.170 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 6300 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: PW1127G-JM 46 | options: 47 | A320-271N: PW1127G-JM 48 | A320-272N: PW1124G1-JM 49 | A320-273N: PW1129G-JM 50 | A320-251N: LEAP-1A26 51 | A320-252N: LEAP-1A24 52 | A320-253N: LEAP-1A29 53 | 54 | drag: 55 | cd0: 0.017 56 | k: 0.038 57 | e: 0.807 58 | gears: 0.017 59 | 60 | fuel: 61 | aircraft: Airbus A320 62 | engine: CFM56-5B4/P 63 | fuel_coef: 2.65942225 64 | -------------------------------------------------------------------------------- /openap/data/aircraft/a21n.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A321neo 2 | 3 | mtow: 97000 4 | mlw: 77800 5 | oew: 50000 6 | mfc: 33000 7 | vmo: 350 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 244 13 | low: 180 14 | high: 220 15 | 16 | fuselage: 17 | length: 44.51 18 | height: 4.14 19 | width: 3.95 20 | 21 | wing: 22 | area: 128 23 | span: 35.8 24 | mac: 4.29 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: 21.1 31 | bf/b: 0.780 32 | lambda_f: 0.900 #a20n 33 | cf/c: 0.176 #a20n 34 | Sf/S: 0.170 #a20n 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 7400 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: PW1133G-JM 46 | options: 47 | A321-271N: PW1133G-JM 48 | A321-272N: PW1130G-JM 49 | A321-251N: LEAP-1A32 50 | A321-252N: LEAP-1A30 51 | A321-253N: LEAP-1A33 52 | 53 | drag: 54 | cd0: 0.017 #a20n 55 | k: 0.038 #a20n 56 | e: 0.807 #a20n 57 | gears: 0.017 #a20n 58 | 59 | fuel: 60 | engine: CFM56-5B4/P #a320 61 | fuel_coef: 2.65942225 #a320 62 | -------------------------------------------------------------------------------- /openap/data/aircraft/a318.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A318 2 | 3 | mtow: 68000 4 | mlw: 57500 5 | oew: 39500 6 | mfc: 24210 7 | vmo: 350 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 136 13 | low: 107 14 | high: 117 15 | 16 | fuselage: 17 | length: 31.44 18 | height: 4.14 19 | width: 3.95 20 | 21 | wing: 22 | area: 122.4 23 | span: 34.10 24 | mac: 4.1935 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: single-slotted 30 | area: 21.1 31 | bf/b: 0.780 32 | lambda_f: 0.900 #a319 33 | cf/c: 0.176 #a319 34 | Sf/S: 0.170 #a319 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 2800 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CFM56-5B9 46 | options: 47 | A318-111: CFM56-5B8 48 | A318-112: CFM56-5B9 49 | A318-121: PW6122A 50 | A318-122: PW6124A 51 | 52 | drag: 53 | cd0: 0.020 #a319 54 | k: 0.039 #a319 55 | e: 0.783 #a319 56 | gears: 0.017 #a319 57 | 58 | fuel: 59 | engine: CFM56-5B9/3 60 | fuel_coef: 2.03114004 61 | -------------------------------------------------------------------------------- /openap/data/aircraft/a319.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A319 2 | 3 | mtow: 75500 4 | mlw: 62500 5 | oew: 40800 6 | mfc: 30190 7 | vmo: 350 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 156 13 | low: 110 14 | high: 140 15 | 16 | fuselage: 17 | length: 33.84 18 | height: 4.14 19 | width: 3.95 20 | 21 | wing: 22 | area: 124 23 | span: 35.8 24 | mac: 4.1935 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: single-slotted 30 | area: 21.1 31 | bf/b: 0.780 32 | lambda_f: 0.900 33 | cf/c: 0.176 34 | Sf/S: 0.170 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 3300 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: V2524-A5 46 | options: 47 | A319-111: CFM56-5B5 48 | A319-112: CFM56-5B6 49 | A319-113: CFM56-5A4 50 | A319-114: CFM56-5A5 51 | A319-115: CFM56-5B7 52 | A319-131: V2522-A5 53 | A319-132: V2524-A5 54 | A319-133: V2527M-A5 55 | 56 | drag: 57 | cd0: 0.020 58 | k: 0.039 59 | e: 0.783 60 | gears: 0.017 61 | 62 | fuel: 63 | engine: V2524-A5 64 | fuel_coef: 2.33357287 65 | -------------------------------------------------------------------------------- /openap/data/aircraft/a320.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A320 2 | 3 | mtow: 78000 4 | mlw: 66000 5 | oew: 42600 6 | mfc: 24210 7 | vmo: 350 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 180 13 | low: 140 14 | high: 170 15 | 16 | fuselage: 17 | length: 37.57 18 | height: 4.14 19 | width: 3.95 20 | 21 | wing: 22 | area: 124 23 | span: 35.8 24 | mac: 4.1935 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: single-slotted 30 | area: 21.1 31 | bf/b: 0.780 32 | lambda_f: 0.900 33 | cf/c: 0.176 34 | Sf/S: 0.170 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 5000 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CFM56-5B4 46 | options: 47 | A320-111: CFM56-5-A1 48 | A320-211: CFM56-5-A1 49 | A320-212: CFM56-5A3 50 | A320-214: CFM56-5B4 51 | A320-215: CFM56-5B5 52 | A320-216: CFM56-5B6 53 | A320-231: V2500-A1 54 | A320-232: V2527-A5 55 | A320-233: V2527E-A5 56 | 57 | drag: 58 | cd0: 0.018 59 | k: 0.039 60 | e: 0.799 61 | gears: 0.017 62 | 63 | fuel: 64 | engine: CFM56-5B4/P 65 | fuel_coef: 2.65942225 66 | -------------------------------------------------------------------------------- /openap/data/aircraft/a321.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A321 2 | 3 | mtow: 93500 4 | mlw: 77800 5 | oew: 48500 6 | mfc: 30030 7 | vmo: 350 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 220 13 | low: 170 14 | high: 210 15 | 16 | fuselage: 17 | length: 44.51 18 | height: 4.14 19 | width: 3.95 20 | 21 | wing: 22 | area: 128 23 | span: 35.8 24 | mac: 4.1935 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: 21.1 31 | bf/b: 0.780 32 | lambda_f: 0.900 33 | cf/c: 0.176 34 | Sf/S: 0.165 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 4400 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CFM56-5B1 46 | options: 47 | A321-111: CFM56-5B1 48 | A321-112: CFM56-5B2 49 | A321-131: V2530-A5 50 | A321-211: CFM56-5B3 51 | A321-212: CFM56-5B1 52 | A321-213: CFM56-5B2 53 | A321-231: V2533-A5 54 | A321-232: V2530-A5 55 | 56 | drag: 57 | cd0: 0.020 58 | k: 0.041 59 | e: 0.785 60 | gears: 0.019 61 | 62 | fuel: 63 | engine: V2533-A5 64 | fuel_coef: 3.2375643 65 | -------------------------------------------------------------------------------- /openap/data/aircraft/a332.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A330-200 2 | 3 | mtow: 230000 4 | mlw: 182000 5 | oew: 120200 6 | mfc: 139000 7 | vmo: 330 8 | mmo: 0.86 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 406 13 | low: 220 14 | high: 260 15 | 16 | fuselage: 17 | length: 58.82 18 | height: 5.64 19 | width: 5.64 20 | 21 | wing: 22 | area: 361.6 23 | span: 60.3 24 | mac: 7.26 25 | sweep: 29.7 26 | t/c: 0.11 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.665 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.82 39 | range: 12500 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: Trent 772 46 | options: 47 | A330-201: CF6-80E1A2 48 | A330-202: CF6-80E1A4 49 | A330-203: CF6-80E1A3 50 | A330-223: PW4168A 51 | A330-223F: PW4170 52 | A330-243: Trent 772 53 | 54 | drag: 55 | cd0: 0.022 56 | k: 0.041 57 | e: 0.774 58 | gears: 0.014 59 | 60 | fuel: 61 | engine: Trent 772 62 | fuel_coef: 6.0218489 63 | -------------------------------------------------------------------------------- /openap/data/aircraft/a333.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A330-300 2 | 3 | mtow: 242000 4 | mlw: 188000 5 | oew: 122780 6 | mfc: 139000 7 | vmo: 330 8 | mmo: 0.86 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 440 13 | low: 250 14 | high: 290 15 | 16 | fuselage: 17 | length: 63.67 18 | height: 5.64 19 | width: 5.64 20 | 21 | wing: 22 | area: 361.6 23 | span: 60.3 24 | mac: 7.26 25 | sweep: 29.7 26 | t/c: 0.11 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.665 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.82 39 | range: 10500 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: Trent 772 46 | options: 47 | A330-301: CF6-80E1A2 48 | A330-302: CF6-80E1A4 49 | A330-303: CF6-80E1A3 50 | A330-321: PW4164 51 | A330-322: PW4168 52 | A330-323: PW4168A 53 | A330-341: Trent 768 54 | A330-342: Trent 772 55 | A330-343: Trent 772 56 | 57 | drag: 58 | cd0: 0.022 59 | k: 0.041 60 | e: 0.773 61 | gears: 0.014 62 | 63 | fuel: 64 | engine: Trent 772 65 | fuel_coef: 5.84957777 66 | -------------------------------------------------------------------------------- /openap/data/aircraft/a343.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A340-300 2 | 3 | mtow: 276000 4 | mlw: 190000 5 | oew: 130000 6 | mfc: 147850 7 | vmo: 330 8 | mmo: 0.86 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 440 13 | low: 250 14 | high: 290 15 | 16 | fuselage: 17 | length: 63.69 18 | height: 5.64 19 | width: 5.64 20 | 21 | wing: 22 | area: 363.1 23 | span: 60.3 24 | mac: 7.26 25 | sweep: 29.7 26 | t/c: 0.11 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.665 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.82 39 | range: 13300 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 4 45 | default: CFM56-5C3 46 | options: 47 | A340-311: CFM56-5C2 48 | A340-312: CFM56-5C3 49 | A340-313: CFM56-5C4 50 | 51 | drag: 52 | cd0: 0.019 53 | k: 0.040 54 | e: 0.799 55 | gears: 0.016 56 | -------------------------------------------------------------------------------- /openap/data/aircraft/a359.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A350-900 2 | 3 | mtow: 280000 4 | mlw: 205000 5 | oew: 142400 6 | mfc: 140795 7 | vmo: 340 8 | mmo: 0.89 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 440 13 | low: 300 14 | high: 350 15 | 16 | fuselage: 17 | length: 66.8 18 | height: 6.09 19 | width: 5.96 20 | 21 | wing: 22 | area: 442 23 | span: 64.75 24 | mac: null 25 | sweep: 31.9 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.85 39 | range: 15000 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: Trent XWB-84 46 | options: 47 | A350-941: Trent XWB-84 48 | 49 | drag: 50 | cd0: 0.022 51 | k: 0.043 52 | e: 0.783 53 | gears: 0.013 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/a388.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A380-800 2 | 3 | mtow: 560000 4 | mlw: 386000 5 | oew: 277000 6 | mfc: 320000 7 | vmo: 340 8 | mmo: 0.89 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 853 13 | low: 410 14 | high: 620 15 | 16 | fuselage: 17 | length: 72.72 18 | height: 8.41 19 | width: 7.14 20 | 21 | wing: 22 | area: 845 23 | span: 79.75 24 | mac: null 25 | sweep: 33.5 26 | t/c: 0.08 27 | 28 | flaps: 29 | type: single-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 12800 38 | mach: 0.85 39 | range: 14800 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 4 45 | default: GP7270 46 | options: 47 | A380-841: Trent 970-84 48 | A380-842: Trent 972-84 49 | A380-861: GP7270 50 | 51 | drag: 52 | cd0: 0.016 53 | k: 0.050 54 | e: 0.855 55 | gears: 0.012 56 | -------------------------------------------------------------------------------- /openap/data/aircraft/b37m.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737 MAX 7 2 | 3 | mtow: 80000 4 | mlw: 60000 5 | oew: 45000 6 | mfc: 26000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 172 13 | low: 138 14 | high: 153 15 | 16 | fuselage: 17 | length: 33.6 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 124.6 23 | span: 34.32 24 | mac: 4.17 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.60 32 | lambda_f: 0.900 #a38m 33 | cf/c: 0.150 #a38m 34 | Sf/S: 0.150 #a38m 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 7100 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: LEAP-1B 46 | options: 47 | - LEAP-1B 48 | 49 | drag: 50 | cd0: 0.020 #a38m 51 | k: 0.042 #a38m 52 | e: 0.797 #a38m 53 | gears: 0.018 #a38m 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/b38m.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737 MAX 8 2 | 3 | mtow: 82000 4 | mlw: 66300 5 | oew: 45000 6 | mfc: 26000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 210 13 | low: 162 14 | high: 178 15 | 16 | fuselage: 17 | length: 39.47 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 124.6 23 | span: 34.32 24 | mac: 4.17 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.60 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.79 39 | range: 6600 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: LEAP-1B 46 | options: 47 | - LEAP-1B 48 | 49 | drag: 50 | cd0: 0.020 51 | k: 0.042 52 | e: 0.797 53 | gears: 0.018 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/b39m.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737 MAX 9 2 | 3 | mtow: 88000 4 | mlw: 71000 5 | oew: 45000 6 | mfc: 26000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 220 13 | low: 178 14 | high: 193 15 | 16 | fuselage: 17 | length: 42.11 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 124.6 23 | span: 34.32 24 | mac: 4.17 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.60 32 | lambda_f: 0.900 #a38m 33 | cf/c: 0.150 #a38m 34 | Sf/S: 0.150 #a38m 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.79 39 | range: 6600 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: LEAP-1B 46 | options: 47 | - LEAP-1B 48 | 49 | drag: 50 | cd0: 0.020 #a38m 51 | k: 0.042 #a38m 52 | e: 0.797 #a38m 53 | gears: 0.018 #a38m 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/b3xm.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737 MAX 10 2 | 3 | mtow: 90000 4 | mlw: 70000 5 | oew: 45000 6 | mfc: 26000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 230 13 | low: 188 14 | high: 204 15 | 16 | fuselage: 17 | length: 43.8 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 124.6 23 | span: 34.32 24 | mac: 4.17 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.60 32 | lambda_f: 0.900 #a38m 33 | cf/c: 0.150 #a38m 34 | Sf/S: 0.150 #a38m 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.79 39 | range: 6100 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: LEAP-1B 46 | options: 47 | - LEAP-1B 48 | 49 | drag: 50 | cd0: 0.020 #a38m 51 | k: 0.042 #a38m 52 | e: 0.797 #a38m 53 | gears: 0.018 #a38m 54 | 55 | -------------------------------------------------------------------------------- /openap/data/aircraft/b734.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-400 2 | 3 | mtow: 68000 4 | mlw: 56200 5 | oew: 33700 6 | mfc: 20000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 188 13 | low: 145 14 | high: 160 15 | 16 | fuselage: 17 | length: 33.4 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 91.04 23 | span: 28.88 24 | mac: 3.73 25 | sweep: 25 26 | t/c: 0.129 27 | 28 | flaps: 29 | type: triple-slotted 30 | area: null 31 | bf/b: 0.72 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 3900 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CFM56-3B-2 46 | options: 47 | - CFM56-3B-2 48 | - CFM56-3C-1 49 | 50 | drag: 51 | cd0: 0.020 52 | k: 0.044 53 | e: 0.793 54 | gears: 0.021 55 | 56 | fuel: 57 | engine: CFM56-3C-1 58 | fuel_coef: 2.60481253 59 | -------------------------------------------------------------------------------- /openap/data/aircraft/b737.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-700 2 | 3 | mtow: 70000 4 | mlw: 58600 5 | oew: 37600 6 | mfc: 26000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 149 13 | low: 130 14 | high: 149 15 | 16 | fuselage: 17 | length: 33.6 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 124.6 23 | span: 34.32 24 | mac: 4.17 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.60 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 4600 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CFM56-7B26 46 | options: 47 | - CFM56-7B20 48 | - CFM56-7B22 49 | - CFM56-7B24 50 | - CFM56-7B26 51 | - CFM56-7B27 52 | 53 | drag: 54 | cd0: 0.022 55 | k: 0.043 56 | e: 0.780 57 | gears: 0.016 58 | 59 | fuel: 60 | engine: CFM56-7B26 61 | fuel_coef: 2.69348207 62 | -------------------------------------------------------------------------------- /openap/data/aircraft/b738.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-800 2 | 3 | mtow: 79000 4 | mlw: 66300 5 | oew: 41400 6 | mfc: 26000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 189 13 | low: 162 14 | high: 189 15 | 16 | fuselage: 17 | length: 39.47 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 124.6 23 | span: 34.32 24 | mac: 4.17 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.60 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.789 39 | range: 3700 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CFM56-7B26 46 | options: 47 | - CFM56-7B24 48 | - CFM56-7B26 49 | - CFM56-7B27 50 | 51 | drag: 52 | cd0: 0.019 53 | k: 0.042 54 | e: 0.799 55 | gears: 0.017 56 | 57 | fuel: 58 | engine: CFM56-7B26E 59 | fuel_coef: 2.68531655 60 | -------------------------------------------------------------------------------- /openap/data/aircraft/b739.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-900 2 | 3 | mtow: 85100 4 | mlw: 71300 5 | oew: 44600 6 | mfc: 26000 7 | vmo: 340 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 215 13 | low: 170 14 | high: 190 15 | 16 | fuselage: 17 | length: 42.11 18 | height: 3.73 19 | width: 3.73 20 | 21 | wing: 22 | area: 124.6 23 | span: 34.32 24 | mac: 4.17 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: 0.60 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.79 39 | range: 5100 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CFM56-7B27E 46 | options: 47 | - CFM56-7B24 48 | - CFM56-7B26 49 | - CFM56-7B27 50 | 51 | clean: 52 | cd0: 0.020 53 | k: 0.042 54 | e: 0.797 55 | gears: 0.018 56 | 57 | fuel: 58 | engine: CFM56-7B27E 59 | fuel_coef: 2.79057225 60 | -------------------------------------------------------------------------------- /openap/data/aircraft/b744.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 747-400 2 | 3 | mtow: 396800 4 | mlw: 260300 5 | oew: 182400 6 | mfc: 203500 7 | vmo: 365 8 | mmo: 0.92 9 | ceiling: 13700 10 | 11 | pax: 12 | max: 660 13 | low: 520 14 | high: 570 15 | 16 | fuselage: 17 | length: 70.66 18 | height: 8.10 19 | width: 6.50 20 | 21 | wing: 22 | area: 525.6 23 | span: 64.4 24 | mac: 9.68 25 | sweep: 37.5 26 | t/c: 0.094 27 | 28 | flaps: 29 | type: triple-slotted 30 | area: 78.7 31 | bf/b: 0.639 32 | lambda_f: 0.900 33 | cf/c: 0.198 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.85 39 | range: 13400 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 4 45 | default: CF6-80C2B1F 46 | options: 47 | - PW4062 48 | - CF6-80C2B1F 49 | - RB211-524G 50 | 51 | drag: 52 | cd0: 0.021 53 | k: 0.049 54 | e: 0.816 55 | gears: 0.015 56 | -------------------------------------------------------------------------------- /openap/data/aircraft/b748.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 747-8 2 | 3 | mtow: 447700 4 | mlw: 312100 5 | oew: 220100 6 | mfc: 238600 7 | vmo: 365 8 | mmo: 0.92 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 605 13 | low: 460 14 | high: 480 15 | 16 | fuselage: 17 | length: 76.3 18 | height: 7.10 19 | width: 6.50 20 | 21 | wing: 22 | area: 554 23 | span: 68.4 24 | mac: 9.68 25 | sweep: 37.5 26 | t/c: 0.094 27 | 28 | flaps: 29 | type: triple-slotted 30 | area: 78.7 31 | bf/b: 0.639 32 | lambda_f: 0.900 33 | cf/c: 0.186 34 | Sf/S: 0.142 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.85 39 | range: 14800 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 4 45 | default: GEnx-2B67 46 | options: 47 | - GEnx-2B67 48 | 49 | drag: 50 | cd0: 0.021 51 | k: 0.047 52 | e: 0.806 53 | gears: 0.015 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/b752.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 757-200 2 | 3 | mtow: 115600 4 | mlw: 92200 5 | oew: 58400 6 | mfc: 43500 7 | vmo: 350 8 | mmo: 0.86 9 | ceiling: 12800 10 | 11 | pax: 12 | max: 239 13 | low: 200 14 | high: 225 15 | 16 | fuselage: 17 | length: 47.3 18 | height: 4.10 19 | width: 4.10 20 | 21 | wing: 22 | area: 182.3 23 | span: 38.0 24 | mac: 5.64 25 | sweep: 25 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: 30.4 31 | bf/b: 0.757 32 | lambda_f: 0.900 33 | cf/c: 0.187 34 | Sf/S: 0.167 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.8 39 | range: 7200 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: RB211-535E4 46 | options: 47 | - PW2037 48 | - RB211-535E4 49 | 50 | drag: 51 | cd0: 0.021 52 | k: 0.049 53 | e: 0.813 54 | gears: 0.016 55 | -------------------------------------------------------------------------------- /openap/data/aircraft/b763.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 767-300 2 | 3 | mtow: 158700 4 | mlw: 136000 5 | oew: 90000 6 | mfc: 63200 7 | vmo: 360 8 | mmo: 0.86 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 350 13 | low: 210 14 | high: 290 15 | 16 | fuselage: 17 | length: 54.94 18 | height: 5.03 19 | width: 5.03 20 | 21 | wing: 22 | area: 283.3 23 | span: 47.57 24 | mac: 6.98 25 | sweep: 31.5 26 | t/c: 0.115 27 | 28 | flaps: 29 | type: double-slotted 30 | area: 36.88 31 | bf/b: 0.75 32 | lambda_f: 0.900 #b752 33 | cf/c: 0.187 #b752 34 | Sf/S: 0.167 #b752 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.8 39 | range: 11400 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CF6-80C2B2 46 | options: 47 | - JT9D-7R4D 48 | - PW4056 49 | - CF6-80C2B2 50 | 51 | drag: 52 | cd0: 0.021 #b752 53 | k: 0.049 #b752 54 | e: 0.813 #b752 55 | gears: 0.016 #b752 56 | -------------------------------------------------------------------------------- /openap/data/aircraft/b772.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 777-200/200ER 2 | 3 | mtow: 297000 4 | mlw: 213000 5 | oew: 138000 6 | mfc: 171000 7 | vmo: 330 8 | mmo: 0.89 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 440 13 | low: 300 14 | high: 320 15 | 16 | fuselage: 17 | length: 63.73 18 | height: 6.20 19 | width: 6.20 20 | 21 | wing: 22 | area: 427.8 23 | span: 60.93 24 | mac: 8.75 25 | sweep: 31.6 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: 67.13 31 | bf/b: 0.758 32 | lambda_f: 0.900 33 | cf/c: 0.166 34 | Sf/S: 0.157 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.84 39 | range: 9600 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: PW4090 46 | options: 47 | - GE90-77B 48 | - PW4077 49 | - Trent 877 50 | - GE90-94B 51 | - PW4090 52 | - Trent 895 53 | 54 | drag: 55 | cd0: 0.024 56 | k: 0.047 57 | e: 0.783 58 | gears: 0.014 59 | -------------------------------------------------------------------------------- /openap/data/aircraft/b773.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 777-300 2 | 3 | mtow: 299300 4 | mlw: 237600 5 | oew: 160500 6 | mfc: 171200 7 | vmo: 330 8 | mmo: 0.89 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 550 13 | low: 360 14 | high: 400 15 | 16 | fuselage: 17 | length: 73.86 18 | height: 6.20 19 | width: 6.20 20 | 21 | wing: 22 | area: 427.8 23 | span: 60.93 24 | mac: 8.75 25 | sweep: 31.6 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: 67.13 31 | bf/b: 0.758 32 | lambda_f: 0.900 33 | cf/c: 0.166 34 | Sf/S: 0.157 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.84 39 | range: 11000 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: Trent 892 46 | options: 47 | - GE90-110B1 48 | - PW4090 49 | - Trent 892 50 | 51 | drag: 52 | cd0: 0.024 #b772 53 | k: 0.047 #b772 54 | e: 0.783 #b772 55 | gears: 0.014 #b772 56 | -------------------------------------------------------------------------------- /openap/data/aircraft/b77w.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 777-300ER 2 | 3 | mtow: 351500 4 | mlw: 251300 5 | oew: 167800 6 | mfc: 181300 7 | vmo: 330 8 | mmo: 0.89 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 550 13 | low: 365 14 | high: 451 15 | 16 | fuselage: 17 | length: 73.86 18 | height: 6.20 19 | width: 6.20 20 | 21 | wing: 22 | area: 436.8 23 | span: 64.8 24 | mac: 8.75 25 | sweep: 31.6 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: 67.13 31 | bf/b: 0.758 32 | lambda_f: 0.900 33 | cf/c: 0.156 34 | Sf/S: 0.154 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.84 39 | range: 14700 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: GE90-115B 46 | options: 47 | - GE90-115B 48 | 49 | drag: 50 | cd0: 0.024 51 | k: 0.043 52 | e: 0.765 53 | gears: 0.016 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/b788.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 787-8 2 | 3 | mtow: 228000 4 | mlw: 172000 5 | oew: 119000 6 | mfc: 126200 7 | vmo: 515 8 | mmo: 0.90 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 380 13 | low: 220 14 | high: 250 15 | 16 | fuselage: 17 | length: 56.72 18 | height: 5.94 19 | width: 5.77 20 | 21 | wing: 22 | area: 377 23 | span: 60.12 24 | mac: 6.27 25 | sweep: 32.2 26 | t/c: 0.094 27 | 28 | flaps: 29 | type: single-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.85 39 | range: 14800 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: Trent 1000-E2 46 | options: 47 | - GEnx-1B70 48 | - GEnx-1B67 49 | - GEnx-1B64 50 | - Trent 1000-E2 51 | - Trent 1000-C2 52 | - Trent 1000-A2 53 | 54 | drag: 55 | cd0: 0.017 56 | k: 0.041 57 | e: 0.819 58 | gears: 0.013 59 | -------------------------------------------------------------------------------- /openap/data/aircraft/b789.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 787-9 2 | 3 | mtow: 254000 4 | mlw: 193000 5 | oew: 128000 6 | mfc: 126400 7 | vmo: 515 8 | mmo: 0.90 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 420 13 | low: 260 14 | high: 290 15 | 16 | fuselage: 17 | length: 62.81 18 | height: 5.94 19 | width: 5.77 20 | 21 | wing: 22 | area: 377 23 | span: 60.12 24 | mac: 6.27 25 | sweep: 32.2 26 | t/c: 0.094 27 | 28 | flaps: 29 | type: single-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.85 39 | range: 14000 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: Trent 1000-K2 46 | options: 47 | - GEnx-1B75 48 | - GEnx-1B74 49 | - Trent 1000-K2 50 | - Trent 1000-J2 51 | - Trent 1000-A2 52 | 53 | drag: 54 | cd0: 0.022 55 | k: 0.042 56 | e: 0.783 57 | gears: 0.014 58 | -------------------------------------------------------------------------------- /openap/data/aircraft/c550.yml: -------------------------------------------------------------------------------- 1 | aircraft: Cessna Citation II 2 | 3 | mtow: 6849 4 | mlw: 6804 5 | oew: 3655 6 | mfc: 2204 7 | vmo: 270 8 | mmo: 0.7 9 | ceiling: 13100 10 | 11 | pax: 12 | max: 10 13 | low: 5 14 | high: 10 15 | 16 | fuselage: 17 | length: 14.39 18 | height: 1.46 19 | width: 1.46 20 | 21 | wing: 22 | area: 31.83 23 | span: 15.90 24 | mac: 2.05 25 | sweep: 0 26 | t/c: 0.13 27 | 28 | flaps: 29 | type: single-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 1.700 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.67 39 | range: 3500 40 | 41 | engine: 42 | type: turbofan 43 | mount: rear 44 | number: 2 45 | default: JT15D-4 46 | options: 47 | - JT15D-4 48 | 49 | drag: 50 | cd0: 0.028 51 | k: 0.049 52 | e: 0.818 53 | gears: 0.020 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/e145.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer ERJ145 (LR) 2 | 3 | mtow: 22000 4 | mlw: 19300 5 | oew: 12110 6 | mfc: 5136 7 | vmo: 320 8 | mmo: 0.78 9 | ceiling: 11300 10 | 11 | pax: 12 | max: 50 13 | low: 50 14 | high: 50 15 | 16 | fuselage: 17 | length: 29.87 18 | height: 2.28 19 | width: 2.28 20 | 21 | wing: 22 | area: 51.2 23 | span: 20.04 24 | mac: 3.19 25 | sweep: 23 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 #e75l 33 | cf/c: 0.150 #e75l 34 | Sf/S: 0.150 #e75l 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.72 39 | range: 2200 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: AE3007A1 46 | options: 47 | - AE3007A1 48 | 49 | drag: 50 | cd0: 0.018 #e75l 51 | k: 0.042 #e75l 52 | e: 0.809 #e75l 53 | gears: 0.017 #e75l 54 | -------------------------------------------------------------------------------- /openap/data/aircraft/e170.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer E170 2 | 3 | mtow: 34200 4 | mlw: 32800 5 | oew: 21140 6 | mfc: 9335 7 | vmo: 320 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 78 13 | low: 60 14 | high: 72 15 | 16 | fuselage: 17 | length: 29.90 18 | height: 3.35 19 | width: 3.01 20 | 21 | wing: 22 | area: 72.72 23 | span: 26.00 24 | mac: 3.19 25 | sweep: 23 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 #e75l 33 | cf/c: 0.150 #e75l 34 | Sf/S: 0.150 #e75l 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.75 39 | range: 3900 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CF34-8E5 46 | options: 47 | - CF34-8E5 48 | - CF34-8E6 49 | 50 | drag: 51 | cd0: 0.018 #e75l 52 | k: 0.042 #e75l 53 | e: 0.809 #e75l 54 | gears: 0.017 #e75l 55 | 56 | fuel: 57 | engine: CF34-8E5 58 | fuel_coef: 1.61927756 59 | -------------------------------------------------------------------------------- /openap/data/aircraft/e190.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer E190 (LR) 2 | 3 | mtow: 50300 4 | mlw: 43000 5 | oew: 27753 6 | mfc: 16153 7 | vmo: 320 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 114 13 | low: 88 14 | high: 100 15 | 16 | fuselage: 17 | length: 36.24 18 | height: 3.35 19 | width: 3.01 20 | 21 | wing: 22 | area: 92.5 23 | span: 28.72 24 | mac: 3.68 25 | sweep: 23 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.78 39 | range: 4400 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CF34-10E5 46 | options: 47 | - CF34-10E5 48 | 49 | drag: 50 | cd0: 0.018 51 | k: 0.044 52 | e: 0.817 53 | gears: 0.016 54 | 55 | fuel: 56 | engine: CF34-10E5 57 | fuel_coef: 1.78414985 58 | -------------------------------------------------------------------------------- /openap/data/aircraft/e195.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer E195 (LR) 2 | 3 | mtow: 50790 4 | mlw: 45000 5 | oew: 28583 6 | mfc: 16153 7 | vmo: 320 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 124 13 | low: 88 14 | high: 116 15 | 16 | fuselage: 17 | length: 38.65 18 | height: 3.35 19 | width: 3.01 20 | 21 | wing: 22 | area: 92.5 23 | span: 28.72 24 | mac: 3.68 25 | sweep: 23 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | limits: 37 | 38 | cruise: 39 | height: 11000 40 | mach: 0.78 41 | range: 4300 42 | 43 | engine: 44 | type: turbofan 45 | mount: wing 46 | number: 2 47 | default: CF34-10E5 48 | options: 49 | - CF34-10E5 50 | 51 | drag: 52 | cd0: 0.021 53 | k: 0.045 54 | e: 0.795 55 | gears: 0.017 56 | 57 | fuel: 58 | engine: CF34-10E5A1 59 | fuel_coef: 1.76241166 60 | -------------------------------------------------------------------------------- /openap/data/aircraft/e75l.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer E175 (LR) 2 | 3 | mtow: 38790 4 | mlw: 34000 5 | oew: 21890 6 | mfc: 11625 7 | vmo: 320 8 | mmo: 0.82 9 | ceiling: 12500 10 | 11 | pax: 12 | max: 88 13 | low: 64 14 | high: 78 15 | 16 | fuselage: 17 | length: 29.90 18 | height: 3.35 19 | width: 3.01 20 | 21 | wing: 22 | area: 72.72 23 | span: 26.00 24 | mac: 3.19 25 | sweep: 23 26 | t/c: null 27 | 28 | flaps: 29 | type: double-slotted 30 | area: null 31 | bf/b: null 32 | lambda_f: 0.900 33 | cf/c: 0.150 34 | Sf/S: 0.150 35 | 36 | cruise: 37 | height: 11000 38 | mach: 0.75 39 | range: 3300 40 | 41 | engine: 42 | type: turbofan 43 | mount: wing 44 | number: 2 45 | default: CF34-8E6 46 | options: 47 | - CF34-8E5 48 | - CF34-8E6 49 | 50 | drag: 51 | cd0: 0.018 52 | k: 0.042 53 | e: 0.809 54 | gears: 0.017 55 | 56 | fuel: 57 | engine: CF34-8E5 58 | fuel_coef: 1.54520615 59 | -------------------------------------------------------------------------------- /openap/data/aircraft/glf6.yml: -------------------------------------------------------------------------------- 1 | aircraft: Gulfstream G650 / 650ER 2 | 3 | mtow: 45200 4 | mlw: 37900 5 | oew: 24000 6 | mfc: 21000 7 | vmo: null 8 | mmo: 0.925 9 | ceiling: 16000 10 | range: 13000 11 | 12 | pax: 13 | max: 18 14 | low: 8 15 | high: 18 16 | 17 | fuselage: 18 | length: 30.41 19 | height: 7.82 20 | width: 2.49 21 | 22 | wing: 23 | area: 119.2 24 | span: 30.36 25 | mac: 4.76 26 | sweep: 36 27 | t/c: 0.1 28 | 29 | flaps: 30 | type: single-slotted 31 | area: null 32 | bf/b: null 33 | lambda_f: 0.900 34 | cf/c: 0.150 35 | Sf/S: 0.150 36 | 37 | cruise: 38 | height: 12000 39 | mach: 0.85 40 | range: 13000 41 | 42 | engine: 43 | type: turbofan 44 | mount: rear 45 | number: 2 46 | default: BR700-725A1-12 47 | options: 48 | - BR700-725A1-12 49 | 50 | drag: 51 | cd0: 0.012 52 | k: 0.047 53 | e: 0.881 54 | gears: 0.012 55 | -------------------------------------------------------------------------------- /openap/data/dragpolar/_synonym.csv: -------------------------------------------------------------------------------- 1 | orig,new 2 | a124,b744 3 | a19n,a20n 4 | a21n,a20n 5 | a306,a332 6 | a310,a319 7 | a318,a319 8 | at72,e75l 9 | at75,e75l 10 | at76,e75l 11 | b37m,b38m 12 | b39m,b38m 13 | b3xm,b38m 14 | b733,b734 15 | b735,b734 16 | b762,b752 17 | b763,b752 18 | b773,b77w 19 | b77l,b77w 20 | c25a,c550 21 | c525,c550 22 | c56x,c550 23 | crj2,e75l 24 | crj9,e75l 25 | e145,e75l 26 | e170,e75l 27 | e290,e190 28 | glf5,glf6 29 | gl5t,glf6 30 | lj45,glf6 31 | md11,b77w 32 | pc24,glf6 33 | su95,e75l -------------------------------------------------------------------------------- /openap/data/dragpolar/a20n.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A320neo 2 | 3 | clean: 4 | cd0: 0.017 5 | k: 0.038 6 | e: 0.807 7 | 8 | gears: 0.017 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.176 13 | Sf/S: 0.170 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a319.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A319 2 | 3 | clean: 4 | cd0: 0.020 5 | k: 0.039 6 | e: 0.783 7 | 8 | gears: 0.017 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.176 13 | Sf/S: 0.170 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a320.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A320 2 | 3 | clean: 4 | cd0: 0.018 5 | k: 0.039 6 | e: 0.799 7 | 8 | gears: 0.017 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.176 13 | Sf/S: 0.170 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a321.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A321 2 | 3 | clean: 4 | cd0: 0.020 5 | k: 0.041 6 | e: 0.785 7 | 8 | gears: 0.019 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.176 13 | Sf/S: 0.165 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a332.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A330-200 2 | 3 | clean: 4 | cd0: 0.022 5 | k: 0.041 6 | e: 0.774 7 | 8 | gears: 0.014 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a333.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A330-300 2 | 3 | clean: 4 | cd0: 0.022 5 | k: 0.041 6 | e: 0.773 7 | 8 | gears: 0.014 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a343.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A340-300 2 | 3 | clean: 4 | cd0: 0.019 5 | k: 0.040 6 | e: 0.799 7 | 8 | gears: 0.016 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a359.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A350-900 2 | 3 | clean: 4 | cd0: 0.022 5 | k: 0.043 6 | e: 0.783 7 | 8 | gears: 0.013 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/a388.yml: -------------------------------------------------------------------------------- 1 | aircraft: Airbus A380-800 2 | 3 | clean: 4 | cd0: 0.016 5 | k: 0.050 6 | e: 0.855 7 | 8 | gears: 0.012 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b38m.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737 MAX 8 2 | 3 | clean: 4 | cd0: 0.020 5 | k: 0.042 6 | e: 0.797 7 | 8 | gears: 0.018 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b734.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-400 2 | 3 | clean: 4 | cd0: 0.020 5 | k: 0.044 6 | e: 0.793 7 | 8 | gears: 0.021 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b737.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-700 2 | 3 | clean: 4 | cd0: 0.022 5 | k: 0.043 6 | e: 0.780 7 | 8 | gears: 0.016 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b738.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-800 2 | 3 | clean: 4 | cd0: 0.019 5 | k: 0.042 6 | e: 0.799 7 | 8 | gears: 0.017 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b739.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 737-900 2 | 3 | clean: 4 | cd0: 0.020 5 | k: 0.042 6 | e: 0.797 7 | 8 | gears: 0.018 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b744.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 747-400 2 | 3 | clean: 4 | cd0: 0.021 5 | k: 0.049 6 | e: 0.816 7 | 8 | gears: 0.015 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.198 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b748.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 747-8 2 | 3 | clean: 4 | cd0: 0.021 5 | k: 0.047 6 | e: 0.806 7 | 8 | gears: 0.015 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.186 13 | Sf/S: 0.142 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b752.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 757-200 2 | 3 | clean: 4 | cd0: 0.021 5 | k: 0.049 6 | e: 0.813 7 | 8 | gears: 0.016 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.187 13 | Sf/S: 0.167 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b772.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 777-200/200ER 2 | 3 | clean: 4 | cd0: 0.024 5 | k: 0.047 6 | e: 0.783 7 | 8 | gears: 0.014 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.166 13 | Sf/S: 0.157 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b77w.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 777-300ER 2 | 3 | clean: 4 | cd0: 0.024 5 | k: 0.043 6 | e: 0.765 7 | 8 | gears: 0.016 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.156 13 | Sf/S: 0.154 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b788.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 787-8 2 | 3 | clean: 4 | cd0: 0.017 5 | k: 0.041 6 | e: 0.819 7 | 8 | gears: 0.013 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/b789.yml: -------------------------------------------------------------------------------- 1 | aircraft: Boeing 787-9 2 | 3 | clean: 4 | cd0: 0.022 5 | k: 0.042 6 | e: 0.783 7 | 8 | gears: 0.014 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/c550.yml: -------------------------------------------------------------------------------- 1 | aircraft: Cessna Citation II 2 | 3 | clean: 4 | cd0: 0.028 5 | k: 0.049 6 | e: 0.818 7 | 8 | gears: 0.020 9 | 10 | flaps: 11 | lambda_f: 1.700 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/e190.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer E190 (LR) 2 | 3 | clean: 4 | cd0: 0.018 5 | k: 0.044 6 | e: 0.817 7 | 8 | gears: 0.016 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/e195.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer E195 (LR) 2 | 3 | clean: 4 | cd0: 0.021 5 | k: 0.045 6 | e: 0.795 7 | 8 | gears: 0.017 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/e75l.yml: -------------------------------------------------------------------------------- 1 | aircraft: Embraer E175 (LR) 2 | 3 | clean: 4 | cd0: 0.018 5 | k: 0.042 6 | e: 0.809 7 | 8 | gears: 0.017 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/dragpolar/glf6.yml: -------------------------------------------------------------------------------- 1 | aircraft: Gulfstream G650 / 650ER 2 | 3 | clean: 4 | cd0: 0.012 5 | k: 0.047 6 | e: 0.881 7 | 8 | gears: 0.012 9 | 10 | flaps: 11 | lambda_f: 0.900 12 | cf/c: 0.150 13 | Sf/S: 0.150 14 | -------------------------------------------------------------------------------- /openap/data/fuel/fuel_models.csv: -------------------------------------------------------------------------------- 1 | typecode,engine_type,c1,c2,c3 2 | A318,CFM56-5B9/3,1.5141505829176147,1.6496560663976285,3.20352657122113 3 | A319,V2524-A5,1.6973026131805655,1.9118051500437014,2.8873045077293376 4 | A320,CFM56-5B4/P,1.8887820220217584,2.2438479685159014,2.361883847949703 5 | A321,V2533-A5,2.509571815383611,2.0294480218528728,1.8743884048710222 6 | A332,Trent 772,5.480882768126624,1.056627115240077,2.977002705484859 7 | A333,Trent 772,6.04194455453213,1.0110461653727705,2.3921617661102856 8 | B734,CFM56-3C-1,2.4155999999999995,2.370353560098578,0.3196311597480692 9 | B737,CFM56-7B26,2.011953122507215,1.4267022643939695,3.613837770854394 10 | B738,CFM56-7B26E,2.026614095766349,1.8433356145414999,2.4847042845050766 11 | B739,CFM56-7B27E,2.5883999999999996,1.6561390223304782,1.251565121584453 12 | E170,CF34-8E5,1.3037241218695619,2.90703362427305,0.6266240787125034 13 | E190,CF34-10E5,1.5968137761775374,2.4698931997866773,0.6564641690174086 14 | E195,CF34-10E5A1,1.6604011190910724,2.0410650337561758,1.3213420733419976 15 | E75L,CF34-8E5,1.2736342408013355,2.7349180654435266,0.7169080532903974 16 | default,default,1.8497366218576496,2.0668722638298687,1.5510804722001057 17 | -------------------------------------------------------------------------------- /openap/data/nav/fix.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/openap/data/nav/fix.dat -------------------------------------------------------------------------------- /openap/data/nav/nav.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/openap/data/nav/nav.dat -------------------------------------------------------------------------------- /openap/data/wrap/_synonym.csv: -------------------------------------------------------------------------------- 1 | orig,new 2 | a124,b744 3 | a19n,a320 4 | a20n,a320 5 | a21n,a320 6 | a306,a332 7 | a310,a319 8 | a318,a319 9 | a359,b789 10 | at72,e190 11 | at75,e190 12 | at76,e190 13 | b37m,b737 14 | b38m,b737 15 | b39m,b737 16 | b3xm,b737 17 | b733,b737 18 | b734,b737 19 | b735,b737 20 | b748,b744 21 | b762,b752 22 | b772,b77w 23 | b773,b77w 24 | b77l,b77w 25 | c25a,e190 26 | c525,e190 27 | c550,e190 28 | c56x,e190 29 | crj2,e190 30 | crj9,e190 31 | e145,e190 32 | e170,e190 33 | e75l,e190 34 | e195,e190 35 | e290,e190 36 | glf5,e190 37 | gl5t,e190 38 | glf6,e190 39 | lj45,e190 40 | md11,b77w 41 | pc24,e190 42 | su95,e190 -------------------------------------------------------------------------------- /openap/data/wrap/a319.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 82.7 72.5 92.9 norm 82.71|7.10 3 | to_d_tof takeoff Takeoff distance 1.51 1.06 2.41 gamma 8.56|0.43|0.14 4 | to_acc_tof takeoff Mean takeoff accelaration 1.84 1.38 2.29 norm 1.84|0.28 5 | ic_va_avg initial_climb Mean airspeed 80 73 87 norm 80.26|4.86 6 | ic_vs_avg initial_climb Mean vertical rate 12.27 9.52 15.04 norm 12.28|1.68 7 | cl_d_range climb Climb range 206 157 348 gamma 5.16|138.89|16.28 8 | cl_v_cas_const climb Constant CAS 149 140 159 norm 150.02|6.06 9 | cl_v_mach_const climb Constant Mach 0.77 0.74 0.8 beta 16.21|6.30|0.62|0.20 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.2 2.1 6 gamma 5.22|0.99|0.53 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.9 8 9.8 norm 8.93|0.55 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 11.1 8.41 13.8 norm 11.11|1.64 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 10.15 7.63 12.67 norm 10.15|1.53 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.07 3.99 8.16 norm 6.08|1.27 15 | cr_d_range cruise Cruise range 299 182 4019 gamma 1.19|173.76|669.46 16 | cr_v_cas_mean cruise Mean cruise CAS 125 119 139 gamma 4.75|114.21|2.92 17 | cr_v_cas_max cruise Maximum cruise CAS 128 121 148 gamma 3.54|116.92|4.46 18 | cr_v_mach_mean cruise Mean cruise Mach 0.77 0.74 0.8 norm 0.77|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.79 0.75 0.82 norm 0.79|0.02 20 | cr_h_init cruise Initial cruise altitude 11.54 10.27 11.97 beta 7.48|2.22|8.11|4.08 21 | cr_h_mean cruise Mean cruise altitude 11.54 10.21 11.97 beta 7.00|2.13|8.10|4.09 22 | cr_h_max cruise Maximum cruise altitude 11.64 10.3 12.03 beta 6.12|1.89|8.42|3.79 23 | de_d_range descent Descent range 233 176 473 gamma 3.15|163.83|32.50 24 | de_v_mach_const descent Constant Mach 0.76 0.72 0.8 norm 0.76|0.03 25 | de_v_cas_const descent Constant CAS 145 136 164 gamma 6.49|126.84|3.35 26 | de_h_mach_const descent Constant Mach crossover altitude 9.2 7.7 10.7 norm 9.18|0.92 27 | de_h_cas_const descent Constant CAS crossover altitude 5.3 2.6 8.1 norm 5.34|1.66 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.87 -12.13 -2.41 beta 3.27|2.09|-16.27|15.37 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.84 -14.22 -5.45 norm -9.83|2.66 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -5.88 -7.69 -4.07 norm -5.88|1.10 31 | fa_va_avg final_approach Mean airspeed 67 63 76 gamma 6.43|57.71|1.84 32 | fa_vs_avg final_approach Mean vertical rate -3.42 -4.19 -2.65 norm -3.42|0.47 33 | fa_agl final_approach Approach angle 3.15 2.25 4.05 norm 3.15|0.55 34 | ld_v_app landing Touchdown speed 66.2 61 71.5 norm 66.23|3.65 35 | ld_d_brk landing Braking distance 1.38 0.71 4.18 gamma 2.62|0.28|0.68 36 | ld_acc_brk landing Mean braking acceleration -0.87 -1.79 -0.35 beta 5.62|2.87|-2.90|2.86 -------------------------------------------------------------------------------- /openap/data/wrap/a320.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 85.3 74.5 96 norm 85.29|7.47 3 | to_d_tof takeoff Takeoff distance 1.65 1.06 2.24 norm 1.65|0.36 4 | to_acc_tof takeoff Mean takeoff accelaration 1.93 1.5 2.37 norm 1.93|0.27 5 | ic_va_avg initial_climb Mean airspeed 83 76 89 norm 83.31|4.64 6 | ic_vs_avg initial_climb Mean vertical rate 12.59 9.15 16.04 norm 12.59|2.09 7 | cl_d_range climb Climb range 257 141 374 norm 258.08|45.16 8 | cl_v_cas_const climb Constant CAS 151 140 161 norm 151.04|6.27 9 | cl_v_mach_const climb Constant Mach 0.78 0.73 0.8 beta 12.39|3.68|0.60|0.22 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.7 1.9 5.4 norm 3.66|1.07 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.8 7.9 9.8 norm 8.80|0.58 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 10.25 7.63 12.87 norm 10.25|1.59 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.43 6.28 10.6 norm 8.44|1.31 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 5.28 3.6 6.97 norm 5.29|1.03 15 | cr_d_range cruise Cruise range 856 487 4352 gamma 1.71|453.95|569.12 16 | cr_v_cas_mean cruise Mean cruise CAS 133 124 143 norm 133.62|5.82 17 | cr_v_cas_max cruise Maximum cruise CAS 135 128 154 gamma 4.89|121.28|3.70 18 | cr_v_mach_mean cruise Mean cruise Mach 0.78 0.75 0.8 beta 17.82|5.05|0.62|0.20 19 | cr_v_mach_max cruise Maximum cruise Mach 0.8 0.77 0.83 norm 0.80|0.02 20 | cr_h_init cruise Initial cruise altitude 10.82 9.79 11.85 norm 10.82|0.63 21 | cr_h_mean cruise Mean cruise altitude 10.92 10 11.84 norm 10.92|0.56 22 | cr_h_max cruise Maximum cruise altitude 11.06 10.2 11.92 norm 11.06|0.52 23 | de_d_range descent Descent range 234 180 457 gamma 3.15|169.28|30.17 24 | de_v_mach_const descent Constant Mach 0.77 0.73 0.81 norm 0.77|0.02 25 | de_v_cas_const descent Constant CAS 144 135 163 gamma 7.43|124.57|3.15 26 | de_h_mach_const descent Constant Mach crossover altitude 9.6 7.9 10.7 beta 4.91|2.91|6.03|5.37 27 | de_h_cas_const descent Constant CAS crossover altitude 5.7 3 8.5 norm 5.75|1.66 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.76 -13.45 -2.26 beta 3.52|1.95|-19.00|18.22 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -10.03 -14.68 -5.35 norm -10.02|2.84 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.08 -7.88 -4.27 norm -6.08|1.10 31 | fa_va_avg final_approach Mean airspeed 72 67 77 norm 72.43|3.49 32 | fa_vs_avg final_approach Mean vertical rate -3.55 -4.18 -2.91 norm -3.55|0.39 33 | fa_agl final_approach Approach angle 3.06 2.4 3.73 norm 3.07|0.41 34 | ld_v_app landing Touchdown speed 69.4 62.7 76 norm 69.37|4.61 35 | ld_d_brk landing Braking distance 1.08 0.63 3.21 gamma 2.36|0.35|0.54 36 | ld_acc_brk landing Mean braking acceleration -1.22 -1.97 -0.47 norm -1.22|0.46 -------------------------------------------------------------------------------- /openap/data/wrap/a321.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 90.8 80.1 101.5 norm 90.80|7.45 3 | to_d_tof takeoff Takeoff distance 1.85 1.18 2.52 norm 1.85|0.41 4 | to_acc_tof takeoff Mean takeoff accelaration 1.95 1.49 2.42 norm 1.95|0.28 5 | ic_va_avg initial_climb Mean airspeed 86 79 94 norm 86.60|5.22 6 | ic_vs_avg initial_climb Mean vertical rate 13.21 9.34 17.11 norm 13.22|2.36 7 | cl_d_range climb Climb range 230 164 426 gamma 4.93|140.03|22.96 8 | cl_v_cas_const climb Constant CAS 155 144 166 norm 155.67|6.67 9 | cl_v_mach_const climb Constant Mach 0.77 0.74 0.81 norm 0.77|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.7 2.1 5.4 norm 3.75|0.98 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.4 7.5 9.3 norm 8.41|0.56 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 9.38 7.03 11.73 norm 9.38|1.43 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.17 5.91 10.44 norm 8.17|1.38 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 5.19 3.33 7.05 norm 5.19|1.13 15 | cr_d_range cruise Cruise range 610 196 5338 gamma 1.56|162.63|789.69 16 | cr_v_cas_mean cruise Mean cruise CAS 138 127 149 norm 138.28|6.66 17 | cr_v_cas_max cruise Maximum cruise CAS 140 130 162 gamma 5.67|121.09|4.11 18 | cr_v_mach_mean cruise Mean cruise Mach 0.78 0.75 0.8 norm 0.78|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.79 0.77 0.84 gamma 13.42|0.72|0.01 20 | cr_h_init cruise Initial cruise altitude 10.34 9.23 11.46 norm 10.35|0.68 21 | cr_h_mean cruise Mean cruise altitude 10.41 9.36 11.46 norm 10.41|0.64 22 | cr_h_max cruise Maximum cruise altitude 10.56 9.6 11.52 norm 10.56|0.58 23 | de_d_range descent Descent range 236 174 463 gamma 3.63|159.06|29.37 24 | de_v_mach_const descent Constant Mach 0.77 0.74 0.8 norm 0.77|0.02 25 | de_v_cas_const descent Constant CAS 150 138 163 norm 150.75|7.62 26 | de_h_mach_const descent Constant Mach crossover altitude 9 7.8 10.3 norm 9.05|0.76 27 | de_h_cas_const descent Constant CAS crossover altitude 6.2 3.3 8.5 beta 2.88|2.40|1.57|8.08 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.52 -11.86 -2.17 beta 4.06|2.31|-17.23|16.72 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.41 -13.64 -5.15 norm -9.40|2.58 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.01 -7.78 -4.24 norm -6.01|1.08 31 | fa_va_avg final_approach Mean airspeed 75 70 80 norm 75.41|3.61 32 | fa_vs_avg final_approach Mean vertical rate -3.69 -4.36 -3.01 norm -3.68|0.41 33 | fa_agl final_approach Approach angle 3.01 2.36 3.66 norm 3.01|0.39 34 | ld_v_app landing Touchdown speed 72.9 66.9 78.9 norm 72.94|4.17 35 | ld_d_brk landing Braking distance 1.55 0.64 3.94 beta 1.50|2.41|0.34|4.65 36 | ld_acc_brk landing Mean braking acceleration -1.21 -1.98 -0.45 norm -1.21|0.47 -------------------------------------------------------------------------------- /openap/data/wrap/a332.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 89.9 77.9 101.9 norm 89.89|8.34 3 | to_d_tof takeoff Takeoff distance 1.97 1.16 2.79 norm 1.98|0.49 4 | to_acc_tof takeoff Mean takeoff accelaration 1.75 1.32 2.18 norm 1.75|0.26 5 | ic_va_avg initial_climb Mean airspeed 86 78 94 norm 86.44|5.43 6 | ic_vs_avg initial_climb Mean vertical rate 12.48 8.41 16.57 norm 12.49|2.48 7 | cl_d_range climb Climb range 297 152 442 norm 297.55|56.26 8 | cl_v_cas_const climb Constant CAS 152 143 162 norm 152.98|6.05 9 | cl_v_mach_const climb Constant Mach 0.81 0.76 0.84 beta 11.67|3.95|0.63|0.22 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.6 2.3 6 gamma 8.62|0.62|0.39 11 | cl_h_mach_const climb Constant Mach crossover altitude 9.2 8.3 10.2 norm 9.25|0.60 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 9.53 7.04 12.02 norm 9.53|1.51 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 7.98 5.51 10.47 norm 7.99|1.51 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 5.23 3.03 7.45 norm 5.24|1.34 15 | cr_d_range cruise Cruise range 1023 229 11012 beta 1.11|2.41|187.36|12081.93 16 | cr_v_cas_mean cruise Mean cruise CAS 129 123 143 gamma 6.40|116.17|2.49 17 | cr_v_cas_max cruise Maximum cruise CAS 135 126 160 gamma 3.86|120.04|5.41 18 | cr_v_mach_mean cruise Mean cruise Mach 0.81 0.79 0.84 norm 0.81|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.84 0.81 0.87 norm 0.84|0.02 20 | cr_h_init cruise Initial cruise altitude 11.33 9.99 12.68 norm 11.34|0.82 21 | cr_h_mean cruise Mean cruise altitude 11.67 10.71 12.63 norm 11.67|0.58 22 | cr_h_max cruise Maximum cruise altitude 11.95 11.12 12.79 norm 11.96|0.51 23 | de_d_range descent Descent range 283 207 505 gamma 4.98|180.10|25.87 24 | de_v_mach_const descent Constant Mach 0.81 0.76 0.84 beta 10.12|3.59|0.65|0.20 25 | de_v_cas_const descent Constant CAS 152 136 162 beta 4.92|2.86|119.57|49.23 26 | de_h_mach_const descent Constant Mach crossover altitude 10.2 8.4 11.4 beta 4.18|2.78|6.90|5.17 27 | de_h_cas_const descent Constant CAS crossover altitude 6.3 3.6 9 norm 6.29|1.63 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -6.28 -12.53 -2.85 beta 4.74|2.60|-18.78|17.84 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.39 -13.44 -5.31 norm -9.38|2.47 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -5.82 -7.56 -4.07 norm -5.82|1.06 31 | fa_va_avg final_approach Mean airspeed 72 67 78 norm 72.83|3.65 32 | fa_vs_avg final_approach Mean vertical rate -3.62 -4.24 -2.99 norm -3.62|0.38 33 | fa_agl final_approach Approach angle 2.98 2.44 3.53 norm 2.99|0.33 34 | ld_v_app landing Touchdown speed 70.7 65.5 75.9 norm 70.67|3.61 35 | ld_d_brk landing Braking distance 1.54 0.87 3.67 gamma 3.53|0.35|0.47 36 | ld_acc_brk landing Mean braking acceleration -1.18 -1.85 -0.5 norm -1.18|0.41 -------------------------------------------------------------------------------- /openap/data/wrap/a333.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 89.9 77.8 102.1 norm 89.97|8.44 3 | to_d_tof takeoff Takeoff distance 1.86 1.27 3.01 gamma 8.89|0.45|0.18 4 | to_acc_tof takeoff Mean takeoff accelaration 1.72 1.32 2.13 norm 1.73|0.25 5 | ic_va_avg initial_climb Mean airspeed 87 79 94 norm 87.04|4.98 6 | ic_vs_avg initial_climb Mean vertical rate 12.28 8.47 16.11 norm 12.29|2.32 7 | cl_d_range climb Climb range 287 174 456 beta 2.84|4.07|153.70|358.08 8 | cl_v_cas_const climb Constant CAS 153 142 165 norm 153.59|7.03 9 | cl_v_mach_const climb Constant Mach 0.8 0.75 0.84 norm 0.80|0.03 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.1 1.9 6.2 gamma 4.75|0.84|0.61 11 | cl_h_mach_const climb Constant Mach crossover altitude 9.1 8 10.2 norm 9.08|0.66 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 8.82 6.46 11.19 norm 8.82|1.44 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 7.65 5.24 10.08 norm 7.66|1.47 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 4.56 3.14 7.9 gamma 5.77|1.63|0.61 15 | cr_d_range cruise Cruise range 789 604 8911 beta 1.02|1.72|576.76|8731.39 16 | cr_v_cas_mean cruise Mean cruise CAS 131 124 144 gamma 6.44|117.90|2.41 17 | cr_v_cas_max cruise Maximum cruise CAS 137 128 161 beta 2.59|7.64|123.03|77.33 18 | cr_v_mach_mean cruise Mean cruise Mach 0.81 0.79 0.83 norm 0.81|0.01 19 | cr_v_mach_max cruise Maximum cruise Mach 0.83 0.81 0.87 gamma 17.42|0.76|0.00 20 | cr_h_init cruise Initial cruise altitude 11.1 9.74 12.46 norm 11.10|0.83 21 | cr_h_mean cruise Mean cruise altitude 11.49 10.54 12.45 norm 11.50|0.58 22 | cr_h_max cruise Maximum cruise altitude 12.53 10.63 12.48 beta 4.06|0.99|8.87|3.66 23 | de_d_range descent Descent range 284 214 508 gamma 4.31|193.23|27.46 24 | de_v_mach_const descent Constant Mach 0.81 0.77 0.84 norm 0.81|0.02 25 | de_v_cas_const descent Constant CAS 150 137 162 norm 150.13|7.55 26 | de_h_mach_const descent Constant Mach crossover altitude 10.2 8.5 11.3 beta 4.10|2.55|6.93|4.96 27 | de_h_cas_const descent Constant CAS crossover altitude 6.3 3.4 9.1 norm 6.28|1.73 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -6.17 -12.5 -2.68 beta 4.37|2.47|-18.33|17.48 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.03 -13.07 -4.96 norm -9.02|2.46 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -5.74 -7.41 -4.06 norm -5.74|1.02 31 | fa_va_avg final_approach Mean airspeed 73 69 78 norm 73.84|3.33 32 | fa_vs_avg final_approach Mean vertical rate -3.74 -4.22 -2.97 gamma 16.90|-5.22|0.09 33 | fa_agl final_approach Approach angle 2.97 2.44 3.49 norm 2.97|0.32 34 | ld_v_app landing Touchdown speed 71.5 65.5 77.6 norm 71.55|4.18 35 | ld_d_brk landing Braking distance 1.48 0.81 3.79 gamma 3.19|0.33|0.53 36 | ld_acc_brk landing Mean braking acceleration -1.2 -1.86 -0.53 norm -1.20|0.40 -------------------------------------------------------------------------------- /openap/data/wrap/a343.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 87 76 98.2 norm 87.08|7.70 3 | to_d_tof takeoff Takeoff distance 2.16 1.46 3.82 gamma 5.71|0.71|0.31 4 | to_acc_tof takeoff Mean takeoff accelaration 1.4 1.01 1.8 norm 1.40|0.24 5 | ic_va_avg initial_climb Mean airspeed 84 76 93 beta 3.76|4.87|69.49|35.32 6 | ic_vs_avg initial_climb Mean vertical rate 6.44 4.82 11.01 gamma 4.18|3.43|0.95 7 | cl_d_range climb Climb range 293 154 431 norm 293.32|53.81 8 | cl_v_cas_const climb Constant CAS 155 144 169 beta 6.81|9.57|129.33|64.98 9 | cl_v_mach_const climb Constant Mach 0.78 0.75 0.81 norm 0.78|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.6 1.7 5.5 norm 3.61|1.16 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.5 7.3 9.8 beta 5.08|5.89|6.16|5.14 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 6.54 5.09 10.41 gamma 4.51|3.79|0.78 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 6.59 4.87 10.05 gamma 8.32|2.54|0.55 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 4.08 2.65 7.17 gamma 6.86|0.95|0.53 15 | cr_d_range cruise Cruise range 6021 -1865 13929 norm 6032.29|3066.01 16 | cr_v_cas_mean cruise Mean cruise CAS 138 128 148 norm 138.63|6.17 17 | cr_v_cas_max cruise Maximum cruise CAS 149 132 165 norm 149.24|9.97 18 | cr_v_mach_mean cruise Mean cruise Mach 0.81 0.79 0.83 norm 0.81|0.01 19 | cr_v_mach_max cruise Maximum cruise Mach 0.83 0.81 0.88 gamma 11.93|0.77|0.01 20 | cr_h_init cruise Initial cruise altitude 10.01 8.92 12.09 gamma 9.56|7.32|0.32 21 | cr_h_mean cruise Mean cruise altitude 10.86 10.12 12.1 gamma 15.04|8.66|0.16 22 | cr_h_max cruise Maximum cruise altitude 11.7 10.61 12.35 beta 6.39|3.32|9.14|3.66 23 | de_d_range descent Descent range 281 203 489 gamma 5.92|169.03|22.84 24 | de_v_mach_const descent Constant Mach 0.81 0.76 0.84 beta 7.14|4.09|0.69|0.17 25 | de_v_cas_const descent Constant CAS 154 138 165 beta 3.94|2.85|125.92|46.48 26 | de_h_mach_const descent Constant Mach crossover altitude 9.9 8.3 11.1 beta 3.65|2.90|7.05|4.83 27 | de_h_cas_const descent Constant CAS crossover altitude 5.8 3 8.8 beta 2.75|2.94|1.39|9.27 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.84 -12.15 -2.68 beta 4.78|2.43|-18.58|17.56 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.27 -13.56 -4.97 norm -9.26|2.61 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -5.5 -7.22 -3.78 norm -5.50|1.04 31 | fa_va_avg final_approach Mean airspeed 74 69 79 norm 74.30|3.48 32 | fa_vs_avg final_approach Mean vertical rate -3.64 -4.31 -2.97 norm -3.64|0.41 33 | fa_agl final_approach Approach angle 3.04 2.47 3.61 norm 3.04|0.35 34 | ld_v_app landing Touchdown speed 72.2 67.5 77 norm 72.26|3.30 35 | ld_d_brk landing Braking distance 1.65 0.92 3.99 gamma 3.45|0.37|0.52 36 | ld_acc_brk landing Mean braking acceleration -1.01 -1.83 -0.49 beta 4.33|2.73|-2.58|2.38 -------------------------------------------------------------------------------- /openap/data/wrap/a388.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 89.9 75.4 104.4 norm 89.93|10.07 3 | to_d_tof takeoff Takeoff distance 2.56 1.35 3.78 norm 2.56|0.74 4 | to_acc_tof takeoff Mean takeoff accelaration 1.35 1.04 1.66 norm 1.35|0.19 5 | ic_va_avg initial_climb Mean airspeed 88 80 96 norm 88.15|5.64 6 | ic_vs_avg initial_climb Mean vertical rate 5.65 4.4 8.94 gamma 4.76|3.22|0.65 7 | cl_d_range climb Climb range 296 200 446 beta 3.23|5.18|179.46|335.24 8 | cl_v_cas_const climb Constant CAS 163 155 170 norm 163.39|4.51 9 | cl_v_mach_const climb Constant Mach 0.84 0.8 0.86 beta 12.23|5.32|0.72|0.17 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.3 1.3 5.3 norm 3.29|1.24 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.9 8.2 9.7 norm 8.94|0.47 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 7.85 5.95 9.75 norm 7.85|1.16 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 7.51 5.2 9.82 norm 7.51|1.40 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 5.56 3.23 7.91 norm 5.57|1.42 15 | cr_d_range cruise Cruise range 4348 892 20565 gamma 2.81|246.73|2274.81 16 | cr_v_cas_mean cruise Mean cruise CAS 136 130 145 beta 3.32|5.27|126.00|29.75 17 | cr_v_cas_max cruise Maximum cruise CAS 145 134 164 beta 2.02|3.21|130.38|46.65 18 | cr_v_mach_mean cruise Mean cruise Mach 0.84 0.82 0.86 norm 0.84|0.01 19 | cr_v_mach_max cruise Maximum cruise Mach 0.87 0.85 0.9 gamma 16.14|0.80|0.00 20 | cr_h_init cruise Initial cruise altitude 11.55 9.3 12.23 beta 3.82|1.66|7.49|5.01 21 | cr_h_mean cruise Mean cruise altitude 11.73 10.87 12.28 beta 7.22|3.92|9.59|3.14 22 | cr_h_max cruise Maximum cruise altitude 12.06 11.52 12.6 norm 12.06|0.33 23 | de_d_range descent Descent range 310 238 528 gamma 4.73|213.47|25.87 24 | de_v_mach_const descent Constant Mach 0.83 0.8 0.87 norm 0.83|0.02 25 | de_v_cas_const descent Constant CAS 154 142 167 norm 154.84|7.74 26 | de_h_mach_const descent Constant Mach crossover altitude 10.1 8.6 11.5 norm 10.06|0.88 27 | de_h_cas_const descent Constant CAS crossover altitude 6.6 3.9 9.4 norm 6.64|1.69 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -6.06 -11.9 -2.97 beta 3.43|2.08|-15.98|14.36 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -8.36 -11.74 -4.97 norm -8.36|2.06 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -5.48 -6.93 -4.02 norm -5.48|0.88 31 | fa_va_avg final_approach Mean airspeed 73 68 77 norm 73.28|3.02 32 | fa_vs_avg final_approach Mean vertical rate -3.71 -4.13 -2.92 gamma 9.49|-4.74|0.12 33 | fa_agl final_approach Approach angle 2.9 2.42 3.38 norm 2.90|0.29 34 | ld_v_app landing Touchdown speed 70 62.1 78 norm 70.00|5.52 35 | ld_d_brk landing Braking distance 2.26 0.73 3.8 norm 2.26|0.93 36 | ld_acc_brk landing Mean braking acceleration -1.01 -1.51 -0.52 norm -1.01|0.30 -------------------------------------------------------------------------------- /openap/data/wrap/b737.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 83.6 72.3 94.8 norm 83.58|7.82 3 | to_d_tof takeoff Takeoff distance 1.5 1.03 2.58 gamma 5.97|0.52|0.20 4 | to_acc_tof takeoff Mean takeoff accelaration 1.77 1.31 2.23 norm 1.77|0.28 5 | ic_va_avg initial_climb Mean airspeed 81 71 91 norm 81.31|6.79 6 | ic_vs_avg initial_climb Mean vertical rate 11.93 8.05 15.83 norm 11.94|2.37 7 | cl_d_range climb Climb range 204 155 348 gamma 5.17|136.24|16.48 8 | cl_v_cas_const climb Constant CAS 151 139 164 norm 151.95|7.82 9 | cl_v_mach_const climb Constant Mach 0.78 0.72 0.81 beta 33.60|3.10|0.26|0.56 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.4 2.2 6.1 gamma 6.82|0.72|0.46 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.9 7.9 9.8 norm 8.85|0.59 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 11.4 8.01 14.82 norm 11.41|2.07 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 11.71 8.49 14.93 norm 11.71|1.96 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.74 4.4 9.08 norm 6.74|1.42 15 | cr_d_range cruise Cruise range 453 175 4929 gamma 1.38|156.17|773.74 16 | cr_v_cas_mean cruise Mean cruise CAS 122 115 136 gamma 11.06|103.01|1.94 17 | cr_v_cas_max cruise Maximum cruise CAS 126 118 150 gamma 3.76|111.86|5.16 18 | cr_v_mach_mean cruise Mean cruise Mach 0.78 0.74 0.8 beta 14.90|4.49|0.63|0.19 19 | cr_v_mach_max cruise Maximum cruise Mach 0.8 0.76 0.83 norm 0.80|0.02 20 | cr_h_init cruise Initial cruise altitude 12.52 10.36 12.47 beta 5.29|0.98|7.50|5.02 21 | cr_h_mean cruise Mean cruise altitude 11.74 10.73 12.75 norm 11.74|0.61 22 | cr_h_max cruise Maximum cruise altitude 11.9 11.03 12.78 norm 11.90|0.53 23 | de_d_range descent Descent range 244 173 566 gamma 2.89|159.35|44.87 24 | de_v_mach_const descent Constant Mach 0.78 0.7 0.81 beta 22.01|2.63|0.28|0.54 25 | de_v_cas_const descent Constant CAS 146 133 159 norm 146.60|7.70 26 | de_h_mach_const descent Constant Mach crossover altitude 9.6 8.1 11.2 norm 9.63|0.95 27 | de_h_cas_const descent Constant CAS crossover altitude 5.7 3 8.5 norm 5.73|1.69 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.63 -13.13 -2.29 beta 2.76|1.69|-17.10|16.02 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.39 -14.21 -4.55 norm -9.38|2.94 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -5.85 -7.84 -3.86 norm -5.85|1.21 31 | fa_va_avg final_approach Mean airspeed 70 65 80 gamma 7.33|58.48|1.90 32 | fa_vs_avg final_approach Mean vertical rate -3.58 -4.45 -2.7 norm -3.58|0.53 33 | fa_agl final_approach Approach angle 3.08 2.28 3.87 norm 3.08|0.48 34 | ld_v_app landing Touchdown speed 68.8 62.9 74.6 norm 68.78|4.05 35 | ld_d_brk landing Braking distance 1.91 0.66 4.39 beta 1.32|1.63|0.35|4.63 36 | ld_acc_brk landing Mean braking acceleration -0.83 -1.9 -0.31 beta 5.10|2.45|-3.08|3.04 -------------------------------------------------------------------------------- /openap/data/wrap/b738.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 86.5 75 98 norm 86.54|7.99 3 | to_d_tof takeoff Takeoff distance 1.64 1.13 2.63 gamma 9.42|0.37|0.15 4 | to_acc_tof takeoff Mean takeoff accelaration 1.82 1.37 2.28 norm 1.82|0.28 5 | ic_va_avg initial_climb Mean airspeed 87 80 93 norm 87.24|4.53 6 | ic_vs_avg initial_climb Mean vertical rate 12.27 8.29 16.26 norm 12.28|2.42 7 | cl_d_range climb Climb range 216 168 350 gamma 5.40|149.68|15.22 8 | cl_v_cas_const climb Constant CAS 151 140 161 norm 151.22|6.33 9 | cl_v_mach_const climb Constant Mach 0.77 0.75 0.8 norm 0.77|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.6 1.8 5.4 norm 3.64|1.09 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.9 7.9 9.8 norm 8.88|0.57 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 10.61 7.83 13.41 norm 10.62|1.70 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 10.24 7.7 12.8 norm 10.25|1.55 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.2 4.31 8.11 norm 6.21|1.15 15 | cr_d_range cruise Cruise range 929 502 4953 gamma 1.71|463.22|654.96 16 | cr_v_cas_mean cruise Mean cruise CAS 130 121 139 norm 130.27|5.50 17 | cr_v_cas_max cruise Maximum cruise CAS 132 125 151 gamma 5.83|116.60|3.39 18 | cr_v_mach_mean cruise Mean cruise Mach 0.78 0.75 0.8 norm 0.78|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.8 0.77 0.83 norm 0.80|0.02 20 | cr_h_init cruise Initial cruise altitude 11.13 10.16 12.1 norm 11.13|0.59 21 | cr_h_mean cruise Mean cruise altitude 11.23 10.35 12.12 norm 11.24|0.54 22 | cr_h_max cruise Maximum cruise altitude 11.38 10.57 12.19 norm 11.38|0.49 23 | de_d_range descent Descent range 241 179 472 gamma 3.59|163.64|30.00 24 | de_v_mach_const descent Constant Mach 0.77 0.73 0.81 norm 0.77|0.03 25 | de_v_cas_const descent Constant CAS 145 132 159 norm 145.77|8.27 26 | de_h_mach_const descent Constant Mach crossover altitude 9.7 8.3 11.1 norm 9.68|0.86 27 | de_h_cas_const descent Constant CAS crossover altitude 5.9 3.2 8.7 norm 5.95|1.65 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.8 -12.73 -2.11 beta 3.43|2.10|-17.58|17.11 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.95 -14.39 -5.48 norm -9.94|2.71 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.23 -7.91 -4.53 norm -6.22|1.03 31 | fa_va_avg final_approach Mean airspeed 77 72 82 norm 77.35|3.71 32 | fa_vs_avg final_approach Mean vertical rate -3.84 -4.56 -3.12 norm -3.84|0.44 33 | fa_agl final_approach Approach angle 3.02 2.33 3.72 norm 3.03|0.42 34 | ld_v_app landing Touchdown speed 75.4 69.5 81.3 norm 75.37|4.11 35 | ld_d_brk landing Braking distance 1.25 0.68 3.6 gamma 2.60|0.33|0.57 36 | ld_acc_brk landing Mean braking acceleration -1.36 -2.14 -0.57 norm -1.36|0.48 -------------------------------------------------------------------------------- /openap/data/wrap/b739.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 91.3 77.6 105 norm 91.32|9.53 3 | to_d_tof takeoff Takeoff distance 1.91 1.14 2.9 beta 4.56|6.31|0.42|3.74 4 | to_acc_tof takeoff Mean takeoff accelaration 1.87 1.41 2.32 norm 1.87|0.28 5 | ic_va_avg initial_climb Mean airspeed 91 84 99 norm 91.92|5.26 6 | ic_vs_avg initial_climb Mean vertical rate 12.36 7.85 16.9 norm 12.37|2.75 7 | cl_d_range climb Climb range 239 142 337 norm 239.93|37.90 8 | cl_v_cas_const climb Constant CAS 154 143 166 norm 154.87|6.96 9 | cl_v_mach_const climb Constant Mach 0.78 0.75 0.81 beta 10.40|4.40|0.66|0.16 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.4 2.3 5.9 gamma 6.04|1.09|0.46 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.6 7.7 9.5 norm 8.60|0.56 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 10.18 7.64 12.72 norm 10.18|1.55 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.88 6.66 11.12 norm 8.89|1.36 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 5.55 3.67 7.43 norm 5.55|1.14 15 | cr_d_range cruise Cruise range 338 193 4458 beta 1.05|2.54|180.63|4861.59 16 | cr_v_cas_mean cruise Mean cruise CAS 138 127 149 norm 138.40|6.60 17 | cr_v_cas_max cruise Maximum cruise CAS 145 131 159 norm 145.21|8.55 18 | cr_v_mach_mean cruise Mean cruise Mach 0.78 0.76 0.81 norm 0.78|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.81 0.78 0.84 norm 0.81|0.02 20 | cr_h_init cruise Initial cruise altitude 10.43 9.43 11.43 norm 10.43|0.61 21 | cr_h_mean cruise Mean cruise altitude 10.52 9.63 11.41 norm 10.52|0.54 22 | cr_h_max cruise Maximum cruise altitude 10.74 9.73 11.61 beta 6.51|5.15|8.41|4.08 23 | de_d_range descent Descent range 245 180 505 gamma 3.29|165.75|34.68 24 | de_v_mach_const descent Constant Mach 0.78 0.73 0.8 beta 5.13|2.83|0.68|0.14 25 | de_v_cas_const descent Constant CAS 148 138 159 norm 148.73|6.45 26 | de_h_mach_const descent Constant Mach crossover altitude 9.4 8.2 10.6 norm 9.36|0.73 27 | de_h_cas_const descent Constant CAS crossover altitude 6.5 4.2 8.8 norm 6.46|1.39 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -4.78 -11.29 -1.79 beta 3.42|1.92|-15.82|15.27 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -8.96 -13.87 -4.17 beta 4.39|4.26|-18.26|18.26 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.02 -7.69 -4.35 norm -6.02|1.02 31 | fa_va_avg final_approach Mean airspeed 78 72 83 norm 78.30|3.70 32 | fa_vs_avg final_approach Mean vertical rate -3.92 -4.72 -3.13 norm -3.92|0.48 33 | fa_agl final_approach Approach angle 3.03 2.43 3.64 norm 3.03|0.37 34 | ld_v_app landing Touchdown speed 76.8 70.5 83.2 norm 76.86|4.40 35 | ld_d_brk landing Braking distance 1.45 0.7 4.22 gamma 2.95|0.19|0.65 36 | ld_acc_brk landing Mean braking acceleration -1.33 -2.12 -0.54 norm -1.33|0.48 -------------------------------------------------------------------------------- /openap/data/wrap/b744.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 92.4 79.3 105.4 norm 92.39|9.06 3 | to_d_tof takeoff Takeoff distance 2.29 1.27 3.31 norm 2.29|0.62 4 | to_acc_tof takeoff Mean takeoff accelaration 1.67 1.21 2.13 norm 1.67|0.28 5 | ic_va_avg initial_climb Mean airspeed 91 82 101 beta 4.95|5.64|70.82|44.93 6 | ic_vs_avg initial_climb Mean vertical rate 9.24 6.76 13.74 gamma 11.16|2.72|0.64 7 | cl_d_range climb Climb range 223 175 374 gamma 4.44|160.55|18.26 8 | cl_v_cas_const climb Constant CAS 168 157 180 norm 168.81|7.06 9 | cl_v_mach_const climb Constant Mach 0.84 0.81 0.87 norm 0.84|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.9 2.2 5.6 norm 3.89|1.05 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.3 7.6 9.7 gamma 10.78|6.39|0.20 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 8.66 6 11.33 norm 8.67|1.62 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.77 6.65 13.11 gamma 7.91|3.87|0.71 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.72 4.07 9.39 norm 6.73|1.61 15 | cr_d_range cruise Cruise range 5580 -1544 12725 norm 5590.66|2769.86 16 | cr_v_cas_mean cruise Mean cruise CAS 146 134 158 norm 146.64|7.16 17 | cr_v_cas_max cruise Maximum cruise CAS 157 139 174 norm 157.08|10.62 18 | cr_v_mach_mean cruise Mean cruise Mach 0.84 0.82 0.87 norm 0.84|0.01 19 | cr_v_mach_max cruise Maximum cruise Mach 0.87 0.84 0.92 gamma 16.48|0.77|0.01 20 | cr_h_init cruise Initial cruise altitude 10.28 8.87 11.7 norm 10.28|0.86 21 | cr_h_mean cruise Mean cruise altitude 10.81 9.77 11.84 norm 10.81|0.63 22 | cr_h_max cruise Maximum cruise altitude 11.29 10.17 12.4 beta 6.02|5.99|8.84|4.88 23 | de_d_range descent Descent range 262 195 510 gamma 3.60|178.39|32.24 24 | de_v_mach_const descent Constant Mach 0.83 0.77 0.87 beta 5.70|2.75|0.68|0.21 25 | de_v_cas_const descent Constant CAS 152 139 164 norm 152.44|7.62 26 | de_h_mach_const descent Constant Mach crossover altitude 10 8.7 11.3 norm 10.00|0.79 27 | de_h_cas_const descent Constant CAS crossover altitude 6.6 4 9.2 norm 6.61|1.57 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.43 -12.37 -2.2 beta 3.86|2.07|-17.94|17.19 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.17 -13.85 -4.48 norm -9.16|2.85 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.29 -8.02 -4.55 norm -6.29|1.05 31 | fa_va_avg final_approach Mean airspeed 79 72 85 norm 79.03|4.54 32 | fa_vs_avg final_approach Mean vertical rate -4.03 -4.6 -3.03 gamma 13.46|-5.66|0.13 33 | fa_agl final_approach Approach angle 2.98 2.33 3.64 norm 2.98|0.40 34 | ld_v_app landing Touchdown speed 77.9 71 84.9 norm 77.96|4.85 35 | ld_d_brk landing Braking distance 1.64 0.93 4.06 gamma 3.26|0.41|0.55 36 | ld_acc_brk landing Mean braking acceleration -1.18 -1.98 -0.6 beta 5.71|3.74|-2.92|2.76 -------------------------------------------------------------------------------- /openap/data/wrap/b752.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 90.5 76.8 104.3 norm 90.55|9.57 3 | to_d_tof takeoff Takeoff distance 1.7 0.98 2.66 beta 3.89|5.55|0.41|3.34 4 | to_acc_tof takeoff Mean takeoff accelaration 1.91 1.46 2.37 norm 1.91|0.28 5 | ic_va_avg initial_climb Mean airspeed 88 78 98 norm 88.51|7.17 6 | ic_vs_avg initial_climb Mean vertical rate 12.99 8.6 17.4 norm 13.00|2.68 7 | cl_d_range climb Climb range 220 167 384 gamma 4.69|149.01|19.46 8 | cl_v_cas_const climb Constant CAS 155 144 166 norm 155.59|6.70 9 | cl_v_mach_const climb Constant Mach 0.79 0.75 0.82 norm 0.79|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 4 2.3 5.7 norm 4.00|1.02 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.7 8 9.5 norm 8.75|0.48 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 10.29 7.8 12.8 norm 10.30|1.52 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.95 6.41 11.51 norm 8.96|1.55 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.23 3.8 8.67 norm 6.24|1.48 15 | cr_d_range cruise Cruise range 497 512 6087 beta 0.99|1.86|497.24|5936.62 16 | cr_v_cas_mean cruise Mean cruise CAS 131 123 145 gamma 11.69|110.95|1.94 17 | cr_v_cas_max cruise Maximum cruise CAS 138 128 159 gamma 6.92|116.87|3.65 18 | cr_v_mach_mean cruise Mean cruise Mach 0.79 0.77 0.82 norm 0.79|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.81 0.79 0.86 gamma 9.66|0.75|0.01 20 | cr_h_init cruise Initial cruise altitude 11 9.96 12.05 norm 11.00|0.63 21 | cr_h_mean cruise Mean cruise altitude 11.17 10.28 12.07 norm 11.17|0.54 22 | cr_h_max cruise Maximum cruise altitude 11.64 10.39 12.22 beta 5.67|2.52|8.87|3.67 23 | de_d_range descent Descent range 247 178 504 gamma 3.53|162.02|33.57 24 | de_v_mach_const descent Constant Mach 0.79 0.75 0.82 norm 0.79|0.02 25 | de_v_cas_const descent Constant CAS 151 137 165 norm 151.53|8.29 26 | de_h_mach_const descent Constant Mach crossover altitude 9.4 8 10.8 norm 9.40|0.84 27 | de_h_cas_const descent Constant CAS crossover altitude 6.3 3.9 8.8 norm 6.35|1.50 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -6.8 -12.65 -2.52 beta 2.78|2.22|-15.86|15.25 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.56 -14.46 -4.64 norm -9.55|2.99 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.16 -7.9 -4.41 norm -6.15|1.06 31 | fa_va_avg final_approach Mean airspeed 69 62 76 norm 69.77|4.86 32 | fa_vs_avg final_approach Mean vertical rate -3.41 -4.2 -2.62 norm -3.41|0.48 33 | fa_agl final_approach Approach angle 3.09 2.2 3.98 norm 3.09|0.54 34 | ld_v_app landing Touchdown speed 66.7 60.2 73.2 norm 66.71|4.50 35 | ld_d_brk landing Braking distance 1.21 0.68 3.43 gamma 2.56|0.35|0.55 36 | ld_acc_brk landing Mean braking acceleration -1.03 -1.85 -0.46 beta 4.58|3.08|-2.63|2.53 -------------------------------------------------------------------------------- /openap/data/wrap/b763.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 92.4 79.6 105.3 norm 92.43|8.92 3 | to_d_tof takeoff Takeoff distance 1.82 1.03 2.61 norm 1.82|0.48 4 | to_acc_tof takeoff Mean takeoff accelaration 1.97 1.46 2.49 norm 1.97|0.31 5 | ic_va_avg initial_climb Mean airspeed 88 80 96 beta 4.65|5.42|71.86|36.69 6 | ic_vs_avg initial_climb Mean vertical rate 14.28 9.45 19.12 norm 14.29|2.94 7 | cl_d_range climb Climb range 202 160 338 gamma 4.37|146.83|16.52 8 | cl_v_cas_const climb Constant CAS 159 146 171 beta 5.42|4.92|131.86|52.14 9 | cl_v_mach_const climb Constant Mach 0.79 0.76 0.83 norm 0.79|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 4 2.6 5.5 norm 4.05|0.90 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.3 7.6 9.8 gamma 8.58|6.61|0.23 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 10.16 7.27 13.07 norm 10.17|1.76 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 10.26 7.06 13.48 norm 10.27|1.95 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.95 3.76 10.16 norm 6.96|1.95 15 | cr_d_range cruise Cruise range 1201 562 9544 beta 1.06|1.84|526.21|9525.03 16 | cr_v_cas_mean cruise Mean cruise CAS 137 127 148 norm 137.87|6.52 17 | cr_v_cas_max cruise Maximum cruise CAS 142 132 165 gamma 5.96|121.86|4.14 18 | cr_v_mach_mean cruise Mean cruise Mach 0.8 0.77 0.83 norm 0.80|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.82 0.79 0.87 gamma 9.85|0.75|0.01 20 | cr_h_init cruise Initial cruise altitude 10.65 9.11 11.75 beta 4.71|3.26|7.61|4.88 21 | cr_h_mean cruise Mean cruise altitude 10.81 9.9 11.73 norm 10.82|0.55 22 | cr_h_max cruise Maximum cruise altitude 11.17 10.3 12.04 norm 11.17|0.53 23 | de_d_range descent Descent range 244 178 489 gamma 3.61|161.96|31.72 24 | de_v_mach_const descent Constant Mach 0.79 0.76 0.83 norm 0.79|0.02 25 | de_v_cas_const descent Constant CAS 151 139 164 norm 151.80|7.70 26 | de_h_mach_const descent Constant Mach crossover altitude 9.5 8.3 10.8 norm 9.55|0.77 27 | de_h_cas_const descent Constant CAS crossover altitude 6.7 4.4 9 norm 6.70|1.42 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -6.29 -13.2 -2.33 beta 2.75|1.91|-16.88|16.10 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.98 -14.99 -4.94 norm -9.97|3.06 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.29 -7.99 -4.58 norm -6.29|1.04 31 | fa_va_avg final_approach Mean airspeed 74 68 80 norm 74.38|4.27 32 | fa_vs_avg final_approach Mean vertical rate -3.76 -4.37 -2.75 gamma 15.83|-5.60|0.12 33 | fa_agl final_approach Approach angle 2.98 2.22 3.74 norm 2.98|0.46 34 | ld_v_app landing Touchdown speed 72.1 65.3 78.9 norm 72.10|4.70 35 | ld_d_brk landing Braking distance 1.51 0.66 3.71 beta 1.65|2.94|0.35|4.63 36 | ld_acc_brk landing Mean braking acceleration -1.1 -1.94 -0.52 beta 4.70|3.14|-2.76|2.62 -------------------------------------------------------------------------------- /openap/data/wrap/b77w.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 96.4 83.9 109 norm 96.46|8.74 3 | to_d_tof takeoff Takeoff distance 2.21 1.38 3.04 norm 2.21|0.50 4 | to_acc_tof takeoff Mean takeoff accelaration 1.89 1.45 2.33 norm 1.89|0.27 5 | ic_va_avg initial_climb Mean airspeed 98 88 106 beta 3.65|3.27|80.15|33.27 6 | ic_vs_avg initial_climb Mean vertical rate 13.02 9.69 16.36 norm 13.03|2.03 7 | cl_d_range climb Climb range 214 173 354 gamma 4.08|161.44|17.33 8 | cl_v_cas_const climb Constant CAS 164 158 170 norm 164.33|3.45 9 | cl_v_mach_const climb Constant Mach 0.83 0.8 0.86 norm 0.83|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.8 1.8 5.9 norm 3.84|1.25 11 | cl_h_mach_const climb Constant Mach crossover altitude 8.8 8.1 9.5 norm 8.80|0.42 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 8.99 6.8 11.19 norm 8.99|1.33 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.55 6.41 12.95 gamma 7.87|3.61|0.72 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 5.76 3.31 10.81 gamma 7.72|0.15|0.83 15 | cr_d_range cruise Cruise range 4843 758 14177 beta 1.32|1.74|606.13|14106.67 16 | cr_v_cas_mean cruise Mean cruise CAS 148 139 158 norm 148.69|5.75 17 | cr_v_cas_max cruise Maximum cruise CAS 159 142 175 norm 159.16|10.07 18 | cr_v_mach_mean cruise Mean cruise Mach 0.84 0.82 0.86 norm 0.84|0.01 19 | cr_v_mach_max cruise Maximum cruise Mach 0.86 0.84 0.91 gamma 5.16|0.82|0.01 20 | cr_h_init cruise Initial cruise altitude 9.63 8.74 11.52 gamma 7.37|7.62|0.32 21 | cr_h_mean cruise Mean cruise altitude 10.35 9.75 11.4 gamma 12.87|8.67|0.14 22 | cr_h_max cruise Maximum cruise altitude 11 10.31 11.69 norm 11.00|0.42 23 | de_d_range descent Descent range 257 197 476 gamma 3.62|182.39|28.42 24 | de_v_mach_const descent Constant Mach 0.82 0.79 0.86 norm 0.82|0.02 25 | de_v_cas_const descent Constant CAS 156 140 167 beta 4.64|3.00|124.43|50.43 26 | de_h_mach_const descent Constant Mach crossover altitude 9.7 8.6 10.8 norm 9.72|0.67 27 | de_h_cas_const descent Constant CAS crossover altitude 6.7 4.2 9.2 norm 6.68|1.51 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -7.04 -12.03 -2.02 norm -7.02|3.04 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.05 -13.36 -4.72 norm -9.04|2.63 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.3 -7.92 -4.67 norm -6.30|0.99 31 | fa_va_avg final_approach Mean airspeed 78 73 83 norm 78.67|3.38 32 | fa_vs_avg final_approach Mean vertical rate -4.03 -4.49 -3.27 gamma 15.93|-5.43|0.09 33 | fa_agl final_approach Approach angle 2.95 2.44 3.46 norm 2.95|0.31 34 | ld_v_app landing Touchdown speed 76.9 70.8 83.1 norm 76.94|4.25 35 | ld_d_brk landing Braking distance 1.49 0.84 3.52 gamma 3.57|0.34|0.45 36 | ld_acc_brk landing Mean braking acceleration -1.33 -2 -0.66 norm -1.33|0.41 -------------------------------------------------------------------------------- /openap/data/wrap/b788.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 90.3 74.4 106.3 norm 90.35|11.10 3 | to_d_tof takeoff Takeoff distance 2.16 1.08 3.25 norm 2.16|0.66 4 | to_acc_tof takeoff Mean takeoff accelaration 1.61 1.16 2.07 norm 1.61|0.28 5 | ic_va_avg initial_climb Mean airspeed 87 78 97 beta 3.16|3.65|71.08|36.50 6 | ic_vs_avg initial_climb Mean vertical rate 10.65 6.27 14.45 beta 6.24|5.05|0.78|17.49 7 | cl_d_range climb Climb range 286 146 427 norm 287.05|54.42 8 | cl_v_cas_const climb Constant CAS 158 146 170 norm 158.68|7.34 9 | cl_v_mach_const climb Constant Mach 0.85 0.81 0.87 beta 14.41|4.76|0.69|0.21 10 | cl_h_cas_const climb Constant CAS crossover altitude 3.8 2.5 6.3 gamma 7.78|0.85|0.43 11 | cl_h_mach_const climb Constant Mach crossover altitude 9.5 8.4 10.6 norm 9.52|0.68 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 9.58 7.32 11.85 norm 9.58|1.38 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 9.02 6.12 11.93 norm 9.02|1.77 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.02 3.59 8.47 norm 6.03|1.48 15 | cr_d_range cruise Cruise range 1874 269 11619 beta 1.14|1.87|206.46|12053.57 16 | cr_v_cas_mean cruise Mean cruise CAS 132 126 146 gamma 6.84|119.57|2.28 17 | cr_v_cas_max cruise Maximum cruise CAS 139 130 164 gamma 4.29|122.70|5.16 18 | cr_v_mach_mean cruise Mean cruise Mach 0.85 0.83 0.87 norm 0.85|0.01 19 | cr_v_mach_max cruise Maximum cruise Mach 0.87 0.85 0.91 gamma 16.44|0.80|0.00 20 | cr_h_init cruise Initial cruise altitude 11.65 10.37 12.92 norm 11.65|0.78 21 | cr_h_mean cruise Mean cruise altitude 12.01 11.16 12.85 norm 12.01|0.51 22 | cr_h_max cruise Maximum cruise altitude 12.28 11.52 13.06 norm 12.29|0.47 23 | de_d_range descent Descent range 292 219 551 gamma 3.85|198.90|32.88 24 | de_v_mach_const descent Constant Mach 0.84 0.8 0.87 norm 0.84|0.02 25 | de_v_cas_const descent Constant CAS 153 140 167 norm 153.71|8.29 26 | de_h_mach_const descent Constant Mach crossover altitude 10.5 8.8 11.7 beta 3.43|2.59|7.57|4.76 27 | de_h_cas_const descent Constant CAS crossover altitude 7 4.4 9.7 norm 7.06|1.58 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -7.59 -14.16 -3.35 beta 3.41|2.37|-18.73|17.46 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.52 -13.91 -5.11 norm -9.51|2.67 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.2 -7.94 -4.45 norm -6.19|1.06 31 | fa_va_avg final_approach Mean airspeed 75 70 80 norm 75.58|3.36 32 | fa_vs_avg final_approach Mean vertical rate -3.99 -4.59 -3.11 gamma 24.44|-6.14|0.09 33 | fa_agl final_approach Approach angle 2.88 2.37 3.4 norm 2.88|0.31 34 | ld_v_app landing Touchdown speed 71.3 62 80.6 norm 71.29|6.48 35 | ld_d_brk landing Braking distance 2.08 0.45 3.71 norm 2.08|0.99 36 | ld_acc_brk landing Mean braking acceleration -1.12 -1.79 -0.46 norm -1.12|0.40 -------------------------------------------------------------------------------- /openap/data/wrap/b789.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 96.1 81.1 111.2 norm 96.15|10.46 3 | to_d_tof takeoff Takeoff distance 2.49 1.31 3.69 norm 2.50|0.72 4 | to_acc_tof takeoff Mean takeoff accelaration 1.63 1.2 2.06 norm 1.63|0.26 5 | ic_va_avg initial_climb Mean airspeed 92 81 103 beta 3.43|3.27|72.17|39.84 6 | ic_vs_avg initial_climb Mean vertical rate 10.6 6.48 14.74 norm 10.61|2.51 7 | cl_d_range climb Climb range 263 173 420 beta 2.91|5.02|156.74|333.07 8 | cl_v_cas_const climb Constant CAS 163 151 174 norm 163.14|7.01 9 | cl_v_mach_const climb Constant Mach 0.84 0.82 0.87 norm 0.84|0.02 10 | cl_h_cas_const climb Constant CAS crossover altitude 4.1 2.3 5.9 norm 4.10|1.07 11 | cl_h_mach_const climb Constant Mach crossover altitude 9.1 8.1 10.2 norm 9.14|0.66 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 9.46 7.18 11.75 norm 9.47|1.39 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.68 6.04 11.81 beta 3.89|4.77|3.94|10.92 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 6.05 3.63 8.47 norm 6.05|1.47 15 | cr_d_range cruise Cruise range 5695 -3140 14555 norm 5707.50|3434.94 16 | cr_v_cas_mean cruise Mean cruise CAS 139 129 149 norm 139.87|6.06 17 | cr_v_cas_max cruise Maximum cruise CAS 148 133 170 beta 2.67|4.04|125.61|63.39 18 | cr_v_mach_mean cruise Mean cruise Mach 0.85 0.83 0.87 norm 0.85|0.01 19 | cr_v_mach_max cruise Maximum cruise Mach 0.87 0.85 0.92 gamma 6.01|0.83|0.01 20 | cr_h_init cruise Initial cruise altitude 11.3 9.42 12.44 beta 4.59|2.75|7.61|5.49 21 | cr_h_mean cruise Mean cruise altitude 11.58 10.72 12.44 norm 11.58|0.52 22 | cr_h_max cruise Maximum cruise altitude 11.99 11.28 12.7 norm 11.99|0.43 23 | de_d_range descent Descent range 293 224 550 gamma 3.57|207.20|33.45 24 | de_v_mach_const descent Constant Mach 0.84 0.79 0.87 beta 7.21|3.08|0.71|0.17 25 | de_v_cas_const descent Constant CAS 154 139 169 norm 154.59|8.89 26 | de_h_mach_const descent Constant Mach crossover altitude 10.5 8.6 11.6 beta 3.21|2.22|7.41|4.75 27 | de_h_cas_const descent Constant CAS crossover altitude 7 4.3 9.6 norm 6.99|1.61 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -7.16 -12.88 -2.81 beta 2.83|2.31|-16.09|15.29 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.14 -13.41 -4.84 norm -9.13|2.61 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -6.19 -7.91 -4.46 norm -6.18|1.05 31 | fa_va_avg final_approach Mean airspeed 77 72 83 norm 77.88|3.71 32 | fa_vs_avg final_approach Mean vertical rate -4.15 -4.71 -3.15 gamma 11.92|-5.65|0.14 33 | fa_agl final_approach Approach angle 2.89 2.36 3.43 norm 2.89|0.32 34 | ld_v_app landing Touchdown speed 74 64.8 83.3 norm 74.07|6.42 35 | ld_d_brk landing Braking distance 2.49 0.68 4.31 norm 2.49|1.11 36 | ld_acc_brk landing Mean braking acceleration -1.11 -1.74 -0.47 norm -1.11|0.38 -------------------------------------------------------------------------------- /openap/data/wrap/e190.txt: -------------------------------------------------------------------------------- 1 | variable flight phase name opt min max model parameters 2 | to_v_lof takeoff Liftoff speed 88.1 78.7 97.5 norm 88.13|6.52 3 | to_d_tof takeoff Takeoff distance 1.8 1.19 2.42 norm 1.81|0.38 4 | to_acc_tof takeoff Mean takeoff accelaration 1.83 1.38 2.28 norm 1.83|0.27 5 | ic_va_avg initial_climb Mean airspeed 78 66 91 norm 78.72|8.77 6 | ic_vs_avg initial_climb Mean vertical rate 11.19 5.78 16.62 norm 11.20|3.30 7 | cl_d_range climb Climb range 215 162 389 gamma 4.36|144.99|21.11 8 | cl_v_cas_const climb Constant CAS 140 133 156 gamma 8.78|122.65|2.36 9 | cl_v_mach_const climb Constant Mach 0.75 0.71 0.8 norm 0.75|0.03 10 | cl_h_cas_const climb Constant CAS crossover altitude 3 1.8 6.5 gamma 4.03|0.82|0.73 11 | cl_h_mach_const climb Constant Mach crossover altitude 9.2 8.1 10.2 norm 9.19|0.63 12 | cl_vs_avg_pre_cas climb Mean climb rate, pre-constant-CAS 10.44 7.18 13.71 norm 10.44|1.98 13 | cl_vs_avg_cas_const climb Mean climb rate, constant-CAS 8.93 6.27 11.6 norm 8.93|1.62 14 | cl_vs_avg_mach_const climb Mean climb rate, constant-Mach 4.82 2.95 6.7 norm 4.82|1.14 15 | cr_d_range cruise Cruise range 734 464 2710 gamma 1.98|433.55|308.41 16 | cr_v_cas_mean cruise Mean cruise CAS 131 120 141 norm 131.14|6.25 17 | cr_v_cas_max cruise Maximum cruise CAS 137 124 150 norm 137.30|7.93 18 | cr_v_mach_mean cruise Mean cruise Mach 0.77 0.74 0.81 norm 0.77|0.02 19 | cr_v_mach_max cruise Maximum cruise Mach 0.79 0.76 0.85 gamma 17.56|0.68|0.01 20 | cr_h_init cruise Initial cruise altitude 10.99 9.99 12 norm 11.00|0.61 21 | cr_h_mean cruise Mean cruise altitude 11.05 10.05 12.05 norm 11.05|0.61 22 | cr_h_max cruise Maximum cruise altitude 11.16 10.21 12.13 norm 11.17|0.58 23 | de_d_range descent Descent range 253 171 425 beta 2.17|3.85|161.90|315.91 24 | de_v_mach_const descent Constant Mach 0.77 0.72 0.81 norm 0.77|0.03 25 | de_v_cas_const descent Constant CAS 148 134 159 beta 3.94|3.27|124.00|42.94 26 | de_h_mach_const descent Constant Mach crossover altitude 9.3 8 10.6 norm 9.29|0.78 27 | de_h_cas_const descent Constant CAS crossover altitude 5.4 2.6 8.2 norm 5.42|1.72 28 | de_vs_avg_mach_const descent Mean descent rate, constant-Mach -5.25 -11.79 -2.1 beta 4.50|2.29|-18.06|17.51 29 | de_vs_avg_cas_const descent Mean descent rate, constant-CAS -9.08 -13.29 -4.85 norm -9.07|2.56 30 | de_vs_avg_after_cas descent Mean descent rate, after-constant-CAS -5.9 -7.92 -3.88 norm -5.90|1.23 31 | fa_va_avg final_approach Mean airspeed 70 64 76 norm 70.46|4.17 32 | fa_vs_avg final_approach Mean vertical rate -3.57 -4.34 -2.81 norm -3.57|0.47 33 | fa_agl final_approach Approach angle 2.92 2.38 3.46 norm 2.92|0.33 34 | ld_v_app landing Touchdown speed 66.9 56.6 77.2 norm 66.90|7.16 35 | ld_d_brk landing Braking distance 2.1 0.7 3.52 norm 2.11|0.86 36 | ld_acc_brk landing Mean braking acceleration -1.08 -1.8 -0.36 norm -1.08|0.44 -------------------------------------------------------------------------------- /openap/extra/__init__.py: -------------------------------------------------------------------------------- 1 | import functools 2 | 3 | import numpy as np 4 | 5 | 6 | def ndarrayconvert(func=None, column=False): 7 | assert func is None or callable(func) 8 | 9 | def _decorator(func): 10 | @functools.wraps(func) 11 | def wrapper(self, *args, **kwargs): 12 | new_args = [] 13 | new_kwargs = {} 14 | 15 | for arg in args: 16 | if not isinstance(arg, str): 17 | if np.ndim(arg) == 0: 18 | arg = np.array([arg]) 19 | else: 20 | arg = np.array(arg) 21 | 22 | if column: 23 | arg = arg.reshape(-1, 1) 24 | new_args.append(arg) 25 | 26 | for k, arg in kwargs.items(): 27 | if not isinstance(arg, str): 28 | if np.ndim(arg) == 0: 29 | arg = np.array([arg]) 30 | else: 31 | arg = np.array(arg) 32 | 33 | if column: 34 | arg = arg.reshape(-1, 1) 35 | new_kwargs[k] = arg 36 | 37 | result = func(self, *new_args, **new_kwargs) 38 | 39 | def scalar_convert(value): 40 | if isinstance(value, np.ndarray): 41 | if value.ndim == 0: 42 | return value.item() 43 | elif value.ndim == 1 and value.shape[0] == 1: 44 | return value.item() 45 | elif ( 46 | not column 47 | and value.ndim > 1 48 | and (value.shape[0] == 1 or value.shape[1] == 1) 49 | ): 50 | return value.squeeze() 51 | return value 52 | 53 | if isinstance(result, tuple): 54 | return tuple(scalar_convert(r) for r in result) 55 | else: 56 | return scalar_convert(result) 57 | 58 | wrapper.orig_func = func 59 | return wrapper 60 | 61 | return _decorator(func) if callable(func) else _decorator 62 | -------------------------------------------------------------------------------- /openap/extra/nav.py: -------------------------------------------------------------------------------- 1 | """Navigation module helps accessing the navigation databases.""" 2 | 3 | import os 4 | 5 | import numpy as np 6 | import pandas as pd 7 | 8 | from openap.extra import aero 9 | 10 | fixes = None 11 | airports = None 12 | 13 | curr_path = os.path.dirname(os.path.realpath(__file__)) 14 | db_airport = curr_path + "/../data/nav/airports.csv" 15 | db_fix = curr_path + "/../data/nav/fix.dat" 16 | 17 | 18 | def _read_fix(): 19 | return pd.read_csv( 20 | db_fix, 21 | skiprows=3, 22 | skipfooter=1, 23 | engine="python", 24 | sep=r"\s+", 25 | names=("lat", "lon", "fix"), 26 | encoding="unicode_escape", 27 | ) 28 | 29 | 30 | def _read_airport(): 31 | return pd.read_csv(db_airport) 32 | 33 | 34 | def airport(name): 35 | """Get the airport information. 36 | 37 | Args: 38 | name (string): ICAO code of the airport. 39 | 40 | Returns: 41 | dict: Information ralted to the airport, including positon, 42 | country, and region information. 43 | 44 | """ 45 | NAME = str(name).upper() 46 | 47 | if not isinstance(airport, pd.DataFrame): 48 | airports = _read_airport() 49 | 50 | df = airports[airports["icao"] == NAME] 51 | if df.shape[0] == 0: 52 | return None 53 | else: 54 | return df.iloc[0, :].to_dict() 55 | 56 | 57 | def closest_airport(lat, lon): 58 | """Get the closest airport of a location. 59 | 60 | Args: 61 | lat (float): Latitude. 62 | lon (float): Longitude. 63 | 64 | Returns: 65 | string or None: ICAO code of the airport 66 | 67 | """ 68 | global airports 69 | 70 | if not isinstance(airport, pd.DataFrame): 71 | airports = _read_airport() 72 | 73 | df = airports[ 74 | airports["lat"].between(lat - 2, lat + 2) 75 | & airports["lon"].between(lon - 2, lon + 2) 76 | ] 77 | 78 | if df.shape[0] == 0: 79 | return None 80 | 81 | coords = np.array(df[["lat", "lon"]]) 82 | dist2 = np.sum((coords - [lat, lon]) ** 2, axis=1) 83 | idx = np.argmin(dist2) 84 | 85 | ap = df.iloc[idx, :] 86 | 87 | return ap.icao 88 | 89 | 90 | def fix(name): 91 | """Get position of a fix or way point. 92 | 93 | Args: 94 | name (string): Name of the fix of way point. 95 | 96 | Returns: 97 | list: latitude and longitude 98 | 99 | """ 100 | global fixes 101 | 102 | if not isinstance(fixes, pd.DataFrame): 103 | fixes = _read_fix() 104 | 105 | NAME = str(name).upper() 106 | fix = fixes[fixes["fix"] == NAME].iloc[0].tolist() 107 | return fix 108 | 109 | 110 | def closest_fix(lat, lon): 111 | """Get the closest fix of a location. 112 | 113 | Args: 114 | lat (float): Latitude. 115 | lon (float): Longitude. 116 | 117 | Returns: 118 | string: ICAO code of the airport. 119 | int: Distance to the fix. 120 | 121 | """ 122 | global fixes 123 | 124 | if not isinstance(fixes, pd.DataFrame): 125 | fixes = _read_fix() 126 | 127 | mask = (fixes["lat"].between(lat - 1, lat + 1)) & ( 128 | fixes["lon"].between(lon - 1, lon + 1) 129 | ) 130 | chunk = fixes[mask] 131 | 132 | lats = np.asarray(chunk["lat"]) 133 | lons = np.asarray(chunk["lon"]) 134 | 135 | distances = aero.distance(lat, lon, lats, lons) 136 | idx = distances.argmin() 137 | 138 | fix = chunk.iloc[idx].tolist() 139 | dist = distances[idx] 140 | 141 | return fix, int(dist) 142 | -------------------------------------------------------------------------------- /openap/extra/statistics.py: -------------------------------------------------------------------------------- 1 | """Fit data using different statistical models.""" 2 | 3 | import numpy as np 4 | import scipy.stats 5 | from matplotlib import pyplot as plt 6 | 7 | 8 | def fit(data, models): 9 | if not isinstance(models, list): 10 | if isinstance(models, str): 11 | models = [models] 12 | else: 13 | raise RuntimeError("models must be string or list of strings.") 14 | 15 | data = np.array(data) 16 | data = data[np.isfinite(data)] 17 | data = data[data > np.percentile(data, 0.025)] 18 | data = data[data < np.percentile(data, 99.975)] 19 | 20 | # split data in training and testing 50-50 21 | train, test = data[0:-1:1], data[1:-1:1] 22 | 23 | # construct the bound for the model fitting 24 | dmin = min(data) - 1e-8 25 | dmax = max(data) + 1e-8 26 | dscale = dmax - dmin 27 | 28 | result = dict() 29 | for model in models: 30 | 31 | # fit distribution and run kstest 32 | dist = getattr(scipy.stats, model) 33 | if model == "norm": 34 | param_train = dist.fit(train) 35 | elif model == "gamma": 36 | param_train = dist.fit(train, floc=dmin) 37 | else: 38 | param_train = dist.fit(train, floc=dmin, fscale=dscale) 39 | 40 | ks = scipy.stats.kstest(test, model, param_train) 41 | error = ks[0] # D-stats 42 | 43 | # recompute distribution based on all data 44 | if model == "norm": 45 | param = dist.fit(data) 46 | elif model == "gamma": 47 | param = dist.fit(data, floc=dmin) 48 | else: 49 | param = dist.fit(data, floc=dmin, fscale=dscale) 50 | 51 | # construct the example PDF for ploting 52 | ci = dist.interval(0.999, *param) 53 | xmin = ci[0] - dscale * 0.05 54 | xmax = ci[1] + dscale * 0.05 55 | pdfx = np.linspace(xmin, xmax, 1000) 56 | pdfy = dist.pdf(pdfx, *param) 57 | 58 | result[model] = dict() 59 | result[model]["param"] = param 60 | result[model]["pdfx"] = pdfx 61 | result[model]["pdfy"] = pdfy 62 | result[model]["error"] = error 63 | 64 | # print(model, param, error) 65 | 66 | return result 67 | 68 | 69 | def fitplot(data, model, **kwargs): 70 | fitresults = fit(data, model) 71 | 72 | if "bins" in kwargs: 73 | bins = kwargs["bins"] 74 | del kwargs["bins"] 75 | else: 76 | bins = 20 77 | 78 | data = np.array(data) 79 | data = data[np.isfinite(data)] 80 | plt.hist(data, bins=bins, normed=True, color="gray", edgecolor="none", alpha=0.3) 81 | plt.plot( 82 | fitresults[model]["pdfx"], fitresults[model]["pdfy"], label=model, **kwargs 83 | ) 84 | # plt.legend(loc='best') 85 | plt.xlim([min(data), max(data)]) 86 | plt.ylabel("density (-)") 87 | plt.grid() 88 | return plt 89 | -------------------------------------------------------------------------------- /openap/mass.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | from . import prop 4 | 5 | 6 | def from_range(typecode, distance, load_factor=0.8, fraction=False, **kwargs): 7 | """Compute aircraft mass based on range, load factor, and fraction settings. 8 | 9 | This function calculates the aircraft mass considering fuel and payload weights 10 | based on the given flight distance and load factor. 11 | 12 | Args: 13 | typecode (str): ICAO aircraft type code (e.g. A320, B738) 14 | distance (float): Flight distance in nautical miles 15 | load_factor (float): Load factor between 0 and 1, default 0.8 16 | fraction (bool): If True, return mass fraction of MTOW, default False 17 | 18 | Returns: 19 | float: Aircraft mass in kg, or mass fraction if fraction=True 20 | 21 | """ 22 | ac = prop.aircraft(typecode, **kwargs) 23 | 24 | range_fraction = distance / ac["cruise"]["range"] 25 | range_fraction = np.clip(range_fraction, 0.2, 1) 26 | 27 | max_fuel_weight = ac["mfc"] * 0.8025 # L->kg 28 | fuel_weight = range_fraction * max_fuel_weight 29 | 30 | payload_weight = (ac["mtow"] - max_fuel_weight - ac["oew"]) * load_factor 31 | 32 | mass = ac["oew"] + fuel_weight + payload_weight 33 | 34 | if fraction: 35 | return mass / ac["mtow"] 36 | else: 37 | return mass 38 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "openap" 3 | version = "2.2" 4 | description = "Open Aircraft Performance Model (OpenAP) in Python" 5 | authors = [{ name = "Junzi Sun", email = "git@junzis.com" }] 6 | license = { text = "GNU LGPL v3" } 7 | readme = "README.md" 8 | classifiers = [ 9 | "Development Status :: 4 - Beta", 10 | "Intended Audience :: Developers", 11 | "Intended Audience :: Information Technology", 12 | "Intended Audience :: Science/Research", 13 | "Topic :: Software Development :: Libraries :: Python Modules", 14 | "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", 15 | "Programming Language :: Python :: 3", 16 | ] 17 | requires-python = ">=3.9" 18 | dependencies = [ 19 | "numpy>=1.24", 20 | "scipy>=1.7", 21 | "pandas>=1.2", 22 | "pyyaml>=5.1", 23 | "matplotlib>=3.1", 24 | ] 25 | 26 | [project.urls] 27 | homepage = "https://openap.dev" 28 | repository = "https://github.com/junzis/openap" 29 | issues = "https://github.com/junzis/openap/issues" 30 | 31 | [tool.uv] 32 | dev-dependencies = [ 33 | "flake8>=5.0.0", 34 | "black>=22.12.0", 35 | "isort>=5.11.4", 36 | # "mypy>=0.991", 37 | # "pytest>=7.2.0", 38 | ] 39 | 40 | [tool.ruff] 41 | target-version = "py311" 42 | 43 | [tool.ruff.lint] 44 | select = [ 45 | "E", 46 | "W", # pycodestyle 47 | "F", # pyflakes 48 | "I", # isort 49 | "NPY", # numpy 50 | # "PD", # pandas 51 | "DTZ", # flake8-datetimez 52 | "RUF", 53 | ] 54 | 55 | [tool.ruff.lint.isort] 56 | known-first-party = ["numpy", "pandas", "pyproj"] 57 | 58 | [build-system] 59 | requires = ["hatchling"] 60 | build-backend = "hatchling.build" 61 | -------------------------------------------------------------------------------- /scripts/README.md: -------------------------------------------------------------------------------- 1 | # Aircraft related scripts and data 2 | 3 | - Generate engine data from ICAO emission data bank 4 | - Generate airport data from FR24 5 | -------------------------------------------------------------------------------- /scripts/acropole_aircraft_params.csv: -------------------------------------------------------------------------------- 1 | ACFT_ICAO_TYPE,ENGINE_ICAO,PERCENTAGE,FUEL_FLOW_TO,TYPE,WTC,SURFACE,MAX_OPE_ALTI,MAX_OPE_MACH_NUM,MAX_TO_WEIGHT,OPE_EMPTY_WEIGHT,ACFT_SPAN,ACFT_LENGTH,ENGINE_NUM,TRAIN_ON,MAX_OPE_SPEED,CONF_IND,ENGINE_TYPE 2 | A318,CFM56-5B9/3,52.46,0.956,JET,M,122.6,39800.0,0.82,68000.0,40900.0,34.1,31.45,2.0,0,471.51923854894073,0.88,0.0 3 | A319,V2524-A5,20.42,1.042,JET,M,122.6,39800.0,0.82,70000.0,39000.0,34.1,33.84,2.0,0,471.51923854894073,0.875,0.0 4 | A320,CFM56-5B4/P,41.98,1.132,JET,M,122.6,41100.0,0.82,78000.0,43700.0,34.1,37.57,2.0,1,471.51923854894073,1.0,0.0 5 | A321,V2533-A5,57.58,1.426,JET,M,122.6,39800.0,0.82,83000.0,47000.0,34.15,44.5,2.0,0,471.51923854894073,0.884,0.0 6 | A332,Trent 772,77.59,3.15,JET,H,361.6,41500.0,0.86,230000.0,125964.0,60.304,58.372,2.0,1,494.5201770147428,1.0,0.0 7 | A333,Trent 772,79.19,3.15,JET,H,361.6,41100.0,0.86,212000.0,126000.0,60.304,63.689,2.0,0,494.5201770147428,0.891,0.0 8 | A337,Trent 772,100.0,3.15,JET,H,361.6,41100.0,0.86,227000.0,125000.0,60.3,63.1,2.0,0,494.5201770147428,0.89,0.0 9 | A338,Trent7000-72,100.0,2.478,JET,H,361.6,41100.0,0.86,242000.0,129000.0,64.0,58.81,2.0,0,494.5201770147428,0.849,0.0 10 | A339,Trent7000-72,100.0,2.478,JET,H,361.6,41100.0,0.86,251000.0,129000.0,64.0,63.66,2.0,0,494.5201770147428,0.854,0.0 11 | AT72,PW124B-HS14SF,100.0,0.1807,TURBOPROP,M,61.0,25000.0,0.55,21500.0,12300.0,27.05,27.166,2.0,0,331.6003035355095,0.899,1.0 12 | AT73,PW127-HS247F,100.0,0.1877416666599999,TURBOPROP,M,61.0,25000.0,0.55,21500.0,12300.0,27.05,27.166,2.0,0,331.6003035355095,0.899,1.0 13 | AT75,PW127F-HS568F,100.0,0.18969166,TURBOPROP,M,61.0,25000.0,0.55,22000.0,12850.0,27.05,27.166,2.0,0,331.6003035355095,0.9,1.0 14 | AT76,PW127M-HS568F,100.0,0.18969166,TURBOPROP,M,61.0,25000.0,0.55,22800.0,13200.0,27.05,27.166,2.0,1,331.6003035355095,1.0,1.0 15 | B732,JT8D-15A,34.31,1.115,JET,M,91.0449792,37000.0,0.84,52390.0,27125.0,28.35,30.53,2.0,0,483.01970778184176,0.885,0.0 16 | B733,CFM56-3C-1,63.28,1.154,JET,M,91.0449792,37000.0,0.82,61236.0,32904.0,28.88,33.4,2.0,0,471.51923854894073,0.876,0.0 17 | B734,CFM56-3C-1,96.83,1.154,JET,M,91.0449792,37000.0,0.82,68040.0,33190.0,28.88,36.4,2.0,0,471.51923854894073,0.876,0.0 18 | B735,CFM56-3C-1,86.09,1.154,JET,M,91.0449792,37000.0,0.82,60555.0,31312.0,28.88,31.01,2.0,0,471.51923854894073,0.882,0.0 19 | B736,CFM56-7B22,26.92,1.021,JET,M,124.58297664,41000.0,0.82,65544.0,36378.0,34.32,31.24,2.0,0,471.51923854894073,0.879,0.0 20 | B737,CFM56-7B26,19.21,1.221,JET,M,124.58297664,41000.0,0.82,70080.0,37648.0,35.79,33.63,2.0,0,471.51923854894073,0.891,0.0 21 | B738,CFM56-7B26E,38.29,1.213,JET,M,124.58297664,41000.0,0.82,79016.0,41413.0,35.79,39.47,2.0,1,471.51923854894073,1.0,0.0 22 | B739,CFM56-7B27E,38.55,1.293,JET,M,124.58297664,41000.0,0.82,85139.0,44676.0,35.79,42.11,2.0,0,471.51923854894073,0.886,0.0 23 | CRJ7,CF34-8C5B1,94.29,0.606,JET,M,70.6,41000.0,0.78,34019.4,20069.0,23.24,32.51,2.0,1,448.5183000831388,1.0,0.0 24 | CRJ9,CF34-8C5,73.63,0.6481,JET,M,71.1,41000.0,0.78,36514.0,21845.0,24.9,36.19,2.0,0,448.5183000831388,0.886,0.0 25 | CRJX,CF34-8C5A1,100.0,0.665,JET,M,77.4,41000.0,0.78,41640.0,23188.0,26.2,39.1,2.0,1,448.5183000831388,1.0,0.0 26 | E170,CF34-8E5,79.86,0.6518,JET,M,72.72,41000.0,0.82,35990.0,21121.0,26.0,29.9,2.0,1,471.51923854894073,1.0,0.0 27 | E190,CF34-10E5,54.31,0.789,JET,M,92.53,41000.0,0.82,47790.0,27737.0,28.72,36.24,2.0,1,471.51923854894073,1.0,0.0 28 | E195,CF34-10E5A1,41.18,0.866,JET,M,92.53,41000.0,0.82,48790.0,28567.0,28.72,38.67,2.0,0,471.51923854894073,0.888,0.0 29 | E75L,CF34-8E5,100.0,0.6518,JET,M,72.72,41000.0,0.82,38790.0,21870.0,26.0,31.68,2.0,0,471.51923854894073,0.894,0.0 30 | E75S,CF34-8E5,100.0,0.6518,JET,M,72.72,41000.0,0.82,37500.0,21870.0,26.0,31.68,2.0,0,471.51923854894073,0.894,0.0 31 | -------------------------------------------------------------------------------- /scripts/engine2.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import argparse 3 | import matplotlib.pyplot as plt 4 | 5 | # parser = argparse.ArgumentParser() 6 | # parser.add_argument('--jesd', dest="fin_jesd", required=True, 7 | # help="Jet Engine Specification Database") 8 | # args = parser.parse_args() 9 | # 10 | # html = pd.read_html(args.fin_jesd) 11 | 12 | df = pd.read_csv('input/civtfspec.csv', header=None, thousands=',') 13 | df.columns = df.iloc[0, :] + df.iloc[1, :].fillna('') + df.iloc[2, :].fillna('') 14 | df = df.iloc[4:, :] 15 | df.dropna(subset=['Model'], inplace=True) 16 | 17 | df1 = df[pd.notnull(df['Thrust(cruise)[lbf]'])][['Thrust(dry)[lbf]', 'OPR(static)', 'BPR(static)', 'CruiseAltitude[ft]', 'Thrust(cruise)[lbf]']] 18 | 19 | df1.columns = ['thr', 'opr', 'bpr', 'cr_alt', 'cr_thr'] 20 | 21 | df1 = df1.dropna() 22 | 23 | plt.scatter(df1['thr'], df1['cr_thr']) 24 | plt.show() 25 | -------------------------------------------------------------------------------- /scripts/extract.py: -------------------------------------------------------------------------------- 1 | # %% 2 | import warnings 3 | from glob import glob 4 | 5 | import click 6 | from acropole import FuelEstimator 7 | from tqdm.autonotebook import tqdm 8 | from traffic.core import Flight, Traffic 9 | 10 | import numpy as np 11 | import openap 12 | import pandas as pd 13 | 14 | # %% 15 | acropole_aircraft = pd.read_csv("acropole_aircraft_params.csv") 16 | 17 | fe = FuelEstimator() 18 | 19 | # %% 20 | 21 | 22 | def get_flights(typecode, folder, number): 23 | aac = acropole_aircraft.query(f"ACFT_ICAO_TYPE=='{typecode.upper()}'") 24 | if aac.shape[0] == 0: 25 | warnings.warn(f"{typecode} not in acropole") 26 | return None 27 | 28 | engine_type = aac.ENGINE_ICAO.iloc[0] 29 | 30 | print(typecode, engine_type) 31 | 32 | files = np.random.permutation(glob(f"{folder}/*.parquet")) 33 | 34 | t_extracted = None 35 | 36 | for i, f in tqdm( 37 | enumerate(files), desc=f"reading parquet files to get {number} flights" 38 | ): 39 | t = Traffic.from_file(f) 40 | 41 | if t_extracted is not None: 42 | t_extracted = t.query(f"typecode=='{typecode.lower()}'") + t_extracted 43 | else: 44 | t_extracted = t.query(f"typecode=='{typecode.lower()}'") 45 | 46 | if t_extracted is not None and len(t_extracted.flight_ids) > number: 47 | # more than enough flights, randomly sample 48 | t_extracted = t_extracted.sample(number) 49 | break 50 | 51 | if t_extracted is None and i > 1: 52 | # type not found in day one 53 | break 54 | 55 | if t_extracted is None: 56 | warnings.warn(f"{typecode} no flight data available") 57 | return None 58 | 59 | results = [] 60 | 61 | for flight in tqdm(t_extracted): 62 | df = flight.resample("4s").data.assign( 63 | typecode=typecode.upper(), 64 | second=lambda d: (d.timestamp - d.timestamp.iloc[0]).dt.total_seconds(), 65 | v=lambda d: d.groundspeed * openap.aero.kts, 66 | trk=lambda d: np.radians(d.track), 67 | vgx=lambda d: d.v * np.sin(d.trk), 68 | vgy=lambda d: d.v * np.cos(d.trk), 69 | vax=lambda d: d.vgx - d.u_component_of_wind, 70 | vay=lambda d: d.vgy - d.v_component_of_wind, 71 | tas=lambda d: np.sqrt(d.vax**2 + d.vay**2) / openap.aero.kts, 72 | ) 73 | 74 | df = fe.estimate( 75 | df, 76 | second="second", 77 | airspeed="tas", 78 | ) 79 | 80 | results.append(df) 81 | 82 | return pd.concat(results, ignore_index=True) 83 | 84 | 85 | @click.command() 86 | @click.option("--typecode", required=True, help="typecode to extract") 87 | @click.option("--folder", required=True, help="path to the input parquet files") 88 | @click.option("--number", required=True, type=int, help="Number of flights to extract") 89 | def main(typecode, folder, number): 90 | flights = get_flights(typecode, folder, number) 91 | flights.to_parquet(f"{typecode}_{number}.parquet", index=False) 92 | 93 | 94 | if __name__ == "__main__": 95 | main() 96 | -------------------------------------------------------------------------------- /scripts/fuel_flow_correction_factor.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | import matplotlib.pyplot as plt 4 | from openap import aero 5 | 6 | df = pd.read_fwf('db/engines.txt') 7 | df1 = df.query('cruise_sfc>0').copy() 8 | 9 | df1['sealevel_sfc'] = (df1.fuel_c3 + df1.fuel_c2 + df1.fuel_c1) / (df1.max_thrust / 1000) 10 | 11 | df1['fuel_ch'] = (df1.cruise_sfc - df1.sealevel_sfc) / (df1.cruise_alt * aero.ft) 12 | 13 | factor = df1.fuel_ch 14 | print(np.mean(factor)) 15 | print('fuel flow altitude correction factor', np.mean(factor)) 16 | 17 | plt.scatter(np.arange(len(factor)), factor) 18 | plt.ylim([factor.min(), factor.max()]) 19 | plt.show() 20 | -------------------------------------------------------------------------------- /scripts/gen_airport_database.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import pandas as pd 3 | import re 4 | import reverse_geocoder as rg 5 | 6 | 7 | parser = argparse.ArgumentParser() 8 | parser.add_argument('--input', dest="fin", required=True, 9 | help="path to x-plane apt.dat") 10 | args = parser.parse_args() 11 | 12 | fin = args.fin 13 | 14 | curr_ap = None 15 | prev_ap = None 16 | skip = False 17 | 18 | aps = [] 19 | 20 | with open(fin, 'rb') as f: 21 | for line in f: 22 | try: 23 | line = line.strip().decode() 24 | except: 25 | continue 26 | items = re.split('\s+', line) 27 | 28 | 29 | if items[0] == '1': 30 | icao = items[4] 31 | name = ' '.join(items[5:]).title() 32 | alt = items[1] 33 | 34 | prev_ap = curr_ap 35 | curr_ap = icao 36 | 37 | if (not icao.isalpha()) or len(icao)!=4: 38 | skip = True 39 | elif 'closed' in name.lower() or '[x]' in name.lower(): 40 | skip = True 41 | else: 42 | skip = False 43 | 44 | if items[0] == '100': 45 | if skip: 46 | continue 47 | 48 | if curr_ap == prev_ap: 49 | continue 50 | 51 | lat = round(float(items[9]), 5) 52 | lon = round(float(items[10]), 5) 53 | 54 | # print(icao, lat, lon, alt, name) 55 | 56 | ap = { 57 | 'icao': icao, 58 | 'lat': lat, 59 | 'lon': lon, 60 | 'alt': alt, 61 | 'name': name, 62 | } 63 | 64 | aps.append(ap) 65 | prev_ap = curr_ap 66 | 67 | df = pd.DataFrame(aps) 68 | latlons = df[['lat','lon']].values.tolist() 69 | latlons = [tuple(l) for l in latlons] 70 | geo = rg.search(latlons) 71 | dfgeo = pd.DataFrame(geo) 72 | df['country'] = dfgeo['cc'] 73 | df['location'] = dfgeo['name'] 74 | 75 | df = df[['icao', 'lat', 'lon', 'alt', 'country', 'name', 'location']] 76 | df = df.sort_values('icao') 77 | 78 | df.to_csv('db/airports.csv', index=False) 79 | -------------------------------------------------------------------------------- /scripts/gen_engine_cruise_perf.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | df = pd.read_csv('input/civtfspec.csv') 4 | 5 | df1 = df.iloc[:, [1,11,12,13,14]] 6 | 7 | df1.columns = ['engine', 'cruise_thrust', 'cruise_sfc', 'cruise_mach', 'cruise_alt'] 8 | 9 | df1 = df1.dropna(subset=(['engine', 'cruise_thrust'])) 10 | 11 | # sfc: lb / hr / lbf -> kg / s / kN 12 | # 1 -> 0.0283267 13 | df1.cruise_sfc = (df1.cruise_sfc.astype(float) * 0.0283267).round(4) 14 | 15 | # lbs -> N, 4.44822 16 | df1.cruise_thrust = (df1.cruise_thrust.astype(float) * 4.44822).astype(int) 17 | 18 | df1.loc[df1.engine=='CFM56-5A4', 'cruise_sfc'] = df1.loc[df1.engine=='CFM56-5A3', 'cruise_sfc'] 19 | df1.loc[df1.engine=='CFM56-5A5', 'cruise_sfc'] = df1.loc[df1.engine=='CFM56-5A3', 'cruise_sfc'] 20 | df1.loc[df1.engine=='CFM56-5B3', 'cruise_sfc'] = df1.loc[df1.engine=='CFM56-5B2', 'cruise_sfc'] 21 | df1.loc[df1.engine=='CFM56-7B18', 'cruise_sfc'] = df1.loc[df1.engine=='CFM56-7B20', 'cruise_sfc'] 22 | df1.loc[df1.engine=='CFM56-7B22', 'cruise_sfc'] = df1.loc[df1.engine=='CFM56-7B20', 'cruise_sfc'] 23 | df1.loc[df1.engine=='CFM56-7B26', 'cruise_sfc'] = df1.loc[df1.engine=='CFM56-7B20', 'cruise_sfc'] 24 | 25 | df1.to_csv('input/engine_cruise_performance.csv', index=False) 26 | -------------------------------------------------------------------------------- /scripts/input/civtfspec.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/scripts/input/civtfspec.xls -------------------------------------------------------------------------------- /scripts/input/edb-emissions-databank v23 (web).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/scripts/input/edb-emissions-databank v23 (web).xlsx -------------------------------------------------------------------------------- /scripts/input/edb-emissions-databank v25a (web).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/scripts/input/edb-emissions-databank v25a (web).xlsx -------------------------------------------------------------------------------- /scripts/input/edb-emissions-databank v27 (web).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/scripts/input/edb-emissions-databank v27 (web).xlsx -------------------------------------------------------------------------------- /scripts/input/edb-emissions-databank v28B (web).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/junzis/openap/b4608d23ec30555a7ff27105017267ddf19e8720/scripts/input/edb-emissions-databank v28B (web).xlsx -------------------------------------------------------------------------------- /scripts/input/wrap/a319.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,82.7,72.5,92.9,norm,82.71|7.10 3 | TO,to_d_tof,1.51,1.06,2.41,gamma,8.56|0.43|0.14 4 | TO,to_acc_tof,1.84,1.38,2.29,norm,1.84|0.28 5 | IC,ic_va_avg,80,73,87,norm,80.26|4.86 6 | IC,ic_vs_avg,12.27,9.52,15.04,norm,12.28|1.68 7 | CL,cl_d_range,206,157,348,gamma,5.16|138.89|16.28 8 | CL,cl_v_cas_const,149,140,159,norm,150.02|6.06 9 | CL,cl_v_mach_const,0.77,0.74,0.80,beta,16.21|6.30|0.62|0.20 10 | CL,cl_h_cas_const,3.2,2.1,6.0,gamma,5.22|0.99|0.53 11 | CL,cl_h_mach_const,8.9,8.0,9.8,norm,8.93|0.55 12 | CL,cl_vs_avg_pre_cas,11.10,8.41,13.80,norm,11.11|1.64 13 | CL,cl_vs_avg_cas_const,10.15,7.63,12.67,norm,10.15|1.53 14 | CL,cl_vs_avg_mach_const,6.07,3.99,8.16,norm,6.08|1.27 15 | CR,cr_d_range,299,182,4019,gamma,1.19|173.76|669.46 16 | CR,cr_v_cas_mean,125,119,139,gamma,4.75|114.21|2.92 17 | CR,cr_v_cas_max,128,121,148,gamma,3.54|116.92|4.46 18 | CR,cr_v_mach_mean,0.77,0.74,0.80,norm,0.77|0.02 19 | CR,cr_v_mach_max,0.79,0.75,0.82,norm,0.79|0.02 20 | CR,cr_h_init,11.54,10.27,11.97,beta,7.48|2.22|8.11|4.08 21 | CR,cr_h_mean,11.54,10.21,11.97,beta,7.00|2.13|8.10|4.09 22 | CR,cr_h_max,11.64,10.30,12.03,beta,6.12|1.89|8.42|3.79 23 | DE,de_d_range,233,176,473,gamma,3.15|163.83|32.50 24 | DE,de_v_mach_const,0.76,0.72,0.80,norm,0.76|0.03 25 | DE,de_v_cas_const,145,136,164,gamma,6.49|126.84|3.35 26 | DE,de_h_mach_const,9.2,7.7,10.7,norm,9.18|0.92 27 | DE,de_h_cas_const,5.3,2.6,8.1,norm,5.34|1.66 28 | DE,de_vs_avg_mach_const,-5.87,-12.13,-2.41,beta,3.27|2.09|-16.27|15.37 29 | DE,de_vs_avg_cas_const,-9.84,-14.22,-5.45,norm,-9.83|2.66 30 | DE,de_vs_avg_after_cas,-5.88,-7.69,-4.07,norm,-5.88|1.10 31 | FA,fa_va_avg,67,63,76,gamma,6.43|57.71|1.84 32 | FA,fa_vs_avg,-3.42,-4.19,-2.65,norm,-3.42|0.47 33 | FA,fa_agl,3.15,2.25,4.05,norm,3.15|0.55 34 | LD,ld_v_app,66.2,61.0,71.5,norm,66.23|3.65 35 | LD,ld_d_brk,1.38,0.71,4.18,gamma,2.62|0.28|0.68 36 | LD,ld_acc_brk,-0.87,-1.79,-0.35,beta,5.62|2.87|-2.90|2.86 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/a320.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,85.3,74.5,96.0,norm,85.29|7.47 3 | TO,to_d_tof,1.65,1.06,2.24,norm,1.65|0.36 4 | TO,to_acc_tof,1.93,1.50,2.37,norm,1.93|0.27 5 | IC,ic_va_avg,83,76,89,norm,83.31|4.64 6 | IC,ic_vs_avg,12.59,9.15,16.04,norm,12.59|2.09 7 | CL,cl_d_range,257,141,374,norm,258.08|45.16 8 | CL,cl_v_cas_const,151,140,161,norm,151.04|6.27 9 | CL,cl_v_mach_const,0.78,0.73,0.80,beta,12.39|3.68|0.60|0.22 10 | CL,cl_h_cas_const,3.7,1.9,5.4,norm,3.66|1.07 11 | CL,cl_h_mach_const,8.8,7.9,9.8,norm,8.80|0.58 12 | CL,cl_vs_avg_pre_cas,10.25,7.63,12.87,norm,10.25|1.59 13 | CL,cl_vs_avg_cas_const,8.43,6.28,10.60,norm,8.44|1.31 14 | CL,cl_vs_avg_mach_const,5.28,3.60,6.97,norm,5.29|1.03 15 | CR,cr_d_range,856,487,4352,gamma,1.71|453.95|569.12 16 | CR,cr_v_cas_mean,133,124,143,norm,133.62|5.82 17 | CR,cr_v_cas_max,135,128,154,gamma,4.89|121.28|3.70 18 | CR,cr_v_mach_mean,0.78,0.75,0.80,beta,17.82|5.05|0.62|0.20 19 | CR,cr_v_mach_max,0.80,0.77,0.83,norm,0.80|0.02 20 | CR,cr_h_init,10.82,9.79,11.85,norm,10.82|0.63 21 | CR,cr_h_mean,10.92,10.00,11.84,norm,10.92|0.56 22 | CR,cr_h_max,11.06,10.20,11.92,norm,11.06|0.52 23 | DE,de_d_range,234,180,457,gamma,3.15|169.28|30.17 24 | DE,de_v_mach_const,0.77,0.73,0.81,norm,0.77|0.02 25 | DE,de_v_cas_const,144,135,163,gamma,7.43|124.57|3.15 26 | DE,de_h_mach_const,9.6,7.9,10.7,beta,4.91|2.91|6.03|5.37 27 | DE,de_h_cas_const,5.7,3.0,8.5,norm,5.75|1.66 28 | DE,de_vs_avg_mach_const,-5.76,-13.45,-2.26,beta,3.52|1.95|-19.00|18.22 29 | DE,de_vs_avg_cas_const,-10.03,-14.68,-5.35,norm,-10.02|2.84 30 | DE,de_vs_avg_after_cas,-6.08,-7.88,-4.27,norm,-6.08|1.10 31 | FA,fa_va_avg,72,67,77,norm,72.43|3.49 32 | FA,fa_vs_avg,-3.55,-4.18,-2.91,norm,-3.55|0.39 33 | FA,fa_agl,3.06,2.40,3.73,norm,3.07|0.41 34 | LD,ld_v_app,69.4,62.7,76.0,norm,69.37|4.61 35 | LD,ld_d_brk,1.08,0.63,3.21,gamma,2.36|0.35|0.54 36 | LD,ld_acc_brk,-1.22,-1.97,-0.47,norm,-1.22|0.46 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/a321.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,90.8,80.1,101.5,norm,90.80|7.45 3 | TO,to_d_tof,1.85,1.18,2.52,norm,1.85|0.41 4 | TO,to_acc_tof,1.95,1.49,2.42,norm,1.95|0.28 5 | IC,ic_va_avg,86,79,94,norm,86.60|5.22 6 | IC,ic_vs_avg,13.21,9.34,17.11,norm,13.22|2.36 7 | CL,cl_d_range,230,164,426,gamma,4.93|140.03|22.96 8 | CL,cl_v_cas_const,155,144,166,norm,155.67|6.67 9 | CL,cl_v_mach_const,0.77,0.74,0.81,norm,0.77|0.02 10 | CL,cl_h_cas_const,3.7,2.1,5.4,norm,3.75|0.98 11 | CL,cl_h_mach_const,8.4,7.5,9.3,norm,8.41|0.56 12 | CL,cl_vs_avg_pre_cas,9.38,7.03,11.73,norm,9.38|1.43 13 | CL,cl_vs_avg_cas_const,8.17,5.91,10.44,norm,8.17|1.38 14 | CL,cl_vs_avg_mach_const,5.19,3.33,7.05,norm,5.19|1.13 15 | CR,cr_d_range,610,196,5338,gamma,1.56|162.63|789.69 16 | CR,cr_v_cas_mean,138,127,149,norm,138.28|6.66 17 | CR,cr_v_cas_max,140,130,162,gamma,5.67|121.09|4.11 18 | CR,cr_v_mach_mean,0.78,0.75,0.80,norm,0.78|0.02 19 | CR,cr_v_mach_max,0.79,0.77,0.84,gamma,13.42|0.72|0.01 20 | CR,cr_h_init,10.34,9.23,11.46,norm,10.35|0.68 21 | CR,cr_h_mean,10.41,9.36,11.46,norm,10.41|0.64 22 | CR,cr_h_max,10.56,9.60,11.52,norm,10.56|0.58 23 | DE,de_d_range,236,174,463,gamma,3.63|159.06|29.37 24 | DE,de_v_mach_const,0.77,0.74,0.80,norm,0.77|0.02 25 | DE,de_v_cas_const,150,138,163,norm,150.75|7.62 26 | DE,de_h_mach_const,9.0,7.8,10.3,norm,9.05|0.76 27 | DE,de_h_cas_const,6.2,3.3,8.5,beta,2.88|2.40|1.57|8.08 28 | DE,de_vs_avg_mach_const,-5.52,-11.86,-2.17,beta,4.06|2.31|-17.23|16.72 29 | DE,de_vs_avg_cas_const,-9.41,-13.64,-5.15,norm,-9.40|2.58 30 | DE,de_vs_avg_after_cas,-6.01,-7.78,-4.24,norm,-6.01|1.08 31 | FA,fa_va_avg,75,70,80,norm,75.41|3.61 32 | FA,fa_vs_avg,-3.69,-4.36,-3.01,norm,-3.68|0.41 33 | FA,fa_agl,3.01,2.36,3.66,norm,3.01|0.39 34 | LD,ld_v_app,72.9,66.9,78.9,norm,72.94|4.17 35 | LD,ld_d_brk,1.55,0.64,3.94,beta,1.50|2.41|0.34|4.65 36 | LD,ld_acc_brk,-1.21,-1.98,-0.45,norm,-1.21|0.47 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/a332.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,89.9,77.9,101.9,norm,89.89|8.34 3 | TO,to_d_tof,1.97,1.16,2.79,norm,1.98|0.49 4 | TO,to_acc_tof,1.75,1.32,2.18,norm,1.75|0.26 5 | IC,ic_va_avg,86,78,94,norm,86.44|5.43 6 | IC,ic_vs_avg,12.48,8.41,16.57,norm,12.49|2.48 7 | CL,cl_d_range,297,152,442,norm,297.55|56.26 8 | CL,cl_v_cas_const,152,143,162,norm,152.98|6.05 9 | CL,cl_v_mach_const,0.81,0.76,0.84,beta,11.67|3.95|0.63|0.22 10 | CL,cl_h_cas_const,3.6,2.3,6.0,gamma,8.62|0.62|0.39 11 | CL,cl_h_mach_const,9.2,8.3,10.2,norm,9.25|0.60 12 | CL,cl_vs_avg_pre_cas,9.53,7.04,12.02,norm,9.53|1.51 13 | CL,cl_vs_avg_cas_const,7.98,5.51,10.47,norm,7.99|1.51 14 | CL,cl_vs_avg_mach_const,5.23,3.03,7.45,norm,5.24|1.34 15 | CR,cr_d_range,1023,229,11012,beta,1.11|2.41|187.36|12081.93 16 | CR,cr_v_cas_mean,129,123,143,gamma,6.40|116.17|2.49 17 | CR,cr_v_cas_max,135,126,160,gamma,3.86|120.04|5.41 18 | CR,cr_v_mach_mean,0.81,0.79,0.84,norm,0.81|0.02 19 | CR,cr_v_mach_max,0.84,0.81,0.87,norm,0.84|0.02 20 | CR,cr_h_init,11.33,9.99,12.68,norm,11.34|0.82 21 | CR,cr_h_mean,11.67,10.71,12.63,norm,11.67|0.58 22 | CR,cr_h_max,11.95,11.12,12.79,norm,11.96|0.51 23 | DE,de_d_range,283,207,505,gamma,4.98|180.10|25.87 24 | DE,de_v_mach_const,0.81,0.76,0.84,beta,10.12|3.59|0.65|0.20 25 | DE,de_v_cas_const,152,136,162,beta,4.92|2.86|119.57|49.23 26 | DE,de_h_mach_const,10.2,8.4,11.4,beta,4.18|2.78|6.90|5.17 27 | DE,de_h_cas_const,6.3,3.6,9.0,norm,6.29|1.63 28 | DE,de_vs_avg_mach_const,-6.28,-12.53,-2.85,beta,4.74|2.60|-18.78|17.84 29 | DE,de_vs_avg_cas_const,-9.39,-13.44,-5.31,norm,-9.38|2.47 30 | DE,de_vs_avg_after_cas,-5.82,-7.56,-4.07,norm,-5.82|1.06 31 | FA,fa_va_avg,72,67,78,norm,72.83|3.65 32 | FA,fa_vs_avg,-3.62,-4.24,-2.99,norm,-3.62|0.38 33 | FA,fa_agl,2.98,2.44,3.53,norm,2.99|0.33 34 | LD,ld_v_app,70.7,65.5,75.9,norm,70.67|3.61 35 | LD,ld_d_brk,1.54,0.87,3.67,gamma,3.53|0.35|0.47 36 | LD,ld_acc_brk,-1.18,-1.85,-0.50,norm,-1.18|0.41 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/a333.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,89.9,77.8,102.1,norm,89.97|8.44 3 | TO,to_d_tof,1.86,1.27,3.01,gamma,8.89|0.45|0.18 4 | TO,to_acc_tof,1.72,1.32,2.13,norm,1.73|0.25 5 | IC,ic_va_avg,87,79,94,norm,87.04|4.98 6 | IC,ic_vs_avg,12.28,8.47,16.11,norm,12.29|2.32 7 | CL,cl_d_range,287,174,456,beta,2.84|4.07|153.70|358.08 8 | CL,cl_v_cas_const,153,142,165,norm,153.59|7.03 9 | CL,cl_v_mach_const,0.80,0.75,0.84,norm,0.80|0.03 10 | CL,cl_h_cas_const,3.1,1.9,6.2,gamma,4.75|0.84|0.61 11 | CL,cl_h_mach_const,9.1,8.0,10.2,norm,9.08|0.66 12 | CL,cl_vs_avg_pre_cas,8.82,6.46,11.19,norm,8.82|1.44 13 | CL,cl_vs_avg_cas_const,7.65,5.24,10.08,norm,7.66|1.47 14 | CL,cl_vs_avg_mach_const,4.56,3.14,7.90,gamma,5.77|1.63|0.61 15 | CR,cr_d_range,789,604,8911,beta,1.02|1.72|576.76|8731.39 16 | CR,cr_v_cas_mean,131,124,144,gamma,6.44|117.90|2.41 17 | CR,cr_v_cas_max,137,128,161,beta,2.59|7.64|123.03|77.33 18 | CR,cr_v_mach_mean,0.81,0.79,0.83,norm,0.81|0.01 19 | CR,cr_v_mach_max,0.83,0.81,0.87,gamma,17.42|0.76|0.00 20 | CR,cr_h_init,11.10,9.74,12.46,norm,11.10|0.83 21 | CR,cr_h_mean,11.49,10.54,12.45,norm,11.50|0.58 22 | CR,cr_h_max,12.53,10.63,12.48,beta,4.06|0.99|8.87|3.66 23 | DE,de_d_range,284,214,508,gamma,4.31|193.23|27.46 24 | DE,de_v_mach_const,0.81,0.77,0.84,norm,0.81|0.02 25 | DE,de_v_cas_const,150,137,162,norm,150.13|7.55 26 | DE,de_h_mach_const,10.2,8.5,11.3,beta,4.10|2.55|6.93|4.96 27 | DE,de_h_cas_const,6.3,3.4,9.1,norm,6.28|1.73 28 | DE,de_vs_avg_mach_const,-6.17,-12.50,-2.68,beta,4.37|2.47|-18.33|17.48 29 | DE,de_vs_avg_cas_const,-9.03,-13.07,-4.96,norm,-9.02|2.46 30 | DE,de_vs_avg_after_cas,-5.74,-7.41,-4.06,norm,-5.74|1.02 31 | FA,fa_va_avg,73,69,78,norm,73.84|3.33 32 | FA,fa_vs_avg,-3.74,-4.22,-2.97,gamma,16.90|-5.22|0.09 33 | FA,fa_agl,2.97,2.44,3.49,norm,2.97|0.32 34 | LD,ld_v_app,71.5,65.5,77.6,norm,71.55|4.18 35 | LD,ld_d_brk,1.48,0.81,3.79,gamma,3.19|0.33|0.53 36 | LD,ld_acc_brk,-1.20,-1.86,-0.53,norm,-1.20|0.40 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/a343.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,87.0,76.0,98.2,norm,87.08|7.70 3 | TO,to_d_tof,2.16,1.46,3.82,gamma,5.71|0.71|0.31 4 | TO,to_acc_tof,1.40,1.01,1.80,norm,1.40|0.24 5 | IC,ic_va_avg,84,76,93,beta,3.76|4.87|69.49|35.32 6 | IC,ic_vs_avg,6.44,4.82,11.01,gamma,4.18|3.43|0.95 7 | CL,cl_d_range,293,154,431,norm,293.32|53.81 8 | CL,cl_v_cas_const,155,144,169,beta,6.81|9.57|129.33|64.98 9 | CL,cl_v_mach_const,0.78,0.75,0.81,norm,0.78|0.02 10 | CL,cl_h_cas_const,3.6,1.7,5.5,norm,3.61|1.16 11 | CL,cl_h_mach_const,8.5,7.3,9.8,beta,5.08|5.89|6.16|5.14 12 | CL,cl_vs_avg_pre_cas,6.54,5.09,10.41,gamma,4.51|3.79|0.78 13 | CL,cl_vs_avg_cas_const,6.59,4.87,10.05,gamma,8.32|2.54|0.55 14 | CL,cl_vs_avg_mach_const,4.08,2.65,7.17,gamma,6.86|0.95|0.53 15 | CR,cr_d_range,6021,-1865,13929,norm,6032.29|3066.01 16 | CR,cr_v_cas_mean,138,128,148,norm,138.63|6.17 17 | CR,cr_v_cas_max,149,132,165,norm,149.24|9.97 18 | CR,cr_v_mach_mean,0.81,0.79,0.83,norm,0.81|0.01 19 | CR,cr_v_mach_max,0.83,0.81,0.88,gamma,11.93|0.77|0.01 20 | CR,cr_h_init,10.01,8.92,12.09,gamma,9.56|7.32|0.32 21 | CR,cr_h_mean,10.86,10.12,12.10,gamma,15.04|8.66|0.16 22 | CR,cr_h_max,11.70,10.61,12.35,beta,6.39|3.32|9.14|3.66 23 | DE,de_d_range,281,203,489,gamma,5.92|169.03|22.84 24 | DE,de_v_mach_const,0.81,0.76,0.84,beta,7.14|4.09|0.69|0.17 25 | DE,de_v_cas_const,154,138,165,beta,3.94|2.85|125.92|46.48 26 | DE,de_h_mach_const,9.9,8.3,11.1,beta,3.65|2.90|7.05|4.83 27 | DE,de_h_cas_const,5.8,3.0,8.8,beta,2.75|2.94|1.39|9.27 28 | DE,de_vs_avg_mach_const,-5.84,-12.15,-2.68,beta,4.78|2.43|-18.58|17.56 29 | DE,de_vs_avg_cas_const,-9.27,-13.56,-4.97,norm,-9.26|2.61 30 | DE,de_vs_avg_after_cas,-5.50,-7.22,-3.78,norm,-5.50|1.04 31 | FA,fa_va_avg,74,69,79,norm,74.30|3.48 32 | FA,fa_vs_avg,-3.64,-4.31,-2.97,norm,-3.64|0.41 33 | FA,fa_agl,3.04,2.47,3.61,norm,3.04|0.35 34 | LD,ld_v_app,72.2,67.5,77.0,norm,72.26|3.30 35 | LD,ld_d_brk,1.65,0.92,3.99,gamma,3.45|0.37|0.52 36 | LD,ld_acc_brk,-1.01,-1.83,-0.49,beta,4.33|2.73|-2.58|2.38 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/a388.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,89.9,75.4,104.4,norm,89.93|10.07 3 | TO,to_d_tof,2.56,1.35,3.78,norm,2.56|0.74 4 | TO,to_acc_tof,1.35,1.04,1.66,norm,1.35|0.19 5 | IC,ic_va_avg,88,80,96,norm,88.15|5.64 6 | IC,ic_vs_avg,5.65,4.40,8.94,gamma,4.76|3.22|0.65 7 | CL,cl_d_range,296,200,446,beta,3.23|5.18|179.46|335.24 8 | CL,cl_v_cas_const,163,155,170,norm,163.39|4.51 9 | CL,cl_v_mach_const,0.84,0.80,0.86,beta,12.23|5.32|0.72|0.17 10 | CL,cl_h_cas_const,3.3,1.3,5.3,norm,3.29|1.24 11 | CL,cl_h_mach_const,8.9,8.2,9.7,norm,8.94|0.47 12 | CL,cl_vs_avg_pre_cas,7.85,5.95,9.75,norm,7.85|1.16 13 | CL,cl_vs_avg_cas_const,7.51,5.20,9.82,norm,7.51|1.40 14 | CL,cl_vs_avg_mach_const,5.56,3.23,7.91,norm,5.57|1.42 15 | CR,cr_d_range,4348,892,20565,gamma,2.81|246.73|2274.81 16 | CR,cr_v_cas_mean,136,130,145,beta,3.32|5.27|126.00|29.75 17 | CR,cr_v_cas_max,145,134,164,beta,2.02|3.21|130.38|46.65 18 | CR,cr_v_mach_mean,0.84,0.82,0.86,norm,0.84|0.01 19 | CR,cr_v_mach_max,0.87,0.85,0.90,gamma,16.14|0.80|0.00 20 | CR,cr_h_init,11.55,9.30,12.23,beta,3.82|1.66|7.49|5.01 21 | CR,cr_h_mean,11.73,10.87,12.28,beta,7.22|3.92|9.59|3.14 22 | CR,cr_h_max,12.06,11.52,12.60,norm,12.06|0.33 23 | DE,de_d_range,310,238,528,gamma,4.73|213.47|25.87 24 | DE,de_v_mach_const,0.83,0.80,0.87,norm,0.83|0.02 25 | DE,de_v_cas_const,154,142,167,norm,154.84|7.74 26 | DE,de_h_mach_const,10.1,8.6,11.5,norm,10.06|0.88 27 | DE,de_h_cas_const,6.6,3.9,9.4,norm,6.64|1.69 28 | DE,de_vs_avg_mach_const,-6.06,-11.90,-2.97,beta,3.43|2.08|-15.98|14.36 29 | DE,de_vs_avg_cas_const,-8.36,-11.74,-4.97,norm,-8.36|2.06 30 | DE,de_vs_avg_after_cas,-5.48,-6.93,-4.02,norm,-5.48|0.88 31 | FA,fa_va_avg,73,68,77,norm,73.28|3.02 32 | FA,fa_vs_avg,-3.71,-4.13,-2.92,gamma,9.49|-4.74|0.12 33 | FA,fa_agl,2.90,2.42,3.38,norm,2.90|0.29 34 | LD,ld_v_app,70.0,62.1,78.0,norm,70.00|5.52 35 | LD,ld_d_brk,2.26,0.73,3.80,norm,2.26|0.93 36 | LD,ld_acc_brk,-1.01,-1.51,-0.52,norm,-1.01|0.30 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b737.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,83.6,72.3,94.8,norm,83.58|7.82 3 | TO,to_d_tof,1.50,1.03,2.58,gamma,5.97|0.52|0.20 4 | TO,to_acc_tof,1.77,1.31,2.23,norm,1.77|0.28 5 | IC,ic_va_avg,81,71,91,norm,81.31|6.79 6 | IC,ic_vs_avg,11.93,8.05,15.83,norm,11.94|2.37 7 | CL,cl_d_range,204,155,348,gamma,5.17|136.24|16.48 8 | CL,cl_v_cas_const,151,139,164,norm,151.95|7.82 9 | CL,cl_v_mach_const,0.78,0.72,0.81,beta,33.60|3.10|0.26|0.56 10 | CL,cl_h_cas_const,3.4,2.2,6.1,gamma,6.82|0.72|0.46 11 | CL,cl_h_mach_const,8.9,7.9,9.8,norm,8.85|0.59 12 | CL,cl_vs_avg_pre_cas,11.40,8.01,14.82,norm,11.41|2.07 13 | CL,cl_vs_avg_cas_const,11.71,8.49,14.93,norm,11.71|1.96 14 | CL,cl_vs_avg_mach_const,6.74,4.40,9.08,norm,6.74|1.42 15 | CR,cr_d_range,453,175,4929,gamma,1.38|156.17|773.74 16 | CR,cr_v_cas_mean,122,115,136,gamma,11.06|103.01|1.94 17 | CR,cr_v_cas_max,126,118,150,gamma,3.76|111.86|5.16 18 | CR,cr_v_mach_mean,0.78,0.74,0.80,beta,14.90|4.49|0.63|0.19 19 | CR,cr_v_mach_max,0.80,0.76,0.83,norm,0.80|0.02 20 | CR,cr_h_init,12.52,10.36,12.47,beta,5.29|0.98|7.50|5.02 21 | CR,cr_h_mean,11.74,10.73,12.75,norm,11.74|0.61 22 | CR,cr_h_max,11.90,11.03,12.78,norm,11.90|0.53 23 | DE,de_d_range,244,173,566,gamma,2.89|159.35|44.87 24 | DE,de_v_mach_const,0.78,0.70,0.81,beta,22.01|2.63|0.28|0.54 25 | DE,de_v_cas_const,146,133,159,norm,146.60|7.70 26 | DE,de_h_mach_const,9.6,8.1,11.2,norm,9.63|0.95 27 | DE,de_h_cas_const,5.7,3.0,8.5,norm,5.73|1.69 28 | DE,de_vs_avg_mach_const,-5.63,-13.13,-2.29,beta,2.76|1.69|-17.10|16.02 29 | DE,de_vs_avg_cas_const,-9.39,-14.21,-4.55,norm,-9.38|2.94 30 | DE,de_vs_avg_after_cas,-5.85,-7.84,-3.86,norm,-5.85|1.21 31 | FA,fa_va_avg,70,65,80,gamma,7.33|58.48|1.90 32 | FA,fa_vs_avg,-3.58,-4.45,-2.70,norm,-3.58|0.53 33 | FA,fa_agl,3.08,2.28,3.87,norm,3.08|0.48 34 | LD,ld_v_app,68.8,62.9,74.6,norm,68.78|4.05 35 | LD,ld_d_brk,1.91,0.66,4.39,beta,1.32|1.63|0.35|4.63 36 | LD,ld_acc_brk,-0.83,-1.90,-0.31,beta,5.10|2.45|-3.08|3.04 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b738.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,86.5,75.0,98.0,norm,86.54|7.99 3 | TO,to_d_tof,1.64,1.13,2.63,gamma,9.42|0.37|0.15 4 | TO,to_acc_tof,1.82,1.37,2.28,norm,1.82|0.28 5 | IC,ic_va_avg,87,80,93,norm,87.24|4.53 6 | IC,ic_vs_avg,12.27,8.29,16.26,norm,12.28|2.42 7 | CL,cl_d_range,216,168,350,gamma,5.40|149.68|15.22 8 | CL,cl_v_cas_const,151,140,161,norm,151.22|6.33 9 | CL,cl_v_mach_const,0.77,0.75,0.80,norm,0.77|0.02 10 | CL,cl_h_cas_const,3.6,1.8,5.4,norm,3.64|1.09 11 | CL,cl_h_mach_const,8.9,7.9,9.8,norm,8.88|0.57 12 | CL,cl_vs_avg_pre_cas,10.61,7.83,13.41,norm,10.62|1.70 13 | CL,cl_vs_avg_cas_const,10.24,7.70,12.80,norm,10.25|1.55 14 | CL,cl_vs_avg_mach_const,6.20,4.31,8.11,norm,6.21|1.15 15 | CR,cr_d_range,929,502,4953,gamma,1.71|463.22|654.96 16 | CR,cr_v_cas_mean,130,121,139,norm,130.27|5.50 17 | CR,cr_v_cas_max,132,125,151,gamma,5.83|116.60|3.39 18 | CR,cr_v_mach_mean,0.78,0.75,0.80,norm,0.78|0.02 19 | CR,cr_v_mach_max,0.80,0.77,0.83,norm,0.80|0.02 20 | CR,cr_h_init,11.13,10.16,12.10,norm,11.13|0.59 21 | CR,cr_h_mean,11.23,10.35,12.12,norm,11.24|0.54 22 | CR,cr_h_max,11.38,10.57,12.19,norm,11.38|0.49 23 | DE,de_d_range,241,179,472,gamma,3.59|163.64|30.00 24 | DE,de_v_mach_const,0.77,0.73,0.81,norm,0.77|0.03 25 | DE,de_v_cas_const,145,132,159,norm,145.77|8.27 26 | DE,de_h_mach_const,9.7,8.3,11.1,norm,9.68|0.86 27 | DE,de_h_cas_const,5.9,3.2,8.7,norm,5.95|1.65 28 | DE,de_vs_avg_mach_const,-5.80,-12.73,-2.11,beta,3.43|2.10|-17.58|17.11 29 | DE,de_vs_avg_cas_const,-9.95,-14.39,-5.48,norm,-9.94|2.71 30 | DE,de_vs_avg_after_cas,-6.23,-7.91,-4.53,norm,-6.22|1.03 31 | FA,fa_va_avg,77,72,82,norm,77.35|3.71 32 | FA,fa_vs_avg,-3.84,-4.56,-3.12,norm,-3.84|0.44 33 | FA,fa_agl,3.02,2.33,3.72,norm,3.03|0.42 34 | LD,ld_v_app,75.4,69.5,81.3,norm,75.37|4.11 35 | LD,ld_d_brk,1.25,0.68,3.60,gamma,2.60|0.33|0.57 36 | LD,ld_acc_brk,-1.36,-2.14,-0.57,norm,-1.36|0.48 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b739.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,91.3,77.6,105.0,norm,91.32|9.53 3 | TO,to_d_tof,1.91,1.14,2.90,beta,4.56|6.31|0.42|3.74 4 | TO,to_acc_tof,1.87,1.41,2.32,norm,1.87|0.28 5 | IC,ic_va_avg,91,84,99,norm,91.92|5.26 6 | IC,ic_vs_avg,12.36,7.85,16.90,norm,12.37|2.75 7 | CL,cl_d_range,239,142,337,norm,239.93|37.90 8 | CL,cl_v_cas_const,154,143,166,norm,154.87|6.96 9 | CL,cl_v_mach_const,0.78,0.75,0.81,beta,10.40|4.40|0.66|0.16 10 | CL,cl_h_cas_const,3.4,2.3,5.9,gamma,6.04|1.09|0.46 11 | CL,cl_h_mach_const,8.6,7.7,9.5,norm,8.60|0.56 12 | CL,cl_vs_avg_pre_cas,10.18,7.64,12.72,norm,10.18|1.55 13 | CL,cl_vs_avg_cas_const,8.88,6.66,11.12,norm,8.89|1.36 14 | CL,cl_vs_avg_mach_const,5.55,3.67,7.43,norm,5.55|1.14 15 | CR,cr_d_range,338,193,4458,beta,1.05|2.54|180.63|4861.59 16 | CR,cr_v_cas_mean,138,127,149,norm,138.40|6.60 17 | CR,cr_v_cas_max,145,131,159,norm,145.21|8.55 18 | CR,cr_v_mach_mean,0.78,0.76,0.81,norm,0.78|0.02 19 | CR,cr_v_mach_max,0.81,0.78,0.84,norm,0.81|0.02 20 | CR,cr_h_init,10.43,9.43,11.43,norm,10.43|0.61 21 | CR,cr_h_mean,10.52,9.63,11.41,norm,10.52|0.54 22 | CR,cr_h_max,10.74,9.73,11.61,beta,6.51|5.15|8.41|4.08 23 | DE,de_d_range,245,180,505,gamma,3.29|165.75|34.68 24 | DE,de_v_mach_const,0.78,0.73,0.80,beta,5.13|2.83|0.68|0.14 25 | DE,de_v_cas_const,148,138,159,norm,148.73|6.45 26 | DE,de_h_mach_const,9.4,8.2,10.6,norm,9.36|0.73 27 | DE,de_h_cas_const,6.5,4.2,8.8,norm,6.46|1.39 28 | DE,de_vs_avg_mach_const,-4.78,-11.29,-1.79,beta,3.42|1.92|-15.82|15.27 29 | DE,de_vs_avg_cas_const,-8.96,-13.87,-4.17,beta,4.39|4.26|-18.26|18.26 30 | DE,de_vs_avg_after_cas,-6.02,-7.69,-4.35,norm,-6.02|1.02 31 | FA,fa_va_avg,78,72,83,norm,78.30|3.70 32 | FA,fa_vs_avg,-3.92,-4.72,-3.13,norm,-3.92|0.48 33 | FA,fa_agl,3.03,2.43,3.64,norm,3.03|0.37 34 | LD,ld_v_app,76.8,70.5,83.2,norm,76.86|4.40 35 | LD,ld_d_brk,1.45,0.70,4.22,gamma,2.95|0.19|0.65 36 | LD,ld_acc_brk,-1.33,-2.12,-0.54,norm,-1.33|0.48 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b744.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,92.4,79.3,105.4,norm,92.39|9.06 3 | TO,to_d_tof,2.29,1.27,3.31,norm,2.29|0.62 4 | TO,to_acc_tof,1.67,1.21,2.13,norm,1.67|0.28 5 | IC,ic_va_avg,91,82,101,beta,4.95|5.64|70.82|44.93 6 | IC,ic_vs_avg,9.24,6.76,13.74,gamma,11.16|2.72|0.64 7 | CL,cl_d_range,223,175,374,gamma,4.44|160.55|18.26 8 | CL,cl_v_cas_const,168,157,180,norm,168.81|7.06 9 | CL,cl_v_mach_const,0.84,0.81,0.87,norm,0.84|0.02 10 | CL,cl_h_cas_const,3.9,2.2,5.6,norm,3.89|1.05 11 | CL,cl_h_mach_const,8.3,7.6,9.7,gamma,10.78|6.39|0.20 12 | CL,cl_vs_avg_pre_cas,8.66,6.00,11.33,norm,8.67|1.62 13 | CL,cl_vs_avg_cas_const,8.77,6.65,13.11,gamma,7.91|3.87|0.71 14 | CL,cl_vs_avg_mach_const,6.72,4.07,9.39,norm,6.73|1.61 15 | CR,cr_d_range,5580,-1544,12725,norm,5590.66|2769.86 16 | CR,cr_v_cas_mean,146,134,158,norm,146.64|7.16 17 | CR,cr_v_cas_max,157,139,174,norm,157.08|10.62 18 | CR,cr_v_mach_mean,0.84,0.82,0.87,norm,0.84|0.01 19 | CR,cr_v_mach_max,0.87,0.84,0.92,gamma,16.48|0.77|0.01 20 | CR,cr_h_init,10.28,8.87,11.70,norm,10.28|0.86 21 | CR,cr_h_mean,10.81,9.77,11.84,norm,10.81|0.63 22 | CR,cr_h_max,11.29,10.17,12.40,beta,6.02|5.99|8.84|4.88 23 | DE,de_d_range,262,195,510,gamma,3.60|178.39|32.24 24 | DE,de_v_mach_const,0.83,0.77,0.87,beta,5.70|2.75|0.68|0.21 25 | DE,de_v_cas_const,152,139,164,norm,152.44|7.62 26 | DE,de_h_mach_const,10.0,8.7,11.3,norm,10.00|0.79 27 | DE,de_h_cas_const,6.6,4.0,9.2,norm,6.61|1.57 28 | DE,de_vs_avg_mach_const,-5.43,-12.37,-2.20,beta,3.86|2.07|-17.94|17.19 29 | DE,de_vs_avg_cas_const,-9.17,-13.85,-4.48,norm,-9.16|2.85 30 | DE,de_vs_avg_after_cas,-6.29,-8.02,-4.55,norm,-6.29|1.05 31 | FA,fa_va_avg,79,72,85,norm,79.03|4.54 32 | FA,fa_vs_avg,-4.03,-4.60,-3.03,gamma,13.46|-5.66|0.13 33 | FA,fa_agl,2.98,2.33,3.64,norm,2.98|0.40 34 | LD,ld_v_app,77.9,71.0,84.9,norm,77.96|4.85 35 | LD,ld_d_brk,1.64,0.93,4.06,gamma,3.26|0.41|0.55 36 | LD,ld_acc_brk,-1.18,-1.98,-0.60,beta,5.71|3.74|-2.92|2.76 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b752.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,90.5,76.8,104.3,norm,90.55|9.57 3 | TO,to_d_tof,1.70,0.98,2.66,beta,3.89|5.55|0.41|3.34 4 | TO,to_acc_tof,1.91,1.46,2.37,norm,1.91|0.28 5 | IC,ic_va_avg,88,78,98,norm,88.51|7.17 6 | IC,ic_vs_avg,12.99,8.60,17.40,norm,13.00|2.68 7 | CL,cl_d_range,220,167,384,gamma,4.69|149.01|19.46 8 | CL,cl_v_cas_const,155,144,166,norm,155.59|6.70 9 | CL,cl_v_mach_const,0.79,0.75,0.82,norm,0.79|0.02 10 | CL,cl_h_cas_const,4.0,2.3,5.7,norm,4.00|1.02 11 | CL,cl_h_mach_const,8.7,8.0,9.5,norm,8.75|0.48 12 | CL,cl_vs_avg_pre_cas,10.29,7.80,12.80,norm,10.30|1.52 13 | CL,cl_vs_avg_cas_const,8.95,6.41,11.51,norm,8.96|1.55 14 | CL,cl_vs_avg_mach_const,6.23,3.80,8.67,norm,6.24|1.48 15 | CR,cr_d_range,497,512,6087,beta,0.99|1.86|497.24|5936.62 16 | CR,cr_v_cas_mean,131,123,145,gamma,11.69|110.95|1.94 17 | CR,cr_v_cas_max,138,128,159,gamma,6.92|116.87|3.65 18 | CR,cr_v_mach_mean,0.79,0.77,0.82,norm,0.79|0.02 19 | CR,cr_v_mach_max,0.81,0.79,0.86,gamma,9.66|0.75|0.01 20 | CR,cr_h_init,11.00,9.96,12.05,norm,11.00|0.63 21 | CR,cr_h_mean,11.17,10.28,12.07,norm,11.17|0.54 22 | CR,cr_h_max,11.64,10.39,12.22,beta,5.67|2.52|8.87|3.67 23 | DE,de_d_range,247,178,504,gamma,3.53|162.02|33.57 24 | DE,de_v_mach_const,0.79,0.75,0.82,norm,0.79|0.02 25 | DE,de_v_cas_const,151,137,165,norm,151.53|8.29 26 | DE,de_h_mach_const,9.4,8.0,10.8,norm,9.40|0.84 27 | DE,de_h_cas_const,6.3,3.9,8.8,norm,6.35|1.50 28 | DE,de_vs_avg_mach_const,-6.80,-12.65,-2.52,beta,2.78|2.22|-15.86|15.25 29 | DE,de_vs_avg_cas_const,-9.56,-14.46,-4.64,norm,-9.55|2.99 30 | DE,de_vs_avg_after_cas,-6.16,-7.90,-4.41,norm,-6.15|1.06 31 | FA,fa_va_avg,69,62,76,norm,69.77|4.86 32 | FA,fa_vs_avg,-3.41,-4.20,-2.62,norm,-3.41|0.48 33 | FA,fa_agl,3.09,2.20,3.98,norm,3.09|0.54 34 | LD,ld_v_app,66.7,60.2,73.2,norm,66.71|4.50 35 | LD,ld_d_brk,1.21,0.68,3.43,gamma,2.56|0.35|0.55 36 | LD,ld_acc_brk,-1.03,-1.85,-0.46,beta,4.58|3.08|-2.63|2.53 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b763.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,92.4,79.6,105.3,norm,92.43|8.92 3 | TO,to_d_tof,1.82,1.03,2.61,norm,1.82|0.48 4 | TO,to_acc_tof,1.97,1.46,2.49,norm,1.97|0.31 5 | IC,ic_va_avg,88,80,96,beta,4.65|5.42|71.86|36.69 6 | IC,ic_vs_avg,14.28,9.45,19.12,norm,14.29|2.94 7 | CL,cl_d_range,202,160,338,gamma,4.37|146.83|16.52 8 | CL,cl_v_cas_const,159,146,171,beta,5.42|4.92|131.86|52.14 9 | CL,cl_v_mach_const,0.79,0.76,0.83,norm,0.79|0.02 10 | CL,cl_h_cas_const,4.0,2.6,5.5,norm,4.05|0.90 11 | CL,cl_h_mach_const,8.3,7.6,9.8,gamma,8.58|6.61|0.23 12 | CL,cl_vs_avg_pre_cas,10.16,7.27,13.07,norm,10.17|1.76 13 | CL,cl_vs_avg_cas_const,10.26,7.06,13.48,norm,10.27|1.95 14 | CL,cl_vs_avg_mach_const,6.95,3.76,10.16,norm,6.96|1.95 15 | CR,cr_d_range,1201,562,9544,beta,1.06|1.84|526.21|9525.03 16 | CR,cr_v_cas_mean,137,127,148,norm,137.87|6.52 17 | CR,cr_v_cas_max,142,132,165,gamma,5.96|121.86|4.14 18 | CR,cr_v_mach_mean,0.80,0.77,0.83,norm,0.80|0.02 19 | CR,cr_v_mach_max,0.82,0.79,0.87,gamma,9.85|0.75|0.01 20 | CR,cr_h_init,10.65,9.11,11.75,beta,4.71|3.26|7.61|4.88 21 | CR,cr_h_mean,10.81,9.90,11.73,norm,10.82|0.55 22 | CR,cr_h_max,11.17,10.30,12.04,norm,11.17|0.53 23 | DE,de_d_range,244,178,489,gamma,3.61|161.96|31.72 24 | DE,de_v_mach_const,0.79,0.76,0.83,norm,0.79|0.02 25 | DE,de_v_cas_const,151,139,164,norm,151.80|7.70 26 | DE,de_h_mach_const,9.5,8.3,10.8,norm,9.55|0.77 27 | DE,de_h_cas_const,6.7,4.4,9.0,norm,6.70|1.42 28 | DE,de_vs_avg_mach_const,-6.29,-13.20,-2.33,beta,2.75|1.91|-16.88|16.10 29 | DE,de_vs_avg_cas_const,-9.98,-14.99,-4.94,norm,-9.97|3.06 30 | DE,de_vs_avg_after_cas,-6.29,-7.99,-4.58,norm,-6.29|1.04 31 | FA,fa_va_avg,74,68,80,norm,74.38|4.27 32 | FA,fa_vs_avg,-3.76,-4.37,-2.75,gamma,15.83|-5.60|0.12 33 | FA,fa_agl,2.98,2.22,3.74,norm,2.98|0.46 34 | LD,ld_v_app,72.1,65.3,78.9,norm,72.10|4.70 35 | LD,ld_d_brk,1.51,0.66,3.71,beta,1.65|2.94|0.35|4.63 36 | LD,ld_acc_brk,-1.10,-1.94,-0.52,beta,4.70|3.14|-2.76|2.62 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b77w.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,96.4,83.9,109.0,norm,96.46|8.74 3 | TO,to_d_tof,2.21,1.38,3.04,norm,2.21|0.50 4 | TO,to_acc_tof,1.89,1.45,2.33,norm,1.89|0.27 5 | IC,ic_va_avg,98,88,106,beta,3.65|3.27|80.15|33.27 6 | IC,ic_vs_avg,13.02,9.69,16.36,norm,13.03|2.03 7 | CL,cl_d_range,214,173,354,gamma,4.08|161.44|17.33 8 | CL,cl_v_cas_const,164,158,170,norm,164.33|3.45 9 | CL,cl_v_mach_const,0.83,0.80,0.86,norm,0.83|0.02 10 | CL,cl_h_cas_const,3.8,1.8,5.9,norm,3.84|1.25 11 | CL,cl_h_mach_const,8.8,8.1,9.5,norm,8.80|0.42 12 | CL,cl_vs_avg_pre_cas,8.99,6.80,11.19,norm,8.99|1.33 13 | CL,cl_vs_avg_cas_const,8.55,6.41,12.95,gamma,7.87|3.61|0.72 14 | CL,cl_vs_avg_mach_const,5.76,3.31,10.81,gamma,7.72|0.15|0.83 15 | CR,cr_d_range,4843,758,14177,beta,1.32|1.74|606.13|14106.67 16 | CR,cr_v_cas_mean,148,139,158,norm,148.69|5.75 17 | CR,cr_v_cas_max,159,142,175,norm,159.16|10.07 18 | CR,cr_v_mach_mean,0.84,0.82,0.86,norm,0.84|0.01 19 | CR,cr_v_mach_max,0.86,0.84,0.91,gamma,5.16|0.82|0.01 20 | CR,cr_h_init,9.63,8.74,11.52,gamma,7.37|7.62|0.32 21 | CR,cr_h_mean,10.35,9.75,11.40,gamma,12.87|8.67|0.14 22 | CR,cr_h_max,11.00,10.31,11.69,norm,11.00|0.42 23 | DE,de_d_range,257,197,476,gamma,3.62|182.39|28.42 24 | DE,de_v_mach_const,0.82,0.79,0.86,norm,0.82|0.02 25 | DE,de_v_cas_const,156,140,167,beta,4.64|3.00|124.43|50.43 26 | DE,de_h_mach_const,9.7,8.6,10.8,norm,9.72|0.67 27 | DE,de_h_cas_const,6.7,4.2,9.2,norm,6.68|1.51 28 | DE,de_vs_avg_mach_const,-7.04,-12.03,-2.02,norm,-7.02|3.04 29 | DE,de_vs_avg_cas_const,-9.05,-13.36,-4.72,norm,-9.04|2.63 30 | DE,de_vs_avg_after_cas,-6.30,-7.92,-4.67,norm,-6.30|0.99 31 | FA,fa_va_avg,78,73,83,norm,78.67|3.38 32 | FA,fa_vs_avg,-4.03,-4.49,-3.27,gamma,15.93|-5.43|0.09 33 | FA,fa_agl,2.95,2.44,3.46,norm,2.95|0.31 34 | LD,ld_v_app,76.9,70.8,83.1,norm,76.94|4.25 35 | LD,ld_d_brk,1.49,0.84,3.52,gamma,3.57|0.34|0.45 36 | LD,ld_acc_brk,-1.33,-2.00,-0.66,norm,-1.33|0.41 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b788.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,90.3,74.4,106.3,norm,90.35|11.10 3 | TO,to_d_tof,2.16,1.08,3.25,norm,2.16|0.66 4 | TO,to_acc_tof,1.61,1.16,2.07,norm,1.61|0.28 5 | IC,ic_va_avg,87,78,97,beta,3.16|3.65|71.08|36.50 6 | IC,ic_vs_avg,10.65,6.27,14.45,beta,6.24|5.05|0.78|17.49 7 | CL,cl_d_range,286,146,427,norm,287.05|54.42 8 | CL,cl_v_cas_const,158,146,170,norm,158.68|7.34 9 | CL,cl_v_mach_const,0.85,0.81,0.87,beta,14.41|4.76|0.69|0.21 10 | CL,cl_h_cas_const,3.8,2.5,6.3,gamma,7.78|0.85|0.43 11 | CL,cl_h_mach_const,9.5,8.4,10.6,norm,9.52|0.68 12 | CL,cl_vs_avg_pre_cas,9.58,7.32,11.85,norm,9.58|1.38 13 | CL,cl_vs_avg_cas_const,9.02,6.12,11.93,norm,9.02|1.77 14 | CL,cl_vs_avg_mach_const,6.02,3.59,8.47,norm,6.03|1.48 15 | CR,cr_d_range,1874,269,11619,beta,1.14|1.87|206.46|12053.57 16 | CR,cr_v_cas_mean,132,126,146,gamma,6.84|119.57|2.28 17 | CR,cr_v_cas_max,139,130,164,gamma,4.29|122.70|5.16 18 | CR,cr_v_mach_mean,0.85,0.83,0.87,norm,0.85|0.01 19 | CR,cr_v_mach_max,0.87,0.85,0.91,gamma,16.44|0.80|0.00 20 | CR,cr_h_init,11.65,10.37,12.92,norm,11.65|0.78 21 | CR,cr_h_mean,12.01,11.16,12.85,norm,12.01|0.51 22 | CR,cr_h_max,12.28,11.52,13.06,norm,12.29|0.47 23 | DE,de_d_range,292,219,551,gamma,3.85|198.90|32.88 24 | DE,de_v_mach_const,0.84,0.80,0.87,norm,0.84|0.02 25 | DE,de_v_cas_const,153,140,167,norm,153.71|8.29 26 | DE,de_h_mach_const,10.5,8.8,11.7,beta,3.43|2.59|7.57|4.76 27 | DE,de_h_cas_const,7.0,4.4,9.7,norm,7.06|1.58 28 | DE,de_vs_avg_mach_const,-7.59,-14.16,-3.35,beta,3.41|2.37|-18.73|17.46 29 | DE,de_vs_avg_cas_const,-9.52,-13.91,-5.11,norm,-9.51|2.67 30 | DE,de_vs_avg_after_cas,-6.20,-7.94,-4.45,norm,-6.19|1.06 31 | FA,fa_va_avg,75,70,80,norm,75.58|3.36 32 | FA,fa_vs_avg,-3.99,-4.59,-3.11,gamma,24.44|-6.14|0.09 33 | FA,fa_agl,2.88,2.37,3.40,norm,2.88|0.31 34 | LD,ld_v_app,71.3,62.0,80.6,norm,71.29|6.48 35 | LD,ld_d_brk,2.08,0.45,3.71,norm,2.08|0.99 36 | LD,ld_acc_brk,-1.12,-1.79,-0.46,norm,-1.12|0.40 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/b789.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,96.1,81.1,111.2,norm,96.15|10.46 3 | TO,to_d_tof,2.49,1.31,3.69,norm,2.50|0.72 4 | TO,to_acc_tof,1.63,1.20,2.06,norm,1.63|0.26 5 | IC,ic_va_avg,92,81,103,beta,3.43|3.27|72.17|39.84 6 | IC,ic_vs_avg,10.60,6.48,14.74,norm,10.61|2.51 7 | CL,cl_d_range,263,173,420,beta,2.91|5.02|156.74|333.07 8 | CL,cl_v_cas_const,163,151,174,norm,163.14|7.01 9 | CL,cl_v_mach_const,0.84,0.82,0.87,norm,0.84|0.02 10 | CL,cl_h_cas_const,4.1,2.3,5.9,norm,4.10|1.07 11 | CL,cl_h_mach_const,9.1,8.1,10.2,norm,9.14|0.66 12 | CL,cl_vs_avg_pre_cas,9.46,7.18,11.75,norm,9.47|1.39 13 | CL,cl_vs_avg_cas_const,8.68,6.04,11.81,beta,3.89|4.77|3.94|10.92 14 | CL,cl_vs_avg_mach_const,6.05,3.63,8.47,norm,6.05|1.47 15 | CR,cr_d_range,5695,-3140,14555,norm,5707.50|3434.94 16 | CR,cr_v_cas_mean,139,129,149,norm,139.87|6.06 17 | CR,cr_v_cas_max,148,133,170,beta,2.67|4.04|125.61|63.39 18 | CR,cr_v_mach_mean,0.85,0.83,0.87,norm,0.85|0.01 19 | CR,cr_v_mach_max,0.87,0.85,0.92,gamma,6.01|0.83|0.01 20 | CR,cr_h_init,11.30,9.42,12.44,beta,4.59|2.75|7.61|5.49 21 | CR,cr_h_mean,11.58,10.72,12.44,norm,11.58|0.52 22 | CR,cr_h_max,11.99,11.28,12.70,norm,11.99|0.43 23 | DE,de_d_range,293,224,550,gamma,3.57|207.20|33.45 24 | DE,de_v_mach_const,0.84,0.79,0.87,beta,7.21|3.08|0.71|0.17 25 | DE,de_v_cas_const,154,139,169,norm,154.59|8.89 26 | DE,de_h_mach_const,10.5,8.6,11.6,beta,3.21|2.22|7.41|4.75 27 | DE,de_h_cas_const,7.0,4.3,9.6,norm,6.99|1.61 28 | DE,de_vs_avg_mach_const,-7.16,-12.88,-2.81,beta,2.83|2.31|-16.09|15.29 29 | DE,de_vs_avg_cas_const,-9.14,-13.41,-4.84,norm,-9.13|2.61 30 | DE,de_vs_avg_after_cas,-6.19,-7.91,-4.46,norm,-6.18|1.05 31 | FA,fa_va_avg,77,72,83,norm,77.88|3.71 32 | FA,fa_vs_avg,-4.15,-4.71,-3.15,gamma,11.92|-5.65|0.14 33 | FA,fa_agl,2.89,2.36,3.43,norm,2.89|0.32 34 | LD,ld_v_app,74.0,64.8,83.3,norm,74.07|6.42 35 | LD,ld_d_brk,2.49,0.68,4.31,norm,2.49|1.11 36 | LD,ld_acc_brk,-1.11,-1.74,-0.47,norm,-1.11|0.38 37 | -------------------------------------------------------------------------------- /scripts/input/wrap/e190.csv: -------------------------------------------------------------------------------- 1 | phase,param,opt,min,max,model,pm 2 | TO,to_v_lof,88.1,78.7,97.5,norm,88.13|6.52 3 | TO,to_d_tof,1.80,1.19,2.42,norm,1.81|0.38 4 | TO,to_acc_tof,1.83,1.38,2.28,norm,1.83|0.27 5 | IC,ic_va_avg,78,66,91,norm,78.72|8.77 6 | IC,ic_vs_avg,11.19,5.78,16.62,norm,11.20|3.30 7 | CL,cl_d_range,215,162,389,gamma,4.36|144.99|21.11 8 | CL,cl_v_cas_const,140,133,156,gamma,8.78|122.65|2.36 9 | CL,cl_v_mach_const,0.75,0.71,0.80,norm,0.75|0.03 10 | CL,cl_h_cas_const,3.0,1.8,6.5,gamma,4.03|0.82|0.73 11 | CL,cl_h_mach_const,9.2,8.1,10.2,norm,9.19|0.63 12 | CL,cl_vs_avg_pre_cas,10.44,7.18,13.71,norm,10.44|1.98 13 | CL,cl_vs_avg_cas_const,8.93,6.27,11.60,norm,8.93|1.62 14 | CL,cl_vs_avg_mach_const,4.82,2.95,6.70,norm,4.82|1.14 15 | CR,cr_d_range,734,464,2710,gamma,1.98|433.55|308.41 16 | CR,cr_v_cas_mean,131,120,141,norm,131.14|6.25 17 | CR,cr_v_cas_max,137,124,150,norm,137.30|7.93 18 | CR,cr_v_mach_mean,0.77,0.74,0.81,norm,0.77|0.02 19 | CR,cr_v_mach_max,0.79,0.76,0.85,gamma,17.56|0.68|0.01 20 | CR,cr_h_init,10.99,9.99,12.00,norm,11.00|0.61 21 | CR,cr_h_mean,11.05,10.05,12.05,norm,11.05|0.61 22 | CR,cr_h_max,11.16,10.21,12.13,norm,11.17|0.58 23 | DE,de_d_range,253,171,425,beta,2.17|3.85|161.90|315.91 24 | DE,de_v_mach_const,0.77,0.72,0.81,norm,0.77|0.03 25 | DE,de_v_cas_const,148,134,159,beta,3.94|3.27|124.00|42.94 26 | DE,de_h_mach_const,9.3,8.0,10.6,norm,9.29|0.78 27 | DE,de_h_cas_const,5.4,2.6,8.2,norm,5.42|1.72 28 | DE,de_vs_avg_mach_const,-5.25,-11.79,-2.10,beta,4.50|2.29|-18.06|17.51 29 | DE,de_vs_avg_cas_const,-9.08,-13.29,-4.85,norm,-9.07|2.56 30 | DE,de_vs_avg_after_cas,-5.90,-7.92,-3.88,norm,-5.90|1.23 31 | FA,fa_va_avg,70,64,76,norm,70.46|4.17 32 | FA,fa_vs_avg,-3.57,-4.34,-2.81,norm,-3.57|0.47 33 | FA,fa_agl,2.92,2.38,3.46,norm,2.92|0.33 34 | LD,ld_v_app,66.9,56.6,77.2,norm,66.90|7.16 35 | LD,ld_d_brk,2.10,0.70,3.52,norm,2.11|0.86 36 | LD,ld_acc_brk,-1.08,-1.80,-0.36,norm,-1.08|0.44 37 | -------------------------------------------------------------------------------- /scripts/inspect_engine_ff_emission.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from openap import prop 3 | from pprint import pprint as print 4 | import matplotlib.pyplot as plt 5 | 6 | acs = prop.available_aircraft() 7 | 8 | for ac in acs: 9 | engs = prop.aircraft_engine_options(ac) 10 | for eng in engs: 11 | 12 | try: 13 | e = prop.engine(eng) 14 | print(e) 15 | except: 16 | print(f"{eng} from {ac} cannot be found.") 17 | continue 18 | 19 | c3, c2, c1 = ( 20 | e["fuel_c3"], 21 | e["fuel_c2"], 22 | e["fuel_c1"], 23 | ) 24 | 25 | x = np.array([0.07, 0.3, 0.85, 1.0]) 26 | xx = np.linspace(0, 1, 100) 27 | 28 | plt.suptitle(f"{ac} / {eng}") 29 | 30 | plt.subplot(221) 31 | plt.scatter(x, [e["ff_idl"], e["ff_app"], e["ff_co"], e["ff_to"]]) 32 | plt.plot(xx, prop.func_fuel(e["fuel_c3"], e["fuel_c2"], e["fuel_c1"])(xx)) 33 | plt.ylabel("Fuel flow (kg)") 34 | plt.xlabel("Thrust ratio") 35 | 36 | plt.subplot(222) 37 | plt.plot( 38 | [e["ff_idl"], e["ff_app"], e["ff_co"], e["ff_to"]], 39 | [e["ei_nox_idl"], e["ei_nox_app"], e["ei_nox_co"], e["ei_nox_to"]], 40 | ".--", 41 | ) 42 | plt.ylabel("EI NOx") 43 | plt.xlabel("Fuel flow (kg)") 44 | 45 | plt.subplot(223) 46 | plt.plot( 47 | [e["ff_idl"], e["ff_app"], e["ff_co"], e["ff_to"]], 48 | [e["ei_co_idl"], e["ei_co_app"], e["ei_co_co"], e["ei_co_to"]], 49 | ".--", 50 | ) 51 | plt.ylabel("EI COx") 52 | plt.xlabel("Fuel flow (kg)") 53 | 54 | plt.subplot(224) 55 | plt.plot( 56 | [e["ff_idl"], e["ff_app"], e["ff_co"], e["ff_to"]], 57 | [e["ei_hc_idl"], e["ei_hc_app"], e["ei_hc_co"], e["ei_hc_to"]], 58 | ".--", 59 | ) 60 | plt.ylabel("EI HCx") 61 | plt.xlabel("Fuel flow (kg)") 62 | 63 | plt.tight_layout() 64 | plt.draw() 65 | plt.waitforbuttonpress(-1) 66 | plt.clf() 67 | -------------------------------------------------------------------------------- /scripts/plot_fuel_model.py: -------------------------------------------------------------------------------- 1 | from glob import glob 2 | 3 | import matplotlib.pyplot as plt 4 | import yaml 5 | 6 | import numpy as np 7 | 8 | files = sorted(glob("../openap/data/fuel/*.yml")) 9 | 10 | 11 | def func_fuel(x, coef): 12 | return -coef * (x - 1) ** 2 + coef 13 | 14 | 15 | for file in files: 16 | with open(file, "r") as f: 17 | params = yaml.safe_load(f.read()) 18 | name = f"{params['aircraft']} ({params['engine']})" 19 | # print(name) 20 | 21 | x = np.linspace(0, 1, 100) 22 | 23 | y = func_fuel(x, params["fuel_coef"]) 24 | 25 | plt.plot(x, y, label=name) 26 | plt.xlabel("$T / T_{max}$") 27 | plt.ylabel("Fuel flow (kg/s)") 28 | 29 | plt.legend(loc="upper left", bbox_to_anchor=(1.05, 1), ncol=1) 30 | 31 | plt.show() 32 | -------------------------------------------------------------------------------- /scripts/wrap_csv_to_fwf.py: -------------------------------------------------------------------------------- 1 | import os 2 | import glob 3 | import yaml 4 | import numpy as np 5 | import pandas as pd 6 | 7 | 8 | from tabulate import tabulate 9 | def to_fwf(df, fname): 10 | content = tabulate(df.values.tolist(), list(df.columns), tablefmt="plain", numalign="left", stralign="left") 11 | open(fname, "w").write(content) 12 | pd.DataFrame.to_fwf = to_fwf 13 | 14 | root = os.path.dirname(os.path.realpath(__file__)) 15 | 16 | phases = { 17 | 'TO': 'takeoff', 18 | 'IC': 'initial_climb', 19 | 'CL': 'climb', 20 | 'CR': 'cruise', 21 | 'DE': 'descent', 22 | 'FA': 'final_approach', 23 | 'LD': 'landing', 24 | } 25 | 26 | prop = { 27 | 'to_v_lof': 'Liftoff speed' , 28 | 'to_d_tof': 'Takeoff distance' , 29 | 'to_acc_tof': 'Mean takeoff accelaration' , 30 | 'ic_va_avg': 'Mean airspeed' , 31 | 'ic_vs_avg': 'Mean vertical rate' , 32 | 'ic_va_std': 'Standard deviation of airspeed' , 33 | 'ic_vs_std': 'Standard deviation of vertical rate ' , 34 | 'cl_d_range': 'Climb range' , 35 | 'cl_v_cas_const': 'Constant CAS' , 36 | 'cl_v_mach_const': 'Constant Mach' , 37 | 'cl_h_cas_const': 'Constant CAS crossover altitude' , 38 | 'cl_h_mach_const': 'Constant Mach crossover altitude' , 39 | 'cl_vs_avg_pre_cas': 'Mean climb rate, pre-constant-CAS' , 40 | 'cl_vs_avg_cas_const': 'Mean climb rate, constant-CAS' , 41 | 'cl_vs_avg_mach_const': 'Mean climb rate, constant-Mach' , 42 | 'cr_d_range': 'Cruise range' , 43 | 'cr_v_cas_mean': 'Mean cruise CAS' , 44 | 'cr_v_cas_max': 'Maximum cruise CAS' , 45 | 'cr_v_mach_mean': 'Mean cruise Mach' , 46 | 'cr_v_mach_max': 'Maximum cruise Mach' , 47 | 'cr_h_init': 'Initial cruise altitude' , 48 | 'cr_h_mean': 'Mean cruise altitude' , 49 | 'cr_h_max': 'Maximum cruise altitude' , 50 | 'de_d_range': 'Descent range' , 51 | 'de_v_mach_const': 'Constant Mach' , 52 | 'de_v_cas_const': 'Constant CAS' , 53 | 'de_h_cas_const': 'Constant CAS crossover altitude' , 54 | 'de_h_mach_const': 'Constant Mach crossover altitude' , 55 | 'de_vs_avg_cas_const': 'Mean descent rate, constant-CAS' , 56 | 'de_vs_avg_mach_const': 'Mean descent rate, constant-Mach' , 57 | 'de_vs_avg_after_cas': 'Mean descent rate, after-constant-CAS' , 58 | 'fa_va_avg': 'Mean airspeed' , 59 | 'fa_vs_avg': 'Mean vertical rate' , 60 | 'fa_va_std': 'Standard deviation of airspeed' , 61 | 'fa_vs_std': 'Standard deviation of vertical rate' , 62 | 'fa_agl': 'Approach angle' , 63 | 'ld_v_app': 'Touchdown speed' , 64 | 'ld_d_brk': 'Braking distance' , 65 | 'ld_acc_brk': 'Mean braking acceleration' , 66 | } 67 | 68 | 69 | files = sorted(glob.glob('input/wrap/*.csv')) 70 | 71 | for f in files: 72 | mdl = f[-8:-4] 73 | print(mdl) 74 | df = pd.read_csv(f) 75 | 76 | for i, r in df.iterrows(): 77 | df.loc[i, 'phase'] = phases[r.phase] 78 | df.loc[i, 'note'] = prop[r.param] 79 | 80 | df = df[['param', 'phase', 'note', 'opt', 'min', 'max', 'model', 'pm']] 81 | df.columns = ['variable', 'flight phase', 'name', 'opt', 'min', 'max', 'model', 'parameters'] 82 | 83 | df.to_fwf(root+'/../openap/data/wrap/%s.txt' % mdl) 84 | -------------------------------------------------------------------------------- /test/test_actypes.py: -------------------------------------------------------------------------------- 1 | from openap import prop, FuelFlow, Emission, WRAP 2 | 3 | available_acs = prop.available_aircraft(use_synonym=True) 4 | 5 | for actype in available_acs: 6 | # print(actype) 7 | aircraft = prop.aircraft(ac=actype, use_synonym=True) 8 | wrap = WRAP(ac=actype, use_synonym=True) 9 | fuelflow = FuelFlow(ac=actype, use_synonym=True) 10 | emission = Emission(ac=actype, use_synonym=True) 11 | 12 | 13 | available_acs = prop.available_aircraft(use_synonym=False) 14 | 15 | for actype in available_acs: 16 | # print(actype) 17 | aircraft = prop.aircraft(ac=actype, use_synonym=False) 18 | wrap = WRAP(ac=actype, use_synonym=True) 19 | fuelflow = FuelFlow(ac=actype, use_synonym=True) 20 | emission = Emission(ac=actype, use_synonym=True) 21 | -------------------------------------------------------------------------------- /test/test_bada.py: -------------------------------------------------------------------------------- 1 | # %% 2 | import matplotlib.pyplot as plt 3 | 4 | import numpy as np 5 | import openap 6 | import pandas as pd 7 | from openap.addon import bada4 8 | 9 | bada_path = "../../../../data/bada_4.2/tables" 10 | 11 | # %% 12 | drag = bada4.Drag("A320", bada_path) 13 | print("bada drag", drag.clean(60000, 300, 12_000)) 14 | 15 | drag = openap.Drag("A320") 16 | print("openap drag", drag.clean(60000, 300, 12_000)) 17 | 18 | # %% 19 | 20 | fuel_bada = bada4.FuelFlow("A320", bada_path) 21 | print("bada fuel", fuel_bada.enroute(mass=60000, tas=350, alt=35_000)) 22 | 23 | fuel_openap = openap.FuelFlow("A320") 24 | print("openap fuel", fuel_openap.enroute(mass=60000, tas=350, alt=35_000)) 25 | 26 | # %% 27 | 28 | typecode = "a320" 29 | 30 | fuel_bada = bada4.FuelFlow(typecode, bada_path) 31 | fuel_openap = openap.FuelFlow(typecode) 32 | 33 | drag_bada = bada4.Drag(typecode, bada_path) 34 | drag_openap = openap.Drag(typecode) 35 | 36 | mass_assume = openap.prop.aircraft(typecode)["mtow"] * 0.8 37 | 38 | 39 | flight = pd.read_csv("../examples/data/flight_a320_qar.csv").query("ALTI_STD_FT>100") 40 | 41 | 42 | drag_estimate_bada = drag_bada.clean( 43 | flight["MASS_KG"], 44 | flight["TRUE_AIR_SPD_KT"], 45 | flight["ALTI_STD_FT"], 46 | ) 47 | 48 | drag_estimate_openap = drag_openap.clean( 49 | flight["MASS_KG"], 50 | flight["TRUE_AIR_SPD_KT"], 51 | flight["ALTI_STD_FT"], 52 | ) 53 | 54 | fuel_estimate_bada = fuel_bada.enroute( 55 | flight["MASS_KG"], 56 | # mass_assume, 57 | flight["TRUE_AIR_SPD_KT"], 58 | flight["ALTI_STD_FT"], 59 | flight["VERT_SPD_FTMN"], 60 | ) 61 | 62 | 63 | fuel_estimate_openap = fuel_openap.enroute( 64 | flight["MASS_KG"], 65 | # mass_assume, 66 | flight["TRUE_AIR_SPD_KT"], 67 | flight["ALTI_STD_FT"], 68 | flight["VERT_SPD_FTMN"], 69 | ) 70 | 71 | 72 | # %% 73 | 74 | plt.plot(flight["FLIGHT_TIME"], drag_estimate_bada, label="BADA4 drag") 75 | plt.plot(flight["FLIGHT_TIME"], drag_estimate_openap, label="OpenAP drag") 76 | plt.legend() 77 | plt.ylim(0) 78 | plt.show() 79 | 80 | 81 | plt.plot(flight["FLIGHT_TIME"], flight["FUEL_FLOW_KGH"] * 2, label="QAR fuel", lw=1) 82 | plt.plot(flight["FLIGHT_TIME"], fuel_estimate_bada * 3600, label="BADA4 fuel", lw=1) 83 | plt.plot(flight["FLIGHT_TIME"], fuel_estimate_openap * 3600, label="OpenAP fuel", lw=1) 84 | plt.ylim(0) 85 | # plt.ylim(2000, 4000) 86 | 87 | plt.legend() 88 | plt.show() 89 | 90 | # %% 91 | -------------------------------------------------------------------------------- /test/test_drag.py: -------------------------------------------------------------------------------- 1 | from openap import Drag 2 | 3 | drag = Drag(ac='A320') 4 | 5 | print('-'*70) 6 | 7 | D = drag.clean(mass=60000, tas=200, alt=20000) 8 | print("drag.clean(mass=60000, tas=200, alt=20000)") 9 | print(D) 10 | print('-'*70) 11 | 12 | D = drag.clean(mass=60000, tas=250, alt=20000) 13 | print("drag.clean(mass=60000, tas=250, alt=20000)") 14 | print(D) 15 | print('-'*70) 16 | 17 | D = drag.nonclean(mass=60000, tas=150, alt=1000, flap_angle=20, path_angle=10, landing_gear=False) 18 | print("drag.nonclean(mass=60000, tas=150, alt=1000, flap_angle=20, path_angle=10, landing_gear=False)") 19 | print(D) 20 | print('-'*70) 21 | 22 | D = drag.nonclean(mass=60000, tas=150, alt=200, flap_angle=20, path_angle=10, landing_gear=True) 23 | print("drag.nonclean(mass=60000, tas=150, alt=1000, flap_angle=20, path_angle=10, landing_gear=True)") 24 | print(D) 25 | print('-'*70) 26 | 27 | 28 | D = drag.clean(mass=[60000], tas=[200], alt=[20000]) 29 | print("drag.clean(mass=[60000], tas=[200], alt=[20000])") 30 | print(D) 31 | print('-'*70) 32 | 33 | D = drag.nonclean(mass=[60000], tas=[150], alt=[200], flap_angle=[20]) 34 | print("drag.nonclean(mass=[60000], tas=[150], alt=[200], flap_angle=[20]") 35 | print(D) 36 | print('-'*70) 37 | -------------------------------------------------------------------------------- /test/test_emission.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import matplotlib.pyplot as plt 3 | from openap import Emission, FuelFlow, prop 4 | from mpl_toolkits.mplot3d import Axes3D 5 | 6 | ac = "A320" 7 | 8 | aircraft = prop.aircraft(ac) 9 | fuelflow = FuelFlow(ac=ac) 10 | emission = Emission(ac=ac) 11 | 12 | 13 | tas = np.linspace(50, 500, 50) 14 | alt = np.linspace(100, 35000, 50) 15 | tas_, alt_ = np.meshgrid(tas, alt) 16 | mass = aircraft["limits"]["MTOW"] * 0.85 17 | 18 | 19 | ff = fuelflow.enroute(mass=mass, tas=tas_, alt=alt_, path_angle=0) 20 | 21 | co2 = emission.co2(ff) 22 | h2o = emission.h2o(ff) 23 | sox = emission.sox(ff) 24 | nox = emission.nox(ff, tas=tas_, alt=alt_) 25 | co = emission.co(ff, tas=tas_, alt=alt_) 26 | hc = emission.hc(ff, tas=tas_, alt=alt_) 27 | 28 | fig = plt.figure() 29 | ax = fig.gca(projection="3d") 30 | surf = ax.plot_surface(tas_, alt_, ff) 31 | plt.title("fuel flow (kg/s)") 32 | plt.xlabel("TAS (kt)") 33 | plt.ylabel("Altitude (ft)") 34 | plt.show() 35 | 36 | fig = plt.figure() 37 | ax = fig.gca(projection="3d") 38 | surf = ax.plot_surface(tas_, alt_, h2o) 39 | plt.title("H2O (g/s)") 40 | plt.xlabel("TAS (kt)") 41 | plt.ylabel("Altitude (ft)") 42 | plt.show() 43 | 44 | fig = plt.figure() 45 | ax = fig.gca(projection="3d") 46 | surf = ax.plot_surface(tas_, alt_, co2) 47 | plt.title("CO2 (kg/s)") 48 | plt.xlabel("TAS (kt)") 49 | plt.ylabel("Altitude (ft)") 50 | plt.show() 51 | 52 | fig = plt.figure() 53 | ax = fig.gca(projection="3d") 54 | surf = ax.plot_surface(tas_, alt_, sox) 55 | plt.title("SOx (g/s)") 56 | plt.xlabel("TAS (kt)") 57 | plt.ylabel("Altitude (ft)") 58 | plt.show() 59 | 60 | fig = plt.figure() 61 | ax = fig.gca(projection="3d") 62 | surf = ax.plot_surface(tas_, alt_, nox) 63 | plt.title("NOx (g/s)") 64 | plt.xlabel("TAS (kt)") 65 | plt.ylabel("Altitude (ft)") 66 | plt.show() 67 | 68 | fig = plt.figure() 69 | ax = fig.gca(projection="3d") 70 | surf = ax.plot_surface(tas_, alt_, co) 71 | plt.title("CO (g/s)") 72 | plt.xlabel("TAS (kt)") 73 | plt.ylabel("Altitude (ft)") 74 | plt.show() 75 | 76 | fig = plt.figure() 77 | ax = fig.gca(projection="3d") 78 | surf = ax.plot_surface(tas_, alt_, hc) 79 | plt.title("HC (g/s)") 80 | plt.xlabel("TAS (kt)") 81 | plt.ylabel("Altitude (ft)") 82 | plt.show() 83 | -------------------------------------------------------------------------------- /test/test_fuel.py: -------------------------------------------------------------------------------- 1 | # %% 2 | from openap import FuelFlow 3 | 4 | fuel = FuelFlow(ac="a320", eng="cfm56-5b4") 5 | 6 | print("-" * 70) 7 | FF = fuel.at_thrust(acthr=50000, alt=0) 8 | print("fuel.at_thrust(acthr=50000, alt=0)") 9 | print(FF) 10 | print("-" * 70) 11 | 12 | FF = fuel.at_thrust(acthr=50000, alt=20000) 13 | print("fuel.at_thrust(acthr=50000, alt=20000)") 14 | print(FF) 15 | print("-" * 70) 16 | 17 | FF = fuel.takeoff(tas=100, alt=0, throttle=1) 18 | print("fuel.takeoff(tas=100, alt=0, throttle=1)") 19 | print(FF) 20 | print("-" * 70) 21 | 22 | FF = fuel.enroute(mass=60000, tas=200, alt=20000, vs=1000) 23 | print("fuel.enroute(mass=60000, tas=200, alt=20000, vs=1000)") 24 | print(FF) 25 | print("-" * 70) 26 | 27 | FF = fuel.enroute(mass=60000, tas=230, alt=32000, vs=0) 28 | print("fuel.enroute(mass=60000, tas=230, alt=32000, vs=0)") 29 | print(FF) 30 | print("-" * 70) 31 | 32 | FF = fuel.enroute(mass=[60000], tas=[230], alt=[32000], vs=[0]) 33 | print("fuel.enroute(mass=[60000], tas=[230], alt=[32000], vr=[0])") 34 | print(FF) 35 | print("-" * 70) 36 | -------------------------------------------------------------------------------- /test/test_kinematic.py: -------------------------------------------------------------------------------- 1 | from openap import WRAP 2 | 3 | wrap = WRAP('A320') 4 | 5 | for func in dir(wrap): 6 | if callable(getattr(wrap, func)): 7 | if not func.startswith('_'): 8 | print(getattr(wrap, func)()) 9 | -------------------------------------------------------------------------------- /test/test_nav.py: -------------------------------------------------------------------------------- 1 | from openap import nav 2 | 3 | print(nav.airport('Eham')) 4 | print(nav.closest_airport(52.011, 4.357)) 5 | 6 | print(nav.fix('eh155')) 7 | print(nav.closest_fix(52.011, 4.357)) 8 | 9 | def test_all(): 10 | assert nav.airport('ams')['icao'] == 'EHAM' 11 | assert nav.airport('Eham')['iata'] == 'AMS' 12 | assert nav.airport('LALALAND') == None 13 | assert nav.closest_airport(52.011, 4.357) == 'EHRD' 14 | assert nav.closest_airport(0, 0) == None 15 | 16 | assert nav.fix('eh155') == [51.965556, 4.382778, 'EH155'] 17 | assert nav.closest_fix(52.011, 4.357) == ([51.965556, 4.382778, 'EH155'], 2744) 18 | -------------------------------------------------------------------------------- /test/test_phase.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import matplotlib.pyplot as plt 4 | import numpy as np 5 | import pandas as pd 6 | from openap import FlightPhase 7 | 8 | root = os.path.dirname(os.path.realpath(__file__)) 9 | 10 | df = pd.read_csv(root + "/data/flight_phase_test.csv") 11 | 12 | ts = df["ts"].values 13 | ts = ts - ts[0] 14 | alt = df["alt"].values 15 | spd = df["spd"].values 16 | roc = df["roc"].values 17 | 18 | ts_ = np.arange(0, ts[-1], 1) 19 | alt_ = np.interp(ts_, ts, alt) 20 | spd_ = np.interp(ts_, ts, spd) 21 | roc_ = np.interp(ts_, ts, roc) 22 | 23 | 24 | fp = FlightPhase() 25 | fp.set_trajectory(ts_, alt_, spd_, roc_) 26 | labels = fp.phaselabel() 27 | 28 | 29 | def test_segment(): 30 | 31 | phasecolors = { 32 | "GND": "black", 33 | "CL": "green", 34 | "DE": "blue", 35 | "LVL": "cyan", 36 | "CR": "purple", 37 | "NA": "red", 38 | } 39 | 40 | colors = [phasecolors[lbl] for lbl in labels] 41 | 42 | plt.subplot(311) 43 | plt.scatter(ts_, alt_, marker=".", c=colors, lw=0) 44 | plt.ylabel("altitude (ft)") 45 | 46 | plt.subplot(312) 47 | plt.scatter(ts_, spd_, marker=".", c=colors, lw=0) 48 | plt.ylabel("speed (kt)") 49 | 50 | plt.subplot(313) 51 | plt.scatter(ts_, roc_, marker=".", c=colors, lw=0) 52 | plt.ylabel("roc (fpm)") 53 | 54 | plt.show() 55 | 56 | 57 | def test_phase(): 58 | idx = fp.flight_phase_indices() 59 | 60 | fig = plt.figure() 61 | 62 | ax = fig.add_subplot(111) 63 | plt.plot(ts, alt, color="gray") 64 | y0, y1 = ax.get_ylim() 65 | for k, v in idx.items(): 66 | if v is None: 67 | continue 68 | 69 | plt.plot([ts_[v], ts_[v]], [y0, y1], label=k) 70 | # plt.text(lx, ly, k, ha='center') 71 | plt.title("altitude") 72 | plt.legend() 73 | 74 | plt.show() 75 | 76 | 77 | if __name__ == "__main__": 78 | test_segment() 79 | test_phase() 80 | -------------------------------------------------------------------------------- /test/test_prop.py: -------------------------------------------------------------------------------- 1 | from pprint import pprint 2 | from openap import prop 3 | 4 | ac = prop.aircraft("A320") 5 | 6 | pprint(ac) 7 | 8 | eng = prop.engine("CFM56-5B4") 9 | 10 | pprint(eng) 11 | -------------------------------------------------------------------------------- /test/test_thrust.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | from openap import Thrust 4 | from matplotlib import pyplot as plt 5 | from mpl_toolkits.mplot3d.axes3d import Axes3D 6 | 7 | 8 | thrust = Thrust(ac='A320', eng='CFM56-5B4') 9 | 10 | print('-'*70) 11 | 12 | T = thrust.takeoff(tas=100, alt=0) 13 | print("thrust.takeoff(tas=100, alt=0)") 14 | print(T) 15 | print('-'*70) 16 | 17 | T = thrust.climb(tas=200, alt=20000, roc=1000) 18 | print("thrust.climb(tas=200, alt=20000, roc=1000)") 19 | print(T) 20 | print('-'*70) 21 | 22 | T = thrust.cruise(tas=230, alt=32000) 23 | print("thrust.cruise(tas=230, alt=32000)") 24 | print(T) 25 | print('-'*70) 26 | 27 | T = thrust.climb(tas=[200], alt=[20000], roc=[1000]) 28 | print("thrust.climb(tas=[200], alt=[20000], roc=[1000])") 29 | print(T) 30 | print('-'*70) 31 | 32 | 33 | def plot(): 34 | # Thrust = Thrust('A320', 'CFM56-5B4') 35 | thrust = Thrust('A320', 'V2500-A1') 36 | 37 | fig = plt.figure(figsize=(10,8)) 38 | 39 | ax = fig.add_subplot(111, projection='3d') 40 | 41 | tas = np.arange(0, 500, 20) 42 | alt = np.arange(0, 35000, 2000) 43 | x, y = np.meshgrid(tas, alt) 44 | 45 | thr_to = thrust.takeoff(x, y) 46 | thr_cl = thrust.climb(x, y, 2000) 47 | 48 | c1, c2, c3 = .14231E+06, .51680E+05, .56809E-10 49 | thr_bada = c1 * (1 - y / c2 + c3 * y**2) 50 | 51 | plt.title('inflight') 52 | ax.plot_wireframe(x, y, thr_to, color='r', label='OpenAP-Thrust-TO') 53 | ax.plot_wireframe(x, y, thr_cl, color='g', label='Open-Thrust-CL') 54 | ax.plot_wireframe(x, y, thr_bada, color='b', label='BADA3') 55 | ax.set_xlabel('tas (kts)') 56 | ax.set_ylabel('alt (ft)') 57 | ax.set_zlabel('thr (N)') 58 | # ax.view_init(20, 40) 59 | ax.legend() 60 | plt.tight_layout() 61 | plt.show() 62 | -------------------------------------------------------------------------------- /test/test_trajectory.py: -------------------------------------------------------------------------------- 1 | # %% 2 | import matplotlib.pyplot as plt 3 | 4 | from openap import FlightGenerator, aero 5 | 6 | # %% 7 | flightgen = FlightGenerator(ac="a320") 8 | # flightgen.enable_noise() 9 | 10 | fig, ax = plt.subplots(2, 2, figsize=(12, 6)) 11 | plt.suptitle("Climb trajectories") 12 | for i in range(5): 13 | data = flightgen.climb(dt=10, random=True) 14 | ax[0][0].plot( 15 | data["t"], 16 | data["h"] / aero.ft, 17 | label="%d/%.2f" % (data["cas_const_cl"].iloc[0], data["mach_const_cl"].iloc[0]), 18 | ) 19 | ax[0][0].set_ylabel("Altitude (ft)") 20 | ax[0][1].plot(data["t"], data["s"] / 1000) 21 | ax[0][1].set_ylabel("Distanse (km)") 22 | ax[1][0].plot(data["t"], data["v"] / aero.kts) 23 | ax[1][0].set_ylabel("True airspeed (kt)") 24 | ax[1][1].plot(data["t"], data["vs"] / aero.fpm) 25 | ax[1][1].set_ylabel("Vertical rate (ft/min)") 26 | ax[0][0].legend() 27 | plt.show() 28 | 29 | # %% 30 | fig, ax = plt.subplots(2, 2, figsize=(12, 6)) 31 | plt.suptitle("Descent trajectories") 32 | for i in range(5): 33 | data = flightgen.descent(dt=10, random=True) 34 | ax[0][0].plot( 35 | data["t"], 36 | data["h"] / aero.ft, 37 | label="%d/%.2f" % (data["cas_const_de"].iloc[0], data["mach_const_de"].iloc[0]), 38 | ) 39 | ax[0][0].set_ylabel("Altitude (ft)") 40 | ax[0][1].plot(data["t"], data["s"] / 1000) 41 | ax[0][1].set_ylabel("Distanse (km)") 42 | ax[1][0].plot(data["t"], data["v"] / aero.kts) 43 | ax[1][0].set_ylabel("True airspeed (kt)") 44 | ax[1][1].plot(data["t"], data["vs"] / aero.fpm) 45 | ax[1][1].set_ylabel("Vertical rate (ft/min)") 46 | ax[0][0].legend() 47 | plt.show() 48 | 49 | # %% 50 | fig, ax = plt.subplots(2, 2, figsize=(12, 6)) 51 | plt.suptitle("Cruise trajectories") 52 | for i in range(5): 53 | data = flightgen.cruise(dt=60, random=True) 54 | ax[0][0].plot(data["t"], data["h"] / aero.ft, label="%d" % data["alt_cr"].iloc[0]) 55 | ax[0][0].set_ylabel("Altitude (ft)") 56 | ax[0][1].plot(data["t"], data["s"] / 1000) 57 | ax[0][1].set_ylabel("Distanse (km)") 58 | ax[1][0].plot(data["t"], data["v"] / aero.kts) 59 | ax[1][0].set_ylabel("True airspeed (kt)") 60 | ax[1][1].plot(data["t"], data["vs"] / aero.fpm) 61 | ax[1][1].set_ylabel("Vertical rate (ft/min)") 62 | ax[0][0].legend() 63 | plt.show() 64 | 65 | # %% 66 | 67 | fig, ax = plt.subplots(2, 2, figsize=(12, 6)) 68 | plt.suptitle("Complete trajectories") 69 | for i in range(5): 70 | data = flightgen.complete(dt=10, random=True) 71 | ax[0][0].plot(data["t"], data["h"] / aero.ft) 72 | ax[0][0].set_ylabel("Altitude (ft)") 73 | ax[0][1].plot(data["t"], data["s"] / 1000) 74 | ax[0][1].set_ylabel("Distanse (km)") 75 | ax[1][0].plot(data["t"], data["v"] / aero.kts) 76 | ax[1][0].set_ylabel("True airspeed (kt)") 77 | ax[1][1].plot(data["t"], data["vs"] / aero.fpm) 78 | ax[1][1].set_ylabel("Vertical rate (ft/min)") 79 | plt.show() 80 | 81 | # %% 82 | --------------------------------------------------------------------------------