├── .github └── workflows │ └── python-publish.yml ├── .gitignore ├── .readthedocs.yml ├── .travis.yml ├── ADRpy ├── .DS_Store ├── .nbgrader.log ├── __init__.py ├── airworthiness.py ├── atmospheres.py ├── constraintanalysis.py ├── data │ ├── .DS_Store │ ├── _MHDBK310 │ │ ├── high_dens_at_10km.m310 │ │ ├── high_dens_at_20km.m310 │ │ ├── high_dens_at_5km.m310 │ │ ├── high_temp_at_10km.m310 │ │ ├── high_temp_at_20km.m310 │ │ ├── high_temp_at_5km.m310 │ │ ├── low_dens_at_10km.m310 │ │ ├── low_dens_at_20km.m310 │ │ ├── low_dens_at_5km.m310 │ │ ├── low_temp_at_10km.m310 │ │ ├── low_temp_at_20km.m310 │ │ └── low_temp_at_5km.m310 │ ├── elev1200m.dat │ ├── engine_data │ │ ├── Electric_CSVs │ │ │ ├── JMX57_Efficiency_data.csv │ │ │ ├── YASA_750R_Efficiency_data.csv │ │ │ └── _electric_metadata.csv │ │ ├── Jet_CSVs │ │ │ ├── ATF3-6A_Sea_level_thrust_polynomial.csv │ │ │ ├── ATF3-6A_TSFC_data.csv │ │ │ ├── ATF3-6A_Thrust_data.csv │ │ │ ├── F404-400_Sea_level_thrust_polynomial.csv │ │ │ ├── F404-400_Thrust_data.csv │ │ │ ├── FJ-44_Sea_level_thrust_polynomial.csv │ │ │ ├── FJ-44_TSFC_data.csv │ │ │ ├── FJ-44_Thrust_data.csv │ │ │ ├── J52_Sea_level_thrust_polynomial.csv │ │ │ ├── J52_TSFC_data.csv │ │ │ ├── J52_Thrust_data.csv │ │ │ ├── J60_Sea_level_thrust_polynomial.csv │ │ │ ├── J60_TSFC_data.csv │ │ │ ├── J60_Thrust_data.csv │ │ │ ├── JT8D-9_Sea_level_take_off_thrust_polynomial.csv │ │ │ ├── JT8D-9_Sea_level_thrust_polynomial.csv │ │ │ ├── JT8D-9_TSFC_data.csv │ │ │ ├── JT8D-9_Thrust_SL_TO_data.csv │ │ │ ├── JT8D-9_Thrust_data.csv │ │ │ ├── JT9D-3_Sea_level_take_off_thrust_polynomial.csv │ │ │ ├── JT9D-3_Sea_level_thrust_polynomial.csv │ │ │ ├── JT9D-3_TSFC_data.csv │ │ │ ├── JT9D-3_Thrust_SL_TO_data.csv │ │ │ ├── JT9D-3_Thrust_data.csv │ │ │ ├── TF30_Sea_level_thrust_polynomial.csv │ │ │ ├── TF30_TSFC_data.csv │ │ │ ├── TF30_Thrust_data.csv │ │ │ ├── TFE731-2_Sea_level_thrust_polynomial.csv │ │ │ ├── TFE731-2_Thrust_data.csv │ │ │ ├── TFE731-5_Sea_level_take_off_thrust_polynomial.csv │ │ │ ├── TFE731-5_TSFC_data.csv │ │ │ ├── TFE731-5_Thrust_SL_TO_data.csv │ │ │ ├── TFE731-5_Thrust_data.csv │ │ │ └── _jet_metadata.csv │ │ ├── Piston_CSVs │ │ │ ├── IO-540_BSFC_best_power_data.csv │ │ │ ├── IO-540_BSFC_data.csv │ │ │ ├── IO-540_Power_data.csv │ │ │ ├── Wasp_Major_B13_BSFC_data.csv │ │ │ ├── Wasp_Major_B13_Power_data.csv │ │ │ └── _piston_metadata.csv │ │ └── Turboprop_CSVs │ │ │ ├── T56-A_BSFC_data.csv │ │ │ ├── T56-A_Power_data.csv │ │ │ ├── T56-A_Thrust_data.csv │ │ │ ├── Tyne_RTy11_Airflow_data.csv │ │ │ ├── Tyne_RTy11_BSFC_data.csv │ │ │ ├── Tyne_RTy11_Power_data.csv │ │ │ ├── Tyne_RTy11_Thrust_data.csv │ │ │ └── _turboprop_metadata.csv │ ├── runways.csv │ └── sample_takeoff_data.csv ├── mtools4acdc.py ├── propulsion.py ├── unitconversions.py └── weathertools.py ├── CONTRIBUTORS_GUIDE.md ├── LICENSE.md ├── MANIFEST.in ├── README.md ├── dist └── .DS_Store ├── docs ├── ADRpy │ ├── ADRpy_splash.png │ ├── gnfla.png │ ├── img │ │ ├── .DS_Store │ │ ├── G-OUAV-banner1.png │ │ ├── G-OUAV-banner2.png │ │ ├── climb.png │ │ ├── cs23_333d.png │ │ ├── isa.png │ │ └── turn.png │ └── notebooks │ │ ├── Constraint analysis of a single engine piston prop.ipynb │ │ ├── Constraint_analysis_example-G-OUAV.ipynb │ │ ├── Constructing V-n diagrams in ADRpy.ipynb │ │ ├── Estimating the Induced Drag Factor with ADRpy.ipynb │ │ ├── Example from Small Unmanned Fixed-wing Aircraft Design (Keane et al.).ipynb │ │ ├── Initial Scaling of an Aircraft with ADRpy - the climb constraint.ipynb │ │ ├── Initial Scaling of an Aircraft with ADRpy - the cruise and service ceiling constraints.ipynb │ │ ├── Initial scaling of an aircraft with ADRpy - the take-off constraint.ipynb │ │ ├── Initial scaling of an aircraft with ADRpy - the turn constraint.ipynb │ │ ├── Introduction to Modelling the Atmosphere for Design and Performance Calculations with ADRpy.ipynb │ │ └── The Capabilities, Function and Use of Engine Decks in ADRpy.ipynb ├── Makefile ├── make.bat └── source │ ├── .DS_Store │ ├── conf.py │ └── index.rst ├── requirements.txt ├── setup.cfg ├── setup.py ├── tests ├── .DS_Store ├── __init__.py ├── t_airworthiness.py ├── t_atmospheres.py ├── t_constraintanalysis.py ├── t_propulsion.py └── wip │ └── tp.ipynb └── update_docs.sh /.github/workflows/python-publish.yml: -------------------------------------------------------------------------------- 1 | # This workflow will upload a Python Package using Twine when a release is created 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries 3 | 4 | # This workflow uses actions that are not certified by GitHub. 5 | # They are provided by a third-party and are governed by 6 | # separate terms of service, privacy policy, and support 7 | # documentation. 8 | 9 | name: Upload Python Package 10 | 11 | on: 12 | release: 13 | types: [published] 14 | 15 | permissions: 16 | contents: read 17 | 18 | jobs: 19 | deploy: 20 | 21 | runs-on: ubuntu-latest 22 | 23 | steps: 24 | - uses: actions/checkout@v3 25 | - name: Set up Python 26 | uses: actions/setup-python@v3 27 | with: 28 | python-version: '3.x' 29 | - name: Install dependencies 30 | run: | 31 | python -m pip install --upgrade pip 32 | pip install build 33 | - name: Build package 34 | run: python -m build 35 | - name: Publish package 36 | uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 37 | with: 38 | user: __token__ 39 | password: ${{ secrets.PYPI_API_TOKEN }} 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[cod] 2 | 3 | # C extensions 4 | *.so 5 | 6 | # pycharm 7 | .idea/ 8 | .idea 9 | 10 | # Packages 11 | *.egg 12 | *.egg-info 13 | build 14 | eggs 15 | parts 16 | bin 17 | var 18 | sdist 19 | develop-eggs 20 | .installed.cfg 21 | lib 22 | lib64 23 | 24 | # Installer logs 25 | pip-log.txt 26 | 27 | # Unit test / coverage reports 28 | .coverage 29 | .tox 30 | nosetests.xml 31 | 32 | # Complexity 33 | output/*.html 34 | output/*/index.html 35 | 36 | # Sphinx 37 | docs/_build 38 | 39 | # Cookiecutter 40 | output/ 41 | 42 | # MacOS 43 | .DS_Store 44 | .DS_Store? 45 | docs/.DS_Store 46 | docs/source/.DS_Store 47 | 48 | 49 | # Notebooks 50 | .nbgrader.* 51 | docs/ADRpy/notebooks/.ipynb_checkpoints 52 | 53 | docs/Makefile 54 | docs/make.bat 55 | 56 | 57 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yml 2 | 3 | version: 2 4 | 5 | python: 6 | version: 3.7 7 | install: 8 | - method: pip 9 | path: . -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "3.6" # current default Python on Travis CI 4 | - "3.7" 5 | - "3.8" 6 | - "3.9" 7 | - "3.10" 8 | - "3.11" 9 | - "3.12" 10 | # command to install dependencies 11 | install: 12 | - pip install -r requirements.txt 13 | # command to run tests 14 | script: 15 | - pytest -s tests/* 16 | -------------------------------------------------------------------------------- /ADRpy/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/ADRpy/.DS_Store -------------------------------------------------------------------------------- /ADRpy/.nbgrader.log: -------------------------------------------------------------------------------- 1 | [NotebookApp | WARNING] No nbgrader_config.py file found (rerun with --debug to see where nbgrader is looking) 2 | [NotebookApp | INFO] Loading the validate_assignment nbgrader serverextension 3 | [NotebookApp | INFO] Serving notebooks from local directory: /Users/andrassobester/Dropbox/ADRpy/ADRpy 4 | [NotebookApp | INFO] 0 active kernels 5 | [NotebookApp | INFO] The Jupyter Notebook is running at: http://localhost:8890/?token=8195080e14f39524e84e48f4e078031eae1e1ea9bf077b3e 6 | [NotebookApp | INFO] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). 7 | [NotebookApp | CRITICAL] 8 | 9 | Copy/paste this URL into your browser when you connect for the first time, 10 | to login with a token: 11 | http://localhost:8890/?token=8195080e14f39524e84e48f4e078031eae1e1ea9bf077b3e 12 | [NotebookApp | INFO] Accepting one-time-token-authenticated connection from ::1 13 | [NotebookApp | INFO] Creating new notebook in 14 | [NotebookApp | INFO] Kernel started: a649d8ea-74ab-4ae1-9ea9-67dcfd741dcc 15 | [NotebookApp | INFO] Saving file at /Untitled.ipynb 16 | [NotebookApp | INFO] Kernel restarted: a649d8ea-74ab-4ae1-9ea9-67dcfd741dcc 17 | [NotebookApp | INFO] Saving file at /Untitled.ipynb 18 | [NotebookApp | INFO] Kernel restarted: a649d8ea-74ab-4ae1-9ea9-67dcfd741dcc 19 | [NotebookApp | INFO] Kernel restarted: a649d8ea-74ab-4ae1-9ea9-67dcfd741dcc 20 | [NotebookApp | INFO] Kernel restarted: a649d8ea-74ab-4ae1-9ea9-67dcfd741dcc 21 | [NotebookApp | INFO] Saving file at /Untitled.ipynb 22 | [NotebookApp | INFO] Kernel shutdown: a649d8ea-74ab-4ae1-9ea9-67dcfd741dcc 23 | [NotebookApp | INFO] interrupted 24 | [NotebookApp | CRITICAL] Shutdown confirmed 25 | [NotebookApp | INFO] Shutting down kernels 26 | -------------------------------------------------------------------------------- /ADRpy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/ADRpy/__init__.py -------------------------------------------------------------------------------- /ADRpy/data/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/ADRpy/data/.DS_Store -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/high_dens_at_10km.m310: -------------------------------------------------------------------------------- 1 | 0 1.203e+0 295.150 1.228e+0 289.150 2 | 2 9.786e-1 287.567 9.948e-1 281.160 3 | 4 8.035e-1 274.792 8.005e-1 273.175 4 | 6 6.668e-1 260.756 6.596e-1 256.245 5 | 8 5.331e-1 242.815 5.365e-1 239.298 6 | 10 4.342e-1 224.884 4.298e-1 222.361 7 | 12 3.442e-1 206.965 3.384e-1 205.436 8 | 14 2.491e-1 205.673 2.433e-1 205.150 9 | 16 1.797e-1 204.678 1.747e-1 205.150 10 | 18 1.285e-1 205.360 1.243e-1 207.469 11 | 20 9.144e-2 207.942 8.878e-2 209.853 12 | 22 6.532e-2 210.522 6.366e-2 212.235 13 | 24 4.686e-2 213.101 4.583e-2 214.615 14 | 26 3.376e-2 215.678 3.311e-2 216.994 15 | 28 2.430e-2 219.356 2.402e-2 219.372 16 | 30 1.751e-2 224.503 1.748e-2 221.748 17 | 32 1.271e-2 229.648 1.277e-2 224.122 18 | 34 9.294e-3 234.789 9.366e-3 226.495 19 | 36 6.843e-3 239.926 6.891e-3 228.867 20 | 38 5.072e-3 245.062 5.027e-3 234.368 21 | 40 3.784e-3 250.192 3.690e-3 240.289 22 | 42 2.840e-3 255.321 2.730e-3 246.207 23 | 44 2.176e-3 256.150 2.034e-3 252.121 24 | 46 1.673e-3 256.150 1.527e-3 258.032 25 | 48 1.287e-3 256.150 1.154e-3 263.650 26 | 50 9.901e-4 256.150 8.949e-4 263e-650 27 | 52 7.695e-4 253.254 6.938e-4 263.583 28 | 54 5.980e-4 249.520 5.456e-4 259.260 29 | 56 4.630e-4 245.789 4.274e-4 254.939 30 | 58 3.571e-4 242.060 3.334e-4 250.621 31 | 60 2.744e-4 238.334 2.591e-4 246.306 32 | 62 2.100e-4 234.609 2.004e-4 241.993 33 | 64 1.601e-4 230.888 1.543e-4 237.683 34 | 66 1.215e-4 227.168 1.183e-4 233.276 35 | 68 9.182e-5 223.451 9.031e-5 229.071 36 | 70 6.907e-5 219.736 6.853e-5 224.890 37 | 72 5.125e-5 218.150 5.150e-5 221.959 38 | 74 3.775e-5 218.150 3.856e-5 219.029 39 | 76 2.781e-5 218.103 2.876e-5 216.102 40 | 78 2.081e-5 214.202 2.138e-5 213.176 41 | 80 1.548e-5 210.304 1.582e-5 210.252 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/high_dens_at_20km.m310: -------------------------------------------------------------------------------- 1 | 0 1.169e+0 301.150 1.169e+0 301.150 2 | 2 9.609e-1 291.179 9.639e-1 290.182 3 | 4 7.843e-1 281.214 7.886e-1 279.221 4 | 6 6.356e-1 271.256 6.401e-1 268.267 5 | 8 5.110e-1 261.304 5.152e-1 257.319 6 | 10 4.160e-1 245.483 4.180e-1 241.483 7 | 12 3.342e-1 229.580 3.345e-1 225.580 8 | 14 2.643e-1 213.687 2.634e-1 209.687 9 | 16 2.053e-1 197.803 2.038e-1 193.803 10 | 18 1.475e-1 193.482 1.455e-1 189.211 11 | 20 9.994e-2 203.000 9.795e-2 198.134 12 | 22 6.891e-2 212.512 6.710e-2 207.652 13 | 24 4.929e-2 216.845 4.711e-2 214.014 14 | 26 3.554e-2 220.803 3.377e-2 218.369 15 | 28 2.578e-2 224.759 2.437e-2 222.720 16 | 30 1.880e-2 228.712 1.770e-2 227.069 17 | 32 1.380e-2 232.663 1.294e-2 231.415 18 | 34 1.017e-2 236.612 9.519e-3 235.758 19 | 36 7.548e-3 240.558 7.033e-3 240.363 20 | 38 5.603e-3 245.514 5.186e-3 247.264 21 | 40 4.159e-3 252.411 3.857e-3 254.161 22 | 42 3.112e-3 259.303 2.892e-3 261.053 23 | 44 2.347e-3 266.191 2.185e-3 267.941 24 | 46 1.795e-3 271.150 1.664e-3 274.650 25 | 48 1.401e-3 271.150 1.303e-3 274.650 26 | 50 1.094e-3 271.150 1.020e-3 274.650 27 | 52 8.710e-4 265.321 8.106e-4 270.610 28 | 54 6.899e-4 259.435 6.442e-4 265.116 29 | 56 5.437e-4 253.554 5.096e-4 259.627 30 | 58 4.261e-4 247.675 4.012e-4 254.140 31 | 60 3.321e-4 241.801 3.142e-4 248.657 32 | 62 2.572e-4 235.930 2.448e-4 243.178 33 | 64 1.980e-4 230.063 1.897e-4 237.702 34 | 66 1.514e-4 224.199 1.461e-4 232.229 35 | 68 1.150e-4 218.339 1.118e-4 226.760 36 | 70 8.673e-5 212.483 8.514e-5 221.294 37 | 72 6.489e-5 206.631 6.468e-5 214.624 38 | 74 4.815e-5 200.782 4.893e-5 206.826 39 | 76 3.542e-5 194.937 3.662e-5 199.032 40 | 78 2.582e-5 189.095 2.710e-5 191.243 41 | 80 1.805e-5 190.448 1.911e-5 191.549 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/high_dens_at_5km.m310: -------------------------------------------------------------------------------- 1 | 0 1.431e+0 251.150 1.509e+0 238.150 2 | 2 1.113e+0 245.142 1.104e+0 247.129 3 | 4 8.774e-1 234.117 8.739e-1 235.116 4 | 6 6.774e-1 224.643 6.833e-1 223.110 5 | 8 5.055e-1 221.652 5.270e-1 211.159 6 | 10 3.701e-1 222.650 3.772e-1 213.957 7 | 12 2.714e-1 223.649 2.712e-1 216.753 8 | 14 1.993e-1 224.646 1.977e-1 217.352 9 | 16 1.469e-1 225.150 1.454e-1 215.756 10 | 18 1.086e-1 225.150 1.067e-1 214.161 11 | 20 8.030e-2 225.150 7.815e-2 212.567 12 | 22 5.937e-2 225.150 5.711e-2 210.975 13 | 24 4.390e-2 225.150 4.164e-2 209.383 14 | 26 3.247e-2 225.150 3.030e-2 207.792 15 | 28 2.402e-2 225.150 2.199e-2 206.202 16 | 30 1.777e-2 225.150 1.535e-2 213.832 17 | 32 1.295e-2 228.812 1.084e-2 221.771 18 | 34 9.354e-3 236.941 7.752e-3 229.704 19 | 36 6.829e-3 245.065 5.608e-3 237.634 20 | 38 3.038e-3 253.184 4.101e-3 245.558 21 | 40 3.753e-3 261.298 3.029e-3 253.477 22 | 42 2.854e-3 266.150 2.270e-3 260.150 23 | 44 2.215e-3 266.150 1.751e-3 260.150 24 | 46 1.718e-3 266.150 1.354e-3 259.310 25 | 48 1.334e-3 266.150 1.052e-3 257.138 26 | 50 1.050e-3 261.917 8.154e-4 254.967 27 | 52 8.259e-4 256.988 6.307e-4 252.797 28 | 54 6.463e-4 252.062 4.868e-4 250.629 29 | 56 3.034e-4 247.139 3.740e-4 249.150 30 | 58 3.902e-4 242.219 2.855e-4 249.150 31 | 60 3.010e-4 237.302 2.180e-4 249.150 32 | 62 2.289e-4 234.645 1.665e-4 249.150 33 | 64 1.732e-4 232.681 1.271e-4 249.150 34 | 66 1.308e-4 230.718 9.715e-5 249.150 35 | 68 9.855e-5 228.756 7.423e-5 249.150 36 | 70 7.407e-5 226.795 5.672e-5 249.150 37 | 72 5.596e-5 222.996 4.391e-5 245.663 38 | 74 4.221e-5 218.297 3.405e-5 240.570 39 | 76 3.165e-6 213.600 2.626e-5 235.480 40 | 78 2.359e-5 208.906 2.014e-5 230.393 41 | 80 1.746e-5 204.215 1.536e-5 225.309 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/high_temp_at_10km.m310: -------------------------------------------------------------------------------- 1 | 0 299.150 1.173e-0 300.650 1.171e+0 2 | 2 289.177 9.632e-1 289.682 9.651e-1 3 | 4 279.210 7.850e-1 278.721 7.894e-1 4 | 6 269.249 6.351e-1 267.767 6.405e-1 5 | 8 259.295 5.098e-1 256.820 5.153e-1 6 | 10 245.985 4.110e-1 243.005 4.152e-1 7 | 12 229.084 3.315e-1 226.108 3.340e-1 8 | 14 212.193 2.630e-1 209.221 2.642e-1 9 | 16 195.314 2.048e-1 195.008 2.024e-1 10 | 18 186.150 1.500e-1 189.610 1.457e-1 11 | 20 202.781 9.710e-2 206.663 9.496e-2 12 | 22 211.443 6.729e-2 211.757 6.709e-2 13 | 24 216.197 4.795e-2 216.114 4.791e-2 14 | 26 220.948 3.443e-2 220.468 3.445e-2 15 | 28 225.696 2.490e-2 224.819 2.494e-2 16 | 30 230.441 1.814e-2 229.168 1.817e-2 17 | 32 235.183 1.330e-2 233.514 1.332e-2 18 | 34 239.922 9.816e-3 237.357 9.825e-3 19 | 36 244.659 7.287e-3 242.198 7.286e-3 20 | 38 249.392 5.442e-3 246.535 5.433e-3 21 | 40 254.122 4.087e-3 250.870 4.073e-3 22 | 42 258.849 3.087e-3 255.203 3.069e-3 23 | 44 263.574 2.343e-3 259.532 2.324e-3 24 | 46 268.150 1.789e-3 263.859 1.768e-3 25 | 48 268.150 1.392e-3 268.150 1.352e-3 26 | 50 268.150 1.084e-3 268.150 1.052e-3 27 | 52 268.150 8.443e-4 268.150 8.197e-4 28 | 54 264.940 6.650e-4 268.150 6.384e-4 29 | 56 258.077 5.284e-4 262.555 5.066e-4 30 | 58 251.217 4.173e-4 256.677 4.004e-4 31 | 60 244.362 3.275e-4 250.803 3.148e-4 32 | 62 237.511 2.552e-4 244.932 2.461e-4 33 | 64 230.664 1.975e-4 239.065 1.913e-4 34 | 66 223.822 1.517e-4 233.201 1.478e-4 35 | 68 216.984 1.156e-4 227.893 1.132e-4 36 | 70 210.150 8.736e-5 223.013 8.610e-5 37 | 72 203.320 6.541e-5 218.136 6.507e-5 38 | 74 198.150 4.811e-5 213.262 4.887e-5 39 | 76 198.150 3.438e-5 208.391 3.647e-5 40 | 78 198.150 2.457e-5 203.523 2.703e-5 41 | 80 198.150 1.756e-5 198.658 1.990e-5 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/high_temp_at_20km.m310: -------------------------------------------------------------------------------- 1 | 0 228.150 1.552e+0 273.150 1.293e+0 2 | 2 238.650 1.110e+0 263.128 1.040e+0 3 | 4 231.113 8.575e-1 253.105 8.296e-1 4 | 6 221.103 6.623e-1 241.094 6.603e-1 5 | 8 216.150 4.947e-1 229.090 5.196e-1 6 | 10 217.659 3.584e-1 228.701 3.847e-1 7 | 12 219.657 2.599e-1 234.150 2.802e-1 8 | 14 221.654 1.891e-1 234.150 2.094e-1 9 | 16 223.650 1.379e-1 234.150 1.565e-1 10 | 18 232.225 9.855e-2 234.150 1.170e-1 11 | 20 240.796 7.126e-2 234.150 8.748e-2 12 | 22 243.192 5.336e-2 234.150 6.542e-1 13 | 24 239.210 4.092e-2 234.150 4.893e-2 14 | 26 235.232 3.124e-2 234.150 3.660e-2 15 | 28 231.255 2.375e-2 237.071 2.709e-2 16 | 30 230.150 1.777e-2 240.051 2.013e-2 17 | 32 230.150 1.323e-2 243.030 1.501e-2 18 | 34 230.150 9.860e-3 247.720 1.117e-2 19 | 36 230.150 7.346e-3 252.480 8.363e-3 20 | 38 230.150 5.473e-3 257.932 6.277e-3 21 | 40 230.150 4.079e-3 264.270 4.728e-3 22 | 42 230.150 3.040e-3 270.605 3.585e-3 23 | 44 230.150 2.267e-3 278.935 2.737e-3 24 | 46 230.150 1.690e-3 283.262 2.102e-3 25 | 48 232.791 1.248e-3 287.150 1.838e-3 26 | 50 235.753 9.242e-4 287.150 1.295e-3 27 | 52 238.713 6.870e-4 287.150 1.024e-3 28 | 54 241.671 5.126e-4 284.317 8.174e-4 29 | 56 240.994 3.890e-4 279.587 6.547e-4 30 | 58 239.615 2.957e-4 274.859 5.224e-4 31 | 60 238.237 2.244e-4 270.135 4.153e-4 32 | 62 236.860 1.701e-4 285.414 3.288e-4 33 | 64 235.484 1.287e-4 260.696 2.593e-4 34 | 66 235.150 9.693e-5 253.933 2.053e-4 35 | 68 235.150 7.287e-5 240.974 1.649e-4 36 | 70 235.150 5.480e-5 228.023 1.309e-4 37 | 72 233.501 4.147e-5 215.079 1.026e-4 38 | 74 231.149 3.140e-5 202.144 7.919e-5 39 | 76 228.799 2.371e-5 189.217 6.009e-5 40 | 78 226.450 1.786e-5 178.298 4.472e-5 41 | 80 224.102 1.341e-5 163.387 3.255e-5 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/high_temp_at_5km.m310: -------------------------------------------------------------------------------- 1 | 0 290.150 1.215e+0 291.650 1.209e+0 2 | 2 294.163 9.506e-1 291.133 9.571e-1 3 | 4 284.183 7.773e-1 283.190 7.761e-1 4 | 6 272.745 6.343e-1 268.276 6.399e-1 5 | 8 256.796 5.209e-1 253.337 5.220e-1 6 | 10 240.858 4.224e-1 238.407 4.206e-1 7 | 12 224.930 3.377e-1 223.496 3.343e-1 8 | 14 210.558 2.637e-1 208.575 2.615e-1 9 | 16 201.411 1.982e-1 193.674 2.009e-1 10 | 18 204.873 1.392e-1 196.813 1.393e-1 11 | 20 212.817 9.689e-2 204.751 9.559e-2 12 | 22 216.953 6.933e-2 212.683 6.651e-2 13 | 24 220.920 4.996e-2 217.607 4.748e-2 14 | 26 224.885 3.622e-2 221.173 3.432e-2 15 | 28 228.847 2.641e-2 224.735 2.494e-2 16 | 30 232.806 1.937e-2 228.296 1.821e-2 17 | 32 236.763 1.428e-2 231.855 1.337e-2 18 | 34 240.718 1.058e-2 235.411 9.868e-3 19 | 36 244.670 7.885e-3 238.965 7.315e-3 20 | 38 248.620 5.902e-3 242.517 5.447e-3 21 | 40 252.567 4.439e-3 246.066 4.074e-3 22 | 42 256.512 3.354e-3 249.613 3.061e-3 23 | 44 260.454 2.546e-3 253.159 2.309e-3 24 | 46 264.394 1.940e-3 256.701 1.749e-3 25 | 48 266.150 1.496e-3 260.150 1.331e-3 26 | 50 266.150 1.162e-3 260.150 1.028e-3 27 | 52 262.796 9.138e-4 260.150 7.945e-4 28 | 54 258.473 7.181e-4 260.150 6.139e-4 29 | 56 253.609 5.633e-4 254.522 4.839e-4 30 | 58 246.936 4.425e-4 246.679 3.822e-4 31 | 60 240.268 3.454e-4 238.840 2.996e-4 32 | 62 233.604 2.678e-4 231.006 2.330e-4 33 | 64 226.943 2.061e-4 223.177 1.796e-4 34 | 66 220.287 1.574e-4 215.353 1.372e-4 35 | 68 213.636 1.193e-4 210.419 1.025e-4 36 | 70 206.988 8.965e-5 207.489 7.557e-5 37 | 72 202.695 6.603e-5 204.560 5.545e-5 38 | 74 200.156 4.801e-5 201.634 4.052e-5 39 | 76 197.619 3.478e-5 198.709 2.947e-5 40 | 78 195.084 2.509e-5 195.786 2.134e-5 41 | 80 192.550 1.803e-5 192.864 1.538e-5 42 | -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/low_dens_at_10km.m310: -------------------------------------------------------------------------------- 1 | 0 1.545e-0 228.150 1.448e-0 243.150 2 | 2 1.143e+0 229.142 1.102e+0 241.338 3 | 4 8.676e-1 223.165 8.601e-1 231.732 4 | 6 6.200e-1 231.152 6.639e-1 222.154 5 | 8 4.597e-1 232.151 4.838e-1 224.553 6 | 10 3.413e-1 233.150 3.538e-1 226.950 7 | 12 2.548e-1 233.150 2.609e-1 228.150 8 | 14 1.908e-1 232.364 1.935e-1 228.150 9 | 16 1.440e-1 229.174 1.441e-1 227.165 10 | 18 1.083e-1 225.986 1.076e-1 225.173 11 | 20 8.112e-2 222.799 8.018e-2 223.182 12 | 22 6.052e-2 219.615 5.957e-2 221.192 13 | 24 4.497e-2 216.433 4.415e-2 219.203 14 | 26 3.327e-2 213.253 3.264e-2 217.215 15 | 28 2.421e-2 213.150 2.397e-2 216.150 16 | 30 1.761e-2 213.150 1.752e-2 216.150 17 | 32 1.281e-2 213.150 1.280e-2 216.150 18 | 34 9.328e-3 213.150 9.360e-3 216.150 19 | 36 6.790e-3 213.150 6.696e-3 221.710 20 | 38 4.943e-3 213.150 4.826e-3 227.650 21 | 40 3.548e-3 216.777 3.508e-3 233.587 22 | 42 2.558e-3 220.732 2.571e-3 239.520 23 | 44 1.856e-3 224.685 1.899e-3 245.449 24 | 46 1.354e-3 228.636 1.413e-3 251.374 25 | 48 9.939e-4 232.583 1.059e-3 257.296 26 | 50 7.332e-4 236.529 8.132e-4 258.150 27 | 52 5.438e-4 240.472 6.264e-4 258.150 28 | 54 4.053e-4 244.412 4.843e-4 257.206 29 | 56 3.039e-4 248.030 3.766e-4 254.252 30 | 58 2.337e-4 245.668 2.921e-4 251.301 31 | 60 1.792e-4 243.308 2.258e-4 248.351 32 | 62 1.360e-4 243.250 1.741e-4 245.403 33 | 64 1.024e-4 245.410 1.338e-4 242.457 34 | 66 7.735e-5 247.570 1.025e-4 239.768 35 | 68 5.856e-5 249.728 7.800e-5 238.002 36 | 70 4.445e-5 251.884 5.924e-5 236.238 37 | 72 3.404e-5 252.342 4.491e-5 234.474 38 | 74 2.629e-5 250.384 3.398e-5 232.712 39 | 76 2.027e-5 248.427 2.566e-5 230.951 40 | 78 1.559e-5 248.471 1.934e-5 229.191 41 | 80 1.197e-5 244.517 1.455e-5 227.432 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/low_dens_at_20km.m310: -------------------------------------------------------------------------------- 1 | 0 1.502e+0 235.150 1.537e+0 230.150 2 | 2 1.093e+0 243.632 1.125e+0 235.137 3 | 4 8.690e-1 229.623 8.600e-1 229.114 4 | 6 6.808e-1 215.623 6.627e-1 219.105 5 | 8 5.052e-1 210.154 5.045e-1 209.150 6 | 10 3.608e-1 213.150 3.639e-1 209.150 7 | 12 2.620e-1 213.150 2.626e-1 209.137 8 | 14 1.903e-1 213.150 1.926e-1 205.143 9 | 16 1.362e-1 216.598 1.397e-1 202.150 10 | 18 9.686e-2 223.572 9.979e-2 202.150 11 | 20 6.741e-2 239.403 7.125e-2 202.150 12 | 22 4.882e-2 250.961 5.000e-2 206.061 13 | 24 3.763e-2 247.978 3.482e-2 214.023 14 | 26 2.891e-2 244.997 2.458e-2 221.980 15 | 28 2.215e-2 242.017 1.757e-2 229.932 16 | 30 1.691e-2 239.040 1.270e-2 237.879 17 | 32 1.277e-2 238.150 9.288e-3 245.821 18 | 34 9.615e-3 238.150 6.885e-3 252.753 19 | 36 7.236e-3 238.150 5.213e-3 255.727 20 | 38 5.447e-3 238.150 3.961e-3 258.700 21 | 40 4.100e-3 238.150 3.019e-3 261.761 22 | 42 3.087e-3 238.150 2.315e-3 263.889 23 | 44 2.311e-3 239.685 1.801e-3 262.306 24 | 46 1.720e-3 243.636 1.400e-3 260.725 25 | 48 1.286e-3 247.583 1.086e-3 259.144 26 | 50 9.663e-4 251.529 8.419e-4 257.565 27 | 52 7.303e-4 255.150 6.515e-4 255.986 28 | 54 5.339e-4 255.150 5.034e-4 254.409 29 | 56 4.349e-4 252.590 3.885e-4 252.832 30 | 58 3.369e-4 249.441 2.993e-4 251.256 31 | 60 2.602e-4 246.295 2.317e-4 248.101 32 | 62 2.003e-4 243.150 1.810e-4 241.217 33 | 64 1.537e-4 240.007 1.405e-4 234.336 34 | 66 1.168e-4 238.437 1.074e-4 229.150 35 | 68 8.855e-5 237.456 8.021e-5 229.150 36 | 70 6.703e-5 236.475 5.986e-5 229.150 37 | 72 5.081e-5 234.842 4.493e-5 227.781 38 | 74 3.849e-5 232.884 3.373e-5 225.821 39 | 76 2.909e-5 230.927 2.527e-5 223.862 40 | 78 2.194e-5 228.971 1.888e-5 221.905 41 | 80 1.651e-5 227.017 1.408e-5 219.949 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/low_dens_at_5km.m310: -------------------------------------------------------------------------------- 1 | 0 1.239e+0 281.650 1.219e+0 289.150 2 | 2 9.881e-1 276.647 9.641e-1 289.158 3 | 4 7.617e-1 280.148 7.757e-1 283.170 4 | 6 6.285e-1 264.162 6.395e-1 268.554 5 | 8 5.125e-1 248.187 5.263e-1 251.011 6 | 10 4.123e-1 232.221 4.272e-1 233.479 7 | 12 3.267e-1 216.265 3.411e-1 215.958 8 | 14 2.455e-1 208.150 2.571e-1 207.831 9 | 16 1.770e-1 208.150 1.883e-1 203.650 10 | 18 1.268e-1 209.592 1.349e-1 203.650 11 | 20 9.067e-2 212.577 9.376e-2 211.317 12 | 22 6.510e-2 215.559 6.661e-2 216.912 13 | 24 4.697e-2 218.539 4.821e-2 219.689 14 | 26 3.404e-2 221.518 3.505e-2 222.464 15 | 28 2.478e-2 224.495 2.558e-2 225.238 16 | 30 1.312e-2 227.470 1.875e-2 228.009 17 | 32 1.331e-2 230.443 1.380e-2 230.779 18 | 34 9.815e-3 233.414 1.019e-2 233.548 19 | 36 7.195e-3 239.116 7.558e-3 236.314 20 | 38 5.310e-3 245.051 5.668e-3 241.855 21 | 40 3.949e-3 250.982 4.126e-3 247.776 22 | 42 2.957e-3 256.910 3.080e-3 253.693 23 | 44 2.229e-3 262.833 2.315e-3 259.607 24 | 46 1.692e-3 268.753 1.752e-3 265.516 25 | 48 1.307e-3 271.150 1.355e-3 266.650 26 | 50 1.032e-3 267.717 1.057e-3 265.534 27 | 52 8.186e-4 261.808 8.321e-4 261.601 28 | 54 6.458e-4 255.903 6.523e-4 257.671 29 | 56 5.068e-4 250.002 5.095e-4 253.744 30 | 58 3.955e-4 244.104 3.965e-4 249.818 31 | 60 3.068e-4 238.209 3.074e-4 245.896 32 | 62 2.365e-4 232.319 2.393e-4 239.836 33 | 64 1.812e-4 226.432 1.857e-4 232.784 34 | 66 1.378e-4 220.548 1.431e-4 225.737 35 | 68 1.041e-4 214.669 1.093e-4 218.694 36 | 70 7.803e-5 208.793 8.232e-5 211.655 37 | 72 5.802e-5 202.920 6.143e-5 207.307 38 | 74 4.277e-5 197.052 4.495e-5 204.963 39 | 76 3.125e-5 191.187 3.278e-5 202.622 40 | 78 2.261e-5 185.325 2.382e-5 200.281 41 | 80 1.620e-5 179.468 1.725e-5 197.942 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/low_temp_at_10km.m310: -------------------------------------------------------------------------------- 1 | 0 237.150 1.497e+0 246.150 1.438e+0 2 | 2 259.625 1.043e+0 258.124 1.048e+0 3 | 4 247.607 8.349e-1 246.105 8.385e-1 4 | 6 233.074 6.678e-1 232.681 6.667e-1 5 | 8 216.070 5.312e-1 217.876 5.256e-1 6 | 10 199.159 4.147e-1 203.150 4.074e-1 7 | 12 201.150 2.922e-1 203.137 2.912e-1 8 | 14 201.150 2.079e-1 199.542 2.112e-1 9 | 16 201.150 1.482e-1 195.950 1.523e-1 10 | 18 201.150 1.056e-1 192.360 1.092e-1 11 | 20 203.319 7.455e-2 188.773 7.790e-2 12 | 22 207.701 5.241e-2 185.187 5.518e-2 13 | 24 212.080 3.712e-2 188.105 3.773e-2 14 | 26 216.456 2.648e-2 191.089 2.595e-2 15 | 28 220.830 1.903e-2 194.071 1.796e-2 16 | 30 225.201 1.376e-2 197.051 1.250e-2 17 | 32 229.569 1.001e-2 202.882 8.638e-3 18 | 34 233.934 7.338e-3 212.010 5.961e-3 19 | 36 238.297 5.407e-3 221.132 4.180e-3 20 | 38 240.470 4.040e-3 230.249 2.973e-3 21 | 40 241.658 3.036e-3 239.361 2.144e-3 22 | 42 242.846 2.285e-3 248.466 1.565e-3 23 | 44 244.033 1.723e-3 257.566 1.156e-3 24 | 46 245.219 1.301e-3 266.660 8.630e-4 25 | 48 246.404 9.839e-4 275.749 6.507e-4 26 | 50 247.589 7.452e-4 279.150 5.045e-4 27 | 52 248.773 5.652e-4 279.150 3.962e-4 28 | 54 249.956 4.294e-4 279.150 3.113e-4 29 | 56 251.139 3.266e-4 279.150 2.445e-4 30 | 58 248.299 2.526e-4 267.802 1.995e-4 31 | 60 242.394 1.967e-4 254.024 1.625e-4 32 | 62 241.771 1.493e-4 240.253 1.309e-4 33 | 64 242.557 1.127e-4 226.491 1.041e-4 34 | 66 243.343 8.529e-5 215.516 8.065e-5 35 | 68 244.128 6.456e-5 212.964 5.967e-5 36 | 70 244.913 4.892e-5 210.413 4.400e-5 37 | 72 244.055 3.734e-5 207.863 3.233e-5 38 | 74 242.487 2.854e-5 205.316 2.367e-5 39 | 76 240.920 2.177e-5 203.150 1.723e-5 40 | 78 239.354 1.659e-5 203.150 1.241e-5 41 | 80 237.789 1.262e-5 203.150 8.925e-6 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/low_temp_at_20km.m310: -------------------------------------------------------------------------------- 1 | 0 236.650 1.496e+0 240.150 1.472e+0 2 | 2 250.023 1.072e+0 254.130 1.054e+0 3 | 4 237.604 8.525e-1 245.095 8.312e-1 4 | 6 225.192 6.693e-1 230.482 6.629e-1 5 | 8 212.788 5.183e-1 215.877 5.210e-1 6 | 10 206.650 3.844e-1 207.136 3.922e-1 7 | 12 206.631 2.763e-1 204.139 2.855e-1 8 | 14 201.639 2.027e-1 201.144 2.069e-1 9 | 16 196.650 1.476e-1 198.150 1.493e-1 10 | 18 191.664 1.066e-1 195.159 1.072e-1 11 | 20 186.682 7.637e-2 192.169 7.661e-2 12 | 22 189.619 5.237e-2 192.150 5.377e-2 13 | 24 192.605 3.612e-2 192.150 3.774e-2 14 | 26 198.920 2.471e-2 196.068 2.606e-2 15 | 28 205.282 1.711e-2 200.045 1.812e-2 16 | 30 211.640 1.198e-2 204.019 1.270e-2 17 | 32 217.994 8.484e-3 207.990 8.963e-3 18 | 34 224.344 6.067e-3 211.959 6.368e-3 19 | 36 230.690 4.380e-3 219.700 4.488e-3 20 | 38 237.032 3.191e-3 227.628 3.200e-3 21 | 40 243.370 2.345e-3 235.551 2.308e-3 22 | 42 249.705 1.737e-3 243.468 1.684e-3 23 | 44 256.035 1.297e-3 251.381 1.241e-3 24 | 46 262.362 9.754e-4 259.289 9.237e-4 25 | 48 264.650 7.490e-4 264.150 7.012e-4 26 | 50 264.650 5.805e-4 264.150 5.432e-4 27 | 52 264.650 4.499e-4 264.150 4.208e-4 28 | 54 264.650 3.488e-4 264.150 3.261e-4 29 | 56 263.152 2.719e-4 262.977 2.538e-4 30 | 58 258.622 2.138e-4 259.432 1.988e-4 31 | 60 254.094 1.673e-4 255.889 1.552e-4 32 | 62 245.367 1.325e-4 247.055 1.231e-4 33 | 64 235.537 1.043e-4 236.832 9.735e-5 34 | 66 227.468 8.082e-5 228.858 7.543e-5 35 | 68 224.719 6.080e-5 227.679 5.651e-5 36 | 70 221.971 4.559e-5 226.502 4.228e-5 37 | 72 219.226 3.407e-5 223.951 3.177e-5 38 | 74 216.482 2.537e-5 220.815 2.384e-5 39 | 76 213.740 1.883e-5 217.681 1.782e-5 40 | 78 211.000 1.392e-5 214.549 1.327e-5 41 | 80 208.261 1.025e-5 211.420 9.842e-6 -------------------------------------------------------------------------------- /ADRpy/data/_MHDBK310/low_temp_at_5km.m310: -------------------------------------------------------------------------------- 1 | 0 220.150 1.607e+0 229.650 1.541e+0 2 | 2 234.142 1.124e+0 236.633 1.117e+0 3 | 4 224.860 8.698e-1 228.621 8.620e-1 4 | 6 216.141 6.628e-1 219.105 6.628e-1 5 | 8 214.141 4.869e-1 209.150 5.045e-1 6 | 10 211.633 3.575e-1 209.150 3.640e-1 7 | 12 207.637 2.631e-1 209.137 2.626e-1 8 | 14 203.643 1.925e-1 205.143 1.926e-1 9 | 16 199.652 1.400e-1 202.150 1.397e-1 10 | 18 199.650 9.958e-2 202.150 9.979e-2 11 | 20 199.650 7.080e-2 202.150 7.126e-2 12 | 22 199.650 5.035e-2 206.061 5.000e-2 13 | 24 207.129 3.474e-2 214.023 3.482e-2 14 | 26 214.688 2.428e-2 221.980 2.458e-2 15 | 28 222.243 1.719e-2 229.932 1.757e-2 16 | 30 229.792 1.231e-2 237.879 1.270e-2 17 | 32 237.337 8.916e-3 245.821 9.289e-3 18 | 34 244.877 6.523e-3 252.753 6.886e-3 19 | 36 250.612 4.850e-3 255.727 5.214e-3 20 | 38 255.567 3.639e-3 258.700 3.961e-3 21 | 40 260.518 2.747e-3 261.671 3.019e-3 22 | 42 265.467 2.084e-3 263.889 2.315e-3 23 | 44 269.650 1.594e-3 262.306 1.801e-3 24 | 46 269.650 1.241e-3 260.725 1.400e-3 25 | 48 268.438 9.706e-4 259.144 1.086e-3 26 | 50 265.279 7.628e-4 257.565 8.420e-4 27 | 52 262.122 5.978e-4 255.986 6.516e-4 28 | 54 258.967 4.672e-4 254.409 5.035e-4 29 | 56 255.814 3.641e-4 252.832 3.885e-4 30 | 58 252.663 2.829e-4 251.256 2.993e-4 31 | 60 249.317 2.193e-4 248.101 2.317e-4 32 | 62 241.646 1.721e-4 241.217 1.810e-4 33 | 64 233.979 1.340e-4 234.336 1.405e-4 34 | 66 230.150 1.019e-4 229.150 1.074e-4 35 | 68 230.150 7.615e-5 229.150 8.021e-5 36 | 70 230.150 5.691e-5 229.150 5.987e-5 37 | 72 228.507 4.281e-5 227.781 4.493e-5 38 | 74 226.155 3.222e-5 225.821 3.374e-5 39 | 76 223.805 2.418e-5 223.862 2.527e-5 40 | 78 221.456 1.810e-5 221.905 1.888e-5 41 | 80 219.109 1.350e-5 219.949 1.408e-5 42 | 43 | -------------------------------------------------------------------------------- /ADRpy/data/elev1200m.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/ADRpy/data/elev1200m.dat -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Electric_CSVs/_electric_metadata.csv: -------------------------------------------------------------------------------- 1 | JMX57,"Efficiency Map, likely including controller performance","Chin, JC., Tallerico, TT., Smith AD., ""X-57 Mod 2 Motor Thermal Analysis"", Figure 8, https://ntrs.nasa.gov/citations/20190032520" 2 | YASA_750R,"Efficiency Map, including controller","YASA limited, ""YASA 750 Datasheet"", Combined Motor AND controller Efficiency, https://www.yasa.com/wp-content/uploads/2018/01/YASA-750-Product-Sheet.pdf" 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/ATF3-6A_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 19990.617922991547,-21898.228346440395,45553.68198049941,-299128.97634146106,1191628.4016584845,-2638501.469605483,3044744.0897528497,-1426346.7357628834 2 | 0,0.598730034,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/ATF3-6A_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,TSFC (g/(kNs)),Thrust (N) 2 | 0,0.060727566,14.91013052,18783.58993 3 | 0,0.095700217,15.53474437,18111.2823 4 | 0,0.13067409,16.14407678,17506.19708 5 | 0,0.163704163,16.72966012,16920.99506 6 | 0,0.196077243,17.42066437,16342.96439 7 | 0,0.23364113,18.08318357,15711.18616 8 | 0,0.26472331,18.69621062,15169.04797 9 | 0,0.293862034,19.28117705,14687.72907 10 | 0,0.328835902,19.89057893,14125.46077 11 | 0,0.355542955,20.46988509,13690.80758 12 | 0,0.379330652,21.05929583,13317.97038 13 | 0,0.424000314,22.07779722,12635.3675 14 | 0,0.453134405,22.72072393,12190.99691 15 | 0,0.478379792,23.32996036,11808.73322 16 | 0,0.501680846,23.92210604,11460.19293 17 | 0,0.524983366,24.495914,11122.5154 18 | 0,0.549254977,25.1167438,10788.46409 19 | 0,0.589250362,26.1787312,10198.7546 20 | 0,0.034973318,14.45967907,19292.30504 21 | 6096,0.152126631,15.52036898,11273.33669 22 | 6096,0.184382274,16.05779067,11031.02477 23 | 6096,0.222081847,16.64558786,10784.40763 24 | 6096,0.258998135,17.29599988,10549.3884 25 | 6096,0.299808514,17.91271704,10299.928 26 | 6096,0.338675118,18.5053656,10081.9145 27 | 6096,0.369767962,18.98498577,9896.310975 28 | 6096,0.412526778,19.56744508,9676.541676 29 | 6096,0.457225641,20.22060914,9509.734266 30 | 6096,0.498042514,20.75608614,9303.668354 31 | 6096,0.538855034,21.34601763,9132.81618 32 | 6096,0.576061425,21.84448267,9042.038765 33 | 6096,0.624378014,22.44404527,8923.53141 34 | 6096,0.667139703,22.99055849,8866.638805 35 | 6096,0.70990499,23.49206096,8779.133029 36 | 6096,0.752669878,23.99856461,8675.5638 37 | 6096,0.801460768,24.56187038,8565.761158 38 | 12192,0.419595381,19.67673303,4723.425445 39 | 12192,0.462614912,20.2058234,4660.156229 40 | 12192,0.503893714,20.57964471,4645.597817 41 | 12192,0.54667039,20.93867164,4623.731424 42 | 12192,0.58944647,21.30514183,4637.019487 43 | 12192,0.63222435,21.64910663,4623.695638 44 | 12192,0.675002029,21.99557203,4632.575312 45 | 12192,0.720261756,22.32249582,4660.44265 46 | 12192,0.760561186,22.64099148,4673.994239 47 | 12192,0.803933903,22.94541187,4727.716925 48 | 12192,0.846123941,23.24140017,4807.26077 49 | 12192,0.888906218,23.53035182,4925.990337 50 | 12192,0.931691093,23.7867957,4983.354439 51 | 12192,0.95891888,23.93687807,5055.072715 52 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/ATF3-6A_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 0,0.00265161,19931.47164 3 | 0,0.058296156,18831.57739 4 | 0,0.101145488,18012.69686 5 | 0,0.143992018,17276.9888 6 | 0,0.186839856,16502.44943 7 | 0,0.229685971,15779.07294 8 | 0,0.272532749,15036.01842 9 | 0,0.315377803,14344.12678 10 | 0,0.358223001,13647.96658 11 | 0,0.40016824,12999.35035 12 | 0,0.443910845,12331.42156 13 | 0,0.486754441,11682.82158 14 | 0,0.529597242,11057.83525 15 | 0,0.574061978,10435.82998 16 | 0,0.598730034,10046.6512 17 | 6096,0.099274665,11708.99645 18 | 6096,0.155873891,11243.9159 19 | 6096,0.199818623,10925.36475 20 | 6096,0.241536957,10662.99628 21 | 6096,0.284367959,10388.2789 22 | 6096,0.327197769,10148.98197 23 | 6096,0.368081255,9906.107763 24 | 6096,0.424537497,9627.307817 25 | 6096,0.467364656,9466.723011 26 | 6096,0.510193997,9241.33189 27 | 6096,0.553020695,9094.390519 28 | 6096,0.595845732,8996.775412 29 | 6096,0.638670902,8895.224698 30 | 6096,0.681494216,8848.772472 31 | 6096,0.724319651,8739.350546 32 | 6096,0.767144555,8645.671045 33 | 6096,0.823739965,8512.322466 34 | 12192,0.404646165,4756.019212 35 | 12192,0.455847732,4665.072096 36 | 12192,0.498670036,4648.603612 37 | 12192,0.541492637,4623.330522 38 | 12192,0.576528175,4636.3337 39 | 12192,0.627136083,4624.880617 40 | 12192,0.669957673,4629.591271 41 | 12192,0.712778468,4657.915561 42 | 12192,0.755599793,4670.497427 43 | 12192,0.804907712,4729.11213 44 | 12192,0.84123913,4794.051313 45 | 12192,0.884056744,4916.830152 46 | 12192,0.926876558,4974.277928 47 | 12192,0.96340153,5068.533357 48 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/F404-400_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 60206.058997520755,24678.06291456525,-146694.89007022016,949254.6129763456,-2561259.6507548974,3419415.4413553006,-2249470.2355250414,576367.6816317304 2 | 0,1.220319573,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/FJ-44_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 8526.756233351993,-11334.63479512831,31226.40910362144,-171637.93528085636,723795.4501107973,-1844694.6289663175,2470653.960548433,-1327549.1279245391 2 | 0,0.510536663,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/FJ-44_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | TSFC (g/(kNs)),Mach Number,Thrust (N) 2 | 14.1628,0.044477652,7895.950687 3 | 14.1628,0.048281848,7606.496081 4 | 14.1628,0.05132742,7349.558768 5 | 14.1628,0.057955761,6656.985298 6 | 14.1628,0.054374129,7079.609338 7 | 14.1628,0.056662215,6842.177201 8 | 14.1628,0.058969167,6388.743922 9 | 14.1628,0.059755805,6035.477946 10 | 14.1628,0.060533938,5779.585979 11 | 14.1628,0.060561877,5459.704771 12 | 14.1628,0.060585649,5187.534658 13 | 14.1628,0.060684185,5099.300956 14 | 14.1628,0.040748814,8110.915052 15 | 16.99536,0.20632344,6656.07533 16 | 16.99536,0.210116838,6490.235835 17 | 16.99536,0.213910805,6317.890281 18 | 16.99536,0.218462163,6127.123894 19 | 16.99536,0.223771197,5914.683644 20 | 16.99536,0.227566015,5732.579002 21 | 16.99536,0.232117752,5537.475243 22 | 16.99536,0.238943653,5264.337779 23 | 16.99536,0.24349608,5061.333806 24 | 16.99536,0.249568066,4766.806293 25 | 16.99536,0.253364306,4568.436505 26 | 16.99536,0.256401638,4405.83704 27 | 16.99536,0.262473589,4111.722611 28 | 16.99536,0.267032018,3839.99194 29 | 16.99536,0.270830815,3612.34489 30 | 16.99536,0.273872978,3394.443927 31 | 16.99536,0.278431818,3118.014437 32 | 16.99536,0.281473128,2909.872562 33 | 16.99536,0.284510745,2744.020067 34 | 16.99536,0.286042197,2516.334019 35 | 16.99536,0.28908436,2298.433057 36 | 16.99536,0.291149431,2212.270011 37 | 16.99536,0.202689237,6827.469735 38 | 19.82792,0.365873896,5736.584355 39 | 19.82792,0.380257186,5468.456427 40 | 19.82792,0.397669569,5132.06688 41 | 19.82792,0.410540348,4874.756384 42 | 19.82792,0.418724019,4696.269804 43 | 19.82792,0.432500727,4386.09463 44 | 19.82792,0.443103547,4135.793366 45 | 19.82792,0.455221339,3846.48175 46 | 19.82792,0.467340267,3544.158017 47 | 19.82792,0.47205462,1487.237191 48 | 19.82792,0.476429535,3316.60196 49 | 19.82792,0.486276042,3072.360018 50 | 19.82792,0.493198035,1699.048067 51 | 19.82792,0.499152988,2744.458788 52 | 19.82792,0.50369819,2624.174701 53 | 19.82792,0.512032339,2389.015243 54 | 19.82792,0.512069465,1963.952756 55 | 19.82792,0.518853456,2170.637104 56 | 19.82792,0.51810492,2087.67186 57 | 19.82792,0.361560837,5822.184529 58 | 19.82792,0.464288555,1416.897888 59 | 22.66048,0.523343822,4841.455352 60 | 22.66048,0.534123369,4731.037596 61 | 22.66048,0.553414551,4516.669144 62 | 22.66048,0.577168395,4261.714521 63 | 22.66048,0.600317473,4008.376013 64 | 22.66048,0.629064164,3699.832202 65 | 22.66048,0.653120804,3439.352629 66 | 22.66048,0.675966849,3194.24993 67 | 22.66048,0.700174967,2930.08619 68 | 22.66048,0.72060073,2705.327543 69 | 22.66048,0.723726181,1533.855277 70 | 22.66048,0.731269184,1703.576526 71 | 22.66048,0.744052253,2450.476155 72 | 22.66048,0.745601984,2013.511892 73 | 22.66048,0.755997606,2308.174491 74 | 22.66048,0.753898533,2208.836637 75 | 22.66048,0.720727328,1463.645269 76 | 22.66048,0.749687094,2383.455534 77 | 22.66048,0.511519505,4971.980754 78 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/FJ-44_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 0,0.012691766,8388.419378 3 | 0,0.027064616,8239.822201 4 | 0,0.042949799,8082.431699 5 | 0,0.056564475,7961.219258 6 | 0,0.073204273,7817.189033 7 | 0,0.089843866,7675.524646 8 | 0,0.106483148,7537.40902 9 | 0,0.123121862,7405.799451 10 | 0,0.139760215,7278.330102 11 | 0,0.156398412,7152.635132 12 | 0,0.173036041,7033.44622 13 | 0,0.189673516,6916.031689 14 | 0,0.207229658,6795.744892 15 | 0,0.222947689,6690.074523 16 | 0,0.239584388,6581.531889 17 | 0,0.256221294,6470.623416 18 | 0,0.272857839,6363.855161 19 | 0,0.289494331,6257.678367 20 | 0,0.306130566,6154.458872 21 | 0,0.322766645,6053.013756 22 | 0,0.339402931,5949.202801 23 | 0,0.353014062,5868.575773 24 | 0,0.372674677,5751.044249 25 | 0,0.389310601,5651.373513 26 | 0,0.405946319,5554.068617 27 | 0,0.422582037,5456.76372 28 | 0,0.43921729,5364.781962 29 | 0,0.455852439,5273.983124 30 | 0,0.472487796,5180.818447 31 | 0,0.48912279,5091.793988 32 | 0,0.005901338,8460.993858 33 | 0,0.510536663,4978.011956 34 | 3048,0.0324786,6825.791813 35 | 3048,0.046846573,6733.031733 36 | 3048,0.070289013,6582.168846 37 | 3048,0.08692535,6477.766431 38 | 3048,0.103561792,6372.181096 39 | 3048,0.120197819,6271.327441 40 | 3048,0.13683364,6172.839624 41 | 3048,0.153469565,6073.168888 42 | 3048,0.170105231,5976.455452 43 | 3048,0.186740794,5880.924935 44 | 3048,0.203376305,5785.985878 45 | 3048,0.217743128,5706.38578 46 | 3048,0.244207829,5565.481842 47 | 3048,0.26084272,5477.640303 48 | 3048,0.277477457,5391.573144 49 | 3048,0.29411178,5310.237664 50 | 3048,0.310746103,5228.902184 51 | 3048,0.327380322,5148.749623 52 | 3048,0.344014077,5073.920201 53 | 3048,0.360647677,5000.865159 54 | 3048,0.37728107,4930.175956 55 | 3048,0.393914308,4861.261133 56 | 3048,0.405254802,4818.27955 57 | 3048,0.430203756,4725.257863 58 | 3048,0.446382161,4671.949781 59 | 3048,0.462711702,4618.880882 60 | 3048,0.480099492,4564.055803 61 | 3048,0.496732472,4498.098279 62 | 3048,0.51336447,4443.378492 63 | 3048,0.529996314,4390.433085 64 | 3048,0.546628054,4338.670598 65 | 3048,0.563259742,4287.499571 66 | 3048,0.595010729,4194.594876 67 | 3048,0.611642211,4145.789688 68 | 3048,0.628273434,4099.941799 69 | 3048,0.644904709,4053.502451 70 | 3048,0.661535829,4008.837482 71 | 3048,0.678167156,3961.806674 72 | 3048,0.694798328,3916.550245 73 | 3048,0.706137402,3889.833808 74 | 3048,0.009968622,6975.595064 75 | 6096,0.023546481,5254.126972 76 | 6096,0.040179668,5185.803609 77 | 6096,0.051520627,5137.498887 78 | 6096,0.074958534,5038.536603 79 | 6096,0.091591514,4972.579079 80 | 6096,0.108224958,4901.298416 81 | 6096,0.124101795,4839.468112 82 | 6096,0.140146589,4777.574979 83 | 6096,0.158123433,4708.748983 84 | 6096,0.174907363,4645.159899 85 | 6096,0.19306885,4577.52 86 | 6096,0.209533522,4515.634089 87 | 6096,0.227526806,4450.882883 88 | 6096,0.244310115,4394.391317 89 | 6096,0.262238448,4331.582365 90 | 6096,0.277574525,4280.220065 91 | 6096,0.296172113,4219.14631 92 | 6096,0.31234993,4172.58087 93 | 6096,0.328982083,4116.086704 94 | 6096,0.345613978,4062.549837 95 | 6096,0.362245512,4013.153189 96 | 6096,0.378876735,3967.305301 97 | 6096,0.3955077,3924.414711 98 | 6096,0.412138459,3883.889961 99 | 6096,0.428768959,3846.322511 100 | 6096,0.444643181,3814.420076 101 | 6096,0.469588239,3765.994462 102 | 6096,0.486217965,3737.29891 103 | 6096,0.502847793,3707.420437 104 | 6096,0.519477157,3682.865104 105 | 6096,0.536107037,3652.395172 106 | 6096,0.552736401,3627.839838 107 | 6096,0.569365661,3604.467424 108 | 6096,0.585995128,3578.729171 109 | 6096,0.60262444,3554.765297 110 | 6096,0.619253856,3529.618504 111 | 6096,0.63512735,3506.055653 112 | 6096,0.663095281,3460.580189 113 | 6096,0.679725316,3428.335877 114 | 6096,0.696354887,3401.414704 115 | 6096,0.712984818,3370.353312 116 | 6096,0.729614285,3344.615059 117 | 6096,0.746243959,3316.510966 118 | 6096,0.762873581,3288.998333 119 | 6096,0.779503203,3261.4857 120 | 6096,0.797157114,3227.785962 121 | 6096,0.011138602,5307.148784 122 | 9144,0.194184409,3082.612294 123 | 9144,0.219297737,3050.310156 124 | 9144,0.234792821,3032.684977 125 | 9144,0.251820542,3014.182539 126 | 9144,0.268113222,2998.559043 127 | 9144,0.294769542,2971.258296 128 | 9144,0.312456401,2953.582096 129 | 9144,0.329084524,2943.221799 130 | 9144,0.348735981,2930.547659 131 | 9144,0.365363847,2923.144661 132 | 9144,0.381991505,2918.107503 133 | 9144,0.398619578,2908.338666 134 | 9144,0.415247082,2905.075888 135 | 9144,0.431875257,2894.124131 136 | 9144,0.448503019,2887.904053 137 | 9144,0.465130885,2880.501055 138 | 9144,0.481002695,2876.219796 139 | 9144,0.505944225,2868.190891 140 | 9144,0.522571935,2862.562273 141 | 9144,0.539199749,2855.750735 142 | 9144,0.555827305,2851.896496 143 | 9144,0.572455222,2843.902039 144 | 9144,0.589083294,2834.133202 145 | 9144,0.605710798,2830.870423 146 | 9144,0.622338663,2823.467426 147 | 9144,0.638966374,2817.838808 148 | 9144,0.655594653,2805.704131 149 | 9144,0.67222288,2794.160915 150 | 9144,0.688851262,2780.843318 151 | 9144,0.703212371,2766.673468 152 | 9144,0.734353454,2734.190784 153 | 9144,0.75083129,2713.891362 154 | 9144,0.767460292,2693.476247 155 | 9144,0.780566416,2671.926045 156 | 10999.9272,0.249343666,2268.605319 157 | 10999.9272,0.27170686,2235.439332 158 | 10999.9272,0.28581641,2217.050996 159 | 10999.9272,0.304964503,2198.749322 160 | 10999.9272,0.321592885,2185.431725 161 | 10999.9272,0.338220957,2175.662888 162 | 10999.9272,0.354848461,2172.40011 163 | 10999.9272,0.371476482,2163.222733 164 | 10999.9272,0.388103676,2163.508713 165 | 10999.9272,0.40473087,2163.794694 166 | 10999.9272,0.421358064,2164.080674 167 | 10999.9272,0.437985258,2164.366655 168 | 10999.9272,0.454612451,2164.652635 169 | 10999.9272,0.471239232,2169.670295 170 | 10999.9272,0.487865703,2178.236714 171 | 10999.9272,0.503737115,2178.509695 172 | 10999.9272,0.533211614,2190.254398 173 | 10999.9272,0.549838136,2198.229357 174 | 10999.9272,0.56646471,2205.612856 175 | 10999.9272,0.583091284,2212.996355 176 | 10999.9272,0.599717755,2221.562773 177 | 10999.9272,0.616343916,2233.677951 178 | 10999.9272,0.632970128,2245.201669 179 | 10999.9272,0.649898788,2255.192791 180 | 10999.9272,0.666222553,2268.249105 181 | 10999.9272,0.682848869,2278.589903 182 | 10999.9272,0.699475288,2287.747782 183 | 10999.9272,0.71610181,2295.722741 184 | 10999.9272,0.732728694,2299.55748 185 | 10999.9272,0.744065417,2299.752467 186 | 10999.9272,0.769005692,2306.096037 187 | 10999.9272,0.786656581,2306.991085 188 | 12192,0.315333129,1796.734348 189 | 12192,0.338255053,1785.29938 190 | 12192,0.35185912,1785.533364 191 | 12192,0.372350334,1772.873668 192 | 12192,0.388137771,1773.145205 193 | 12192,0.404764965,1773.431185 194 | 12192,0.420636377,1773.704167 195 | 12192,0.434995848,1778.288522 196 | 12192,0.45464541,1787.301244 197 | 12192,0.471272604,1787.587225 198 | 12192,0.494700696,1801.002314 199 | 12192,0.515408314,1810.466972 200 | 12192,0.531732545,1818.200147 201 | 12192,0.548358912,1827.949485 202 | 12192,0.558939854,1828.131473 203 | 12192,0.577833256,1841.468568 204 | 12192,0.598994003,1854.84466 205 | 12192,0.620910531,1868.233752 206 | 12192,0.638832539,1877.836386 207 | 12192,0.651644321,1883.943186 208 | 12192,0.67078984,1895.115927 209 | 12192,0.687416465,1901.907966 210 | 12192,0.705554654,1908.726004 211 | 12192,0.719914503,1908.972987 212 | 12192,0.753923536,1922.570064 213 | 12192,0.77055073,1922.856045 214 | 12192,0.787177924,1923.142025 215 | 12192,0.798514648,1923.337012 216 | 13716,0.396877427,1421.967838 217 | 13716,0.417795491,1417.773372 218 | 13716,0.435028049,1409.611875 219 | 13716,0.449387898,1409.858859 220 | 13716,0.474328689,1410.28783 221 | 13716,0.490955625,1413.531109 222 | 13716,0.507581941,1423.871908 223 | 13716,0.524209135,1424.157888 224 | 13716,0.540836329,1424.443869 225 | 13716,0.557463471,1425.321309 226 | 13716,0.574089735,1436.253567 227 | 13716,0.590716774,1438.313928 228 | 13716,0.606000356,1438.576799 229 | 13716,0.624574764,1450.607193 230 | 13716,0.640597219,1452.183986 231 | 13716,0.657224413,1452.469967 232 | 13716,0.673851607,1452.755948 233 | 13716,0.690478801,1453.041928 234 | 13716,0.706098287,1453.310577 235 | 13716,0.735825694,1453.821875 236 | 13716,0.752452888,1454.107856 237 | 13716,0.769080721,1447.074521 238 | 13716,0.785708412,1441.6677 239 | 13716,0.807175074,1432.277815 240 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/J52_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 36641.580708920155,-25294.28862223804,45326.8438150463,9187.496083250477,-181083.5707803226,355466.25806617836,-306384.2103587093,96453.78427228938 2 | 0,0.955730393553312,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/J52_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | TSFC (g/(kNs)),Velocity (m/s),Thrust (N),Mach Number 2 | 24.07676,56.14903724,33578.08071, 3 | 24.07676,58.21359174,30619.97489,0.173263931 4 | 24.07676,60.96633108,27817.66638,0.183669894 5 | 24.07676,64.75134766,24870.29493,0.197707813 6 | 24.07676,70.06824899,21734.2633,0.217325438 7 | 24.07676,73.6977505,19561.12262,0.231449959 8 | 24.07676,78.17095191,17350.07011,0.249098253 9 | 24.07676,81.26778366,15558.78994,0.26226646 10 | 24.07676,86.42916992,14020.84007,0.282043619 11 | 24.07676,90.92563737,12551.62263,0.300276069 12 | 24.07676,94.3432955,7915.041033, 13 | 24.07676,99.16058933,10295.99468,0.334310298 14 | 24.07676,98.4724045,8958.603103, 15 | 24.07676,95.00576524,11626.4461,0.316245917 16 | 24.07676,99.72019871,9642.392666,0.337954959 17 | 25.49304,97.40706499,32613.81983, 18 | 25.49304,97.09603483,31269.56464,0.287035065 19 | 25.49304,99.16058933,29431.6593,0.295506847 20 | 25.49304,101.2251438,27675.32337,0.304124339 21 | 25.49304,103.9778832,25666.6172,0.315389619 22 | 25.49304,107.7628998,23435.69704,0.330589855 23 | 25.49304,112.0707899,21378.33549,0.347659626 24 | 25.49304,117.7415798,19040.84444,0.370316741 25 | 25.49304,121.8706888,17481.75984,0.387095938 26 | 25.49304,124.2364773,6510.352137,0.421041416 27 | 25.49304,128.7525372,15537.20024,0.414582948 28 | 25.49304,133.6681431,7198.515746,0.453005634 29 | 25.49304,134.2580158,14569.31838,0.43566179 30 | 25.49304,140.7957718,8314.053775,0.477161397 31 | 25.49304,141.1398642,13077.27477,0.464213712 32 | 25.49304,146.7357538,10189.36537,0.497292187 33 | 25.49304,146.7114674,11498.02483,0.490454157 34 | 26.90932,134.6253743,32274.93791, 35 | 26.90932,138.7312173,29692.92981,0.412791652 36 | 26.90932,142.1721414,27746.23549,0.427180336 37 | 26.90932,147.3335277,25598.55431,0.447653729 38 | 26.90932,153.5271912,23376.16381,0.472333656 39 | 26.90932,155.2709193,2473.211191, 40 | 26.90932,159.3767623,21660.54768,0.495296833 41 | 26.90932,169.6664725,4025.209465,0.57500513 42 | 26.90932,170.3877196,19431.4934,0.53686837 43 | 26.90932,176.4106839,4767.704302,0.597861479 44 | 26.90932,178.3018452,17980.49134,0.567447982 45 | 26.90932,180.7104921,5444.666059,0.612433668 46 | 26.90932,188.2805253,16144.19909,0.607602352 47 | 26.90932,190.6891722,6907.331011,0.646251735 48 | 26.90932,194.808485,7587.8156,0.660212219 49 | 26.90932,197.9151129,14301.37175,0.649351196 50 | 26.90932,199.9796674,8494.60503,0.677737522 51 | 26.90932,203.5298807,12197.80636,0.682169788 52 | 26.90932,203.764684,10172.21888,0.690565065 53 | 26.90932,204.4528689,11211.36422,0.692166009 54 | 28.3256,184.3069313,32248.48004, 55 | 28.3256,186.9041556,30687.714,0.553910158 56 | 28.3256,191.377357,28883.48889,0.573052759 57 | 28.3256,197.9151129,26865.60924,0.599937027 58 | 28.3256,206.8615158,24893.64523,0.635122441 59 | 28.3256,216.152011,23397.96649,0.670570243 60 | 28.3256,221.1578822,2535.338532, 61 | 28.3256,227.1629684,22019.91152,0.711594175 62 | 28.3256,228.0231994,3498.934277,0.772777954 63 | 28.3256,235.4211864,4470.790313,0.79784997 64 | 28.3256,237.8298333,21194.82225,0.750150754 65 | 28.3256,242.3030347,5154.866596,0.821172775 66 | 28.3256,250.2171603,19926.65979,0.796946742 67 | 28.3256,254.0021769,6462.952741,0.860821544 68 | 28.3256,261.8171157,18156.54471,0.845528308 69 | 28.3256,265.4564134,7858.601109,0.899640319 70 | 28.3256,269.830428,15693.03818,0.889895611 71 | 28.3256,270.5186129,8966.504506,0.916796276 72 | 28.3256,273.959537,13131.7622,0.924919545 73 | 28.3256,271.7064052,14825.1458,0.902976821 74 | 28.3256,273.6154446,11620.00894,0.927291538 75 | 28.3256,273.6154446,10420.93868,0.927291538 76 | 29.74188,232.7247753,32454.81277, 77 | 29.74188,243.6794044,30691.15882,0.725161603 78 | 29.74188,254.3462693,29325.915,0.765126671 79 | 29.74188,265.701319,28035.96896,0.807263076 80 | 29.74188,284.2823095,26312.64496,0.876449181 81 | 29.74188,294.1152708,25597.99922,0.912303423 82 | 29.74188,300.8085418,25119.85456,0.937062441 83 | 29.74188,303.5514849,3915.428168,1.028745742 84 | 29.74188,308.3687787,24504.80753,0.965473698 85 | 29.74188,315.250627,4950.438452,1.06839451 86 | 29.74188,319.379736,23736.19256,1.006622896 87 | 29.74188,322.4435055,5481.189047,1.092771407 88 | 29.74188,329.047386,6145.237585,1.11515217 89 | 29.74188,331.0788782,22539.97436,1.05434632 90 | 29.74188,339.3370962,6951.785191,1.150024329 91 | 29.74188,342.1559601,21157.78921,1.103387748 92 | 29.74188,346.563037,20318.24432,1.125933533 93 | 29.74188,350.0039611,7857.496743,1.186174677 94 | 29.74188,354.4771626,18724.39903,1.167561839 95 | 29.74188,361.7031033,8857.31851, 96 | 29.74188,362.7353806,15803.74432,1.222168714 97 | 29.74188,365.4881199,13173.19281,1.238650989 98 | 29.74188,367.5526744,10086.53918, 99 | 29.74188,368.5849516,11555.75744,1.249146251 100 | 29.74188,295.0863216,3261.395067,1.000057031 101 | 31.15816,295.9814517,31462.7737,0.874004012 102 | 31.15816,300.7987455,31197.18268,0.889915326 103 | 31.15816,315.250627,30092.67051,0.940801063 104 | 31.15816,334.5198024,28650.26717,1.012825789 105 | 31.15816,355.8535322,26916.06949,1.095014209 106 | 31.15816,359.9826412,26616.11989,1.11010022 107 | 31.15816,379.9400014,24727.92795,1.191206258 108 | 31.15816,386.1336649,24075.00696,1.218129264 109 | 31.15816,401.2737312,22604.42174,1.28304377 110 | 31.15816,406.4351175,22015.36506, 111 | 31.15816,419.1665369,20325.80729, 112 | 31.15816,427.8484417,19041.8263, 113 | 31.15816,433.1249335,18141.88575, 114 | 31.15816,284.5862306,32158.05169, 115 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/J60_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 11449.568557711225,-8501.59868490997,11861.934521107667,3880.3238863920856,-27196.127523295054,22117.668101575957,2622.5201938353935,-6624.640750105998 2 | 0,0.8464497682454413,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/J60_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | TSFC (g/(kNs)),TAS (m/s),Thrust (N),Mach Number 2 | 26.90932,24.55558883,2684.535205,0.08321968 3 | 26.90932,29.59112385,10550.63996,0.087260795 4 | 26.90932,32.50987785,3184.709535,0.110177021 5 | 26.90932,36.7541406,8716.877909,0.111113438 6 | 26.90932,37.06122168,3879.756126,0.123973379 7 | 26.90932,38.9628169,4522.055145,0.12801961 8 | 26.90932,39.76706233,7735.580582,0.122067389 9 | 26.90932,40.86368291,5114.912594,0.13221967 10 | 26.90932,41.64629482,6861.671483,0.129788435 11 | 26.90932,42.01329345,6086.998625,0.132950673 12 | 26.90932,16.73402339,2349.648529,0.056712143 13 | 26.90932,28.45982482,10820.08666, 14 | 28.3256,44.79116559,2235.464793,0.1517987 15 | 28.3256,57.0231947,2602.798784,0.19325344 16 | 28.3256,65.80844376,2996.283337,0.223026932 17 | 28.3256,67.42249289,9800.188839,0.199414771 18 | 28.3256,69.90348034,9220.195636,0.208540281 19 | 28.3256,72.3008496,3344.157125,0.245029904 20 | 28.3256,73.45481831,8277.0748,0.222398318 21 | 28.3256,75.33573205,7517.155984,0.231043484 22 | 28.3256,76.79357827,3730.402717,0.257377818 23 | 28.3256,77.59429913,6704.960571,0.24149131 24 | 28.3256,78.46651006,5974.118073,0.24781242 25 | 28.3256,79.46696864,5386.07735,0.254246396 26 | 28.3256,79.83514213,4691.060353,0.259863522 27 | 28.3256,80.20615146,4188.316125,0.264903775 28 | 28.3256,65.84522559,10241.48858, 29 | 28.3256,50.39981794,2395.833985,0.170806603 30 | 29.74188,88.12540668,2313.176216,0.298659836 31 | 29.74188,94.289336,9712.892016,0.278178526 32 | 29.74188,98.34568867,2504.63511,0.333296701 33 | 29.74188,100.3353343,9116.807397,0.298720394 34 | 29.74188,106.0024274,8488.124683,0.318876495 35 | 29.74188,107.4319677,2782.214509,0.364090392 36 | 29.74188,110.1572178,7954.008729,0.334424318 37 | 29.74188,113.9335486,7417.508972,0.349211257 38 | 29.74188,115.3846698,3174.794568,0.391042356 39 | 29.74188,119.5973967,6568.811276,0.372451511 40 | 29.74188,122.2027671,3612.686216,0.412143035 41 | 29.74188,121.8586174,5936.528238,0.384342732 42 | 29.74188,124.1178934,5172.401016,0.398401227 43 | 29.74188,123.9539237,4318.117405,0.408044576 44 | 29.74188,91.28146814,9987.583308, 45 | 29.74188,79.23108998,2182.46536,0.268516711 46 | 31.15816,129.2738697,9741.812377,0.379963814 47 | 31.15816,133.6396842,9320.539168,0.395551596 48 | 31.15816,139.3078873,8767.117509,0.416301701 49 | 31.15816,144.1328622,2357.106533, 50 | 31.15816,144.220642,8308.635409,0.434529478 51 | 31.15816,152.1575484,7630.256147,0.464298864 52 | 31.15816,153.5977492,2647.134626, 53 | 31.15816,159.7168055,7004.428158,0.49359083 54 | 31.15816,163.4424286,3029.908182,0.553911645 55 | 31.15816,165.762111,6361.374048,0.519126747 56 | 31.15816,171.3950928,3419.924604,0.58086348 57 | 31.15816,171.4315538,5892.003057,0.542433971 58 | 31.15816,177.47897,5392.054822,0.568564976 59 | 31.15816,177.4579645,3967.862957,0.594604048 60 | 31.15816,179.3552114,4315.343731,0.59357975 61 | 31.15816,180.4980901,4831.010832,0.587431845 62 | 31.15816,139.1269039,2217.769715, 63 | 32.57444,166.9720331,9633.588391, 64 | 32.57444,174.1290328,9180.897521,0.515971034 65 | 32.57444,181.6902506,8688.012418,0.543413326 66 | 32.57444,189.6298916,8195.039039,0.572791679 67 | 32.57444,196.8130753,7728.611049,0.600286239 68 | 32.57444,203.6185652,7311.712904,0.626695588 69 | 32.57444,214.2045911,6643.42805,0.669218997 70 | 32.57444,224.4133668,6054.749996,0.71107231 71 | 32.57444,225.4448716,2470.006637, 72 | 32.57444,233.1105214,5606.862645,0.747416092 73 | 32.57444,231.9341555,2820.741902, 74 | 32.57444,237.2377907,3206.798331,0.8040065 75 | 32.57444,240.2934326,5121.952925,0.781867981 76 | 32.57444,242.5413855,3590.108006,0.821980553 77 | 32.57444,245.5847926,4675.742942,0.811357023 78 | 32.57444,247.1730686,4091.313333,0.83358154 79 | 33.99072,210.8387609,9354.719219,0.622491885 80 | 33.99072,219.1583765,8966.858236,0.652208308 81 | 33.99072,230.1256747,8491.66038,0.691792305 82 | 33.99072,240.3368009,8062.352908,0.729610082 83 | 33.99072,251.6820996,7558.422057,0.773297945 84 | 33.99072,264.1622567,7026.366447,0.822397209 85 | 33.99072,276.2641903,6507.936686,0.871577485 86 | 33.99072,288.7446755,5998.129782,0.923936875 87 | 33.99072,298.5781684,5622.459205,0.967285896 88 | 33.99072,308.4104163,5162.371727,1.016613551 89 | 33.99072,311.2649131,2859.706026, 90 | 33.99072,316.3499855,4664.53267,1.062795587 91 | 33.99072,317.8423105,3215.463115, 92 | 33.99072,319.9386978,4236.083337,1.084282533 93 | 33.99072,321.6337524,3703.502539,1.090027127 94 | 33.99072,205.8527302,9585.344762,0.605003417 95 | 35.407,259.2774004,9376.380957,0.765888764 96 | 35.407,271.0023254,8953.94042,0.808456188 97 | 35.407,294.4523537,8121.145062,0.897319394 98 | 35.407,308.0679951,7603.40858,0.951615239 99 | 35.407,324.3310652,6981.135313,1.018135525 100 | 35.407,337.9462137,6429.979992,1.077603451 101 | 35.407,351.1826873,5861.843834,1.14191305 102 | 35.407,361.7703869,5307.039153,1.201183958 103 | 35.407,370.0863119,4668.948896,1.254234409 104 | 35.407,373.8600257,3955.008842,1.267023647 105 | 35.407,374.6096607,3465.910107,1.269564184 106 | 35.407,374.3571883,3089.82769, 107 | 35.407,252.8111409,9609.289068, 108 | 36.82328,297.878142,9475.049572,0.879527744 109 | 36.82328,311.495946,9103.943965,0.928804106 110 | 36.82328,325.113191,8694.933155,0.98012009 111 | 36.82328,342.1342011,8146.64569,1.046844596 112 | 36.82328,359.154374,7541.59198,1.116989888 113 | 36.82328,368.6097126,7184.229812,1.157741196 114 | 36.82328,379.5776132,6749.88011,1.20774236 115 | 36.82328,393.9490447,6160.368359,1.278679976 116 | 36.82328,405.2925974,5538.052418,1.345178361 117 | 36.82328,411.339021,4970.808714,1.390318205 118 | 36.82328,415.8702534,4302.288222,1.409397659 119 | 36.82328,415.4788665,3423.41527, 120 | 36.82328,290.154115,9670.374824, 121 | 36.82328,414.7456254,3178.121767, 122 | 38.23956,429.5084468,6222.685179,1.398963996 123 | 38.23956,436.3258011,5701.112537,1.447684 124 | 38.23956,441.2376443,5180.828476, 125 | 38.23956,443.8797592,4716.009147, 126 | 38.23956,445.7638937,4174.457262, 127 | 38.23956,446.889521,3520.465021, 128 | 38.23956,426.8140513,6462.738637,1.378336796 129 | 38.23956,446.9592685,3184.566569, 130 | 39.65584,460.5853334,6331.468656, 131 | 39.65584,464.3345372,6062.645139, 132 | 39.65584,468.1132988,5690.950612, 133 | 39.65584,470.7569706,5331.685109, 134 | 39.65584,472.6451389,5063.631428, 135 | 39.65584,474.9067444,4457.442551, 136 | 39.65584,476.7893191,3810.140644, 137 | 39.65584,457.1058423,6560.367673, 138 | 39.65584,476.7687179,3177.612833, 139 | 42.4884,527.8721803,3509.814252, 140 | 42.4884,528.6363186,4004.053391, 141 | 42.4884,529.4078707,5000.948482, 142 | 42.4884,529.4016723,4580.695145, 143 | 42.4884,527.0925057,3186.812716, 144 | 42.4884,529.6874367,5266.153817, 145 | 45.32096,571.4113734,4892.266726, 146 | 45.32096,571.026995,4488.582187, 147 | 45.32096,571.9978287,5270.243322, 148 | 45.32096,569.8841071,3218.708712, 149 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT8D-9_Sea_level_take_off_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 67965.96706809467,-106535.97563030694,640992.6130222493,-4466238.808452494,22023713.453063685,-62256668.174850576,90636670.75147733,-52757841.905313544 2 | 0.000272148,0.467408107,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT8D-9_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 51839.98008390952,-51545.446556477575,57541.00119768832,8005.512380364577,-140146.62194137223,211029.68662425922,-136973.63120387663,33807.456798616884 2 | 0,0.98527989,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT8D-9_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | TSFC (g/(kNs)),Mach Number,Thrust (N) 2 | 16.99536,0.12311725,46292.92747 3 | 16.99536,0.127102004,41665.72182 4 | 16.99536,0.129356399,38341.24354 5 | 16.99536,0.131022561,35106.54833 6 | 16.99536,0.130352215,32725.20975 7 | 16.99536,0.130859827,30209.23451 8 | 16.99536,0.13136296,27558.47082 9 | 16.99536,0.134190657,23694.91461 10 | 18.41164,0.232376264,42802.46814 11 | 18.41164,0.249378282,38491.43856 12 | 18.41164,0.25933345,35617.24175 13 | 18.41164,0.269875358,32608.33238 14 | 18.41164,0.275694981,29823.46328 15 | 18.41164,0.276233945,28251.00721 16 | 18.41164,0.277355171,26409.05013 17 | 18.41164,0.280814397,23758.66591 18 | 18.41164,0.290775537,21064.18704 19 | 18.41164,0.30014098,18234.84382 20 | 18.41164,0.300641127,15494.22116 21 | 18.41164,0.297031109,13606.72744 22 | 18.41164,0.283982494,12347.03219 23 | 18.41164,0.273904902,11537.01127 24 | 18.41164,0.263246542,11041.42084 25 | 18.41164,0.248446664,10455.44018 26 | 18.41164,0.195801323,9639.954852 27 | 18.41164,0.223596069,9868.169312 28 | 18.41164,0.242349348,40467.42514 29 | 19.82792,0.349343517,39986.9377 30 | 19.82792,0.366969599,36664.43267 31 | 19.82792,0.375186942,34868.31581 32 | 19.82792,0.384583737,32982.49177 33 | 19.82792,0.389858423,31590.3608 34 | 19.82792,0.39454637,30332.94238 35 | 19.82792,0.39803247,28491.28888 36 | 19.82792,0.398544561,26110.10209 37 | 19.82792,0.400828815,23684.2135 38 | 19.82792,0.399089498,24717.36397 39 | 19.82792,0.405512283,22292.00664 40 | 19.82792,0.410804885,21439.02948 41 | 19.82792,0.419634349,20272.0013 42 | 19.82792,0.429647743,19150.05439 43 | 19.82792,0.437885988,17982.95031 44 | 19.82792,0.44020458,16590.43987 45 | 19.82792,0.440171735,15601.9912 46 | 19.82792,0.433015898,13758.9716 47 | 19.82792,0.419949367,11960.12254 48 | 19.82792,0.405716821,10655.34603 49 | 21.2442,0.445061233,38202.05321 50 | 21.2442,0.475726973,35869.66652 51 | 21.2442,0.492237801,34568.83651 52 | 21.2442,0.513466436,32909.17778 53 | 21.2442,0.534692084,31159.66008 54 | 21.2442,0.545887916,30037.86496 55 | 21.2442,0.549406862,29184.66012 56 | 21.2442,0.557633163,27658.12016 57 | 21.2442,0.567032944,25862.15509 58 | 21.2442,0.573469166,23841.16312 59 | 21.2442,0.575777308,22134.14629 60 | 21.2442,0.579874035,20876.65198 61 | 21.2442,0.585166638,20023.67482 62 | 21.2442,0.592189599,17867.97029 63 | 21.2442,0.596844701,15622.10322 64 | 21.2442,0.596216157,14498.79021 65 | 21.2442,0.58907525,13105.06546 66 | 21.2442,0.57364683,11395.77179 67 | 21.2442,0.556465655,10315.26322 68 | 21.2442,0.542851201,9819.293319 69 | 22.66048,0.546703081,36777.36354 70 | 22.66048,0.572077712,35342.88349 71 | 22.66048,0.595677193,33863.24628 72 | 22.66048,0.63462746,31756.56953 73 | 22.66048,0.669443674,29784.14998 74 | 22.66048,0.707202546,27407.74454 75 | 22.66048,0.733753642,25793.69834 76 | 22.66048,0.763838613,23775.74215 77 | 22.66048,0.787423165,21846.81009 78 | 22.66048,0.801570611,20590.60599 79 | 22.66048,0.813353183,19334.09831 80 | 22.66048,0.823359112,17987.50397 81 | 22.66048,0.823339703,17403.42067 82 | 22.66048,0.822106505,15875.66641 83 | 22.66048,0.817939607,15021.47494 84 | 22.66048,0.80489547,13896.56815 85 | 22.66048,0.79541059,13131.5526 86 | 22.66048,0.776454266,12005.88687 87 | 22.66048,0.752173987,10789.67911 88 | 22.66048,0.736770948,9844.186682 89 | 24.07676,0.640671029,35711.12312 90 | 24.07676,0.663692728,34635.77537 91 | 24.07676,0.702065213,32933.38809 92 | 24.07676,0.732763798,31589.45006 93 | 24.07676,0.777043992,29753.03328 94 | 24.07676,0.829590796,27603.17262 95 | 24.07676,0.880369917,25632.80221 96 | 24.07676,0.925835534,23886.39618 97 | 24.07676,0.96775981,22319.25273 98 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT8D-9_Thrust_SL_TO_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 0,0.000272148,67933.07711 3 | 0,0.028565548,65375.73942 4 | 0,0.060415218,63088.434 5 | 0,0.095234419,61205.87342 6 | 0,0.135373095,59279.0664 7 | 0,0.178478316,57667.14525 8 | 0,0.22159548,56414.65997 9 | 0,0.266495259,55431.97929 10 | 0,0.310215586,54539.00578 11 | 0,0.353941885,53825.75021 12 | 0,0.395899007,53247.05542 13 | 0,0.4284026,52846.86425 14 | 0,0.467408107,52402.57843 15 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT8D-9_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 0,-0.000262337,51848.32163 3 | 0,0.02984055,50369.51925 4 | 0,0.065258434,48711.68199 5 | 0,0.100091072,47233.48677 6 | 0,0.134929681,45935.00948 7 | 0,0.167407894,44771.01708 8 | 0,0.201071531,43697.03543 9 | 0,0.234739646,42757.84223 10 | 0,0.267816543,41818.57314 11 | 0,0.296171155,41103.34432 12 | 0,0.332210117,40344.17264 13 | 0,0.367659354,39629.85455 14 | 0,0.403110084,38960.46595 15 | 0,0.436790143,38380.70863 16 | 0,0.476972115,37756.85666 17 | 0,0.511244887,37222.10472 18 | 0,0.545522137,36822.14124 19 | 0,0.58157155,36377.47595 20 | 0,0.616440019,35977.58836 21 | 0,0.649536324,35622.40257 22 | 0,0.689136036,35268.05161 23 | 0,0.732284553,34959.08551 24 | 0,0.778978889,34605.64529 25 | 0,0.824492281,34296.98277 26 | 0,0.874145697,34033.78099 27 | 0,0.918481131,33859.75513 28 | 0,0.95217612,33729.29266 29 | 0,0.98527989,33598.75429 30 | 4572,0.001014158,36887.03095 31 | 4572,0.037635381,35858.35825 32 | 4572,0.078401107,35009.93476 33 | 4572,0.115621014,34205.98539 34 | 4572,0.158754602,33447.72444 35 | 4572,0.20602672,32689.99475 36 | 4572,0.254484262,32022.27583 37 | 4572,0.301168148,31354.32921 38 | 4572,0.347265293,30821.09516 39 | 4572,0.390999057,30332.48702 40 | 4572,0.432369439,29888.50478 41 | 4572,0.47906079,29445.20559 42 | 4572,0.521615102,29046.30463 43 | 4572,0.56771822,28692.78851 44 | 4572,0.615003775,28339.42419 45 | 4572,0.667020573,28031.5965 46 | 4572,0.720811028,27723.9965 47 | 4572,0.993322555,26545.88774 48 | 4572,0.935981803,26763.1734 49 | 4572,0.770464444,27460.79472 50 | 4572,0.820710572,27242.59833 51 | 4572,0.880413213,26935.75727 52 | 7620,0.013058,25701.18307 53 | 7620,0.047324799,24986.71319 54 | 7620,0.081003366,24362.02639 55 | 7620,0.118823449,23827.72981 56 | 7620,0.156056793,23428.1458 57 | 7620,0.273091229,22634.44217 58 | 7620,0.314472062,22504.96632 59 | 7620,0.375946867,22153.42346 60 | 7620,0.436840904,22116.3111 61 | 7620,0.489460865,22167.99519 62 | 7620,0.537943787,22264.0775 63 | 7620,0.586431189,22494.94826 64 | 7620,0.63373466,22680.73775 65 | 7620,0.742530851,23054.1382 66 | 7620,0.673943506,22865.61651 67 | 7620,0.711785984,23005.26221 68 | 7620,0.195065286,23073.71895 69 | 7620,0.234076765,22809.15108 70 | 10668,0.203090035,15481.69858 71 | 10668,0.250381562,15308.05219 72 | 10668,0.292944832,15178.72814 73 | 10668,0.339055415,15049.85945 74 | 10668,0.388716296,15011.30509 75 | 10668,0.434831358,15017.22486 76 | 10668,0.477399107,15022.68925 77 | 10668,0.528838123,15119.15103 78 | 10668,0.596835743,15352.52631 79 | 10668,0.648868964,15538.92296 80 | 10668,0.705043702,15815.70983 81 | 10668,0.767133613,16183.11462 82 | 10668,0.819764024,16549.3051 83 | 10668,0.871211998,16915.34379 84 | 10668,0.931532732,17417.30935 85 | 10668,0.984757349,17873.43469 86 | 13716,0.200532566,9685.491492 87 | 13716,0.249009517,9601.855864 88 | 13716,0.302213231,9428.968421 89 | 13716,0.355418439,9301.010464 90 | 13716,0.413356382,9263.51863 91 | 13716,0.471884051,9181.173207 92 | 13716,0.750958704,9801.078663 93 | 13716,0.993394218,10910.503 94 | 13716,0.946680473,10679.85992 95 | 13716,0.816001723,10079.00395 96 | 13716,0.876904718,10311.4685 97 | 13716,0.532188362,9188.914435 98 | 13716,0.595454739,9376.753074 99 | 13716,0.689465984,9613.467707 100 | 13716,0.648076193,9473.366645 101 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT9D-3_Sea_level_take_off_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 191539.39357655382,-129621.01041257434,275596.87274076353,-1103777.5839464732,3060950.795227874,-4723686.014227428,3745952.26602139,-1194602.5848008303 2 | -0.000961375,0.84988463,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT9D-3_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 146870.3750282164,-193057.60841929194,299694.65181337605,-530762.3924876993,572280.7957029099,-54445.76265257204,-440277.3837837482,263365.92674926505 2 | 0,0.797362129,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT9D-3_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | TSFC (g/(kNs)),Mach Number,Thrust (N) 2 | 14.1628,0.386360984,97633.70132 3 | 14.1628,0.400530431,92781.90527 4 | 14.1628,0.420144551,87318.08956 5 | 14.1628,0.435403918,82102.36773 6 | 14.1628,0.445213194,78827.03572 7 | 14.1628,0.45338636,76399.49469 8 | 14.1628,0.459927355,73853.65724 9 | 15.57908,0.457678072,91608.79914 10 | 15.57908,0.488722312,85765.44911 11 | 15.57908,0.527393526,77978.42324 12 | 15.57908,0.556811505,70567.64569 13 | 15.57908,0.582963173,63403.31901 14 | 15.57908,0.596043193,58794.68781 15 | 15.57908,0.612941133,52127.37038 16 | 15.57908,0.622756812,47282.14635 17 | 15.57908,0.629852863,42078.74706 18 | 15.57908,0.630410382,38817.3806 19 | 15.57908,0.628246796,35560.12165 20 | 15.57908,0.624450546,32305.32721 21 | 15.57908,0.621195563,29774.27681 22 | 15.57908,0.616309886,26762.64723 23 | 16.99536,0.577442654,82612.52102 24 | 16.99536,0.599227255,78715.31133 25 | 16.99536,0.624820912,74933.11203 26 | 16.99536,0.649327604,70790.27297 27 | 16.99536,0.68527131,64577.24664 28 | 16.99536,0.723395841,57394.84689 29 | 16.99536,0.753896352,51431.55743 30 | 16.99536,0.776231577,45963.63421 31 | 16.99536,0.786583105,43170.5244 32 | 16.99536,0.795305909,39413.79169 33 | 16.99536,0.800221136,35179.76581 34 | 16.99536,0.801325338,31313.77322 35 | 16.99536,0.800792445,28537.09347 36 | 16.99536,0.799712868,26365.03983 37 | 18.41164,0.927061083,26052.04723 38 | 18.41164,0.92922073,30275.39358 39 | 18.41164,0.930834677,34861.8442 40 | 18.41164,0.930816455,39329.9984 41 | 18.41164,0.931347871,42468.96093 42 | 18.41164,0.926441016,44650.0511 43 | 18.41164,0.918815026,46352.20508 44 | 18.41164,0.904113178,48306.56045 45 | 18.41164,0.876344608,51609.00206 46 | 18.41164,0.825710381,56998.8825 47 | 18.41164,0.808831156,59077.2848 48 | 18.41164,0.764185823,63854.32409 49 | 18.41164,0.722262088,68506.49495 50 | 18.41164,0.677072534,73284.35574 51 | 18.41164,0.64985114,75861.4103 52 | 18.41164,0.631884458,77699.93376 53 | 19.82792,0.973761158,51220.43119 54 | 19.82792,0.959060788,52812.50379 55 | 19.82792,0.91823042,56255.42239 56 | 19.82792,0.833850056,62783.08433 57 | 19.82792,0.793019688,66226.00293 58 | 19.82792,0.748924486,69553.08962 59 | 19.82792,0.711361414,72508.03551 60 | 19.82792,0.673252644,75826.08567 61 | 21.2442,0.975374121,56048.40366 62 | 21.2442,0.963942032,56910.98169 63 | 21.2442,0.928013101,59501.18029 64 | 21.2442,0.90133839,61473.60873 65 | 21.2442,0.874118473,63688.38051 66 | 21.2442,0.843633229,65908.08131 67 | 21.2442,0.81641479,67760.57032 68 | 21.2442,0.796273194,69119.3361 69 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT9D-3_Thrust_SL_TO_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 0,-0.000961375,191686.7454 3 | 0,0.043142199,186306.723 4 | 0,0.096497531,180912.735 5 | 0,0.152029255,175636.222 6 | 0,0.205926345,170845.2171 7 | 0,0.261454622,166414.0306 8 | 0,0.31317138,162471.6382 9 | 0,0.369241907,158522.6738 10 | 0,0.423677801,155059.2177 11 | 0,0.479745866,151714.0579 12 | 0,0.53690188,148488.0161 13 | 0,0.603310144,145127.2477 14 | 0,0.665363163,142135.3342 15 | 0,0.84988463,134369.6674 16 | 0,0.791643621,136752.0258 17 | 0,0.72959208,139381.6565 18 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/JT9D-3_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 0,-0.000779147,147005.2033 0,0.047691493,138358.064 0,0.096158686,130556.251 0,0.14788825,123474.0746 0,0.195804327,117363.7362 0,0.250251548,111122.7787 0,0.3046968,105364.865 0,0.360229016,99967.59102 0,0.423926025,94195.71174 0,0.476732211,90010.15452 0,0.532259502,85820.4898 0,0.797362129,68996.93217 0,0.743471933,72097.28407 0,0.695024933,74947.89909 0,0.590507899,81626.71756 0,0.636778507,78658.62763 4572,0.395695482,77331.90046 4572,0.447408301,74355.5955 4572,0.499662878,71982.27366 4572,0.549739094,69974.52061 4572,0.601446988,68205.82489 4572,0.653699595,66315.54675 4572,0.703774333,64670.07646 4572,0.753848086,63266.12803 4572,0.80990827,61853.14306 4572,0.860526737,60327.6122 4572,0.905157295,59173.40064 4572,0.948698918,58141.59302 4572,0.993874189,56865.79903 7620,0.605296921,58297.67856 7620,0.651560634,57020.24158 7620,0.701089181,55858.63649 7620,0.748439859,54941.83927 7620,0.801232747,54016.82702 7620,0.85130453,53095.92228 7620,0.901919549,52415.71789 7620,0.946548629,51623.78911 7620,0.992809387,51070.91767 10668,0.602641811,42119.8222 10668,0.660329734,41911.98197 10668,0.719106098,41702.49874 10668,0.999921199,42003.16879 10668,0.947675979,42082.03307 10668,0.883459374,41816.68764 10668,0.826316658,41782.18452 10668,0.771895539,41622.81296 13716,0.605970671,26536.73394 13716,0.999443466,25701.2655 13716,0.942299765,25908.28423 13716,0.883523893,25997.00654 13716,0.826380684,26083.26434 13716,0.76651637,26173.62966 13716,0.71427115,26252.49394 13716,0.657672162,26337.93024 2 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TF30_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 53040.21649714472,-38980.26785622635,39579.66867380147,7993.083753889554,-118430.37392602584,177440.3826183967,-112254.34754042722,26252.02520047006 2 | 0,1.188096176,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TF30_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | TSFC (g/(kNs)),Mach Number,Thrust (N) 2 | 18.41164,0.043096811,30952.05345 3 | 18.41164,0.047830543,33221.8478 4 | 18.41164,0.054888887,35779.29533 5 | 18.41164,0.063131931,38929.60876 6 | 18.41164,0.067852564,40936.75747 7 | 18.41164,0.076074904,43671.92135 8 | 18.41164,0.083133248,46229.36887 9 | 18.41164,0.087792613,47008.01378 10 | 18.41164,0.090740283,48502.59758 11 | 18.41164,0.09565939,49703.6878 12 | 18.41164,0.042556364,29982.30027 13 | 19.82792,0.18278679,29325.9704 14 | 19.82792,0.186318328,30652.13982 15 | 19.82792,0.191072662,33335.02614 16 | 19.82792,0.193495998,35602.2044 17 | 19.82792,0.194774081,38067.47955 18 | 19.82792,0.198311422,39510.00382 19 | 19.82792,0.203045436,41785.44646 20 | 19.82792,0.206614101,43856.06095 21 | 19.82792,0.208994292,45258.1224 22 | 19.82792,0.211582748,46477.19541 23 | 19.82792,0.181650712,28211.30844 24 | 21.2442,0.317975436,30089.93498 25 | 21.2442,0.317885012,28276.83282 26 | 21.2442,0.320554419,35477.99703 27 | 21.2442,0.320458079,33546.28071 28 | 21.2442,0.319214222,31767.27321 29 | 21.2442,0.322277543,39146.29036 30 | 21.2442,0.321807149,37434.92578 31 | 21.2442,0.324663762,40669.22528 32 | 21.2442,0.325539986,42797.36561 33 | 21.2442,0.32635798,43980.71195 34 | 21.2442,0.318413712,27196.59987 35 | 22.66048,0.452710591,39775.53824 36 | 22.66048,0.449835376,41841.67204 37 | 22.66048,0.458171199,38605.36259 38 | 22.66048,0.461083881,27522.79641 39 | 22.66048,0.462117312,25082.5288 40 | 22.66048,0.463862304,36909.85014 41 | 22.66048,0.46368878,33430.50145 42 | 22.66048,0.463582581,31301.09486 43 | 22.66048,0.462332808,29403.4732 44 | 22.66048,0.468381948,34886.94156 45 | 22.66048,0.473543677,22576.87387 46 | 22.66048,0.494197079,19789.98928 47 | 22.66048,0.503397496,18974.99591 48 | 22.66048,0.522953453,17344.80427 49 | 22.66048,0.548949801,15807.87828 50 | 22.66048,0.570170028,14460.01034 51 | 22.66048,0.582844052,13809.61487 52 | 24.07676,0.576017794,39067.39271 53 | 24.07676,0.588634986,37277.45407 54 | 24.07676,0.60123908,35224.86978 55 | 24.07676,0.611534619,33206.58504 56 | 24.07676,0.618364789,31188.91497 57 | 24.07676,0.62290387,29555.73863 58 | 24.07676,0.629149472,27397.66972 59 | 24.07676,0.632835768,24878.39134 60 | 24.07676,0.636501534,24263.65323 61 | 24.07676,0.643324522,22101.95169 62 | 24.07676,0.651321646,20321.30505 63 | 24.07676,0.659292911,18022.14508 64 | 24.07676,0.670110819,9632.848461 65 | 24.07676,0.68002152,16743.23378 66 | 24.07676,0.691317579,11624.79938 67 | 24.07676,0.698346659,13595.46992 68 | 24.07676,0.699574979,15062.96397 69 | 24.07676,0.68457367,10853.66369 70 | 24.07676,0.571682242,39906.61588 71 | 25.49304,0.708775347,37408.64925 72 | 25.49304,0.731762868,35100.04774 73 | 25.49304,0.747841795,33236.63143 74 | 25.49304,0.755886075,32401.50909 75 | 25.49304,0.773102885,30192.21235 76 | 25.49304,0.788021618,28227.33165 77 | 25.49304,0.802936295,26181.11553 78 | 25.49304,0.820108358,23074.58739 79 | 25.49304,0.828112032,21425.26357 80 | 25.49304,0.838034887,11934.28676 81 | 25.49304,0.843042005,19685.74978 82 | 25.49304,0.84986964,17617.24507 83 | 25.49304,0.847314742,12712.1121 84 | 25.49304,0.854363438,15076.10558 85 | 25.49304,0.830185721,11117.44079 86 | 25.49304,0.699924313,38254.83912 87 | 26.90932,0.826527715,35981.32525 88 | 26.90932,0.858804049,34630.16482 89 | 26.90932,0.88991326,33038.59197 90 | 26.90932,0.935999643,30653.87689 91 | 26.90932,0.971710457,28682.76641 92 | 26.90932,0.991294048,27606.67235 93 | 26.90932,0.806631078,36936.30821 94 | 26.90932,0.998137206,27171.60257 95 | 28.3256,0.947050856,34523.00874 96 | 28.3256,0.970797198,33532.59595 97 | 28.3256,0.999618474,32388.77772 98 | 28.3256,1.048415735,30316.21759 99 | 28.3256,1.071080414,29254.82755 100 | 28.3256,1.09182331,28262.40575 101 | 28.3256,1.106803777,27535.34854 102 | 28.3256,1.119538888,26911.14441 103 | 28.3256,0.92353447,35547.1874 104 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TF30_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 0,0.010080432,52688.79076 0,0.03719585,51601.38928 0,0.062564758,50718.82879 0,0.083324962,50073.43593 0,0.117925829,49008.34421 0,0.14330165,48264.42365 0,0.168680468,47580.58039 0,0.191754214,47000.87012 0,0.228670788,46044.88682 0,0.254054446,45458.09151 0,0.279439948,44908.26684 0,0.303673784,44427.96703 0,0.346373449,43620.89579 0,0.371762639,43145.01242 0,0.397154594,42724.58503 0,0.42254701,42313.40029 0,0.44793862,41886.04089 0,0.473331381,41481.78815 0,0.498723797,41070.60341 0,0.524114831,40631.69069 0,0.549509091,40257.4766 0,0.574904733,39910.9905 0,0.600300146,39559.88306 0,0.625695789,39213.39696 0,0.651092353,38885.39617 0,0.676488457,38548.15273 0,0.706043279,38215.71728 0,0.727281126,37882.90851 0,0.752679534,37591.87837 0,0.774613958,37329.1909 0,0.805776225,36801.44843 0,0.832973514,36550.66459 0,0.856580417,36367.27075 0,0.881978134,36062.37663 0,0.904200734,35787.50694 0,0.9535531,35194.72712 0,0.978950126,34875.969 0,1.004347151,34557.21088 0,1.027768445,34328.58986 0,1.055143968,33975.15062 0,1.080539381,33624.04318 0,1.105935254,33282.17841 0,1.131328822,32894.10032 0,1.156724696,32552.23555 0,1.188096176,32092.85259 3048,0.016822578,42149.12071 3048,0.050521922,40863.57889 3048,0.08742961,39729.41761 3048,0.11280958,39068.68101 3048,0.138193008,38477.26436 3048,0.163581967,37996.75966 3048,0.18204821,37678.30663 3048,0.214367721,37192.87551 3048,0.239768204,36943.43736 3048,0.265165921,36638.54323 3048,0.290566634,36393.7264 3048,0.309037672,36171.39705 3048,0.341364604,35834.77279 3048,0.366764395,35571.47064 3048,0.392167413,35372.86713 3048,0.417569279,35151.15696 3048,0.442973219,34971.03876 3048,0.484542192,34654.03349 3048,0.509947745,34506.26462 3048,0.535354451,34381.60239 3048,0.560762079,34275.4255 3048,0.586168784,34150.76327 3048,0.615428549,34078.56339 3048,0.636985423,33966.13746 3048,0.662392359,33846.09657 3048,0.687799986,33739.91968 3048,0.713206923,33619.87879 3048,0.731683768,33514.00697 3048,0.764020565,33375.17567 3048,0.789427962,33264.37744 3048,0.814834207,33130.47256 3048,0.84023999,32987.32502 3048,0.865644391,32816.44949 3048,0.8852746,32675.09662 3048,0.92337932,32381.04246 3048,0.948779572,32126.98297 3048,0.974179363,31863.68082 3048,0.998424309,31606.12916 3048,1.052684143,30976.31664 3048,1.078079555,30625.20921 3048,1.103473815,30250.99512 3048,1.128864848,29812.08239 3048,1.154254729,29350.06302 3048,1.179642305,28841.83033 3048,1.203398977,28311.39657 6096,0.012567068,30450.23523 6096,0.036507172,30072.08075 6096,0.063824485,29654.39275 6096,0.089220358,29312.52797 6096,0.114616692,28979.90586 6096,0.140014179,28670.3904 6096,0.164258433,28398.97475 6096,0.197739197,28036.26615 6096,0.223141062,27814.55598 6096,0.248542928,27592.84581 6096,0.273947559,27426.59161 6096,0.298198405,27287.34602 6096,0.340925774,27035.75875 6096,0.366333632,26934.20319 6096,0.391742642,26855.75427 6096,0.417151653,26777.30536 6096,0.441408007,26748.50958 6096,0.474902945,26670.01283 6096,0.500314952,26651.64121 6096,0.52572765,26647.1336 6096,0.551139657,26628.76199 6096,0.576553046,26638.11836 6096,0.601965744,26633.61074 6096,0.623220001,26629.84073 6096,0.652791371,26629.21684 6096,0.678207066,26684.78652 6096,0.703621147,26708.00689 6096,0.729035689,26740.46992 6096,0.754450461,26777.55428 6096,0.779866386,26837.74529 6096,0.816835842,26942.1007 6096,0.842251306,26993.04905 6096,0.867666078,27030.13341 6096,0.893082003,27090.32443 6096,0.91849885,27169.00076 6096,0.94391247,27182.97847 6096,0.969325168,27178.47085 6096,0.994738527,27187.21105 6096,1.020150795,27174.07695 6096,1.045562571,27151.08401 6096,1.070969508,27031.04312 6096,1.096378749,26957.21553 6096,1.125945601,26866.01355 6096,1.147194926,26763.34706 6096,1.172604397,26694.14081 6096,1.186462873,26631.60481 9144,0.407222073,17687.90438 9144,0.442128978,18043.10367 9144,0.467553661,18278.90526 9144,0.489510672,18469.10821 9144,0.523023518,18749.68887 9144,0.548446818,18957.76247 9144,0.573870349,19170.45741 9144,0.599292957,19364.66702 9144,0.624716949,19586.60461 9144,0.648213009,19754.19795 9144,0.675561014,19951.91718 9144,0.700983623,20146.12679 9144,0.726403696,20289.50176 9144,0.751824692,20451.36206 9144,0.777246609,20631.70767 9144,0.80266576,20756.59732 9144,0.819998074,20863.28055 9144,0.855817766,21075.2868 9144,0.881237839,21218.66177 9144,0.906657682,21357.41541 9144,0.932075912,21463.81973 9144,0.957495525,21597.95204 9144,0.982914676,21722.84169 9144,1.00024601,21809.88426 10668,0.411136374,14223.76895 10668,0.444255302,14354.87182 10668,0.469675837,14507.48946 10668,0.495094988,14632.3791 10668,0.520515984,14794.2394 10668,0.541316982,14966.82211 10668,0.580606331,15264.20344 10668,0.606030322,15486.14104 10668,0.631454314,15708.07863 10668,0.656878305,15930.01623 10668,0.676526031,16139.88451 10668,0.712351389,16465.49847 10668,0.737776072,16701.30006 10668,0.763201446,16950.96565 10668,0.788625899,17182.1459 10668,0.814051273,17431.81148 10668,0.834853589,17630.8018 10668,0.874146921,18008.06614 10668,0.899568378,18179.1691 10668,0.924990065,18354.89338 10668,0.950409447,18484.40436 10668,0.975828598,18609.29401 10668,1.010161358,18738.33303 10999.9272,0.406409309,13266.6896 10999.9272,0.441902879,13509.57805 10999.9272,0.467323644,13666.81702 10999.9272,0.492745562,13847.16263 10999.9272,0.518168631,14050.61491 10999.9272,0.54359147,14249.44585 10999.9272,0.569011032,14382.55119 10999.9272,0.594438993,14684.07838 10999.9272,0.619862523,14896.77331 10999.9272,0.645286976,15127.95357 10999.9272,0.670710737,15345.26984 10999.9272,0.700295613,15615.45593 10999.9272,0.721559181,15798.38769 10999.9272,0.746984095,16038.81061 10999.9272,0.77241016,16302.34018 10999.9272,0.797835996,16561.24843 10999.9272,0.823260448,16792.42869 10999.9272,0.844833263,16999.64482 10999.9272,0.874109584,17259.41053 10999.9272,0.899534728,17504.45478 10999.9272,0.924955493,17661.69375 10999.9272,0.950374414,17781.96206 10999.9272,0.975794026,17916.09437 10999.9272,1.010686513,17982.18345 12192,0.611954237,11888.73907 12192,0.647454786,12271.56129 12192,0.672880391,12525.8482 12192,0.702351287,12826.78664 12192,0.72373137,13029.8007 12192,0.749155362,13251.73829 12192,0.774579584,13478.29722 12192,0.800003114,13690.99215 12192,0.825427797,13926.79374 12192,0.852776302,14134.52586 12192,0.876273015,14315.21297 12192,0.901696546,14527.9079 12192,0.927118463,14708.25352 12192,0.952539689,14874.73514 12192,0.977961375,15050.45943 12192,0.994138701,15160.04333 13716,0.602579809,9214.627608 13716,0.629785028,9525.349178 13716,0.656571447,9777.176267 13716,0.6912402,10073.26456 13716,0.71666373,10285.95949 13716,0.742087261,10498.65443 13716,0.767508487,10665.13605 13716,0.792930865,10854.72433 13716,0.813731436,11018.72457 13716,0.850704975,11204.94355 13716,0.876126661,11380.66784 13716,0.901546965,11528.66414 13716,0.926967039,11672.03911 13716,0.952386651,11806.17142 13716,0.984944424,11971.57198 2 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TFE731-2_Sea_level_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 12996.010495445247,-13162.71259157205,3742.2751145247194,1513.0480300265694,154831.57876099987,-612291.9392106003,896917.2795427477,-470871.29446639726 2 | 0,0.598858428,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TFE731-2_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 0,0.016378458,12782.9652 3 | 0,0.038937141,12483.56918 4 | 0,0.062687862,12187.53969 5 | 0,0.086440238,11898.18689 6 | 0,0.111380828,11596.77006 7 | 0,0.136323403,11303.36526 8 | 0,0.161270129,11026.71287 9 | 0,0.187409281,10754.99166 10 | 0,0.21355114,10494.19594 11 | 0,0.23969721,10250.39542 12 | 0,0.265847191,10022.37617 13 | 0,0.29200018,9806.496351 14 | 0,0.318157381,9607.611738 15 | 0,0.344315182,9411.155012 16 | 0,0.370473586,9217.126172 17 | 0,0.3966359,9038.878596 18 | 0,0.422801222,8872.770453 19 | 0,0.44896895,8716.373856 20 | 0,0.475136679,8559.977259 21 | 0,0.501306814,8413.292209 22 | 0,0.52747755,8269.035046 23 | 0,0.553650092,8132.061542 24 | 0,0.579822332,7993.874095 25 | 0,0.598858428,7900.392934 26 | 0,0.000218776,12993.92928 27 | 3048,0.023069557,10942.21628 28 | 3048,0.049208709,10670.49507 29 | 3048,0.075351771,10414.55512 30 | 3048,0.101500549,10181.6801 31 | 3048,0.127652034,9959.730562 32 | 3048,0.153806226,9748.706516 33 | 3048,0.17996493,9555.89162 34 | 3048,0.206124838,9367.932497 35 | 3048,0.232287152,9189.684921 36 | 3048,0.258451872,9021.148891 37 | 3048,0.284619601,8864.752294 38 | 3048,0.310789736,8718.067244 39 | 3048,0.336958968,8567.740364 40 | 3048,0.36313181,8431.980804 41 | 3048,0.389304652,8296.221244 42 | 3048,0.415477495,8160.461684 43 | 3048,0.441652142,8031.985783 44 | 3048,0.467826488,7902.29594 45 | 3048,0.494001736,7776.247926 46 | 3048,0.520177286,7651.413856 47 | 3048,0.546353738,7530.221615 48 | 3048,0.572531393,7413.885148 49 | 3048,0.598708747,7296.334738 50 | 3048,0.624887304,7183.640101 51 | 3048,0.651067366,7077.01518 52 | 3048,0.667727214,7008.390449 53 | 3048,-0.000220051,11222.98326 54 | 6096,0.249793919,7440.824577 55 | 6096,0.284224642,7270.844716 56 | 6096,0.310402297,7154.508249 57 | 6096,0.336582058,7046.669385 58 | 6096,0.362763323,6944.900238 59 | 6096,0.388946392,6850.41475 60 | 6096,0.415130665,6760.785036 61 | 6096,0.441316141,6676.011095 62 | 6096,0.46750282,6596.092928 63 | 6096,0.493691004,6522.244477 64 | 6096,0.519879187,6448.396026 65 | 6096,0.54606737,6374.547575 66 | 6096,0.572257057,6306.768841 67 | 6096,0.598447346,6241.417993 68 | 6096,0.624638839,6180.922919 69 | 6096,0.650829729,6117.999958 70 | 6096,0.677021522,6058.718827 71 | 6096,0.703214518,6004.293469 72 | 6096,0.729405108,5940.156565 73 | 6096,0.755598104,5885.731207 74 | 6096,0.782267637,5831.53024 75 | 6096,0.807984999,5780.522321 76 | 6096,0.822274494,5760.547309 77 | 9144,0.30081895,5546.298702 78 | 9144,0.33617988,5423.627167 79 | 9144,0.362368966,5353.420546 80 | 9144,0.388557149,5279.572095 81 | 9144,0.414747438,5214.221247 82 | 9144,0.44093893,5153.726173 83 | 9144,0.467131626,5098.086872 84 | 9144,0.49332763,5055.800947 85 | 9144,0.519525138,5019.584739 86 | 9144,0.545722646,4983.368531 87 | 9144,0.571921659,4953.22204 88 | 9144,0.598121573,4926.717378 89 | 9144,0.624321488,4900.212717 90 | 9144,0.650522305,4877.349885 91 | 9144,0.676724025,4858.128884 92 | 9144,0.702925444,4837.693939 93 | 9144,0.729128968,4825.756597 94 | 9144,0.755330086,4804.107709 95 | 9144,0.781534513,4795.812198 96 | 9144,0.807737435,4781.446969 97 | 9144,0.833941261,4770.723571 98 | 9144,0.860145387,4761.214116 99 | 9144,0.886347708,4744.421001 100 | 9144,0.912553639,4742.195206 101 | 9144,0.929230332,4741.551301 102 | 12192,0.348904598,3605.216017 103 | 12192,0.383366438,3560.812327 104 | 12192,0.409566353,3534.307666 105 | 12192,0.435765967,3506.589061 106 | 12192,0.461966784,3483.72623 107 | 12192,0.488171211,3475.430718 108 | 12192,0.514371126,3448.926057 109 | 12192,0.540576756,3445.486318 110 | 12192,0.566777573,3422.623487 111 | 12192,0.592981699,3413.114032 112 | 12192,0.619183418,3393.89303 113 | 12192,0.645389048,3390.453292 114 | 12192,0.67159528,3389.44144 115 | 12192,0.697799105,3378.718042 116 | 12192,0.724004134,3372.850417 117 | 12192,0.750207658,3360.913075 118 | 12192,0.77641389,3359.901224 119 | 12192,0.802621024,3362.531202 120 | 12192,0.828826654,3359.091464 121 | 12192,0.855032585,3356.865669 122 | 12192,0.881242125,3369.207193 123 | 12192,0.907447755,3365.767455 124 | 12192,0.933653686,3363.54166 125 | 12192,0.949139031,3362.314455 126 | 15240,0.437226926,2103.200748 127 | 15240,0.47353278,2087.23148 128 | 15240,0.499732996,2061.940762 129 | 15240,0.525938927,2059.714967 130 | 15240,0.55214215,2046.563682 131 | 15240,0.578344772,2030.98451 132 | 15240,0.604551004,2029.972658 133 | 15240,0.630756935,2027.746863 134 | 15240,0.656963467,2027.948955 135 | 15240,0.683169398,2025.72316 136 | 15240,0.709375931,2025.925251 137 | 15240,0.735582162,2024.9134 138 | 15240,0.761788394,2023.901548 139 | 15240,0.787994626,2022.889696 140 | 15240,0.814201158,2023.091788 141 | 15240,0.840409796,2031.791483 142 | 15240,0.866619637,2045.346951 143 | 15240,0.89282617,2045.549042 144 | 15240,0.919032402,2044.537191 145 | 15240,0.945238633,2043.525339 146 | 15240,0.977328762,2042.286304 147 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TFE731-5_Sea_level_take_off_thrust_polynomial.csv: -------------------------------------------------------------------------------- 1 | 19260.010001221915,-20368.437290926868,17777.923912976803,-80788.63668878577,374236.0274389862,-709900.3520808402,540671.4401397856,-113064.28071855425 2 | -0.001442636,0.599376265,,,,,, 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TFE731-5_TSFC_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N),TSFC (g/(kNs)) 2 | 6096,0.242474328,9633.574336,17.31506501 3 | 6096,0.283869565,9336.618191,18.02885542 4 | 6096,0.323513668,9097.792665,18.66549244 5 | 6096,0.352585993,8941.997842,19.13411899 6 | 6096,0.381658332,8816.931788,19.53278737 7 | 6096,0.423945337,8658.35126,20.12182074 8 | 6096,0.45301765,8539.658983,20.56670372 9 | 6096,0.482089948,8432.142423,21.01529346 10 | 6096,0.521733992,8314.359552,21.56895619 11 | 6096,0.55080629,8229.596844,21.98204502 12 | 6096,0.579878567,8166.090346,22.37292584 13 | 6096,0.619522584,8078.150884,22.91567546 14 | 6096,0.645055387,8039.788535,23.22078944 15 | 6096,0.689119781,7965.138819,23.8793083 16 | 6096,0.722596935,7930.546981,24.26245098 17 | 6096,0.751669165,7891.182987,24.676144 18 | 6096,0.780741389,7854.507661,25.0935671 19 | 6096,0.830583508,7832.278409,25.73412048 20 | 9144,0.290214458,6938.456868,17.80498232 21 | 9144,0.331446665,6759.023686,18.48736892 22 | 9144,0.360519005,6678.109844,18.87937914 23 | 9144,0.385626954,6618.160994,19.1647372 24 | 9144,0.426592525,6535.705611,19.64518844 25 | 9144,0.455664855,6439.729842,20.12715673 26 | 9144,0.482094242,6393.880051,20.45266363 27 | 9144,0.518857204,6316.410773,20.96692754 28 | 9144,0.553453563,6267.579751,21.40316362 29 | 9144,0.582525864,6224.045255,21.80017133 30 | 9144,0.611598156,6192.050043,22.17694465 31 | 9144,0.640670463,6181.103315,22.45485557 32 | 9144,0.669742746,6160.68,22.81039767 33 | 9144,0.698059882,6144.081061,23.18658678 34 | 9144,0.727887277,6146.919771,23.48757498 35 | 9144,0.75695953,6144.222008,23.83197608 36 | 9144,0.784710308,6134.800799,24.20504037 37 | 9144,0.823032795,6118.029959,24.76378655 38 | 9144,0.852105016,6139.173993,25.07036433 39 | 9144,0.881177217,6143.240482,25.4793341 40 | 9144,0.920821159,6184.284736,25.83223194 41 | 9144,0.961523226,6224.062419,26.41126665 42 | 12192,0.389595258,4369.765919,19.42487727 43 | 12192,0.431882344,4314.237057,19.93523848 44 | 12192,0.460954695,4281.53822,20.31956031 45 | 12192,0.483419698,4268.132611,20.55313394 46 | 12192,0.521742356,4261.240176,20.86077094 47 | 12192,0.550814684,4259.285407,21.16390982 48 | 12192,0.577244093,4257.513528,21.38785328 49 | 12192,0.619531108,4254.662584,21.84519571 50 | 12192,0.650585623,4252.546439,22.21285242 51 | 12192,0.677675755,4250.666155,22.47670545 52 | 12192,0.722605679,4255.961834,22.99532979 53 | 12192,0.751677983,4253.953346,23.36047492 54 | 12192,0.780750275,4259.894937,23.71182158 55 | 12192,0.825680149,4265.800444,24.35222492 56 | 12192,0.854752423,4278.511356,24.70714272 57 | 12192,0.870610052,4294.919529,24.78106052 58 | 12192,0.923468643,4345.107468,25.48269363 59 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TFE731-5_Thrust_SL_TO_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 0,-0.001442636,19286.02739 3 | 0,0.037971976,18522.68639 4 | 0,0.062246223,18039.82057 5 | 0,0.088819773,17546.39517 6 | 0,0.122723694,16939.67674 7 | 0,0.151862951,16443.47767 8 | 0,0.178356072,16016.03532 9 | 0,0.228695312,15222.813 10 | 0,0.257843519,14799.92182 11 | 0,0.279043212,14500.5338 12 | 0,0.318800214,14001.25649 13 | 0,0.347961411,13684.77998 14 | 0,0.381499824,13330.1001 15 | 0,0.422193246,12906.50574 16 | 0,0.45135935,12630.23033 17 | 0,0.47654925,12399.74429 18 | 0,0.518795617,12020.15884 19 | 0,0.548718894,11773.79395 20 | 0,0.599376265,11351.62316 21 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/TFE731-5_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Mach Number,Thrust (N) 2 | 6096,0.237197832,9673.770209 3 | 6096,0.27709103,9381.36795 4 | 6096,0.314440487,9150.714776 5 | 6096,0.344373337,8982.774039 6 | 6096,0.382166541,8814.95215 7 | 6096,0.426982259,8646.4092 8 | 6096,0.456167513,8526.996888 9 | 6096,0.484027726,8425.803667 10 | 6096,0.522504528,8312.073122 11 | 6096,0.551694015,8227.34411 12 | 6096,0.580886101,8163.898032 13 | 6096,0.620693333,8076.090778 14 | 6096,0.649887728,8031.562863 15 | 6096,0.679080679,7975.211096 16 | 6096,0.712701227,7946.545166 17 | 6096,0.737471779,7905.07343 18 | 6096,0.766668194,7877.098909 19 | 6096,0.79055448,7840.359865 20 | 6096,0.825062469,7832.973718 21 | 6096,0.84098923,7829.53874 22 | 9144,0.282421198,6979.841343 23 | 9144,0.323228478,6785.985162 24 | 9144,0.352417966,6701.25615 25 | 9144,0.380281527,6627.494266 26 | 9144,0.418764218,6562.005038 27 | 9144,0.447951342,6457.914803 28 | 9144,0.477144636,6404.370866 29 | 9144,0.510127351,6328.170476 30 | 9144,0.535531406,6298.761643 31 | 9144,0.564724934,6247.139418 32 | 9144,0.589496785,6216.309148 33 | 9144,0.6231169,6184.096063 34 | 9144,0.652315914,6177.404475 35 | 9144,0.681512329,6149.429954 36 | 9144,0.721329954,6146.754435 37 | 9144,0.750529545,6144.792388 38 | 9144,0.779728559,6138.100801 39 | 9144,0.819543873,6116.507119 40 | 9144,0.848746351,6138.192776 41 | 9144,0.87794652,6140.96027 42 | 9144,0.910943132,6178.606685 43 | 9144,0.936352342,6191.425896 44 | 9144,0.965199903,6230.083063 45 | 12192,0.358686323,4376.246548 46 | 12192,0.392614654,4367.463585 47 | 12192,0.426454366,4322.032333 48 | 12192,0.454745702,4287.052829 49 | 12192,0.479538588,4269.774164 50 | 12192,0.522010025,4261.221369 51 | 12192,0.551209616,4259.259322 52 | 12192,0.579081953,4257.386459 53 | 12192,0.620226831,4254.621757 54 | 12192,0.649426423,4252.65971 55 | 12192,0.678626014,4250.697663 56 | 12192,0.723753667,4255.956391 57 | 12192,0.752953258,4253.994344 58 | 12192,0.782153858,4260.294708 59 | 12192,0.815778617,4266.127911 60 | 12192,0.840554483,4268.194467 61 | 12192,0.869757468,4294.03137 62 | 12192,0.890996203,4314.465656 63 | 12192,0.922511827,4344.00681 64 | 12192,0.963958771,4404.105647 65 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Jet_CSVs/_jet_metadata.csv: -------------------------------------------------------------------------------- 1 | ATF3-6A, Take-off/cruise Thrust," Oates, GC., ""Aerothermodynamics of Gas Turbine and Rocket Propulsion"", 3rd Edition, AIAA, Fig 5.11 , 5.12, pp.129, https://app.knovel.com/hotlink/toc/id:kpAGTRPE01/aerothermodynamics-gas/aerothermodynamics-gas" 2 | F404-400, installed performance of engine," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D7, https://doi.org/10.1002/9780470117859.app4" 3 | FJ-44,," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D5, https://doi.org/10.1002/9780470117859.app4" 4 | JT8D-9,," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D8, https://doi.org/10.1002/9780470117859.app4" 5 | JT9D-3,," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D9, https://doi.org/10.1002/9780470117859.app4" 6 | TF30,," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D4, https://doi.org/10.1002/9780470117859.app4" 7 | TFE731-2,," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D6, https://doi.org/10.1002/9780470117859.app4" 8 | TFE731-5,Only Maximum Cruise data available," Oates, GC., ""Aerothermodynamics of Gas Turbine and Rocket Propulsion"", 3rd Edition, AIAA, Fig 5.8, 5.9, pp.127, https://app.knovel.com/hotlink/toc/id:kpAGTRPE01/aerothermodynamics-gas/aerothermodynamics-gas" 9 | J52,," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D10, https://doi.org/10.1002/9780470117859.app4" 10 | J60, Data is given compared to the TAS and that the engine is operating in conditions that match the ISA standard atmosphere. This has been converted to Mach number for the TSFC and the thrust data.," Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D1, https://doi.org/10.1002/9780470117859.app4" 11 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Piston_CSVs/IO-540_BSFC_best_power_data.csv: -------------------------------------------------------------------------------- 1 | Speed (RPM),Power (W),BSFC (g/(kWh)) 2 | 2700,97579.37143,462.5324743 3 | 2700,103400.7503,448.0981233 4 | 2700,107572.9254,439.191526 5 | 2700,111546.4967,431.4841042 6 | 2700,115520.1544,424.4892242 7 | 2700,119493.812,417.9595608 8 | 2700,123268.886,412.3424218 9 | 2700,127043.9119,406.9670015 10 | 2700,131017.6905,401.768164 11 | 2700,134792.8508,397.240981 12 | 2700,138568.0322,392.9976339 13 | 2700,142343.3365,389.1898285 14 | 2700,145919.9399,385.7631729 15 | 2700,149297.9375,382.8317922 16 | 2700,152676.0023,380.1374367 17 | 2700,156252.8361,377.5040895 18 | 2700,159829.6507,374.9593174 19 | 2700,163207.6915,372.5659184 20 | 2700,166586.0394,370.719203 21 | 2700,169964.2458,368.7427741 22 | 2700,173143.8655,367.138143 23 | 2700,176323.5716,365.7108575 24 | 2700,179503.2562,364.3047982 25 | 2700,182881.3809,362.4776641 26 | 2700,186259.832,361.1440812 27 | 2700,189439.4734,359.8328208 28 | 2700,192619.0715,358.5101667 29 | 2700,195798.6697,357.2304701 30 | 2700,198779.7508,356.3229514 31 | 2700,201760.8103,355.4161467 32 | 2700,204940.5596,354.4214283 33 | 2700,208120.3089,353.4571053 34 | 2700,211300.0582,352.5218056 35 | 2700,214479.6564,351.4423451 36 | 2700,217348.0215,350.4256005 37 | 2600,98443.83427,447.5431414 38 | 2600,104587.4669,433.0481976 39 | 2600,108759.441,424.3654524 40 | 2600,112733.116,417.4859268 41 | 2600,116706.7391,410.9665924 42 | 2600,120680.5004,405.155831 43 | 2600,124654.2444,399.6817493 44 | 2600,128429.3644,394.9150454 45 | 2600,132204.5343,390.5126253 46 | 2600,135979.7541,386.4441535 47 | 2600,139556.2616,382.7639043 48 | 2600,143132.7882,379.3002786 49 | 2600,146709.4109,376.1650652 50 | 2600,150286.0527,373.2102286 51 | 2600,153664.1031,370.7218658 52 | 2600,157042.3071,368.5790268 53 | 2600,160619.1216,366.2455142 54 | 2600,163997.1816,364.0716707 55 | 2600,167375.376,362.1813607 56 | 2600,170952.4401,360.4787505 57 | 2600,173535.7601,359.1308794 58 | 2600,185062.0787,354.5470378 59 | 2600,188241.7417,353.3668451 60 | 2600,191421.4478,352.2808884 61 | 2600,194601.2403,351.3386784 62 | 2600,197780.9464,350.3202465 63 | 2600,200960.8037,349.5175012 64 | 2600,203941.9157,348.7825894 65 | 2600,206923.1387,348.1997558 66 | 2600,210102.8664,347.3136247 67 | 2600,213530.0884,346.3447887 68 | 2400,98358.48175,421.9206712 69 | 2400,103981.5399,411.060098 70 | 2400,108153.7103,403.6194985 71 | 2400,112326.0016,396.9941651 72 | 2400,116299.7457,391.4057165 73 | 2400,120273.4206,386.0464353 74 | 2400,124048.6635,381.7678578 75 | 2400,127625.1709,377.8746052 76 | 2400,131201.7935,374.4076844 77 | 2400,134778.2818,370.8816381 78 | 2400,138355.154,368.2145956 79 | 2400,141931.7958,365.2861838 80 | 2400,145707.1999,362.4513642 81 | 2400,149482.435,359.4841443 82 | 2400,152065.6015,357.7165781 83 | 2400,164783.5838,351.088339 84 | 2400,167963.1603,349.7057068 85 | 2400,171142.7585,348.4052239 86 | 2400,174521.0968,347.0967597 87 | 2400,177899.5503,345.9958908 88 | 2400,181079.278,345.0064291 89 | 2400,184259.0273,344.0797019 90 | 2400,187438.7766,343.184417 91 | 2400,190618.5044,342.29137 92 | 2400,193798.2537,341.4548059 93 | 2400,196977.895,340.5115546 94 | 2400,199958.8774,339.7382267 95 | 2400,203026.2,339.0357815 96 | 2200,97629.81527,401.164602 97 | 2200,103575.203,390.6419361 98 | 2200,107548.8434,384.5984532 99 | 2200,111522.4838,378.9856391 100 | 2200,115297.6652,374.4835963 101 | 2200,119072.9292,370.4360766 102 | 2200,122848.2085,366.6678117 103 | 2200,137552.9375,355.7532855 104 | 2200,139738.9308,354.5976959 105 | 2200,151860.9828,348.3532045 106 | 2200,155239.2828,346.8230365 107 | 2200,158418.8161,345.3762184 108 | 2200,161598.5223,344.2470772 109 | 2200,164778.3148,343.2893699 110 | 2200,167958.172,342.4620022 111 | 2200,171138.0293,341.6653806 112 | 2200,173845.5536,341.1771532 113 | 2000,141520.447,341.5743367 114 | 2000,145468.8402,339.9992003 115 | 2000,126974.0145,348.8302578 116 | 2000,118106.499,355.7709452 117 | 2000,113592.0025,359.4525239 118 | 2000,108594.1955,364.7513168 119 | 2000,102951.1801,370.5702282 120 | 2000,97953.6534,377.7098457 121 | 2000,123265.7833,351.616287 122 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Piston_CSVs/IO-540_BSFC_data.csv: -------------------------------------------------------------------------------- 1 | Speed (RPM),Power (W),BSFC (g/(kWh)) 2 | 2000,97760.07222,323.6745298 3 | 2000,102749.3307,317.99159 4 | 2000,121226.9416,304.5020268 5 | 2000,125200.6319,302.1417666 6 | 2000,127783.4672,300.5653887 7 | 2000,138711.9889,296.553001 8 | 2000,142487.2375,295.2091082 9 | 2000,144350.4396,294.5260487 10 | 2200,97605.40735,340.1864215 11 | 2200,103748.9929,331.8208373 12 | 2200,107126.3078,327.8819224 13 | 2200,113484.0645,322.0880812 14 | 2200,117656.3793,318.7029855 15 | 2200,126994.6595,312.397812 16 | 2200,130968.2826,309.776798 17 | 2200,134942.0266,307.5287537 18 | 2200,137326.0623,305.8679858 19 | 2200,142492.2129,303.7271205 20 | 2200,151256.9163,300.2836354 21 | 2200,159381.5435,297.6848041 22 | 2200,162759.6947,297.0540611 23 | 2200,166224.2535,296.628931 24 | 2400,97774.89657,360.6576707 25 | 2400,103757.1909,351.0930393 26 | 2400,107134.4561,346.433667 27 | 2400,114882.3274,336.8384894 28 | 2400,119252.9964,332.129059 29 | 2400,123425.162,328.2679022 30 | 2400,132762.8893,320.548229 31 | 2400,136935.2906,317.8405013 32 | 2400,140909.0001,315.4004386 33 | 2400,143293.1048,313.7954985 34 | 2400,161375.1933,307.1396937 35 | 2400,166042.7653,305.347724 36 | 2600,116876.1866,349.6623246 37 | 2600,121048.1748,344.7634534 38 | 2600,125220.2195,340.3011423 39 | 2600,127802.9454,337.7448472 40 | 2600,135353.0452,331.9015458 41 | 2600,139326.7029,328.9420081 42 | 2600,143300.4124,326.2348216 43 | 2600,146280.7636,324.4161816 44 | 2600,154825.0509,320.5579355 45 | 2600,158600.2496,318.7024159 46 | 2600,166945.6193,315.1813564 47 | 2600,98599.28232,378.6938967 48 | 2600,103757.0248,368.9941974 49 | 2600,109559.5551,359.3296924 50 | 2700,98420.49665,389.7327106 51 | 2700,103769.0908,379.0623774 52 | 2700,135357.0531,339.1238983 53 | 2700,138337.1798,336.5271741 54 | 2700,146086.2415,331.4945302 55 | 2700,149464.0599,329.5004762 56 | 2700,157014.5703,325.4974435 57 | 2700,159597.6312,324.2020342 58 | 2700,163174.3498,322.734346 59 | 2700,111175.8701,366.6983188 60 | 2700,122298.1809,351.896861 61 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Piston_CSVs/IO-540_Power_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),Power (W),Speed (RPM) 2 | 807.4387844,137841.3413,2000 3 | 6173.721989,74666.77354,2000 4 | 5468.216744,82974.42241,2000 5 | 4657.157158,92652.11046,2000 6 | 3890.540066,101781.9166,2000 7 | 1440.728392,130355.1811,2000 8 | 2207.336375,121408.8937,2000 9 | 3040.608099,111640.7834,2000 10 | 162.6036014,154227.4913,2100 11 | 951.4738215,144181.4287,2100 12 | 1762.560734,133953.1844,2100 13 | 2529.205153,124272.8221,2100 14 | 3290.293121,114683.8849,2100 15 | 4062.498544,104820.3382,2100 16 | 4745.809869,96236.07414,2100 17 | 6418.009967,74589.72241,2100 18 | 5479.124693,86920.74365,2100 19 | -10.0152742,164494.1775,2200 20 | 634.4191156,156182.8516,2200 21 | 1262.197818,147870.5228,2200 22 | 3578.873295,117087.0109,2200 23 | 2801.088649,127500.7795,2200 24 | 2023.308558,137822.7888,2200 25 | 4201.090992,108957.8666,2200 26 | 4806.648447,100919.4788,2200 27 | 5428.884362,92423.29704,2200 28 | 6056.667618,84019.20891,2200 29 | 6740.015379,74700.86991,2200 30 | -10.32953246,170825.5737,2300 31 | 678.5701243,161507.569,2300 32 | 1434.138077,151275.982,2300 33 | 2056.383101,142596.2815,2300 34 | 2595.285923,135196.1979,2300 35 | 3056.416656,128709.0281,2300 36 | 3567.550889,121490.7919,2300 37 | 4134.226854,113817.1016,2300 38 | 6778.75568,77180.71271,2300 39 | 4806.470823,104498.094,2300 40 | 5517.596281,94814.38897,2300 41 | 6167.623557,85677.56304,2300 42 | -10.6483452,177248.7292,2400 43 | 506.042338,169939.0679,2400 44 | 1067.184625,161898.0059,2400 45 | 1528.315358,155410.8361,2400 46 | 1911.674003,149836.58,2400 47 | 2372.804736,143349.4102,2400 48 | 2978.398626,134576.9475,2400 49 | 3489.537414,127266.9519,2400 50 | 3972.898503,120322.3224,2400 51 | 4484.03729,113012.3268,2400 52 | 4978.515835,105793.0878,2400 53 | 5495.215627,98299.90772,2400 54 | 6023.023766,90715.63687,2400 55 | 6450.838569,84318.22075,2400 56 | 6867.517699,78562.45163,2400 57 | -10.90794985,182479.013,2500 58 | 583.5912575,173522.363,2500 59 | 1216.9674,164292.7749,2500 60 | 1744.784647,156524.9853,2500 61 | 2317.048944,148117.5544,2500 62 | 2961.537988,138705.1161,2500 63 | 3683.812783,128104.486,2500 64 | 4417.205033,117229.2463,2500 65 | 5122.819586,106719.3726,2500 66 | 5756.209392,97214.50642,2500 67 | 6228.475798,90085.68961,2500 68 | 6828.526902,81129.3739,2500 69 | 5.579222782,185875.1124,2575 70 | 505.6278815,178289.1701,2575 71 | 1016.780332,170703.8964,2575 72 | 1677.943281,160925.4235,2575 73 | 2289.098177,151969.7764,2575 74 | 2950.261126,142191.3034,2575 75 | 3628.093426,132138.5552,2575 76 | 4300.364722,122268.9915,2575 77 | 6706.148358,85893.50675,2575 78 | 6122.752943,94850.8253,2575 79 | 5467.137335,104721.3919,2575 80 | 4817.082732,114408.774,2575 81 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Piston_CSVs/Wasp_Major_B13_Power_data.csv: -------------------------------------------------------------------------------- 1 | Speed (RPM),Altitude (m),Power (W) 2 | 1200,6.485369977,704170.1617 3 | 1200,294.5147226,683006.023 4 | 1200,495.8287857,668761.8073 5 | 1200,695.0470634,654517.5917 6 | 1200,893.4776541,640831.7578 7 | 1200,1092.266302,626587.5421 8 | 1200,1292.431801,612157.1992 9 | 1200,1510.171077,596825.1302 10 | 1400,3.554192957,932332.4884 11 | 1400,296.393258,905242.0061 12 | 1400,497.6411146,886158.4809 13 | 1400,696.8049954,866888.8284 14 | 1400,895.1877642,847619.1759 15 | 1400,1093.940851,828163.3962 16 | 1400,1294.081281,808893.7437 17 | 1400,1496.488566,789251.8366 18 | 1400,1701.940775,770912.8206 19 | 1400,1911.073107,751829.2954 20 | 1400,2124.440949,732559.6429 21 | 1400,2342.505757,713476.1177 22 | 1400,2565.63899,694206.4652 23 | 1400,2794.143153,674936.8127 24 | 1400,3028.252518,655481.0329 25 | 1400,3268.151399,636211.3804 26 | 1400,3513.970606,616755.6006 27 | 1400,3773.34935,595882.8841 28 | 1600,5.391768604,1142852.677 29 | 1600,298.1094773,1108306.878 30 | 1600,499.2919238,1084197.916 31 | 1600,698.4134273,1061205.718 32 | 1600,896.760906,1037841.265 33 | 1600,1095.487151,1014290.685 34 | 1600,1295.607616,990926.2323 35 | 1600,1497.997235,966817.2703 36 | 1600,1703.439096,944383.4539 37 | 1600,1912.54941,919529.9828 38 | 1600,2125.918466,896910.0391 39 | 1600,2343.984308,874290.0954 40 | 1600,2567.110573,850553.3879 41 | 1600,2795.611097,827188.9351 42 | 1600,3029.7199,804010.6095 43 | 1600,3269.611735,780460.0294 44 | 1600,3515.428264,757281.7038 45 | 1600,3767.259297,733731.1237 46 | 1600,4025.176522,709994.4163 47 | 1600,4289.241893,687002.218 48 | 1600,4559.490301,664010.0197 49 | 1600,4835.954048,640087.185 50 | 1600,5118.700708,616536.6049 51 | 1600,5369.320227,594892.8759 52 | 1800,2.393692806,1363402.196 53 | 1800,299.9371078,1324586.788 54 | 1800,501.0589411,1296196.899 55 | 1800,700.1219464,1267620.882 56 | 1800,898.4264312,1239230.992 57 | 1800,1097.123229,1211213.357 58 | 1800,1297.213687,1182451.213 59 | 1800,1504.217253,1153041.588 60 | 1800,1705.005144,1125671.433 61 | 1800,1914.116059,1097467.671 62 | 1800,2127.456456,1067961.018 63 | 1800,2345.504167,1039571.128 64 | 1800,2568.626191,1011553.493 65 | 1800,2797.118756,983535.8579 66 | 1800,3031.215092,955332.0955 67 | 1800,3271.096786,927128.3332 68 | 1800,3516.897716,898924.5708 69 | 1800,3768.715067,870720.8084 70 | 1800,4026.616588,842330.9188 71 | 1800,4290.659979,814313.2837 72 | 1800,4560.892523,787040.1578 73 | 1800,4837.334079,758464.1408 74 | 1800,5120.056412,730260.3785 75 | 1800,5409.129301,702242.7434 76 | 1800,5704.65054,674225.1083 77 | 1800,6006.739795,644811.5186 78 | 1800,6315.615217,616700.8199 79 | 1800,6515.810446,599266.2312 80 | 1800,142.9504482,1344545.718 81 | 2000,1.021268885,1551641.056 82 | 2000,301.4625366,1505130.259 83 | 2000,502.5295237,1472645.569 84 | 2000,701.5515754,1440347.006 85 | 2000,899.821061,1407862.316 86 | 2000,1098.493401,1376122.135 87 | 2000,1298.563899,1343451.318 88 | 2000,1500.935984,1312641.773 89 | 2000,1706.335004,1279598.701 90 | 2000,1915.437076,1247486.266 91 | 2000,2128.777077,1214815.449 92 | 2000,2346.820546,1182703.013 93 | 2000,2569.938755,1150962.832 94 | 2000,2798.427382,1119222.652 95 | 2000,3032.513687,1086737.962 96 | 2000,3272.393561,1055183.908 97 | 2000,3518.189693,1023443.727 98 | 2000,3770.002878,991889.6736 99 | 2000,4027.896804,959963.3654 100 | 2000,4291.924794,927850.93 101 | 2000,4562.125736,895229.7467 102 | 2000,4838.558008,863439.9319 103 | 2000,5121.268013,831885.8783 104 | 2000,5410.320351,799959.5701 105 | 2000,5705.814775,767661.0074 106 | 2000,6007.907491,736479.2084 107 | 2000,6316.75224,703994.5184 108 | 2000,6632.615489,672254.3376 109 | 2000,6955.783225,639769.6476 110 | 2000,7385.033016,596475.6585 111 | 2200,432.4568047,1726872.426 112 | 2200,721.5428377,1673555.541 113 | 2200,919.7580215,1635673.159 114 | 2200,1118.483408,1598535.287 115 | 2200,1318.708036,1561397.415 116 | 2200,1521.293789,1523659.799 117 | 2200,1672.865511,1492591.649 118 | 2200,1859.813081,1462117.905 119 | 2200,2071.941211,1424607.778 120 | 2200,2288.652135,1386911.524 121 | 2200,2510.346146,1349773.652 122 | 2200,2737.33031,1312077.398 123 | 2200,2969.860322,1274381.144 124 | 2200,3208.136724,1237429.399 125 | 2200,3452.293312,1200105.399 126 | 2200,3702.4375,1162595.273 127 | 2200,3958.649109,1125271.273 128 | 2200,4220.979564,1087761.146 129 | 2200,4489.485499,1051181.656 130 | 2200,4708.160467,1018675.512 131 | 2200,4967.898569,986425.2782 132 | 2200,5253.447713,948915.1514 133 | 2200,5545.384807,911591.1519 134 | 2200,5843.826067,874453.2796 135 | 2200,6148.919856,836757.0255 136 | 2200,6460.896493,800177.5352 137 | 2200,6780.005911,763225.7902 138 | 2200,7106.581115,725529.5361 139 | 2200,7441.054331,688205.5366 140 | 2200,7783.909542,649764.7733 141 | 2200,8271.016759,595650.7082 142 | 2200,8034.514589,622603.7651 143 | 2200,576.2133192,1702195.403 144 | 2400,951.6575856,1870645.423 145 | 2400,1229.394442,1810666.647 146 | 2400,1430.775216,1766642.065 147 | 2400,1628.72075,1724652.358 148 | 2400,1842.619822,1680454.174 149 | 2400,2054.350749,1638290.865 150 | 2400,2270.608046,1593894.028 151 | 2400,2491.835352,1552102.974 152 | 2400,2718.300512,1506961.628 153 | 2400,2950.315162,1464426.064 154 | 2400,3188.041106,1420773.737 155 | 2400,3431.650744,1378424.301 156 | 2400,3681.224176,1334585.846 157 | 2400,3936.874456,1292608.664 158 | 2400,4198.614494,1248397.955 159 | 2400,4466.550395,1207537.537 160 | 2400,4740.636213,1162210.064 161 | 2400,5021.013654,1120605.137 162 | 2400,5307.67537,1076580.555 163 | 2400,5600.763579,1034603.373 164 | 2400,5900.348935,990392.664 165 | 2400,6206.656196,948601.6096 166 | 2400,6519.845105,904577.0276 167 | 2400,6840.250073,862413.7186 168 | 2400,7168.176065,818575.2639 169 | 2400,7504.104145,776598.0822 170 | 2400,7848.506999,732945.7548 171 | 2400,8202.045512,690410.1912 172 | 2400,8565.410126,646385.6093 173 | 2400,8777.558813,621325.7988 174 | 2400,9018.430092,595826.1569 175 | 2400,1076.097479,1842891.028 176 | 2550,12.95652837,2010047.677 177 | 2550,305.7248283,2009721.339 178 | 2550,507.0041973,2009622.797 179 | 2550,706.2653846,2009896.51 180 | 2550,904.79941,2009797.969 181 | 2550,1103.756664,2009513.3 182 | 2550,1304.16097,2010717.649 183 | 2550,1506.867614,2010432.98 184 | 2550,1712.653525,2010706.693 185 | 2550,1912.379656,1991534.583 186 | 2550,2105.927122,1944969.016 187 | 2550,2293.342097,1899795.61 188 | 2550,2474.31611,1856947.07 189 | 2550,2669.162996,1812456.131 190 | 2550,2878.676085,1765481.083 191 | 2550,3092.874359,1718915.516 192 | 2550,3300.810713,1674606.568 193 | 2550,3513.155767,1629478.659 194 | 2550,3729.972374,1583744.114 195 | 2550,3951.333413,1539939.433 196 | 2550,4189.27646,1494295.196 197 | 2550,4420.017822,1449645.014 198 | 2550,4642.876375,1407706.43 199 | 2550,4882.632914,1363010.751 200 | 2550,5140.072622,1316649.923 201 | 2550,5389.482045,1271635.76 202 | 2550,5643.68729,1226803.587 203 | 2550,5902.780424,1182744.877 204 | 2550,6152.833353,1140806.293 205 | 2550,6421.761506,1096338.102 206 | 2550,6710.572452,1050386.755 207 | 2550,6990.587842,1006328.045 208 | 2550,7261.170435,964161.9714 209 | 2550,7537.178245,921995.8982 210 | 2550,7818.909857,880057.3139 211 | 2550,8122.870074,835407.1325 212 | 2550,8450.634545,788841.565 213 | 2550,8787.007222,742685.4776 214 | 2550,9118.625002,696041.5975 215 | 2550,9452.355163,653658.1014 216 | 2550,9896.176907,595982.6332 217 | 2550,1839.562455,2009072.087 218 | 2700,12.43316147,2474623.543 219 | 2700,236.418165,2474516.668 220 | 2700,528.8929238,2455481.76 221 | 2700,709.5588216,2407857.335 222 | 2700,871.6355585,2364553.817 223 | 2700,1042.905613,2318720.694 224 | 2700,1215.025045,2272933.068 225 | 2700,1379.406005,2229402.061 226 | 2700,1545.516028,2184278.632 227 | 2700,1723.207545,2139719.446 228 | 2700,1903.662186,2092202.904 229 | 2700,2077.529285,2049354.364 230 | 2700,2254.460303,2005368.38 231 | 2700,2434.687196,1961837.373 232 | 2700,2618.386848,1918078.878 233 | 2700,2805.708784,1873865.405 234 | 2700,2996.800234,1831585.587 235 | 2700,3191.721831,1787258.369 236 | 2700,3390.582192,1743954.851 237 | 2700,3593.434257,1700878.823 238 | 2700,3800.317189,1657347.816 239 | 2700,4011.273446,1614044.298 240 | 2700,4226.330914,1570968.269 241 | 2700,4445.503002,1527209.774 242 | 2700,4681.350613,1481217.408 243 | 2700,4921.847933,1435361.535 244 | 2700,5154.010682,1392058.017 245 | 2700,5403.678843,1346247.643 246 | 2700,5658.141549,1300209.779 247 | 2700,5903.717999,1256906.261 248 | 2700,6153.756831,1212541.128 249 | 2700,6408.392366,1168479.314 250 | 2700,6667.778083,1125403.286 251 | 2700,6932.066532,1081644.79 252 | 2700,7201.481235,1038341.272 253 | 2700,7476.255069,994582.7768 254 | 2700,7756.683405,951051.7702 255 | 2700,8043.089511,907293.2746 256 | 2700,8335.860524,863989.7569 257 | 2700,8635.414072,820458.7503 258 | 2700,8942.238861,777155.2326 259 | 2700,9256.863233,733396.737 260 | 2700,9579.897955,689865.7304 261 | 2700,9911.995733,645879.746 262 | 2700,10303.80347,596805.5218 263 | 2700,458.6240416,2472998.085 264 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Piston_CSVs/_piston_metadata.csv: -------------------------------------------------------------------------------- 1 | IO-540,Exact version not stated,"Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure 2 - D3, https://doi.org/10.1002/9780470117859.app4" 2 | Wasp_Major_B13,,"Hill, PG., Peterson CR., ""Mechanics and Thermodynamics Of Propulsion"", Addison-Wesley 1965, Figure 6-28, https://archive.org/details/MechanicsAndThermodynamicsOfPropulsionHillPeterson/" 3 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/T56-A_BSFC_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),TAS (m/s),BSFC (g/(kWh)),Mach Number 2 | 3048,25.29361749,326.6428841,0.07702379145725595 3 | 3048,38.77680409,325.3142867,0.11808261403446366 4 | 3048,48.49576629999999,324.5064343,0.14767866998573087 5 | 3048,58.21472850000001,323.3620744,0.17727472590654628 6 | 3048,67.93369071,322.31385960000006,0.20687078185781346 7 | 3048,77.65265292,321.12142719999997,0.2364668378090807 8 | 3048,87.37161513,319.73670489999995,0.2660628937603479 9 | 3048,97.09057734,318.35198260000004,0.29565894971161516 10 | 3048,106.8095395,316.4865354,0.3252550055106231 11 | 3048,116.52850179999999,315.00566810000004,0.3548510617359571 12 | 3048,126.247464,313.23636580000004,0.3844471176567725 13 | 3048,135.9664262,311.3228461,0.41404317357758785 14 | 3048,145.6853884,309.6016163,0.4436392294984032 15 | 3048,155.40435060000001,307.832314,0.4732352854192186 16 | 3048,165.1233128,305.8226493,0.5028313413400339 17 | 3048,174.842275,303.57262210000005,0.5324273972608493 18 | 3048,180.1435271,302.1574148,0.5485707004627014 19 | 9144,11.4991474,306.0496678,0.037929254064176014 20 | 9144,24.64013178,305.9492793,0.0812740097981871 21 | 9144,34.35909399,304.9972094,0.11333142884676939 22 | 9144,44.078056200000006,304.7662269,0.1453888478953517 23 | 9144,53.79701841,304.05451949999997,0.17744626694393398 24 | 9144,63.51598062,303.19859460000004,0.2095036859925163 25 | 9144,73.23494283,302.1503798,0.24156110504109857 26 | 9144,82.95390503,301.1021649,0.2736185240566965 27 | 9144,92.67286724,300.19816749999995,0.3056759431052788 28 | 9144,102.3918294,299.0057352,0.33773336198893905 29 | 9144,112.11079170000001,297.81330289999994,0.36979078133438104 30 | 9144,121.82975390000001,296.38050810000004,0.4018482003499789 31 | 9144,131.54871609999998,294.9957857,0.4339056193655767 32 | 9144,141.2676783,293.5149184,0.4659630383811747 33 | 9144,150.9866405,292.03405110000006,0.49802045739677253 34 | 9144,160.7056027,290.36089389999995,0.5300778764123704 35 | 9144,170.4245649,288.68773660000005,0.5621352954279684 36 | 9144,180.1435271,287.0626518,0.5941927144435663 37 | 9144,189.86248930000002,285.4856395,0.6262501334591642 38 | 9144,199.5814515,283.5240473,0.658307552474762 39 | 9144,209.30041369999998,281.947035,0.6903649714903599 40 | 9144,219.0193759,280.1296602,0.7224223905059578 41 | 9144,228.7383382,278.3122855,0.7544798098513997 42 | 9144,238.4573004,277.0237081,0.7865372288669977 43 | 9144,248.17626260000003,275.7832033,0.8185946478825956 44 | 9144,257.8952248,274.5426985,0.8506520668981934 45 | 9144,267.614187,273.39833860000005,0.8827094859137914 46 | 9144,277.33314920000004,271.96554380000003,0.9147669049293894 47 | 9144,287.05211139999994,270.96540150000004,0.946824323944987 48 | 9144,296.7710736,270.0133316,0.978881742960585 49 | 9144,305.99219189999997,269.5189344,1.0092970534693033 50 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/T56-A_Power_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),TAS (m/s),Power (W),Mach Number 2 | 0,0.959862567,3398351.374,0.0028206862324185733 3 | 0,11.81927591,3403924.58,0.03473254399397107 4 | 0,20.02656552,3410194.4960000003,0.05885077675384803 5 | 0,27.98514939,3420974.403,0.08223815399246634 6 | 0,36.44114475,3435549.764,0.10708724230298833 7 | 0,44.64843436,3450199.005,0.1312054750628653 8 | 0,52.85572398,3469284.358,0.15532370785212862 9 | 0,61.06301359,3488862.613,0.17944194061200558 10 | 0,69.2703032,3512876.982,0.20356017337188256 11 | 0,77.47759282,3538370.055,0.22767840616114587 12 | 0,85.68488243,3570270.847,0.25179663892102283 13 | 0,93.89217204,3600200.0330000003,0.27591487168089984 14 | 0,102.0994617,3634072.43,0.3000331045877086 15 | 0,107.32228229999998,3657658.9439999997,0.3153810707104588 16 | 3048,1.163872085,2751163.6610000003,0.0035442079723631364 17 | 3048,11.81927591,2742943.702,0.03599190361867092 18 | 3048,20.02656552,2740834.292,0.060984634041666784 19 | 3048,28.23385514,2743160.9960000003,0.08597736449511453 20 | 3048,36.44114475,2750416.7139999997,0.1109700949181104 21 | 3048,44.64843436,2759644.038,0.1359628253411063 22 | 3048,52.85572398,2774293.2789999996,0.16095555579455403 23 | 3048,61.06301359,2793378.6319999998,0.18594828621754989 24 | 3048,69.2703032,2810985.2810000004,0.21094101664054576 25 | 3048,77.47759282,2835985.453,0.2359337470939935 26 | 3048,85.68488243,2860492.723,0.2609264775169894 27 | 3048,93.89217204,2888943.204,0.28591920793998526 28 | 3048,102.0994617,2917886.587,0.3109119385152405 29 | 3048,110.3067513,2950773.182,0.3359046689077845 30 | 3048,118.5140409,2989081.693,0.3608973993003285 31 | 3048,126.7213305,3028868.909,0.38589012969287245 32 | 3048,134.9286201,3068656.124,0.41088286008541647 33 | 3048,143.13590969999998,3113865.256,0.43587559047796043 34 | 3048,151.3431993,3160060.191,0.4608683208705045 35 | 3048,159.550489,3208719.633,0.4858610515675672 36 | 3048,167.7577786,3258364.878,0.5108537819601112 37 | 3048,175.9650682,3309981.729,0.5358465123526551 38 | 3048,184.17235780000001,3365541.792,0.5608392427451993 39 | 3048,192.3796474,3418637.347,0.5858319731377433 40 | 3048,200.586937,3469761.297,0.6108247035302873 41 | 3048,208.79422659999997,3526800.064,0.6358174339228312 42 | 3048,218.4995037,3594613.1539999996,0.6653718161570381 43 | 6096,50.61737226,2137636.583,0.16016540492196463 44 | 6096,58.82466188,2149328.415,0.18613522134283658 45 | 6096,67.03195149,2163484.754,0.21210503773206615 46 | 6096,75.2392411,2182077.206,0.23807485412129575 47 | 6096,83.44653072,2200669.6580000003,0.2640446705421677 48 | 6096,91.65382033,2222712.421,0.2900144869313973 49 | 6096,99.86110994,2246726.789,0.3159843033206269 50 | 6096,108.0683996,2274684.369,0.3419541198680684 51 | 6096,116.2756892,2306092.26,0.36792393622565556 52 | 6096,124.4829788,2338485.953,0.3938937525832428 53 | 6096,132.6902684,2372851.252,0.41986356894083 54 | 6096,140.897558,2409681.059,0.4458333852984172 55 | 6096,149.1048476,2449961.176,0.47180320165600437 56 | 6096,157.3121372,2490241.293,0.4977730180135916 57 | 6096,165.5194269,2531507.213,0.5237428346876026 58 | 6096,173.7267165,2572280.232,0.5497126510451898 59 | 6096,181.9340061,2615517.7569999998,0.5756824674027771 60 | 6096,190.1412957,2659741.086,0.6016522837603642 61 | 6096,198.34858530000002,2702978.6119999997,0.6276221001179515 62 | 6096,206.55587490000002,2747694.8419999997,0.6535919164755387 63 | 6096,214.7631645,2795368.482,0.6795617328331258 64 | 6096,222.97045409999998,2841070.515,0.705531549190713 65 | 6096,231.1777438,2888251.253,0.731501365864724 66 | 6096,239.38503340000003,2935431.99,0.7574711822223114 67 | 6096,247.592323,2985570.137,0.7834409985798985 68 | 6096,255.79961260000002,3036694.086,0.8094108149374857 69 | 6096,264.0069022,3083874.8239999996,0.8353806312950729 70 | 6096,272.2141918,3131548.463,0.86135044765266 71 | 6096,280.4214814,3178729.2010000004,0.8873202640102473 72 | 6096,288.6287711,3228867.347,0.9132900806842582 73 | 6096,296.83606069999996,3277526.789,0.9392598970418453 74 | 6096,302.0588813,3308342.525,0.9557861436422607 75 | 6096,39.37383688,2122252.4069999997,0.12458818476043472 76 | 9144,60.64924157,1568049.761,0.2000479176663233 77 | 9144,71.50865492,1580038.2880000002,0.23586704699934277 78 | 9144,79.71594453,1590744.3159999999,0.2629383038471298 79 | 9144,87.92323414,1604407.754,0.2900095606949168 80 | 9144,96.13052376,1619056.994,0.3170808175756882 81 | 9144,104.3378134,1638635.249,0.3441520745224284 82 | 9144,112.545103,1661170.9130000002,0.371223331337231 83 | 9144,120.7523926,1685185.281,0.39829458815203356 84 | 9144,128.9596822,1710678.354,0.4253658449668362 85 | 9144,137.1669718,1740114.639,0.45243710178163876 86 | 9144,145.3742614,1769550.9230000002,0.47950835859644136 87 | 9144,153.58155109999998,1800958.814,0.506579615741088 88 | 9144,161.78884069999998,1834831.2119999998,0.5336508725558906 89 | 9144,169.9961303,1869689.4119999998,0.5607221293706932 90 | 9144,178.2034199,1904054.7119999998,0.5877933861854958 91 | 9144,186.4107095,1940884.519,0.6148646430002984 92 | 9144,194.6179991,1977714.325,0.641935899815101 93 | 9144,202.8252887,2012079.625,0.6690071566299035 94 | 9144,211.03257830000004,2051373.939,0.6960784134447063 95 | 9144,219.23986800000003,2090668.253,0.723149670589353 96 | 9144,227.4471576,2129469.665,0.7502209274041555 97 | 9144,235.6544472,2168271.078,0.7772921842189581 98 | 9144,243.86173680000002,2208058.294,0.8043634410337607 99 | 9144,252.06902639999998,2249324.213,0.8314346978485632 100 | 9144,260.276316,2292068.838,0.8585059546633659 101 | 9144,268.48360560000003,2332841.856,0.8855772114781685 102 | 9144,276.6908953,2374600.6780000003,0.9126484686228151 103 | 9144,284.8981849,2416359.499,0.9397197254376176 104 | 9144,293.1054745,2459597.025,0.9667909822524203 105 | 9144,301.31276410000004,2500370.044,0.993862239067223 106 | 9144,306.53558480000004,2525435.262,1.0110894026447537 107 | 12192,79.50618203,1060398.449,0.26944900702707075 108 | 12192,90.16158586,1065001.529,0.30556051317866284 109 | 12192,98.36887547,1074228.854,0.33337528153169044 110 | 12192,106.57616509999998,1084934.882,0.36119004995249854 111 | 12192,114.78345470000001,1098598.3190000001,0.3890048182716359 112 | 12192,122.9907443,1115219.166,0.4168195865907732 113 | 12192,131.1980339,1132825.815,0.44463435490991043 114 | 12192,139.4053235,1152404.07,0.4724491232290477 115 | 12192,147.6126132,1172475.227,0.5002638918870882 116 | 12192,155.81990280000002,1195503.7920000001,0.5280786602062255 117 | 12192,164.02719240000002,1218039.456,0.5558934285253627 118 | 12192,172.234482,1241068.021,0.5837081968445 119 | 12192,180.4417716,1266561.094,0.6115229651636372 120 | 12192,188.6490612,1290575.462,0.6393377334827745 121 | 12192,196.8563508,1315575.634,0.6671525018019118 122 | 12192,205.0636404,1341068.707,0.694967270121049 123 | 12192,213.2709301,1369519.188,0.7227820387790894 124 | 12192,221.47821969999998,1397969.67,0.7505968070982266 125 | 12192,229.68550930000004,1425434.3480000002,0.7784115754173642 126 | 12192,237.8927989,1454377.7319999998,0.8062263437365013 127 | 12192,246.10008849999997,1483321.115,0.8340411120556385 128 | 12192,254.3073781,1512264.4980000001,0.8618558803747758 129 | 12192,262.51466769999996,1543672.388,0.8896706486939129 130 | 12192,270.72195739999995,1572615.771,0.9174854173519533 131 | 12192,278.92924700000003,1601559.155,0.9453001856710909 132 | 12192,287.13653660000006,1630995.439,0.9731149539902283 133 | 12192,295.3438262,1659938.822,1.0009297223093654 134 | 12192,306.6112586,1704950.7969999998,1.039115412961434 135 | 15240,95.17464402,651557.2539,0.3225499284529527 136 | 15240,105.83004779999999,660604.049,0.35866143443509313 137 | 15240,114.0373375,668845.5701,0.3864762030931337 138 | 15240,122.24462709999999,678565.7957,0.4142909714122709 139 | 15240,130.45191670000003,689764.7257,0.44210573973140826 140 | 15240,138.65920630000002,700470.7543,0.4699205080505455 141 | 15240,146.8664959,712655.4872,0.4977352763696827 142 | 15240,155.07378549999999,727304.7275,0.5255500446888199 143 | 15240,163.28107509999998,739982.3620000001,0.5533648130079571 144 | 15240,171.4883648,752167.0949,0.5811795816659977 145 | 15240,179.6956544,769280.8426,0.608994349985135 146 | 15240,187.902944,785901.6889,0.6368091183042722 147 | 15240,196.1102336,802522.5351,0.6646238866234094 148 | 15240,204.31752319999998,819143.3814,0.6924386549425467 149 | 15240,212.5248128,836750.0305,0.7202534232616841 150 | 15240,220.73210240000003,852385.0738,0.7480681915808214 151 | 15240,228.939392,870977.526,0.7758829598999586 152 | 15240,237.1466817,890555.781,0.803697728557999 153 | 15240,245.3539713,909148.2332,0.8315124968771364 154 | 15240,253.5612609,924783.2765,0.8593272651962736 155 | 15240,261.7685505,944361.5315,0.8871420335154109 156 | 15240,269.9758401,966404.2940000001,0.9149568018345482 157 | 15240,278.1831297,984503.8447,0.9427715701536853 158 | 15240,286.3904193,1003096.297,0.9705863384728227 159 | 15240,294.597709,1022181.65,0.9984011071308632 160 | 15240,302.8049986,1041759.905,1.0262158754500004 161 | 15240,306.634713,1049367.229,1.039194900677094 162 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/T56-A_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),TAS (m/s),Thrust (N),Mach Number 2 | 0,-0.094431845,3534.0763869999996,-0.0002775007738096163 3 | 0,12.86235998,3364.2378689999996,0.037797787891021735 4 | 0,22.70130937,3238.501698,0.06671087403477602 5 | 0,32.54025877,3114.166921,0.09562396020791666 6 | 0,42.37920816,2984.226568,0.12453704635167094 7 | 0,52.21815756,2861.993882,0.1534501325248116 8 | 0,62.05710696,2739.761195,0.18236321869795222 9 | 0,71.89605635,2620.3312960000003,0.21127630484170648 10 | 0,81.73500575,2500.901398,0.24018939101484715 11 | 0,91.57395514,2390.580559,0.2691024771586014 12 | 0,101.41290450000001,2276.7562359999997,0.2980155632141967 13 | 0,111.25185390000001,2166.4353969999997,0.32692864938733734 14 | 0,121.0908033,2053.31177,0.35584173556047793 15 | 0,130.9297527,1949.9979010000002,0.3847548217336186 16 | 0,140.76870209999998,1838.275668,0.41366790790675917 17 | 0,150.6076515,1737.06389,0.44258099407989987 18 | 0,160.44660090000002,1630.947233,0.47149408025304057 19 | 0,170.2855503,1528.33406,0.5004071664261812 20 | 0,180.1244997,1424.3194939999998,0.5293202525993218 21 | 0,189.9634491,1318.903534,0.5582333387724624 22 | 0,197.46547560000002,1237.858232,0.5802790603072927 23 | 0,217.6913974,1016.280316,0.6397156725064166 24 | 0,228.2970182,909.4295950999999,0.6708817264867382 25 | 0,237.36929619999998,825.7686062000001,0.6975418448526979 26 | 0,246.60626150000002,733.3702859,0.7246859191679099 27 | 0,257.3368567,631.6448027,0.7562192273589947 28 | 3048,0.521364581,2752.954872,0.0015876525679262826 29 | 3048,15.54570981,2609.820842,0.0473395911412772 30 | 3048,25.02687923,2521.1437530000003,0.07621152361458639 31 | 3048,35.2236086,2429.819587,0.10726246984050548 32 | 3048,45.062558,2344.723838,0.13722390920534558 33 | 3048,54.90150739,2261.029482,0.16718534853973377 34 | 3048,64.74045679,2178.7365210000003,0.19714678790457385 35 | 3048,74.57940619,2098.54565,0.22710822726941396 36 | 3048,84.41835558,2023.2596579999997,0.25706966660380215 37 | 3048,94.25730498,1944.470181,0.28703110596864223 38 | 3048,104.0962544,1867.082098,0.3169925453943861 39 | 3048,113.9352038,1793.1974989999999,0.3469539847592261 40 | 3048,123.77415320000001,1720.714295,0.37691542412406626 41 | 3048,133.6131026,1648.23109,0.4068768634889063 42 | 3048,143.452052,1576.448583,0.4368383028537464 43 | 3048,153.2910014,1505.366772,0.46679974221858644 44 | 3048,163.1299507,1437.788446,0.49676118127890784 45 | 3048,172.96890009999998,1366.706635,0.5267226206437479 46 | 3048,182.8078495,1304.033188,0.556684060008588 47 | 3048,192.199574,1240.3164800000002,0.5852836159874035 48 | 3048,236.47484619999997,959.7574301000001,0.7201100928246651 49 | 3048,252.57494530000002,864.4626478,0.7691379029435552 50 | 3048,262.41389469999996,807.3947757,0.7990993423083951 51 | 3048,270.46394419999996,760.0476832,0.8236132472155807 52 | 3048,284.7751433,671.0702954,0.8671935225722978 53 | 3048,291.0362929,634.244779,0.8862598930218288 54 | 6096,1.0016141729999999,2104.069861,0.0031693454723428524 55 | 6096,14.65125987,1991.261165,0.04636007095828409 56 | 6096,24.49020926,1920.880051,0.07749284697363204 57 | 6096,34.32915866,1853.301725,0.10862562302062236 58 | 6096,44.16810805,1789.2268829999998,0.13975839903597032 59 | 6096,54.00705745,1733.5604050000002,0.17089117508296064 60 | 6096,63.84600685,1679.996018,0.20202395112995097 61 | 6096,73.68495624,1627.833024,0.23315672714529895 62 | 6096,83.52390564,1579.173515,0.2642895031922892 63 | 6096,93.36285503,1532.616097,0.2954222792076372 64 | 6096,103.20180440000001,1488.16077,0.32655505515970046 65 | 6096,113.04075379999999,1445.106836,0.3576878312066907 66 | 6096,122.87970320000001,1404.1549929999999,0.38882060725368106 67 | 6096,132.71865259999998,1362.502454,0.41995338330067133 68 | 6096,142.557602,1320.8499140000001,0.4510861593476617 69 | 6096,152.3965514,1283.401556,0.482218935394652 70 | 6096,162.2355008,1248.0552890000001,0.5133517114416424 71 | 6096,172.07445019999997,1212.0083240000001,0.5444844874886327 72 | 6096,181.9133996,1178.764148,0.575617263535623 73 | 6096,191.752349,1143.417881,0.6067500395826134 74 | 6096,205.0847461,1100.0741369999998,0.6489369150516389 75 | 6096,240.76672050000002,992.3644499,0.7618431688341456 76 | 6096,253.9309441,954.2499356000001,0.803497903349937 77 | 6096,291.69148010000004,846.1784015000001,0.9229812204104269 78 | 6096,307.2806923,825.5531422,0.9723091956281477 79 | 6096,274.0237064,891.0473866000001,0.8670761822311466 80 | 6096,224.83108149999998,1036.931896,0.7114190168253258 81 | 9144,58.57169825,1285.0310060000002,0.19319526453713462 82 | 9144,71.89605635,1233.652074,0.237144867584832 83 | 9144,81.73500575,1197.60511,0.2695980572462822 84 | 9144,91.57395514,1168.565115,0.30205124687474805 85 | 9144,101.41290450000001,1139.52512,0.3345044364042607 86 | 9144,111.25185390000001,1113.9886099999999,0.3669576260657109 87 | 9144,121.0908033,1093.356978,0.3994108157271611 88 | 9144,130.9297527,1073.426043,0.4318640053886113 89 | 9144,140.76870209999998,1051.393017,0.46431719505006147 90 | 9144,150.6076515,1036.366961,0.49677038471151175 91 | 9144,160.44660090000002,1019.238814,0.5292235743729621 92 | 9144,170.2855503,1000.709273,0.5616767640344122 93 | 9144,180.1244997,987.0846103,0.5941299536958624 94 | 9144,189.9634491,974.8613417000001,0.6265831433573126 95 | 9144,199.8023985,960.5359822,0.6590363330187629 96 | 9144,209.6413479,949.0134105000001,0.691489522680213 97 | 9144,219.03307230000001,938.1292515,0.7224675672670945 98 | 9144,233.6754787,924.3040299,0.7707646742731771 99 | 9144,239.15819610000003,919.0427963,0.7888490916645639 100 | 9144,254.3638451,908.2951333999999,0.8390040209014639 101 | 9144,261.07221969999995,905.7384714,0.8611311957006201 102 | 9144,293.85151030000003,876.43315,0.9692517369862166 103 | 12192,78.61716332,826.7785075,0.2664360940368884 104 | 12192,91.57395514,811.9103781,0.31034707807631995 105 | 12192,101.41290450000001,800.3878063999999,0.34369159378003344 106 | 12192,111.25185390000001,788.1645377,0.37703610961930817 107 | 12192,121.0908033,780.1454506,0.41038062545858284 108 | 12192,130.9297527,772.1263636,0.4437251412978575 109 | 12192,140.76870209999998,762.7058826,0.4770696571371322 110 | 12192,150.6076515,758.8909771000001,0.5104141729764069 111 | 12192,160.44660090000002,750.1711931,0.5437586888156817 112 | 12192,170.2855503,746.3562876,0.5771032046549563 113 | 12192,180.1244997,738.3372006,0.610447720494231 114 | 12192,189.9634491,736.6243857999999,0.6437922363335057 115 | 12192,199.8023985,734.9115711000001,0.6771367521727805 116 | 12192,209.6413479,733.1987564,0.7104812680120551 117 | 12192,219.48029730000002,731.4859417,0.7438257838513299 118 | 12192,229.31924669999998,729.7731269999999,0.7771702996906046 119 | 12192,237.81652119999998,729.2573362,0.8059678361588697 120 | 12192,253.9805095,728.9791779,0.8607481121805354 121 | 12192,264.2027945,725.802511,0.8953917646924671 122 | 12192,283.8806933,735.2520837999999,0.9620807963710166 123 | 12192,293.71964269999995,733.9773085,0.9954253122102911 124 | 12192,303.5585921,739.9721601,1.028769828049566 125 | 12192,318.9403725,745.7027841,1.0808991763501117 126 | 15240,103.3153348,522.5806377,0.35013899122995484 127 | 15240,116.61855359999998,510.4549882,0.39522402744224966 128 | 15240,126.457503,506.64008269999994,0.42856854328152444 129 | 15240,136.2964524,498.6209956999999,0.4619130591207991 130 | 15240,146.1354018,491.30260549999997,0.4952575749600739 131 | 15240,155.9743512,488.18839689999993,0.5286020907993486 132 | 15240,165.81330060000002,486.47558219999996,0.5619466066386233 133 | 15240,175.65225,484.7627675,0.5952911224778981 134 | 15240,185.4911994,487.25413439999994,0.6286356383171727 135 | 15240,195.33014880000002,489.04480430000007,0.6619801541564475 136 | 15240,205.16909819999998,487.33198960000004,0.6953246699957221 137 | 15240,215.00804759999997,489.8233563999999,0.7286691858349967 138 | 15240,224.84699700000002,491.61402639999994,0.7620137016742716 139 | 15240,234.6859464,491.30260549999997,0.7953582175135463 140 | 15240,244.5248958,495.8960632,0.828702733352821 141 | 15240,254.3638451,500.48952080000004,0.8620472488531924 142 | 15240,264.2027945,502.2801907,0.8953917646924671 143 | 15240,274.0417439,508.27504220000003,0.9287362805317417 144 | 15240,283.8806933,512.1678029,0.9620807963710166 145 | 15240,293.71964269999995,523.067533,0.9954253122102911 146 | 15240,303.5585921,530.4637783,1.028769828049566 147 | 15240,313.3975415,537.8600237,1.0621143438888407 148 | 15240,325.45988339999997,545.1806303,1.1029940083927863 149 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/Tyne_RTy11_Airflow_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),TAS (m/s),Intake Airflow (kg/s),Mach Number 2 | 0,0.0,18.367456,0.0 3 | 1524,0.0,15.69818982,0.0 4 | 3048,0.0,13.48331337,0.0 5 | 4572,0.0,11.56090929,0.0 6 | 6096,0.0,9.897062449,0.0 7 | 7620,0.0,8.266583713,0.0 8 | 0,51.4444,18.51205113,0.15117634107616373 9 | 1524,51.4444,16.13161053,0.15384388474110552 10 | 3048,51.4444,13.46690283,0.15665781056467057 11 | 4572,51.4444,11.64095628,0.1596320156891243 12 | 6096,51.4444,9.944835366,0.16278231739577698 13 | 7620,51.4444,8.314356631,0.16612680825092035 14 | 9144,51.4444,6.9431644939999995,0.16968629498384347 15 | 10668,51.4444,5.669706263999999,0.17348484547455112 16 | 0,102.8888,18.78774827,0.30235268215232747 17 | 1524,102.8888,16.60149911,0.30768776948221105 18 | 3048,102.8888,14.09797942,0.31331562112934114 19 | 4572,102.8888,12.04629672,0.3192640313782486 20 | 6096,102.8888,10.25371828,0.32556463479155395 21 | 7620,102.8888,8.816154604,0.3322536165018407 22 | 9144,102.8888,7.251682725,0.33937258996768693 23 | 10668,102.8888,5.97676578,0.34696969094910224 24 | 0,154.3332,19.51747047,0.45352902322849115 25 | 1524,154.3332,17.17058031,0.4615316542233166 26 | 3048,154.3332,14.76315348,0.4699734316940117 27 | 4572,154.3332,12.71037674,0.4788960470673729 28 | 6096,154.3332,10.88443019,0.4883469521873309 29 | 7620,154.3332,9.221859725,0.49838042475276106 30 | 9144,154.3332,7.65592913,0.5090588849515304 31 | 10668,154.3332,6.250639529,0.5204545364236534 32 | 0,205.7776,6.726180632,0.6047053643046549 33 | 1524,205.7776,8.322014885,0.6153755389644221 34 | 3048,205.7776,9.792217305,0.6266312422586823 35 | 4572,205.7776,11.74416037,0.6385280627564972 36 | 6096,205.7776,13.95575471,0.6511292695831079 37 | 7620,205.7776,15.68688478,0.6645072330036814 38 | 9144,205.7776,18.192410199999998,0.6787451799353739 39 | 10668,205.7776,20.92677154,0.6939393818982045 40 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/Tyne_RTy11_BSFC_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),TAS (m/s),BSFC (g/(kWh)),Mach Number 2 | 0,0.0,318.4970739,0.0 3 | 1524,0.0,309.7860998,0.0 4 | 3048,0.0,302.2453695,0.0 5 | 4572,0.0,296.9981959,0.0 6 | 6096,0.0,292.3944294,0.0 7 | 7620,0.0,290.9849896,0.0 8 | 0,51.4444,315.9930852,0.15117634107616373 9 | 1524,51.4444,307.00658139999996,0.15384388474110552 10 | 3048,51.4444,299.8942845,0.15665781056467057 11 | 4572,51.4444,294.25349730000005,0.1596320156891243 12 | 6096,51.4444,290.34612430000004,0.16278231739577698 13 | 7620,51.4444,288.6611548,0.16612680825092035 14 | 9144,51.4444,296.5107205,0.16968629498384347 15 | 10668,51.4444,288.9336566,0.17348484547455112 16 | 0,102.8888,309.6937519,0.30235268215232747 17 | 1524,102.8888,300.3015233,0.30768776948221105 18 | 3048,102.8888,294.32465049999996,0.31331562112934114 19 | 4572,102.8888,288.1161512,0.3192640313782486 20 | 6096,102.8888,284.4827939,0.32556463479155395 21 | 7620,102.8888,282.1831815,0.3322536165018407 22 | 9144,102.8888,281.9000824,0.33937258996768693 23 | 10668,102.8888,282.25433480000004,0.34696969094910224 24 | 0,154.3332,301.503559,0.45352902322849115 25 | 1524,154.3332,290.49902810000003,0.4615316542233166 26 | 3048,154.3332,284.53578039999996,0.4699734316940117 27 | 4572,154.3332,279.33856549999996,0.4788960470673729 28 | 6096,154.3332,275.2752609,0.4883469521873309 29 | 7620,154.3332,272.3791724,0.49838042475276106 30 | 9144,154.3332,270.8107731,0.5090588849515304 31 | 10668,154.3332,270.8713291,0.5204545364236534 32 | 0,205.7776,290.7018905,0.6047053643046549 33 | 1524,205.7776,277.220621,0.6153755389644221 34 | 3048,205.7776,271.996156,0.6266312422586823 35 | 4572,205.7776,267.6739747,0.6385280627564972 36 | 6096,205.7776,264.0799787,0.6511292695831079 37 | 7620,205.7776,261.9090477,0.6645072330036814 38 | 9144,205.7776,260.0560355,0.6787451799353739 39 | 10668,205.7776,258.8464303,0.6939393818982045 40 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/Tyne_RTy11_Power_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),TAS (m/s),Power (W),Mach Number 2 | 0,0,3042596.842,0 3 | 1524,0,2786140.287,0 4 | 3048,0,2536960.336,0 5 | 4572,0,2265793.473,0 6 | 6096,0,1973992.906,0 7 | 7620,0,1652928.822,0 8 | 0,51.4444,3090634.782,0.151176341 9 | 1524,51.4444,2837090.833,0.153843885 10 | 3048,51.4444,2579202.522,0.156657811 11 | 4572,51.4444,2322706.692,0.159632016 12 | 6096,51.4444,2020648.184,0.162782317 13 | 7620,51.4444,1705360.218,0.166126808 14 | 9144,51.4444,1392965.22,0.169686295 15 | 10668,51.4444,1093907.686,0.173484845 16 | 0,102.8888,3199122.445,0.302352682 17 | 1524,102.8888,2949824.67,0.307687769 18 | 3048,102.8888,2680187.75,0.313315621 19 | 4572,102.8888,2423623.19,0.319264031 20 | 6096,102.8888,2136392.813,0.325564635 21 | 7620,102.8888,1831343.15,0.332253617 22 | 9144,102.8888,1513113.123,0.33937259 23 | 10668,102.8888,1193382.609,0.346969691 24 | 0,154.3332,3276443.539,0.453529023 25 | 1524,154.3332,3138983.374,0.461531654 26 | 3048,154.3332,2842936.632,0.469973432 27 | 4572,154.3332,2580487.949,0.478896047 28 | 6096,154.3332,2291835.635,0.488346952 29 | 7620,154.3332,1997181.375,0.498380425 30 | 9144,154.3332,1693661.655,0.509058885 31 | 10668,154.3332,1360632.952,0.520454536 32 | 0,205.7776,3420147.571,0.604705364 33 | 1524,205.7776,3434056.292,0.615375539 34 | 3048,205.7776,3102783.362,0.626631242 35 | 4572,205.7776,2815327.156,0.638528063 36 | 6096,205.7776,2495793.016,0.65112927 37 | 7620,205.7776,2218614.387,0.664507233 38 | 9144,205.7776,1928383.037,0.67874518 39 | 10668,205.7776,1610300.29,0.693939382 40 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/Tyne_RTy11_Thrust_data.csv: -------------------------------------------------------------------------------- 1 | Altitude (m),TAS (m/s),Thrust (N),Mach Number 2 | 0,0.0,4297.468247999999,0.0 3 | 1524,0.0,3885.5918799999995,0.0 4 | 3048,0.0,3471.6390539999998,0.0 5 | 4572,0.0,3067.721682,0.0 6 | 6096,0.0,2663.877298,0.0 7 | 7620,0.0,2265.896734,0.0 8 | 0,51.4444,3403.3474170000004,0.15117634107616373 9 | 1524,51.4444,3098.90695,0.15384388474110552 10 | 3048,51.4444,2789.0132,0.15665781056467057 11 | 4572,51.4444,2495.23461,0.1596320156891243 12 | 6096,51.4444,2180.132266,0.16278231739577698 13 | 7620,51.4444,1880.725614,0.16612680825092035 14 | 9144,51.4444,1597.608902,0.16968629498384347 15 | 10668,51.4444,1298.516851,0.17348484547455112 16 | 0,102.8888,2603.490428,0.30235268215232747 17 | 1524,102.8888,2423.154195,0.30768776948221105 18 | 3048,102.8888,2223.521716,0.31331562112934114 19 | 4572,102.8888,2011.1788780000002,0.3192640313782486 20 | 6096,102.8888,1811.2527710000002,0.32556463479155395 21 | 7620,102.8888,1586.031787,0.3322536165018407 22 | 9144,102.8888,1367.103062,0.33937258996768693 23 | 10668,102.8888,1103.037906,0.34696969094910224 24 | 0,154.3332,1835.626021,0.45352902322849115 25 | 1524,154.3332,1769.808859,0.4615316542233166 26 | 3048,154.3332,1685.4085469999998,0.4699734316940117 27 | 4572,154.3332,1589.0109710000002,0.4788960470673729 28 | 6096,154.3332,1478.8963130000002,0.4883469521873309 29 | 7620,154.3332,1343.654565,0.49838042475276106 30 | 9144,154.3332,1194.989362,0.5090588849515304 31 | 10668,154.3332,1007.396093,0.5204545364236534 32 | 0,205.7776,918.3835567,0.6047053643046549 33 | 1524,205.7776,1116.924938,0.6153755389644221 34 | 3048,205.7776,1148.2601539999998,0.6266312422586823 35 | 4572,205.7776,1147.9662859999999,0.6385280627564972 36 | 6096,205.7776,1134.290911,0.6511292695831079 37 | 7620,205.7776,1082.861979,0.6645072330036814 38 | 9144,205.7776,1029.83907,0.6787451799353739 39 | 10668,205.7776,931.8475156,0.6939393818982045 40 | -------------------------------------------------------------------------------- /ADRpy/data/engine_data/Turboprop_CSVs/_turboprop_metadata.csv: -------------------------------------------------------------------------------- 1 | T56-A,Exact version not stated,"Saarlas, M., ""Aircraft Performance"", Wiley (2006), Figure D11 - D13, https://doi.org/10.1002/9780470117859.app4" 2 | Tyne_RTy11,"Technically RTy.11, but the full stop has been omitted to avoid any issues that may arise from the file name.","Hill, PG., Peterson CR., ""Mechanics and Thermodynamics Of Propulsion"", Addison-Wesley 1965, Figure 6-27, https://archive.org/details/MechanicsAndThermodynamicsOfPropulsionHillPeterson/" 3 | -------------------------------------------------------------------------------- /ADRpy/mtools4acdc.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | .. _mtools4acdc_module: 6 | 7 | Miscellaneous Utilities 8 | ----------------------- 9 | 10 | This module contains miscellaneous tools to support aircraft 11 | engineering calculations and data analysis. 12 | 13 | """ 14 | 15 | # pylint: disable-msg=W0102, R0913 16 | # W0102: erroneous warning from pylint, suggesting '[]' default 17 | # R0913: number of inputs (panelplot) - this feels more readable 18 | # pylint: disable=locally-disabled, too-many-locals 19 | 20 | import math 21 | from numbers import Number 22 | import numpy as np 23 | import matplotlib.pyplot as plt 24 | import pandas 25 | from cycler import cycler 26 | 27 | 28 | def panelplot_with_shared_y(vaxis, haxes, hlimits, vlabel, 29 | hlabels, hlines, hlinecols, 30 | figpar=[10, 6, 100], 31 | tex=False, fam='sans-serif'): 32 | """Multi-panel plots with a shared y-axis, e.g., for atmosphere profiles. 33 | See the Jupyter notebook Introduction_to_Modelling_the_Atmosphere... in 34 | the docs/ADRpy directory for usage examples. 35 | """ 36 | 37 | npanels = len(haxes) 38 | figobj, axes = plt.subplots(1, npanels, sharey=True) 39 | 40 | plt.rc('text', usetex=tex) 41 | plt.rc('font', family=fam) 42 | 43 | for i in range(npanels): 44 | axes[i].plot(haxes[i], vaxis) 45 | axes[i].set_xlim(hlimits[i]) 46 | axes[i].grid(True) 47 | axes[i].set_xlabel(hlabels[i]) 48 | for j, hli in enumerate(hlines): 49 | axes[i].plot(hlimits[i], [hli, hli], color=hlinecols[j]) 50 | 51 | axes[0].set_ylabel(vlabel) 52 | 53 | figobj.set_figwidth(figpar[0]) 54 | figobj.set_figheight(figpar[1]) 55 | figobj.dpi = figpar[2] 56 | 57 | return figobj, axes 58 | 59 | 60 | def recastasnpfloatarray(scalarorvec): 61 | """Recasts an arbitrary argument as a numpy float array. Used 62 | internally by some of the constraint calculations to increase 63 | robustness, though the use of numpy arrays as inputs is the 64 | recommended approach in most cases. 65 | """ 66 | if isinstance(scalarorvec, Number): 67 | scalarorvec = [scalarorvec] 68 | # Convert to Numpy array if list 69 | scalarorvec = np.asarray(scalarorvec, dtype=float) 70 | return scalarorvec 71 | 72 | 73 | def polyblend(time, time_f, signal_i, signal_f): 74 | """A smooth blend between two levels of a signal. Suitable for 75 | approximating thrust variations associated with spool-up and 76 | spool-down, etc. 77 | """ 78 | normtime = time / time_f 79 | scale = signal_f - signal_i 80 | if time < 0: 81 | return signal_i 82 | if time >= time_f: 83 | return signal_f 84 | return signal_i + scale * (normtime ** 2) * (3 - 2 * normtime) 85 | 86 | 87 | def panelplot_with_shared_x(haxis, vaxes, hlabel, 88 | vlabels, vlines, vlinecols, 89 | figpar=[6, 10, 100], 90 | tex=False, fam='sans-serif', 91 | fontsizes=[8, 8, 8]): 92 | """Multi-panel plots with a shared x-axis, e.g., for time series. 93 | For plotting flight data (e.g., as seen in accident reports), use 94 | `fdrplot`. 95 | """ 96 | 97 | npanels = len(vaxes) 98 | figobj, axes = plt.subplots(npanels, 1, sharex=True) 99 | 100 | plt.rc('text', usetex=tex) 101 | plt.rc('font', family=fam) 102 | 103 | # fontsizes is of the format: [axis labels, axis ticks, legend text] 104 | 105 | plt.rc('axes', labelsize=fontsizes[0]) 106 | plt.rc('xtick', labelsize=fontsizes[1]) 107 | plt.rc('ytick', labelsize=fontsizes[1]) 108 | plt.rc('legend', fontsize=fontsizes[2]) 109 | 110 | for i in range(npanels): 111 | axes[i].grid(True) 112 | if type(vaxes[i])==list: 113 | for j, vdata in enumerate(vaxes[i]): 114 | axes[i].plot(haxis, vdata, label=vlabels[i][j+1]) 115 | 116 | axes[i].set_ylabel(vlabels[i][0]) 117 | axes[i].legend(loc='best') 118 | else: 119 | axes[i].set_ylabel(vlabels[i]) 120 | axes[i].plot(haxis, vaxes[i]) 121 | axes[i].grid(True) 122 | axes[i].set_ylabel(vlabels[i]) 123 | vertrange = axes[i].get_ylim() 124 | for j, vli in enumerate(vlines): 125 | axes[i].plot([vli, vli], vertrange, color=vlinecols[j]) 126 | 127 | axes[npanels-1].set_xlabel(hlabel) 128 | 129 | figobj.set_figwidth(figpar[0]) 130 | figobj.set_figheight(figpar[1]) 131 | figobj.dpi = figpar[2] 132 | 133 | return figobj, axes 134 | 135 | 136 | def fdrplot(timeseriescsvfile, timeline, panels, markers, figpars): 137 | """Generates a multi-panel time series plot, suitable, for example, 138 | for the analysis of flight test data. 139 | 140 | **Parameters:** 141 | 142 | timeseriescsvfile 143 | CSV file containing the data to be visualised. It must have a 144 | header containing the names of the channels, with each corresponding 145 | signal in the column underneath its name. There should be a time 146 | column (elapsed time in seconds) and the data should be ordered 147 | according to this column. 148 | 149 | timeline 150 | List with four entries: the header of the time column in the CSV 151 | file (string), the label of the time (horizontal) axis (string), 152 | the time at which the plot should start (float) and the time at 153 | which the plot should end (float). 154 | 155 | panels 156 | List of lists of variables to be plotted. Each list represents 157 | one panel on the plot, and is of the form `[panel y-label, channel1, 158 | channel2, ...]` (all strings), `channel1`, `channel2`, etc. should 159 | be column headings from the CSV file. They will also become 160 | the legend labels. There should be at least two lines (two 161 | panels). See example below. 162 | 163 | markers 164 | A list of two lists, specifying the location and color of 165 | vertical marker lines (e.g., to mark some landmark point 166 | in the flight, such as the beginning of rotation and 167 | lift-off in the example below). 168 | 169 | figpars 170 | A list of two lists and an integer of the form `[[fig width, 171 | fig height, dpi], [axes label font size, tick font size, 172 | legend font size], colourscheme]`. Set `colourscheme` to 173 | 1 for a clean, minimalistic look (recommended). 174 | See example below. 175 | 176 | **Outputs:** 177 | 178 | f 179 | figure object 180 | 181 | axes 182 | subplot axes handles 183 | 184 | flightdata_tf 185 | `pandas` dataframe containing the plotted data (the original CSV 186 | file data trimmed as specified by the time limits). 187 | 188 | **Example - visualising a take-off:** :: 189 | 190 | import ADRpy 191 | from ADRpy import mtools4acdc as adrpytools 192 | import os 193 | 194 | timeline = ['Time', 'Time (s)', 20, 60] 195 | 196 | panels = [ 197 | ['Angles (deg)', 'True AoA', 'Pitch angle'], 198 | ['Altitude (ft)', 'IRS Alt', 'GPS Alt', 'Press alt'], 199 | ['Body rotation rates (deg/s)', 'Roll rate', 'Pitch rate', 'Yaw rate'], 200 | ['Speed (knots)', 'IAS', 'TAS', 'GPS GS'] 201 | ] 202 | 203 | timeseriescsvfile = os.path.join(ADRpy.__path__[0], "data", "sample_takeoff_data.csv") 204 | 205 | markers = [[40, 43.8], ['grey','grey']] 206 | 207 | figpars = [[6, 10, 300], [8, 8, 8], 1] 208 | 209 | figobj, axes, flightdata = adrpytools.fdrplot( 210 | timeseriescsvfile, timeline, panels, markers, figpars) 211 | 212 | Output: :: 213 | 214 | A four-panel time series plot of 11 channels of data. 215 | """ 216 | 217 | # Unpacking the timeline - contains the header of the time 218 | # column, the time label for the whole plot and the edges of the 219 | # required timeframe. 220 | tcol = timeline[0] 221 | tlabel = timeline[1] 222 | ti = timeline[2] 223 | tf = timeline[3] 224 | 225 | vlines = markers[0] 226 | vlinecols = markers[1] 227 | 228 | plt.rcParams['axes.prop_cycle'] = cycler(color='bgrcmyk') 229 | 230 | rawflightdata = pandas.read_csv(timeseriescsvfile) 231 | 232 | flightdata_tf = rawflightdata[(rawflightdata[tcol]>=ti) & 233 | (rawflightdata[tcol]<=tf)] 234 | 235 | timeaxis = flightdata_tf[tcol] 236 | 237 | data_per_panel = [] 238 | panel_y_labels = [] 239 | 240 | for panel in panels: 241 | panel_y_labels.append(panel[0]) 242 | dataline = [] 243 | for signalname in panel[1:]: 244 | dataline.append(flightdata_tf[signalname]) 245 | data_per_panel.append(dataline) 246 | 247 | 248 | f, axes = panelplot_with_shared_x( 249 | timeaxis, data_per_panel, tlabel, panels, 250 | vlines, vlinecols, 251 | figpar=figpars[0], fontsizes=figpars[1]) 252 | 253 | if len(figpars)>2 and figpars[2]==1: 254 | for ax in axes: 255 | ax.patch.set_facecolor('#deedfa') 256 | ax.spines['bottom'].set_color('white') 257 | ax.spines['top'].set_color('white') 258 | ax.spines['right'].set_color('white') 259 | ax.spines['left'].set_color('white') 260 | ax.grid(color='white') 261 | ax.tick_params(axis='x', colors='white') 262 | ax.tick_params(axis='x', labelcolor='black') 263 | ax.tick_params(axis='y', colors='white') 264 | ax.tick_params(axis='y', labelcolor='black') 265 | 266 | plt.tight_layout(pad=0, h_pad=0, w_pad=None, rect=None) 267 | plt.show() 268 | 269 | return f, axes, flightdata_tf 270 | 271 | 272 | def _coordtrans(x, z, theta_rad): 273 | xt = [] 274 | zt = [] 275 | for i, _ in enumerate(x): 276 | xt.append(x[i] * math.cos(theta_rad) + z[i] * math.sin(theta_rad)) 277 | zt.append(-x[i] * math.sin(theta_rad) + z[i] * math.cos(theta_rad)) 278 | return xt, zt 279 | 280 | 281 | def iterable(obj): 282 | """Use to determine if object "obj" is iterable. Returns a boolean.""" 283 | try: 284 | iter(obj) 285 | except Exception: 286 | return False 287 | else: 288 | return True 289 | 290 | -------------------------------------------------------------------------------- /ADRpy/unitconversions.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """ 5 | .. _unitconversions_module: 6 | 7 | Unit Conversions 8 | ---------------- 9 | 10 | This module contains tools for converting between units commonly used in 11 | aircraft design. 12 | 13 | """ 14 | 15 | __author__ = "Andras Sobester" 16 | 17 | import scipy.constants as sc 18 | 19 | def c2f(temp_c): 20 | """Convert temperature value from Celsius to Fahrenheit""" 21 | return temp_c * 9/5 + 32 22 | 23 | def feet2m(length_feet): 24 | """Converts length value from feet to meters""" 25 | return length_feet * 0.3048 26 | 27 | def feet22m2(area_ft2): 28 | """Converts area value from feet squared to meters squared""" 29 | return area_ft2 / 10.7639 30 | 31 | def m22feet2(area_m2): 32 | """Converts area value from meters squared to feet squared""" 33 | return area_m2 * 10.7639 34 | 35 | def m2km(length_m): 36 | """Converts length value from meters to kilometres""" 37 | return length_m / 1000.0 38 | 39 | def km2m(length_km): 40 | """Converts length value from kilometres to metres""" 41 | return length_km * 1000.0 42 | 43 | def c2k(temp_c): 44 | """Convert temperature value from Celsius to Kelvin""" 45 | return temp_c + 273.15 46 | 47 | def k2c(temp_k): 48 | """Convert temperature value from Kelvin to Celsius""" 49 | return temp_k - 273.15 50 | 51 | def c2r(temp_c): 52 | """Convert temperature value from Celsius to Rankine""" 53 | return (temp_c + 273.15) * 9 / 5 54 | 55 | def r2c(temp_r): 56 | """Convert temperature value from Rankine to Celsius""" 57 | return (temp_r - 491.67) * 5 / 9 58 | 59 | def k2r(temp_k): 60 | """Convert temperature value from Kelvin to Rankine""" 61 | return temp_k * 9 / 5 62 | 63 | def r2k(temp_r): 64 | """Convert temperature value from Rankine to Kelvin""" 65 | return temp_r * 5 / 9 66 | 67 | def pa2mbar(press_pa): 68 | """Convert pressure value from Pascal to mbar""" 69 | return press_pa * 0.01 70 | 71 | def mbar2pa(press_mbar): 72 | """Convert pressure value from mbar to Pascal""" 73 | return press_mbar / 0.01 74 | 75 | def inhg2mbar(press_inhg): 76 | """Convert pressure value from inHg to mbar""" 77 | return press_inhg * 33.8639 78 | 79 | def mbar2inhg(press_mbar): 80 | """Convert pressure value from mbar to inHg""" 81 | return press_mbar / 33.8639 82 | 83 | def mbar2lbfft2(press_mbar): 84 | """Convert pressure value from mbar to lb/ft^2""" 85 | return press_mbar * 2.08854 86 | 87 | def lbfft22mbar(press_lbfft2): 88 | """Convert pressure value from lb/ft^2 to mbar""" 89 | return press_lbfft2 / 2.08854 90 | 91 | def mps2kts(speed_mps): 92 | """Convert speed value from m/s to knots""" 93 | return speed_mps * 1.9438445 94 | 95 | def kts2mps(speed_kts): 96 | """Convert speed value knots to mps""" 97 | return speed_kts * 0.5144444 98 | 99 | def m2feet(length_m): 100 | """Convert length value from meters to feet""" 101 | return length_m / 0.3048 102 | 103 | def pa2kgm2(pressure_pa): 104 | """Convert pressure value from Pa to kg/m^2""" 105 | return pressure_pa * 0.1019716212978 106 | 107 | def kg2n(mass_kg): 108 | """Converts mass in kg to weight in N""" 109 | return mass_kg * sc.g 110 | 111 | def n2kg(force_n): 112 | """Converts force in N to mass in kg""" 113 | return force_n / sc.g 114 | 115 | def kgm22pa(pressure_kgm2): 116 | """Convert pressure value from kg/m^2 to Pa""" 117 | return pressure_kgm2 * sc.g 118 | 119 | def fpm2mps(speed_fpm): 120 | """Convert speed value from feet/min to m/s""" 121 | mpm = feet2m(speed_fpm) 122 | return mpm / 60.0 123 | 124 | def lbs2kg(mass_lbs): 125 | """Convert mass value from lbs to kg""" 126 | return mass_lbs * 0.453592 127 | 128 | def kg2lbs(mass_kg): 129 | """Convert mass value from kg to lbs""" 130 | return mass_kg / 0.453592 131 | 132 | def lbf2n(force_lbf): 133 | """Convert force from lbf to N""" 134 | return force_lbf / 0.224809 135 | 136 | def n2lbf(force_n): 137 | """Convert force from N to lbf""" 138 | return force_n * 0.224809 139 | 140 | def wn2wkg(powertoweight_wn): 141 | """Convert power to weight (Watt/N) to W/kg""" 142 | return powertoweight_wn * sc.g 143 | 144 | def wn2kwkg(powertoweight_wn): 145 | """Convert power to weight (Watt/N) to kW/kg""" 146 | return wn2wkg(powertoweight_wn) / 1000.0 147 | 148 | def wn2hpkg(powertoweight_wn): 149 | """Convert power to weight (Watt/N) to hp/kg""" 150 | return wn2kwkg(powertoweight_wn) * 1.34102 151 | 152 | def kw2hp(power_kw): 153 | """Convert power from kW to HP""" 154 | return power_kw * 1.34102 155 | 156 | def hp2kw(power_hp): 157 | """Convert power from HP to kW""" 158 | return power_hp / 1.34102 159 | 160 | def kgm32sft3(density_kgm3): 161 | """Convert density from kg/m^3 to slugs/ft^3""" 162 | return density_kgm3 * 0.00194032 163 | 164 | def sft32kgm3(density_slft3): 165 | """Convert density from slugs/ft^3 to kg/m^3""" 166 | return density_slft3 / 0.00194032 167 | 168 | def tas2eas(tas, localairdensity_kgm3): 169 | """Convert True Air Speed to Equivalent Air Speed""" 170 | return tas * ((localairdensity_kgm3 / 1.225) ** 0.5) 171 | 172 | def eas2tas(eas, localairdensity_kgm3): 173 | """Convert True Air Speed to Equivalent Air Speed""" 174 | return eas / ((localairdensity_kgm3 / 1.225) ** 0.5) 175 | 176 | def pa2lbfft2(pressure_pa): 177 | """Convert pressure from Pascal to lbf(pound-force)/ft^2""" 178 | return pressure_pa * 0.020885434273039 179 | 180 | def lbfft22pa(pressure_lbft2): 181 | """Convert pressure from lbf(pound-force)/ft^2 to Pascal""" 182 | return pressure_lbft2 / 0.020885434273039 183 | -------------------------------------------------------------------------------- /ADRpy/weathertools.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """weathertools.py: 5 | Weather tools for aircraft performance calculations. 6 | 7 | METHODS: readmethistfile, decodemetar 8 | """ 9 | 10 | # pylint: disable-msg=W0702 11 | # Non-critical if except fails too, also relying on error handling 12 | # from the metar package here 13 | 14 | __author__ = "Andras Sobester" 15 | 16 | from metar import Metar 17 | 18 | def readmethistfile(filename): 19 | """Reads a text file containing a METAR on each line""" 20 | 21 | _fstr = filename + '.methist' 22 | 23 | try: 24 | fhandle = open(_fstr, 'r') 25 | metarlist = fhandle.readlines() 26 | # Remove the equal sign (if present) and new line character 27 | # from the end of each line 28 | if metarlist[0][-2] == '=': 29 | metarlist = [line[:-2] for line in metarlist] 30 | else: 31 | metarlist = [line[:-1] for line in metarlist] 32 | return metarlist 33 | except FileNotFoundError: 34 | print("No METAR history file found.") 35 | return None 36 | 37 | 38 | def decodemetar(metar_str): 39 | """Decodes a METAR presented as a string""" 40 | # Wraps the python-metar package, working around a date parsing error 41 | # (python-metar fails if the day is past the current day and out of 42 | # range for the previous month - this would make it unsuitable for 43 | # processing historical METARs) 44 | 45 | try: 46 | decoded_obs = Metar.Metar(metar_str) 47 | except: 48 | # No month has fewer than 28 days, so this should be safe 49 | metar_str = metar_str[0:4] + ' 28' + metar_str[7:] 50 | decoded_obs = Metar.Metar(metar_str) 51 | 52 | return decoded_obs 53 | -------------------------------------------------------------------------------- /CONTRIBUTORS_GUIDE.md: -------------------------------------------------------------------------------- 1 | Aircraft Design Recipes in Python -- a Guide for Contributors 2 | ============================================================= 3 | 4 | Thank you for considering to contribute to ADRpy! Please follow these... 5 | 6 | General principles 7 | ------------------ 8 | 9 | 1. Follow the [PEP 8 principles](https://www.python.org/dev/peps/pep-0008/) as far 10 | as a possible, but never at the expense of readability or execution speed. 11 | 12 | 2. Variable and function/method names. If dimensional, they should have units at 13 | the end of the name, for example `dynamicpressure_pa(airspeed_mps=0, altitudes_m=0)`. 14 | Names of internal function/method names not meant to be called directly by the user 15 | should start with an underscore, e.g., `_somefunction(x)`. 16 | 17 | 3. Each function/method exposed to the user must have a docstring containing three 18 | main sections: Parameters, Returns and a simple Example (plus an optional Notes section 19 | if it helps with clarity and usability, e.g., to place the item in a broader context). 20 | Use an existing function (e.g., `twrequired_trn(wingloading_pa)` in the `constraintanalysis` 21 | module) as a template. Include equations if appropriate (see, as an example, 22 | `thrusttoweight_takeoff`). Always check afterwards that your docstring has rendered 23 | correctly on `readthedocs`. 24 | 25 | 4. Beyond the simple example in each docstring, a more extensive case study, with 26 | detailed, step-by-step explanations, should be included in a Jupyter notebook and 27 | placed in ADRpy/docs/ADRpy/notebooks. 28 | 29 | 5. Every new function/method needs a test, the more extensive the better. The test 30 | should be based on public domain data. Please include a reference to the data, going back 31 | as close to its original source as you can get. If your new code/test has new dependencies, 32 | remember to add these to the `requirements.txt` file at the top level of this directory structure. 33 | 34 | 6. If your code requires a unit conversion, always use the `unitconversions.py` module 35 | and never code conversions locally into the method. If `unitconversions.py` does not 36 | have the conversion you're after, please add it (along with an appropriate test). 37 | 38 | 7. DRY - Don't Repeat Yourself (a generalisation of 6.) - never write the same code 39 | in multiple different places. "Every piece of knowledge must have a single, unambiguous, 40 | authoritative representation within a system." (Hunt and Thomas) 41 | 42 | Happy coding! -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md 2 | include requirements.txt 3 | recursive-include ADRpy/data * 4 | recursive-include docs/ADRpy * 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![ADRpy](https://github.com/sobester/ADRpy/raw/master/docs/ADRpy/ADRpy_splash.png) 2 | 3 | Aircraft Design Recipes in Python 4 | ================================= 5 | 6 | [![PyPI version](https://badge.fury.io/py/ADRpy.svg)](https://badge.fury.io/py/ADRpy) 7 | [![Build Status](https://travis-ci.com/sobester/ADRpy.svg?branch=master)](https://travis-ci.com/sobester/ADRpy) 8 | 9 | A library of aircraft conceptual design and performance analysis tools, including 10 | virtual (design) atmospheres, constraint analysis methods, propulsion system 11 | performance models, conversion functions and much else. 12 | 13 | For a detailed description of the library, please consult the 14 | [Documentation](https://adrpy.readthedocs.io/en/latest/). To get started, 15 | follow the instructions below. 16 | 17 | For video tutorials and explainers (a.k.a. *ADRpy Shorts*) scroll to the bottom of this page. 18 | 19 | author: Andras Sobester 20 | 21 | Installation / Usage 22 | -------------------- 23 | 24 | ADRpy is written in Python 3 and tested in Python 3.6 through to Python 3.12. 25 | 26 | It is not available for Python 2. 27 | 28 | On most systems you should be able to simply open an operating system terminal 29 | and at the command prompt type 30 | 31 | $ pip install ADRpy 32 | 33 | or 34 | 35 | $ python -m pip install ADRpy 36 | 37 | NOTE: `pip` is a Python package; if it is not available on your system, download 38 | [get-pip.py](https://bootstrap.pypa.io/get-pip.py) and run it in Python by entering 39 | 40 | $ python get-pip.py 41 | 42 | at the operating system prompt. 43 | 44 | An alternative approach to installing ADRpy is to clone the GitHub repository, by typing 45 | 46 | $ git clone https://github.com/sobester/ADRpy.git 47 | 48 | at the command prompt and then executing the setup file in the same directory by entering: 49 | 50 | $ python setup.py install 51 | 52 | 53 | A 'hello world' example: atmospheric properties 54 | ----------------------------------------------- 55 | 56 | There are several options for running the examples shown here: you could copy and paste them 57 | into a `.py` file, save it and run it in Python, or you could enter the lines, in sequence, 58 | at the prompt of a Python terminal. You could also copy and paste them into a Jupyter notebook 59 | (`.ipynb` file) cell and execute the cell. 60 | 61 | ```python 62 | from ADRpy import atmospheres as at 63 | from ADRpy import unitconversions as co 64 | 65 | # Instantiate an atmosphere object: an ISA with a +10C offset 66 | isa = at.Atmosphere(offset_deg=10) 67 | 68 | # Query the ambient density in this model at 41,000 feet 69 | print("ISA+10C density at 41,000 feet (geopotential):", 70 | isa.airdens_kgpm3(co.feet2m(41000)), "kg/m^3") 71 | ``` 72 | 73 | You should see the following output: 74 | 75 | ISA+10C density at 41,000 feet (geopotential): 0.274725888531 kg/m^3 76 | 77 | A design example: wing/powerplant sizing for take-off 78 | ----------------------------------------------------- 79 | 80 | ```python 81 | # Compute the thrust to weight ratio required for take-off, given 82 | # a basic design brief, a basic design definition and a set of 83 | # atmospheric conditions 84 | 85 | from ADRpy import atmospheres as at 86 | from ADRpy import constraintanalysis as ca 87 | from ADRpy import unitconversions as co 88 | 89 | 90 | # The environment: 'unusually high temperature at 5km' atmosphere 91 | # from MIL-HDBK-310. 92 | 93 | # Extract the relevant atmospheric profiles... 94 | profile_ht5_1percentile, _ = at.mil_hdbk_310('high', 'temp', 5) 95 | 96 | # ...then use them to create an atmosphere object 97 | m310_ht5 = at.Atmosphere(profile=profile_ht5_1percentile) 98 | 99 | #==================================================================== 100 | 101 | # The take-off aspects of the design brief: 102 | designbrief = {'rwyelevation_m':1000, 'groundrun_m':1200} 103 | 104 | # Basic features of the concept: 105 | # aspect ratio, engine bypass ratio, throttle ratio 106 | designdefinition = {'aspectratio':7.3, 'bpr':3.9, 'tr':1.05} 107 | 108 | # Initial estimates of aerodynamic performance: 109 | designperf = {'CDTO':0.04, 'CLTO':0.9, 'CLmaxTO':1.6, 110 | 'mu_R':0.02} # ...and wheel rolling resistance coeff. 111 | 112 | # An aircraft concept object can now be instantiated 113 | concept = ca.AircraftConcept(designbrief, designdefinition, 114 | designperf, m310_ht5) 115 | 116 | #==================================================================== 117 | 118 | # Compute the required standard day sea level thrust/MTOW ratio reqd. 119 | # for the target take-off performance at a range of wing loadings: 120 | wingloadinglist_pa = [2000, 3000, 4000, 5000] 121 | 122 | tw_sl, liftoffspeed_mpstas, _ = concept.twrequired_to(wingloadinglist_pa) 123 | 124 | # The take-off constraint calculation also supplies an estimate of 125 | # the lift-off speed; this is TAS (assuming zero wind) - we convert 126 | # it to equivalent airspeed (EAS), in m/s: 127 | liftoffspeed_mpseas = \ 128 | m310_ht5.tas2eas(liftoffspeed_mpstas, designbrief['rwyelevation_m']) 129 | 130 | print("Required T/W and V_liftoff under MIL-HDBK-310 conditions:") 131 | print("\nT/W (std. day, SL, static thrust):", tw_sl) 132 | print("\nLiftoff speed (KEAS):", co.mps2kts(liftoffspeed_mpseas)) 133 | ``` 134 | 135 | You should see the following output: 136 | 137 | Required T/W and V_liftoff under MIL-HDBK-310 conditions: 138 | 139 | T/W (std. day, SL, static thrust): [ 0.19618164 0.2710746 0.34472518 0.41715311] 140 | 141 | Liftoff speed (KEAS): [ 96.99203483 118.79049722 137.1674511 153.35787248] 142 | 143 | 144 | More extensive examples - a library of notebooks 145 | ------------------------------------------------ 146 | 147 | To view them on GitHub, go to [ADRpy's notebooks folder](https://github.com/sobester/ADRpy/tree/master/docs/ADRpy/notebooks). 148 | 149 | Alternatively, grab the whole repository as a .zip by clicking the big, green 'Code' button at the top of this page. 150 | 151 | ADRpy Shorts - video tutorials and explainers 152 | --------------------------------------------------------- 153 | 154 | **1. An Aircraft Engineer's Brief Introduction to Modelling the Atmosphere** 155 | 156 | [![1. An Aircraft Engineer's Brief Introduction to Modelling the Atmosphere](http://img.youtube.com/vi/II9vuVCgV-w/0.jpg)](http://www.youtube.com/watch?v=II9vuVCgV-w) 157 | 158 | 159 | **2. On V-n Diagrams and How to Build them in ADRpy** 160 | 161 | [![2. On V-n Diagrams and How to Build them in ADRpy](http://img.youtube.com/vi/s-d5z-BQovY/0.jpg)](http://www.youtube.com/watch?v=s-d5z-BQovY) 162 | 163 | 164 | **3. Speed in aviation - GS, WS, TAS, IAS, CAS and EAS** 165 | 166 | [![3. Speed in aviation - GS, WS, TAS, IAS, CAS and EAS](http://img.youtube.com/vi/WSzDXlTlXiI/0.jpg)](http://www.youtube.com/watch?v=WSzDXlTlXiI) 167 | 168 | 169 | **4. Wing and propulsion system sizing with ADRpy** 170 | 171 | [![4. Wing and propulsion system sizing](http://img.youtube.com/vi/TMM7mE1NjaE/0.jpg)](https://www.youtube.com/watch?v=TMM7mE1NjaE) 172 | -------------------------------------------------------------------------------- /dist/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/dist/.DS_Store -------------------------------------------------------------------------------- /docs/ADRpy/ADRpy_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/ADRpy_splash.png -------------------------------------------------------------------------------- /docs/ADRpy/gnfla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/gnfla.png -------------------------------------------------------------------------------- /docs/ADRpy/img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/img/.DS_Store -------------------------------------------------------------------------------- /docs/ADRpy/img/G-OUAV-banner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/img/G-OUAV-banner1.png -------------------------------------------------------------------------------- /docs/ADRpy/img/G-OUAV-banner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/img/G-OUAV-banner2.png -------------------------------------------------------------------------------- /docs/ADRpy/img/climb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/img/climb.png -------------------------------------------------------------------------------- /docs/ADRpy/img/cs23_333d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/img/cs23_333d.png -------------------------------------------------------------------------------- /docs/ADRpy/img/isa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/img/isa.png -------------------------------------------------------------------------------- /docs/ADRpy/img/turn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/ADRpy/img/turn.png -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Internal variables. 16 | PAPEROPT_a4 = -D latex_paper_size=a4 17 | PAPEROPT_letter = -D latex_paper_size=letter 18 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 19 | # the i18n builder cannot share the environment and doctrees with the others 20 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 21 | 22 | .PHONY: help 23 | help: 24 | @echo "Please use \`make ' where is one of" 25 | @echo " html to make standalone HTML files" 26 | @echo " dirhtml to make HTML files named index.html in directories" 27 | @echo " singlehtml to make a single large HTML file" 28 | @echo " pickle to make pickle files" 29 | @echo " json to make JSON files" 30 | @echo " htmlhelp to make HTML files and a HTML help project" 31 | @echo " qthelp to make HTML files and a qthelp project" 32 | @echo " applehelp to make an Apple Help Book" 33 | @echo " devhelp to make HTML files and a Devhelp project" 34 | @echo " epub to make an epub" 35 | @echo " epub3 to make an epub3" 36 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 37 | @echo " latexpdf to make LaTeX files and run them through pdflatex" 38 | @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" 39 | @echo " text to make text files" 40 | @echo " man to make manual pages" 41 | @echo " texinfo to make Texinfo files" 42 | @echo " info to make Texinfo files and run them through makeinfo" 43 | @echo " gettext to make PO message catalogs" 44 | @echo " changes to make an overview of all changed/added/deprecated items" 45 | @echo " xml to make Docutils-native XML files" 46 | @echo " pseudoxml to make pseudoxml-XML files for display purposes" 47 | @echo " linkcheck to check all external links for integrity" 48 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 49 | @echo " coverage to run coverage check of the documentation (if enabled)" 50 | @echo " dummy to check syntax errors of document sources" 51 | 52 | .PHONY: clean 53 | clean: 54 | rm -rf $(BUILDDIR)/* 55 | 56 | .PHONY: html 57 | html: 58 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 59 | @echo 60 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 61 | 62 | .PHONY: dirhtml 63 | dirhtml: 64 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 65 | @echo 66 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 67 | 68 | .PHONY: singlehtml 69 | singlehtml: 70 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 71 | @echo 72 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 73 | 74 | .PHONY: pickle 75 | pickle: 76 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 77 | @echo 78 | @echo "Build finished; now you can process the pickle files." 79 | 80 | .PHONY: json 81 | json: 82 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 83 | @echo 84 | @echo "Build finished; now you can process the JSON files." 85 | 86 | .PHONY: htmlhelp 87 | htmlhelp: 88 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 89 | @echo 90 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 91 | ".hhp project file in $(BUILDDIR)/htmlhelp." 92 | 93 | .PHONY: qthelp 94 | qthelp: 95 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 96 | @echo 97 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 98 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 99 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/twitterpandas.qhcp" 100 | @echo "To view the help file:" 101 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/twitterpandas.qhc" 102 | 103 | .PHONY: applehelp 104 | applehelp: 105 | $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp 106 | @echo 107 | @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." 108 | @echo "N.B. You won't be able to view it unless you put it in" \ 109 | "~/Library/Documentation/Help or install it in your application" \ 110 | "bundle." 111 | 112 | .PHONY: devhelp 113 | devhelp: 114 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 115 | @echo 116 | @echo "Build finished." 117 | @echo "To view the help file:" 118 | @echo "# mkdir -p $$HOME/.local/share/devhelp/twitterpandas" 119 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/twitterpandas" 120 | @echo "# devhelp" 121 | 122 | .PHONY: epub 123 | epub: 124 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 125 | @echo 126 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 127 | 128 | .PHONY: epub3 129 | epub3: 130 | $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 131 | @echo 132 | @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." 133 | 134 | .PHONY: latex 135 | latex: 136 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 137 | @echo 138 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 139 | @echo "Run \`make' in that directory to run these through (pdf)latex" \ 140 | "(use \`make latexpdf' here to do that automatically)." 141 | 142 | .PHONY: latexpdf 143 | latexpdf: 144 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 145 | @echo "Running LaTeX files through pdflatex..." 146 | $(MAKE) -C $(BUILDDIR)/latex all-pdf 147 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 148 | 149 | .PHONY: latexpdfja 150 | latexpdfja: 151 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 152 | @echo "Running LaTeX files through platex and dvipdfmx..." 153 | $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja 154 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 155 | 156 | .PHONY: text 157 | text: 158 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 159 | @echo 160 | @echo "Build finished. The text files are in $(BUILDDIR)/text." 161 | 162 | .PHONY: man 163 | man: 164 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 165 | @echo 166 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 167 | 168 | .PHONY: texinfo 169 | texinfo: 170 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 171 | @echo 172 | @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." 173 | @echo "Run \`make' in that directory to run these through makeinfo" \ 174 | "(use \`make info' here to do that automatically)." 175 | 176 | .PHONY: info 177 | info: 178 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 179 | @echo "Running Texinfo files through makeinfo..." 180 | make -C $(BUILDDIR)/texinfo info 181 | @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." 182 | 183 | .PHONY: gettext 184 | gettext: 185 | $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale 186 | @echo 187 | @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." 188 | 189 | .PHONY: changes 190 | changes: 191 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 192 | @echo 193 | @echo "The overview file is in $(BUILDDIR)/changes." 194 | 195 | .PHONY: linkcheck 196 | linkcheck: 197 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 198 | @echo 199 | @echo "Link check complete; look for any errors in the above output " \ 200 | "or in $(BUILDDIR)/linkcheck/output.txt." 201 | 202 | .PHONY: doctest 203 | doctest: 204 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 205 | @echo "Testing of doctests in the sources finished, look at the " \ 206 | "results in $(BUILDDIR)/doctest/output.txt." 207 | 208 | .PHONY: coverage 209 | coverage: 210 | $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage 211 | @echo "Testing of coverage in the sources finished, look at the " \ 212 | "results in $(BUILDDIR)/coverage/python.txt." 213 | 214 | .PHONY: xml 215 | xml: 216 | $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml 217 | @echo 218 | @echo "Build finished. The XML files are in $(BUILDDIR)/xml." 219 | 220 | .PHONY: pseudoxml 221 | pseudoxml: 222 | $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml 223 | @echo 224 | @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." 225 | 226 | .PHONY: dummy 227 | dummy: 228 | $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy 229 | @echo 230 | @echo "Build finished. Dummy builder generates no files." 231 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | REM Command file for Sphinx documentation 4 | 5 | if "%SPHINXBUILD%" == "" ( 6 | set SPHINXBUILD=sphinx-build 7 | ) 8 | set BUILDDIR=build 9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source 10 | set I18NSPHINXOPTS=%SPHINXOPTS% source 11 | if NOT "%PAPER%" == "" ( 12 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% 13 | set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% 14 | ) 15 | 16 | if "%1" == "" goto help 17 | 18 | if "%1" == "help" ( 19 | :help 20 | echo.Please use `make ^` where ^ is one of 21 | echo. html to make standalone HTML files 22 | echo. dirhtml to make HTML files named index.html in directories 23 | echo. singlehtml to make a single large HTML file 24 | echo. pickle to make pickle files 25 | echo. json to make JSON files 26 | echo. htmlhelp to make HTML files and a HTML help project 27 | echo. qthelp to make HTML files and a qthelp project 28 | echo. devhelp to make HTML files and a Devhelp project 29 | echo. epub to make an epub 30 | echo. epub3 to make an epub3 31 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter 32 | echo. text to make text files 33 | echo. man to make manual pages 34 | echo. texinfo to make Texinfo files 35 | echo. gettext to make PO message catalogs 36 | echo. changes to make an overview over all changed/added/deprecated items 37 | echo. xml to make Docutils-native XML files 38 | echo. pseudoxml to make pseudoxml-XML files for display purposes 39 | echo. linkcheck to check all external links for integrity 40 | echo. doctest to run all doctests embedded in the documentation if enabled 41 | echo. coverage to run coverage check of the documentation if enabled 42 | echo. dummy to check syntax errors of document sources 43 | goto end 44 | ) 45 | 46 | if "%1" == "clean" ( 47 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i 48 | del /q /s %BUILDDIR%\* 49 | goto end 50 | ) 51 | 52 | 53 | REM Check if sphinx-build is available and fallback to Python version if any 54 | %SPHINXBUILD% 1>NUL 2>NUL 55 | if errorlevel 9009 goto sphinx_python 56 | goto sphinx_ok 57 | 58 | :sphinx_python 59 | 60 | set SPHINXBUILD=python -m sphinx.__init__ 61 | %SPHINXBUILD% 2> nul 62 | if errorlevel 9009 ( 63 | echo. 64 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 65 | echo.installed, then set the SPHINXBUILD environment variable to point 66 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 67 | echo.may add the Sphinx directory to PATH. 68 | echo. 69 | echo.If you don't have Sphinx installed, grab it from 70 | echo.http://sphinx-doc.org/ 71 | exit /b 1 72 | ) 73 | 74 | :sphinx_ok 75 | 76 | 77 | if "%1" == "html" ( 78 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html 79 | if errorlevel 1 exit /b 1 80 | echo. 81 | echo.Build finished. The HTML pages are in %BUILDDIR%/html. 82 | goto end 83 | ) 84 | 85 | if "%1" == "dirhtml" ( 86 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml 87 | if errorlevel 1 exit /b 1 88 | echo. 89 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. 90 | goto end 91 | ) 92 | 93 | if "%1" == "singlehtml" ( 94 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml 95 | if errorlevel 1 exit /b 1 96 | echo. 97 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. 98 | goto end 99 | ) 100 | 101 | if "%1" == "pickle" ( 102 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle 103 | if errorlevel 1 exit /b 1 104 | echo. 105 | echo.Build finished; now you can process the pickle files. 106 | goto end 107 | ) 108 | 109 | if "%1" == "json" ( 110 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json 111 | if errorlevel 1 exit /b 1 112 | echo. 113 | echo.Build finished; now you can process the JSON files. 114 | goto end 115 | ) 116 | 117 | if "%1" == "htmlhelp" ( 118 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp 119 | if errorlevel 1 exit /b 1 120 | echo. 121 | echo.Build finished; now you can run HTML Help Workshop with the ^ 122 | .hhp project file in %BUILDDIR%/htmlhelp. 123 | goto end 124 | ) 125 | 126 | if "%1" == "qthelp" ( 127 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp 128 | if errorlevel 1 exit /b 1 129 | echo. 130 | echo.Build finished; now you can run "qcollectiongenerator" with the ^ 131 | .qhcp project file in %BUILDDIR%/qthelp, like this: 132 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\twitterpandas.qhcp 133 | echo.To view the help file: 134 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\twitterpandas.ghc 135 | goto end 136 | ) 137 | 138 | if "%1" == "devhelp" ( 139 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp 140 | if errorlevel 1 exit /b 1 141 | echo. 142 | echo.Build finished. 143 | goto end 144 | ) 145 | 146 | if "%1" == "epub" ( 147 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub 148 | if errorlevel 1 exit /b 1 149 | echo. 150 | echo.Build finished. The epub file is in %BUILDDIR%/epub. 151 | goto end 152 | ) 153 | 154 | if "%1" == "epub3" ( 155 | %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3 156 | if errorlevel 1 exit /b 1 157 | echo. 158 | echo.Build finished. The epub3 file is in %BUILDDIR%/epub3. 159 | goto end 160 | ) 161 | 162 | if "%1" == "latex" ( 163 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 164 | if errorlevel 1 exit /b 1 165 | echo. 166 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. 167 | goto end 168 | ) 169 | 170 | if "%1" == "latexpdf" ( 171 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 172 | cd %BUILDDIR%/latex 173 | make all-pdf 174 | cd %~dp0 175 | echo. 176 | echo.Build finished; the PDF files are in %BUILDDIR%/latex. 177 | goto end 178 | ) 179 | 180 | if "%1" == "latexpdfja" ( 181 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 182 | cd %BUILDDIR%/latex 183 | make all-pdf-ja 184 | cd %~dp0 185 | echo. 186 | echo.Build finished; the PDF files are in %BUILDDIR%/latex. 187 | goto end 188 | ) 189 | 190 | if "%1" == "text" ( 191 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text 192 | if errorlevel 1 exit /b 1 193 | echo. 194 | echo.Build finished. The text files are in %BUILDDIR%/text. 195 | goto end 196 | ) 197 | 198 | if "%1" == "man" ( 199 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man 200 | if errorlevel 1 exit /b 1 201 | echo. 202 | echo.Build finished. The manual pages are in %BUILDDIR%/man. 203 | goto end 204 | ) 205 | 206 | if "%1" == "texinfo" ( 207 | %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo 208 | if errorlevel 1 exit /b 1 209 | echo. 210 | echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. 211 | goto end 212 | ) 213 | 214 | if "%1" == "gettext" ( 215 | %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale 216 | if errorlevel 1 exit /b 1 217 | echo. 218 | echo.Build finished. The message catalogs are in %BUILDDIR%/locale. 219 | goto end 220 | ) 221 | 222 | if "%1" == "changes" ( 223 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes 224 | if errorlevel 1 exit /b 1 225 | echo. 226 | echo.The overview file is in %BUILDDIR%/changes. 227 | goto end 228 | ) 229 | 230 | if "%1" == "linkcheck" ( 231 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck 232 | if errorlevel 1 exit /b 1 233 | echo. 234 | echo.Link check complete; look for any errors in the above output ^ 235 | or in %BUILDDIR%/linkcheck/output.txt. 236 | goto end 237 | ) 238 | 239 | if "%1" == "doctest" ( 240 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest 241 | if errorlevel 1 exit /b 1 242 | echo. 243 | echo.Testing of doctests in the sources finished, look at the ^ 244 | results in %BUILDDIR%/doctest/output.txt. 245 | goto end 246 | ) 247 | 248 | if "%1" == "coverage" ( 249 | %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage 250 | if errorlevel 1 exit /b 1 251 | echo. 252 | echo.Testing of coverage in the sources finished, look at the ^ 253 | results in %BUILDDIR%/coverage/python.txt. 254 | goto end 255 | ) 256 | 257 | if "%1" == "xml" ( 258 | %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml 259 | if errorlevel 1 exit /b 1 260 | echo. 261 | echo.Build finished. The XML files are in %BUILDDIR%/xml. 262 | goto end 263 | ) 264 | 265 | if "%1" == "pseudoxml" ( 266 | %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml 267 | if errorlevel 1 exit /b 1 268 | echo. 269 | echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. 270 | goto end 271 | ) 272 | 273 | if "%1" == "dummy" ( 274 | %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy 275 | if errorlevel 1 exit /b 1 276 | echo. 277 | echo.Build finished. Dummy builder generates no files. 278 | goto end 279 | ) 280 | 281 | :end 282 | -------------------------------------------------------------------------------- /docs/source/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/docs/source/.DS_Store -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # Aircraft Design Recipes in Python documentation build configuration file, created by 5 | # cookiecutter pipproject 6 | # 7 | # This file is execfile()d with the current directory set to its 8 | # containing dir. 9 | # 10 | # Note that not all possible configuration values are present in this 11 | # autogenerated file. 12 | # 13 | # All configuration values have a default; values that are commented out 14 | # serve to show the default. 15 | 16 | import sys 17 | import os 18 | 19 | # If extensions (or modules to document with autodoc) are in another directory, 20 | # add these directories to sys.path here. If the directory is relative to the 21 | # documentation root, use os.path.abspath to make it absolute, like shown here. 22 | sys.path.insert(0, os.path.abspath('../../ADRpy/')) 23 | 24 | # -- General configuration ------------------------------------------------ 25 | 26 | # If your documentation needs a minimal Sphinx version, state it here. 27 | #needs_sphinx = '1.0' 28 | 29 | # Add any Sphinx extension module names here, as strings. They can be 30 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 31 | # ones. 32 | extensions = [ 33 | 'sphinx.ext.autodoc', 34 | ] 35 | 36 | # Add any paths that contain templates here, relative to this directory. 37 | templates_path = ['_templates'] 38 | 39 | # The suffix(es) of source filenames. 40 | # You can specify multiple suffix as a list of string: 41 | # source_suffix = ['.rst', '.md'] 42 | source_suffix = '.rst' 43 | 44 | # The encoding of source files. 45 | #source_encoding = 'utf-8-sig' 46 | 47 | # The master toctree document. 48 | master_doc = 'index' 49 | 50 | # General information about the project. 51 | project = 'Aircraft Design Recipes in Python' 52 | copyright = '2021, Andras Sobester' 53 | author = 'Andras Sobester' 54 | 55 | # The version info for the project you're documenting, acts as replacement for 56 | # |version| and |release|, also used in various other places throughout the 57 | # built documents. 58 | # 59 | # The short X.Y version. 60 | version = '0.2' 61 | # The full version, including alpha/beta/rc tags. 62 | release = '0.2.5' 63 | 64 | # The language for content autogenerated by Sphinx. Refer to documentation 65 | # for a list of supported languages. 66 | # 67 | # This is also used if you do content translation via gettext catalogs. 68 | # Usually you set "language" from the command line for these cases. 69 | language = None 70 | 71 | # There are two options for replacing |today|: either, you set today to some 72 | # non-false value, then it is used: 73 | #today = '' 74 | # Else, today_fmt is used as the format for a strftime call. 75 | #today_fmt = '%B %d, %Y' 76 | 77 | # List of patterns, relative to source directory, that match files and 78 | # directories to ignore when looking for source files. 79 | # This patterns also effect to html_static_path and html_extra_path 80 | exclude_patterns = [] 81 | 82 | # The reST default role (used for this markup: `text`) to use for all 83 | # documents. 84 | #default_role = None 85 | 86 | # If true, '()' will be appended to :func: etc. cross-reference text. 87 | #add_function_parentheses = True 88 | 89 | # If true, the current module name will be prepended to all description 90 | # unit titles (such as .. function::). 91 | #add_module_names = True 92 | 93 | # If true, sectionauthor and moduleauthor directives will be shown in the 94 | # output. They are ignored by default. 95 | #show_authors = False 96 | 97 | # The name of the Pygments (syntax highlighting) style to use. 98 | pygments_style = 'sphinx' 99 | 100 | # A list of ignored prefixes for module index sorting. 101 | #modindex_common_prefix = [] 102 | 103 | # If true, keep warnings as "system message" paragraphs in the built documents. 104 | #keep_warnings = False 105 | 106 | # If true, `todo` and `todoList` produce output, else they produce nothing. 107 | todo_include_todos = False 108 | 109 | 110 | # -- Options for HTML output ---------------------------------------------- 111 | 112 | # The theme to use for HTML and HTML Help pages. See the documentation for 113 | # a list of builtin themes. 114 | html_theme = 'sphinx_rtd_theme' 115 | 116 | # Theme options are theme-specific and customize the look and feel of a theme 117 | # further. For a list of options available for each theme, see the 118 | # documentation. 119 | html_theme_options = { 120 | # Toc options 121 | 'collapse_navigation': False 122 | } 123 | 124 | # Add any paths that contain custom themes here, relative to this directory. 125 | #html_theme_path = [] 126 | 127 | # The name for this set of Sphinx documents. 128 | # " v documentation" by default. 129 | html_title = 'Aircraft Design Recipes in Python' 130 | 131 | # A shorter title for the navigation bar. Default is the same as html_title. 132 | html_short_title = 'ADRpy' 133 | 134 | # The name of an image file (relative to this directory) to place at the top 135 | # of the sidebar. 136 | html_logo = '../ADRpy/ADRpy_splash.png' 137 | 138 | # The name of an image file (relative to this directory) to use as a favicon of 139 | # the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 140 | # pixels large. 141 | #html_favicon = None 142 | 143 | # Add any paths that contain custom static files (such as style sheets) here, 144 | # relative to this directory. They are copied after the builtin static files, 145 | # so a file named "default.css" will overwrite the builtin "default.css". 146 | html_static_path = ['_static'] 147 | 148 | # Add any extra paths that contain custom files (such as robots.txt or 149 | # .htaccess) here, relative to this directory. These files are copied 150 | # directly to the root of the documentation. 151 | #html_extra_path = [] 152 | 153 | # If not None, a 'Last updated on:' timestamp is inserted at every page 154 | # bottom, using the given strftime format. 155 | # The empty string is equivalent to '%b %d, %Y'. 156 | #html_last_updated_fmt = None 157 | 158 | # If true, SmartyPants will be used to convert quotes and dashes to 159 | # typographically correct entities. 160 | #html_use_smartypants = True 161 | 162 | # Custom sidebar templates, maps document names to template names. 163 | #html_sidebars = {} 164 | 165 | # Additional templates that should be rendered to pages, maps page names to 166 | # template names. 167 | #html_additional_pages = {} 168 | 169 | # If false, no module index is generated. 170 | html_domain_indices = True 171 | 172 | # If false, no index is generated. 173 | html_use_index = True 174 | 175 | # If true, the index is split into individual pages for each letter. 176 | #html_split_index = False 177 | 178 | # If true, links to the reST sources are added to the pages. 179 | html_show_sourcelink = False 180 | 181 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 182 | html_show_sphinx = False 183 | 184 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 185 | html_show_copyright = True 186 | 187 | # If true, an OpenSearch description file will be output, and all pages will 188 | # contain a tag referring to it. The value of this option must be the 189 | # base URL from which the finished HTML is served. 190 | #html_use_opensearch = '' 191 | 192 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 193 | #html_file_suffix = None 194 | 195 | # Language to be used for generating the HTML full-text search index. 196 | # Sphinx supports the following languages: 197 | # 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' 198 | # 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh' 199 | #html_search_language = 'en' 200 | 201 | # A dictionary with options for the search language support, empty by default. 202 | # 'ja' uses this config value. 203 | # 'zh' user can custom change `jieba` dictionary path. 204 | #html_search_options = {'type': 'default'} 205 | 206 | # The name of a javascript file (relative to the configuration directory) that 207 | # implements a search results scorer. If empty, the default will be used. 208 | #html_search_scorer = 'scorer.js' 209 | 210 | # Output file base name for HTML help builder. 211 | htmlhelp_basename = 'Aircraft Design Recipes in Pythondoc' 212 | 213 | # -- Options for LaTeX output --------------------------------------------- 214 | 215 | latex_elements = { 216 | # The paper size ('letterpaper' or 'a4paper'). 217 | #'papersize': 'letterpaper', 218 | 219 | # The font size ('10pt', '11pt' or '12pt'). 220 | #'pointsize': '10pt', 221 | 222 | # Additional stuff for the LaTeX preamble. 223 | #'preamble': '', 224 | 225 | # Latex figure (float) alignment 226 | #'figure_align': 'htbp', 227 | } 228 | 229 | # Grouping the document tree into LaTeX files. List of tuples 230 | # (source start file, target name, title, 231 | # author, documentclass [howto, manual, or own class]). 232 | latex_documents = [ 233 | (master_doc, 'Aircraft Design Recipes in Python.tex', 'Aircraft Design Recipes in Python Documentation', 234 | 'Andras Sobester', 'manual'), 235 | ] 236 | 237 | # The name of an image file (relative to this directory) to place at the top of 238 | # the title page. 239 | #latex_logo = None 240 | 241 | # For "manual" documents, if this is true, then toplevel headings are parts, 242 | # not chapters. 243 | #latex_use_parts = False 244 | 245 | # If true, show page references after internal links. 246 | #latex_show_pagerefs = False 247 | 248 | # If true, show URL addresses after external links. 249 | #latex_show_urls = False 250 | 251 | # Documents to append as an appendix to all manuals. 252 | #latex_appendices = [] 253 | 254 | # If false, no module index is generated. 255 | #latex_domain_indices = True 256 | 257 | 258 | # -- Options for manual page output --------------------------------------- 259 | 260 | # One entry per manual page. List of tuples 261 | # (source start file, name, description, authors, manual section). 262 | man_pages = [ 263 | (master_doc, 'Aircraft Design Recipes in Python', 'Aircraft Design Recipes in Python Documentation', 264 | [author], 1) 265 | ] 266 | 267 | # If true, show URL addresses after external links. 268 | #man_show_urls = False 269 | 270 | 271 | # -- Options for Texinfo output ------------------------------------------- 272 | 273 | # Grouping the document tree into Texinfo files. List of tuples 274 | # (source start file, target name, title, author, 275 | # dir menu entry, description, category) 276 | texinfo_documents = [ 277 | (master_doc, 'Aircraft Design Recipes in Python', 'Aircraft Design Recipes in Python Documentation', 278 | author, 'Aircraft Design Recipes in Python', 'A library of aircraft conceptual sizing and performance analysis tools.', 279 | 'ADRpy'), 280 | ] 281 | 282 | # Documents to append as an appendix to all manuals. 283 | #texinfo_appendices = [] 284 | 285 | # If false, no module index is generated. 286 | #texinfo_domain_indices = True 287 | 288 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 289 | #texinfo_show_urls = 'footnote' 290 | 291 | # If true, do not generate a @detailmenu in the "Top" node's menu. 292 | #texinfo_no_detailmenu = False 293 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. image:: https://badge.fury.io/py/ADRpy.svg 2 | :target: https://badge.fury.io/py/ADRpy 3 | 4 | .. image:: https://travis-ci.com/sobester/ADRpy.svg?branch=master 5 | :target: https://travis-ci.com/sobester/ADRpy 6 | 7 | Aircraft Design Recipes in Python -- User's Guide 8 | ================================================= 9 | 10 | by `Andras Sobester `_ 11 | 12 | **Welcome to ADRpy**, a free library of aircraft design and performance analysis tools suitable for 13 | rapid sizing calculations. The models implemented in ADRpy are largely analytical, enabling 14 | fast explorations of large design spaces. Most of the methods can already be used in the 15 | earliest phases of the design process, even before a geometry model is built. In fact, ADRpy 16 | can serve as the basis of sensitivity analyses and uncertainty quantification (UQ) exercises 17 | as part of the analysis of the feasibility of the design requirements. 18 | 19 | The classes, methods and functions of the library fall into these broad categories: 20 | 21 | 1. **Models of the operating environment.** These live in the :ref:`atmospheres_module` 22 | module and include virtual atmospheres (ISA, MIL-HDBK-310, etc.), runway models (suitable 23 | for take-off and landing performance modelling using a 'real world' runway database) 24 | and models of propulsion performance response to variations in ambient conditions. 25 | 26 | 2. **Sizing and performance analysis methods** for fixed wing aircraft. They can be 27 | found in the :ref:`constraints_module`. 28 | 29 | 3. **Airworthiness**. Tools to assist in analysing the airworthiness of a design from 30 | a certification standpoint. See the :ref:`airworthiness_module`. 31 | 32 | 4. **Utilities**, including a module for :ref:`unitconversions_module` and a set of 33 | :ref:`mtools4acdc_module`. 34 | 35 | This document contains numerous usage examples and details on the inputs and outputs 36 | of each class, method and function. You can copy and paste these into .py files and 37 | execute those in a development environment or from Python's command prompt, you can 38 | copy and paste them line by line into a Python terminal or (perhaps most usefully) 39 | into a `Jupyter notebook `_. Any problems, issues, questions, please 40 | `raise an issue on GitHub `_. Happy designing! 41 | 42 | Installing and running ADRpy 43 | ---------------------------- 44 | 45 | ADRpy is written in Python 3 and tested in Python 3.5, 3.6, 3.7 and 3.8. It is not 46 | available for Python 2. 47 | 48 | First and foremost, you will need to have Python installed - you can get the latest version 49 | `here `_ or as part of a number of alternative 50 | `packages `_. 51 | 52 | Once you have Python, on most systems you should be able to simply open an operating system terminal 53 | and at the command prompt type :code:`python -m pip install ADRpy` or just :code:`pip install ADRpy` 54 | (:code:`pip` is a Python package; in the unlikely event that it is not available on your system, 55 | download `get-pip.py `_ and run it by 56 | entering :code:`python get-pip.py` at the operating system prompt). 57 | 58 | For the ADRpy source code, license conditions (GPLv3), and alternative installation instructions 59 | see `the ADRpy GitHub repository `_. 60 | 61 | Notebooks 62 | --------- 63 | 64 | ADRpy includes a library of examples recorded in Jupyter notebooks. 65 | 66 | You can view these on GitHub in `the ADRpy notebooks library `_. 67 | 68 | Alternatively, hit the green 'Code' button on ADRpy's top level page and 'Download ZIP' to get your own 69 | copy, along with the rest of the repository. 70 | 71 | ADRpy Modules 72 | ------------- 73 | 74 | .. automodule:: atmospheres 75 | :members: 76 | 77 | .. automodule:: constraintanalysis 78 | :members: 79 | 80 | .. automodule:: airworthiness 81 | :members: 82 | 83 | .. automodule:: unitconversions 84 | :members: 85 | 86 | .. automodule:: mtools4acdc 87 | :members: 88 | 89 | * :ref:`genindex` 90 | * :ref:`search` 91 | 92 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # Dev/Deployment 2 | sphinx 3 | sphinx_rtd_theme 4 | nose 5 | coverage 6 | pypi-publisher 7 | scipy 8 | pandas 9 | cycler 10 | matplotlib 11 | pytest>=4.3.0 12 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [bdist_wheel] 2 | universal=1 3 | 4 | [metadata] 5 | description-file=README.md -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | from codecs import open 3 | from os import path 4 | 5 | __version__ = '0.2.6' 6 | 7 | here = path.abspath(path.dirname(__file__)) 8 | 9 | # Get the long description from the README file 10 | with open(path.join(here, 'README.md'), encoding='utf-8') as f: 11 | long_description = f.read() 12 | 13 | # get the dependencies and installs 14 | with open(path.join(here, 'requirements.txt'), encoding='utf-8') as f: 15 | all_reqs = f.read().split('\n') 16 | 17 | install_requires = [x.strip() for x in all_reqs if 'git+' not in x and x != 'pypi-publisher'] 18 | dependency_links = [x.strip().replace('git+', '') for x in all_reqs if x.startswith('git+')] 19 | 20 | setup( 21 | name='ADRpy', 22 | version=__version__, 23 | description='Aircraft Design Recipes in Python: a library of aircraft conceptual design tools.', 24 | long_description=long_description, 25 | long_description_content_type='text/markdown', 26 | url='https://github.com/sobester/ADRpy', 27 | download_url='https://github.com/sobester/ADRpy/tarball/' + __version__, 28 | license='GPLv3', 29 | classifiers=[ 30 | 'Development Status :: 3 - Alpha', 31 | 'Intended Audience :: Developers', 32 | 'Programming Language :: Python :: 3', 33 | 'Topic :: Scientific/Engineering' 34 | ], 35 | keywords='', 36 | packages=find_packages(exclude=['docs', 'tests*']), 37 | include_package_data=True, 38 | author='Andras Sobester', 39 | install_requires=install_requires, 40 | dependency_links=dependency_links, 41 | author_email='' 42 | ) 43 | -------------------------------------------------------------------------------- /tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/tests/.DS_Store -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sobester/ADRpy/b2beba274ebff93ec9fb22f046e3fc47356ceac2/tests/__init__.py -------------------------------------------------------------------------------- /tests/t_airworthiness.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from ADRpy import airworthiness as aw 4 | 5 | from ADRpy import unitconversions as co 6 | 7 | 8 | class TestConstraintAnalysisModule(unittest.TestCase): 9 | 10 | def setUp(self): 11 | # Create an aircraft test library, to be populated 12 | self.ac_lib = [] 13 | 14 | # AIRCRAFT 0: Business Jet (Learjet 45XR) 15 | l45xr_brief = {'rwyelevation_m': 1000, 'groundrun_m': 1200, # Take-off Constraint 16 | 'climbalt_m': 1000, 'climbspeed_kias': 250, 'climbrate_fpm': 1000, # Climb Constraint 17 | 'cruisealt_m': 15000, 'cruisespeed_ktas': 445, # Cruise Constraint 18 | 'servceil_m': 16000, 'secclimbspd_kias': 250, # Service Ceiling Constraint 19 | 'stloadfactor': 2, 'turnalt_m': 5000, 'turnspeed_ktas': 300} # Turn Constraint 20 | l45xr_def = {'aspectratio': 7.3, 'sweep_le_deg': 10, 'sweep_mt_deg': 8, 'bpr': 3.9, 'tr': 1.05, 21 | 'weight_n': 95000, 22 | 'weightfractions': {'turn': 1.0, 'climb': 1.0, 'cruise': 0.85, 'servceil': 0.85}} 23 | l45xr_perf = {'CDTO': 0.04, 'CLTO': 0.9, 'CLmaxTO': 1.6, 'CLmaxclean': 1.42, 'mu_R': 0.02, 24 | 'CDminclean': 0.02} 25 | self.ac_lib.append([l45xr_brief, l45xr_def, l45xr_perf]) 26 | 27 | # AIRCRAFT 1: Single Engine Piston Propeller Aircraft (Cirrus SR22) 28 | sr22_brief = {'rwyelevation_m': 0, 'groundrun_m': 313, # Take-off Constraint 29 | 'stloadfactor': 1.5, 'turnalt_m': 1000, 'turnspeed_ktas': 100, # Turn Constraint 30 | 'climbalt_m': 0, 'climbspeed_kias': 101, 'climbrate_fpm': 1398, # Climb Constraint 31 | 'cruisealt_m': 3048, 'cruisespeed_ktas': 182, 'cruisethrustfact': 1.0, # Cruise Constraint 32 | 'servceil_m': 6580, 'secclimbspd_kias': 92, # Service Ceiling Constraint 33 | 'vstallclean_kcas': 69} # Minimum Stall speed 34 | sr22_def = {'aspectratio': 10.12, 'sweep_le_deg': 2, 'sweep_mt_deg': 0, 'bpr': -1, 'wingarea_m2': 13.46, 35 | 'weight_n': co.lbf2n(3400), 36 | 'weightfractions': {'turn': 1.0, 'climb': 1.0, 'cruise': 0.853, 'servceil': 1.0}} 37 | sr22_perf = {'CDTO': 0.0414, 'CLTO': 0.59, 'CLmaxTO': 1.69, 'CLmaxclean': 1.45, 'CLminclean': -0.8, 38 | 'mu_R': 0.02, 'CDminclean': 0.0254, 'etaprop': {'take-off': 0.65, 'climb': 0.8, 'cruise': 0.85, 39 | 'turn': 0.85, 'servceil': 0.8}} 40 | self.ac_lib.append([sr22_brief, sr22_def, sr22_perf]) 41 | 42 | # AIRCRAFT 2: Fighter (F/A-18C Hornet) 43 | fa18c_brief = {'groundrun_m': 427, 'servceil_m': 15240, 44 | 'cruisealt_m': 12000, 'cruisespeed_ktas': 570} 45 | fa18c_def = {'aspectratio': 4, 'sweep_le_deg': 27, 'sweep_25_deg': 20, 'wingarea_m2': 38, 46 | 'weight_n': 23541 * 9.81} 47 | fa18c_perf = {} 48 | self.ac_lib.append([fa18c_brief, fa18c_def, fa18c_perf]) 49 | 50 | # AIRCRAFT 3: Business Jet (Aircraft Concept) 51 | conceptjet_brief = {'rwyelevation_m': [-100, 1000], 'groundrun_m': [1000, 1400], 52 | 'climbalt_m': [-100, 1000], 'climbspeed_kias': [240, 250], 'climbrate_fpm': [1000, 1200], 53 | 'cruisealt_m': [13000, 14000], 'cruisespeed_ktas': [440, 480], 54 | 'servceil_m': [14000, 14500], 'secclimbspd_kias': [240, 260], 55 | 'stloadfactor': [2, 2.5], 'turnalt_m': [4000, 5000], 'turnspeed_ktas': [280, 330]} 56 | conceptjet_def = {'aspectratio': [6, 8], 'sweep_le_deg': [9, 12], 'sweep_25_deg': [6, 8], 'bpr': [3.8, 4.0], 57 | 'tr': [1.05, 1.5], 'weight_n': 95000, 58 | 'weightfractions': {'turn': 1.0, 'climb': 1.0, 'cruise': 0.85, 'servceil': 0.85}} 59 | conceptjet_perf = {'CDTO': [0.04, 0.045], 'CLTO': [0.85, 0.9], 'CLmaxTO': [1.6, 1.8], 60 | 'CLmaxclean': [1.42, 1.46], 'mu_R': 0.02, 'CDminclean': [0.02, 0.025]} 61 | self.ac_lib.append([conceptjet_brief, conceptjet_def, conceptjet_perf]) 62 | 63 | # AIRCRAFT 4: SEPPA (Aircraft Concept) 64 | conceptsep_brief = {'rwyelevation_m': [0, 100], 'groundrun_m': [310, 330], 65 | 'stloadfactor': [1.5, 1.65], 'turnalt_m': [1000, 1075], 'turnspeed_ktas': [100, 110], 66 | 'climbalt_m': 0, 'climbspeed_kias': 101, 'climbrate_fpm': 1398, 67 | 'cruisealt_m': [2900, 3200], 'cruisespeed_ktas': [170, 175], 'cruisethrustfact': 1.0, 68 | 'servceil_m': [6500, 7650], 'secclimbspd_kias': 92, 69 | 'vstallclean_kcas': 69} 70 | conceptsep_def = {'aspectratio': [10, 11], 'sweep_le_deg': 2, 'sweep_25_deg': 0, 'bpr': -1, 71 | 'wingarea_m2': 13.46, 'weight_n': 15000, 72 | 'weightfractions': {'turn': 1.0, 'climb': 1.0, 'cruise': 0.853, 'servceil': 1.0}} 73 | conceptsep_perf = {'CDTO': 0.0414, 'CLTO': 0.59, 'CLmaxTO': 1.69, 'CLmaxclean': 1.45, 'mu_R': 0.02, 74 | 'CDminclean': [0.0254, 0.026], 'etaprop': {'take-off': 0.65, 'climb': 0.8, 'cruise': 0.85, 75 | 'turn': 0.85, 'servceil': 0.8}} 76 | self.ac_lib.append([conceptsep_brief, conceptsep_def, conceptsep_perf]) 77 | 78 | # AIRCRAFT 5: Small Unmanned Fixed-Wing (Keane et al.) 79 | keane_uav_brief = {'rwyelevation_m': 0, 'groundrun_m': 60, # <- Take-off requirements 80 | 'stloadfactor': 1.41, 'turnalt_m': 0, 'turnspeed_ktas': 40, # <- Turn requirements 81 | 'climbalt_m': 0, 'climbspeed_kias': 46.4, 'climbrate_fpm': 591, # <- Climb requirements 82 | 'cruisealt_m': 122, 'cruisespeed_ktas': 58.3, 'cruisethrustfact': 1.0, 83 | # <- Cruise requirements 84 | 'servceil_m': 152, 'secclimbspd_kias': 40, # <- Service ceiling requirements 85 | 'vstallclean_kcas': 26.4} # <- Required clean stall speed 86 | 87 | keane_uav_def = {'aspectratio': 9.0, 'sweep_le_deg': 2, 'sweep_mt_deg': 0, 'bpr': -1, 88 | 'weightfractions': {'turn': 1.0, 'climb': 1.0, 'cruise': 1.0, 'servceil': 1.0}, 89 | 'weight_n': 15 * 9.81} 90 | 91 | keane_uav_perf = {'CDTO': 0.0898, 'CLTO': 0.97, 'CLmaxTO': 1.7, 'CLmaxclean': 1.0, 'mu_R': 0.17, 92 | 'CDminclean': 0.0418, 93 | 'etaprop': {'take-off': 0.6, 'climb': 0.6, 'cruise': 0.6, 'turn': 0.6, 'servceil': 0.6}} 94 | self.ac_lib.append([keane_uav_brief, keane_uav_def, keane_uav_perf]) 95 | 96 | # AIRCRAFT 6: Snorri Gudmundsson's example 97 | gudmundsson_brief = {'cruisealt_m': 0, 'cruisespeed_ktas': 107, 'maxlevelspeed_ktas': 140} 98 | 99 | gudmundsson_def = {'aspectratio': (38 ** 2) / 130, 'wingarea_m2': co.feet22m2(130), 100 | 'weight_n': co.lbf2n(1320), 'weightfractions': {'cruise': 1}} 101 | 102 | gudmundsson_perf = {'CLmaxclean': 1.45, 'CLminclean': -1, 'CLslope': 6.28} 103 | 104 | self.ac_lib.append([gudmundsson_brief, gudmundsson_def, gudmundsson_perf]) 105 | 106 | # AIRCRAFT 7: GDP Test case 1 107 | gdp1_brief = {} 108 | gdp1_def = {'aspectratio':12, 'wingarea_m2':1.2, 'weight_n':347.15} 109 | gdp1_perf = {'CLmaxclean':1.5, 'CLminclean': -1, 'CLslope':6.29} 110 | 111 | self.ac_lib.append([gdp1_brief, gdp1_def, gdp1_perf]) 112 | 113 | return 114 | 115 | def test_flightenvelope(self): 116 | """Tests the generation of the flight envelope""" 117 | 118 | print("CS 23.333 Flight Envelope Plot Test.") 119 | 120 | # Use Aircraft 6: Snorri Gudmundsson's example 121 | acindex = 6 122 | vndefinitions = {'divespeed_keas': 150, 'certcat': 'norm', 'weightfraction':1} 123 | concept = aw.CertificationSpecifications(self.ac_lib[acindex][0], self.ac_lib[acindex][1], 124 | self.ac_lib[acindex][2], None, None, csbrief=vndefinitions) 125 | concept.flightenvelope(textsize=10) 126 | 127 | # Use Aircraft 7: GDP Test Case 1 128 | acindex = 7 129 | vndefinitions = {'cruisespeed_keas':25, 'divespeed_keas': 45, 'certcat': 'norm', 'weightfraction':1} 130 | concept = aw.CertificationSpecifications(self.ac_lib[acindex][0], self.ac_lib[acindex][1], 131 | self.ac_lib[acindex][2], None, "electric", csbrief=vndefinitions) 132 | concept.flightenvelope(textsize=10) 133 | 134 | 135 | 136 | return 137 | 138 | def test_paragraph335(self): 139 | """Tests the generation of design airspeed limits""" 140 | 141 | print("CS 23.335 Design Airspeeds Test.") 142 | 143 | # Use Aircraft 1: SEPPA SR-22 144 | acindex = 1 145 | concept = aw.CertificationSpecifications(self.ac_lib[acindex][0], self.ac_lib[acindex][1], 146 | self.ac_lib[acindex][2]) 147 | 148 | _ = concept._paragraph335() 149 | 150 | return 151 | 152 | 153 | if __name__ == '__main__': 154 | unittest.main() 155 | -------------------------------------------------------------------------------- /tests/t_atmospheres.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | """t_atmospheres.py: 5 | Unit tests for the atmospheres module 6 | """ 7 | 8 | import unittest 9 | import numpy as np 10 | from ADRpy import atmospheres as at 11 | 12 | class TestUM(unittest.TestCase): 13 | """Unit tests for the atmospheres module against the 1976 US std. atm.""" 14 | 15 | # Source for validation data: NASA-TM-X-74335 16 | 17 | def setUp(self): 18 | pass 19 | 20 | def test_geoptest(self): 21 | """Tests the geometric -> geopotential altitude conversion""" 22 | print("Geopotential conversion.") 23 | # Z = 10,000m geometric corresponds to H = 9,984.3m geopotential altitude 24 | self.assertEqual(round(10 * at.geom2geop45m(10000)), round(10 * 9984.3)) 25 | 26 | def test_geomtest(self): 27 | """Tests the geopotential -> geometric altitude conversion""" 28 | print("Geometric conversion.") 29 | # Z = 10,000m geometric corresponds to H = 9,984.3m geopotential altitude 30 | self.assertEqual(round(10 * at.geop2geom45m(9984.3)), round(10 * 10000)) 31 | 32 | def test_isa_sl(self): 33 | """Tests the atmosphere class instantiated for an ISA at SL""" 34 | print("ISA (SL).") 35 | alt_m = 0 36 | isa = at.Atmosphere() 37 | self.assertEqual(isa.airtemp_c(alt_m), 15) 38 | self.assertEqual(round(100 * isa.airpress_mbar(alt_m)), 101325) 39 | self.assertEqual(round(1000 * isa.airdens_kgpm3(alt_m)), 1225) 40 | self.assertEqual(round(100 * isa.vsound_mps(alt_m)), round(100 * 340.29)) 41 | 42 | def test_isa_10k_geop(self): 43 | """Tests the atmosphere class instantiated for an ISA at 10km geopotential""" 44 | print("ISA (10,000m geopotential).") 45 | # ISA at 10,000m geopotential, 10,015.8m geometric altitude. 46 | alt_m = 10000 47 | isa = at.Atmosphere() 48 | self.assertEqual(isa.airtemp_c(alt_m), -50) 49 | self.assertEqual(round(100 * isa.airpress_mbar(alt_m)), 26436) 50 | self.assertEqual(round(100000 * isa.airdens_kgpm3(alt_m)), 41271) 51 | self.assertEqual(round(1000 * isa.vsound_mps(alt_m)), round(1000 * 299.463)) 52 | 53 | def test_isa_10k_geom(self): 54 | """Tests the atmosphere class instantiated for an ISA at 10km geometric alt""" 55 | print("ISA (10,000m geometric).") 56 | # ISA at Z = 10,000m geometric, H = 9,984.3m geopotential altitude. 57 | alt_m = 9984.3 58 | isa = at.Atmosphere() 59 | self.assertEqual(round(10000 * isa.airtemp_c(alt_m)), round(10000 * -49.8979)) 60 | self.assertEqual(round(100 * isa.airpress_mbar(alt_m)), round(100 * 264.999)) 61 | self.assertEqual(round(100000 * isa.airdens_kgpm3(alt_m)), round(100000 * 0.413511)) 62 | self.assertEqual(round(1000 * isa.vsound_mps(alt_m)), round(1000 * 299.532)) 63 | 64 | def test_isa_minus5k_geop(self): 65 | """Tests the atmosphere class instantiated for an ISA at -5km geopotential alt""" 66 | print("ISA (-5,000m geopotential).") 67 | # ISA at Z = -4996.1m geometric, H = -5000m geopotential altitude. 68 | alt_m = -5000 69 | isa = at.Atmosphere() 70 | self.assertEqual(round(1000 * isa.airtemp_c(alt_m)), round(1000 * 47.5002)) 71 | self.assertEqual(round(10 * isa.airpress_mbar(alt_m)), round(10 * 1776.88)) 72 | self.assertEqual(round(10000 * isa.airdens_kgpm3(alt_m)), round(10000 * 1.93048)) 73 | self.assertEqual(round(1000 * isa.vsound_mps(alt_m)), round(1000 * 358.972)) 74 | 75 | def test_runwayclass(self): 76 | """Tests the methods of the runways class""" 77 | print("Runway class.") 78 | # LHR 09L/27R, Elev 79m, 'le' = 09L 79 | rwy = at.Runway('EGLL', rwyno=0) 80 | self.assertEqual(rwy.le_ident, '09L') 81 | self.assertEqual(round(rwy.le_heading_degt), 90) 82 | self.assertEqual(round(rwy.le_elevation_ft), 79) 83 | self.assertEqual(rwy.nrways, 2) 84 | 85 | # Wind examples. Convention: headwind and right are + 86 | 87 | # Wind example 1: down the runway headwind (+) of 10 (any unit) 88 | wind_dirs_deg = 89.6 89 | wind_speeds_kt = 10 90 | [runwaycomp, crosscomp] = rwy.windcomponents(wind_dirs_deg, wind_speeds_kt) 91 | self.assertEqual(round(runwaycomp * 100), 1000) 92 | self.assertEqual(round(crosscomp * 100), 0) 93 | 94 | # Wind example 2: perpendicular xwind from right (+) of 10 (any unit) 95 | wind_dirs_deg = 89.6 + 90 96 | wind_speeds_kt = 10 97 | [runwaycomp, crosscomp] = rwy.windcomponents(wind_dirs_deg, wind_speeds_kt) 98 | self.assertEqual(round(runwaycomp * 100), 0) 99 | self.assertEqual(round(crosscomp * 100), 1000) 100 | 101 | # Wind example 3: the two previous cases plus another case, given as a list 102 | # Additional case is wind of 10 units from 300 deg 103 | wind_dirs_deg = [89.6, 89.6 + 90, 300] 104 | wind_speeds_kt = [10, 10, 10] 105 | [runwaycomp, crosscomp] = rwy.windcomponents(wind_dirs_deg, wind_speeds_kt) 106 | np.testing.assert_array_equal(np.round(runwaycomp * 100), [1000, 0, -863]) 107 | np.testing.assert_array_equal(np.round(crosscomp * 100), [0, 1000, -506]) 108 | 109 | def test_m310(self): 110 | """Tests access to the MIL HDBK 310 atmospheres""" 111 | print("MIL HDBK 310 - high temp at 10km.") 112 | obs1p, _ = at.mil_hdbk_310('high', 'temp', 10) 113 | m310_high10_1p = at.Atmosphere(profile=obs1p) 114 | sltemp_c = m310_high10_1p.airtemp_c(100) 115 | self.assertEqual(round(1000 * sltemp_c), round(1000 * 25.501)) 116 | 117 | if __name__ == '__main__': 118 | unittest.main() 119 | -------------------------------------------------------------------------------- /update_docs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # build the docs 4 | cd docs 5 | make clean 6 | make html 7 | cd .. 8 | 9 | # commit and push 10 | git add -A 11 | git commit -m "building and pushing docs" 12 | git push origin master 13 | 14 | # switch branches and pull the data we want 15 | git checkout gh-pages 16 | rm -rf . 17 | touch .nojekyll 18 | git checkout master docs/build/html 19 | mv ./docs/build/html/* ./ 20 | rm -rf ./docs 21 | git add -A 22 | git commit -m "publishing updated docs..." 23 | git push origin gh-pages 24 | 25 | # switch back 26 | git checkout master --------------------------------------------------------------------------------