pyBADA 0.1.3__tar.gz → 0.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pybada-0.1.5/.github/workflows/lint.yml +35 -0
- pybada-0.1.5/.pre-commit-config.yaml +9 -0
- {pybada-0.1.3 → pybada-0.1.5}/PKG-INFO +16 -7
- {pybada-0.1.3 → pybada-0.1.5}/README.md +12 -2
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/_static/css/custom.css +12 -0
- {pybada-0.1.3 → pybada-0.1.5}/examples/ac_trajectory.py +0 -1
- {pybada-0.1.3 → pybada-0.1.5}/examples/ac_trajectory_GPS.py +0 -3
- {pybada-0.1.3 → pybada-0.1.5}/examples/geodesic.py +1 -2
- {pybada-0.1.3 → pybada-0.1.5}/examples/heli_trajectory.py +0 -2
- {pybada-0.1.3 → pybada-0.1.5}/examples/initial_mass.py +8 -10
- {pybada-0.1.3 → pybada-0.1.5}/examples/optimum_speed_altitude.py +0 -2
- {pybada-0.1.3 → pybada-0.1.5}/pyproject.toml +27 -22
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/TCL.py +56 -49
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/aircraft.py +39 -40
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/atmosphere.py +79 -72
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/bada3.py +271 -245
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/bada4.py +460 -337
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/badaH.py +338 -239
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/configuration.py +31 -21
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/constants.py +0 -1
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/conversions.py +11 -23
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/flightTrajectory.py +95 -63
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/geodesic.py +119 -82
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/magnetic.py +12 -7
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/trajectoryPrediction.py +17 -13
- {pybada-0.1.3 → pybada-0.1.5}/tests/load_test.py +0 -1
- pybada-0.1.3/.pre-commit-config.yaml +0 -6
- {pybada-0.1.3 → pybada-0.1.5}/.github/workflows/pytest.yml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/.github/workflows/release.yml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/.github/workflows/sphinx.yml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/.gitignore +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/AUTHORS +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/LICENCE.txt +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/Makefile +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/TCL.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/aircraft.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/atmosphere.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/bada3.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/bada4.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/badaH.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/configuration.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/constants.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/conversions.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/flightTrajectory.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/geodesic.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/magnetic.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/API_reference/trajectoryPrediction.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/_static/default_thumbnail.png +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/_static/pyBADA_architecture.png +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/_templates/footer.html +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/architecture.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/conf.py +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/getting-started.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/history.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/index.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/pyBADA.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/userManual.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/user_manual/examples.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/docs/source/user_manual/introduction.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/examples/BADAData.py +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/examples/GALLERY_HEADER.rst +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/examples/file_parser.py +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/BADA.GPF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/BZJT__.APF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/BZJT__.OPF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/BZJT__.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/BZJT__.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/GA____.APF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/GA____.OPF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/GA____.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/GA____.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2H___.APF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2H___.OPF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2H___.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2H___.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2M___.APF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2M___.OPF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2M___.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J2M___.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J4H___.APF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J4H___.OPF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J4H___.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/J4H___.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/ReleaseSummary +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/SYNONYM.NEW +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/TP2M__.APF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/TP2M__.OPF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/TP2M__.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA3/DUMMY/TP2M__.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/ACM_BADA4.xsd +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.ATF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.xml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.ATF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.xml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/LRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/MEC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/MRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TBP/OPTALT.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.ATF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.xml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/ECON.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/LRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/MEC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/MRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/OPTALT.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.ATF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.xml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/ECON.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/LRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MEC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/OPTALT.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/GPF.xml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADA4/DUMMY/GPF_BADA4.xsd +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/DUMH.ATF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/DUMH.xml +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTD +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTF +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/LRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/MEC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/aircraft/BADAH/DUMMY/DUMH/MRC.OPT +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/data/magneticDeclinationGridData.json +0 -0
- {pybada-0.1.3 → pybada-0.1.5}/src/pyBADA/__init__.py +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Run linters
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
name: Lint code
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout repository
|
|
16
|
+
uses: actions/checkout@v3
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v4
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.12"
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
pip install .
|
|
27
|
+
pip install .[dev]
|
|
28
|
+
|
|
29
|
+
- name: Run Ruff lint
|
|
30
|
+
run: ruff check --output-format=github .
|
|
31
|
+
|
|
32
|
+
- name: Run Ruff format
|
|
33
|
+
run: ruff format --check .
|
|
34
|
+
|
|
35
|
+
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyBADA
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.1.5
|
|
4
|
+
Summary: Aircraft performance modelling, trajectory prediction and optimisation, and visualisation with EUROCONTROL's BADA.
|
|
5
5
|
Project-URL: Homepage, https://github.com/eurocontrol-bada/pybada
|
|
6
|
-
Author-email: Henrich Glaser-Opitz <henrich.glaser-opitz@eurocontrol.int>
|
|
6
|
+
Author-email: Henrich Glaser-Opitz <henrich.glaser-opitz@eurocontrol.int>, Antonio Vivace <antonio.vivace@eurocontrol.int>
|
|
7
7
|
License: EUPL-1.2
|
|
8
8
|
License-File: AUTHORS
|
|
9
9
|
License-File: LICENCE.txt
|
|
@@ -16,14 +16,13 @@ Requires-Dist: scipy>=1.15.2
|
|
|
16
16
|
Requires-Dist: simplekml>=1.3.6
|
|
17
17
|
Requires-Dist: xlsxwriter>=3.2.2
|
|
18
18
|
Provides-Extra: dev
|
|
19
|
-
Requires-Dist: black==25.1.0; extra == 'dev'
|
|
20
19
|
Requires-Dist: build; extra == 'dev'
|
|
21
|
-
Requires-Dist: flake8==7.1.2; extra == 'dev'
|
|
22
20
|
Requires-Dist: folium==0.19.5; extra == 'dev'
|
|
23
21
|
Requires-Dist: matplotlib==3.10.1; extra == 'dev'
|
|
24
22
|
Requires-Dist: pre-commit==4.1.0; extra == 'dev'
|
|
25
23
|
Requires-Dist: pytest==8.3.5; extra == 'dev'
|
|
26
24
|
Requires-Dist: readthedocs-sphinx-search>=0.3.2; extra == 'dev'
|
|
25
|
+
Requires-Dist: ruff==0.11.5; extra == 'dev'
|
|
27
26
|
Requires-Dist: sphinx-gallery==0.19.0; extra == 'dev'
|
|
28
27
|
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == 'dev'
|
|
29
28
|
Requires-Dist: sphinx==8.2.3; extra == 'dev'
|
|
@@ -32,6 +31,7 @@ Description-Content-Type: text/markdown
|
|
|
32
31
|
|
|
33
32
|
# pyBADA
|
|
34
33
|
|
|
34
|
+
[](https://github.com/astral-sh/ruff)
|
|
35
35
|
<a href="https://github.com/eurocontrol-bada/pybada/blob/main/LICENCE.txt"><img alt="License: EUPL" src="https://img.shields.io/badge/license-EUPL-3785D1.svg"></a>
|
|
36
36
|
<a href="https://pypi.org/project/pyBADA"><img alt="Released on PyPi" src="https://img.shields.io/pypi/v/pyBADA.svg"></a>
|
|
37
37
|

|
|
@@ -54,7 +54,7 @@ Examples, the user manual and the API reference can be found at the [pyBADA docu
|
|
|
54
54
|
# Clone the repository
|
|
55
55
|
git clone https://github.com/eurocontrol-bada/pybada
|
|
56
56
|
|
|
57
|
-
#
|
|
57
|
+
# Set up a virtual env and activate it
|
|
58
58
|
python3 -m venv env
|
|
59
59
|
source env/bin/activate
|
|
60
60
|
|
|
@@ -62,9 +62,18 @@ source env/bin/activate
|
|
|
62
62
|
pip install .
|
|
63
63
|
# Install a couple of packages for formatting, linting and building the docs
|
|
64
64
|
pip install .[dev]
|
|
65
|
+
# Install pre-commit
|
|
66
|
+
pre-commit install
|
|
65
67
|
|
|
66
68
|
# Run unit tests
|
|
67
69
|
python3 -m pytest tests/
|
|
70
|
+
|
|
71
|
+
# Format code
|
|
72
|
+
ruff format
|
|
73
|
+
|
|
74
|
+
# Lint code
|
|
75
|
+
ruff check
|
|
76
|
+
|
|
68
77
|
# Build the docs
|
|
69
78
|
cd docs
|
|
70
79
|
make html
|
|
@@ -78,6 +87,6 @@ You won't receive support for it, but you can pass the flag `--ignore-requires-p
|
|
|
78
87
|
|
|
79
88
|
## License
|
|
80
89
|
|
|
81
|
-
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/).
|
|
90
|
+
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/model/bada).
|
|
82
91
|
|
|
83
92
|
This project is released under the European Union Public License v1.2 - see the [LICENSE](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12) file for details.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# pyBADA
|
|
2
2
|
|
|
3
|
+
[](https://github.com/astral-sh/ruff)
|
|
3
4
|
<a href="https://github.com/eurocontrol-bada/pybada/blob/main/LICENCE.txt"><img alt="License: EUPL" src="https://img.shields.io/badge/license-EUPL-3785D1.svg"></a>
|
|
4
5
|
<a href="https://pypi.org/project/pyBADA"><img alt="Released on PyPi" src="https://img.shields.io/pypi/v/pyBADA.svg"></a>
|
|
5
6
|

|
|
@@ -22,7 +23,7 @@ Examples, the user manual and the API reference can be found at the [pyBADA docu
|
|
|
22
23
|
# Clone the repository
|
|
23
24
|
git clone https://github.com/eurocontrol-bada/pybada
|
|
24
25
|
|
|
25
|
-
#
|
|
26
|
+
# Set up a virtual env and activate it
|
|
26
27
|
python3 -m venv env
|
|
27
28
|
source env/bin/activate
|
|
28
29
|
|
|
@@ -30,9 +31,18 @@ source env/bin/activate
|
|
|
30
31
|
pip install .
|
|
31
32
|
# Install a couple of packages for formatting, linting and building the docs
|
|
32
33
|
pip install .[dev]
|
|
34
|
+
# Install pre-commit
|
|
35
|
+
pre-commit install
|
|
33
36
|
|
|
34
37
|
# Run unit tests
|
|
35
38
|
python3 -m pytest tests/
|
|
39
|
+
|
|
40
|
+
# Format code
|
|
41
|
+
ruff format
|
|
42
|
+
|
|
43
|
+
# Lint code
|
|
44
|
+
ruff check
|
|
45
|
+
|
|
36
46
|
# Build the docs
|
|
37
47
|
cd docs
|
|
38
48
|
make html
|
|
@@ -46,6 +56,6 @@ You won't receive support for it, but you can pass the flag `--ignore-requires-p
|
|
|
46
56
|
|
|
47
57
|
## License
|
|
48
58
|
|
|
49
|
-
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/).
|
|
59
|
+
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/model/bada).
|
|
50
60
|
|
|
51
61
|
This project is released under the European Union Public License v1.2 - see the [LICENSE](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12) file for details.
|
|
@@ -12,4 +12,16 @@
|
|
|
12
12
|
background-image: linear-gradient(150deg,#004B8D 0%,#2990EA 100%);
|
|
13
13
|
padding-top: 2em;
|
|
14
14
|
padding-bottom: 2.5em;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
code {
|
|
18
|
+
font-size: 100%;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.highlight pre {
|
|
22
|
+
font-size: 14px !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.rst-content code, .rst-content tt, code {
|
|
26
|
+
font-size: 90%;
|
|
15
27
|
}
|
|
@@ -16,7 +16,6 @@ from pyBADA.flightTrajectory import FlightTrajectory as FT
|
|
|
16
16
|
from pyBADA.bada3 import Bada3Aircraft
|
|
17
17
|
from pyBADA.bada4 import Bada4Aircraft
|
|
18
18
|
from pyBADA.bada4 import Parser as Bada4Parser
|
|
19
|
-
from pyBADA.bada3 import Parser as Bada3Parser
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
@dataclass
|
|
@@ -7,7 +7,6 @@ Example of BADA3 and BADA4 trajectory including geodesic calculations using TCL
|
|
|
7
7
|
|
|
8
8
|
from dataclasses import dataclass
|
|
9
9
|
import matplotlib.pyplot as plt
|
|
10
|
-
import os
|
|
11
10
|
|
|
12
11
|
from pyBADA import atmosphere as atm
|
|
13
12
|
from pyBADA import conversions as conv
|
|
@@ -15,10 +14,8 @@ from pyBADA import TCL as TCL
|
|
|
15
14
|
from pyBADA.flightTrajectory import FlightTrajectory as FT
|
|
16
15
|
from pyBADA.magnetic import Grid
|
|
17
16
|
|
|
18
|
-
from pyBADA.bada3 import Bada3Aircraft
|
|
19
17
|
from pyBADA.bada4 import Bada4Aircraft
|
|
20
18
|
from pyBADA.bada4 import Parser as Bada4Parser
|
|
21
|
-
from pyBADA.bada3 import Parser as Bada3Parser
|
|
22
19
|
|
|
23
20
|
|
|
24
21
|
@dataclass
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
Geodesic Calculation
|
|
3
3
|
====================
|
|
4
4
|
|
|
5
|
-
Example of using the geodesic module and comparision
|
|
5
|
+
Example of using the geodesic module and comparision
|
|
6
6
|
between Haversine and Vincenty implementation
|
|
7
7
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
import folium
|
|
11
11
|
|
|
12
|
-
from pyBADA import conversions as conv
|
|
13
12
|
from pyBADA import geodesic as geo
|
|
14
13
|
|
|
15
14
|
|
|
@@ -9,8 +9,6 @@ from math import tan, pi
|
|
|
9
9
|
from dataclasses import dataclass
|
|
10
10
|
import matplotlib.pyplot as plt
|
|
11
11
|
|
|
12
|
-
from pyBADA import atmosphere as atm
|
|
13
|
-
from pyBADA import conversions as conv
|
|
14
12
|
from pyBADA import constants as const
|
|
15
13
|
from pyBADA import TCL as TCL
|
|
16
14
|
from pyBADA.flightTrajectory import FlightTrajectory as FT
|
|
@@ -13,16 +13,15 @@ from pyBADA import conversions as conv
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
# calculate estimations for the fuel flow, and aircraft initial mass
|
|
16
|
-
AC = Bada3Aircraft(badaVersion=
|
|
16
|
+
AC = Bada3Aircraft(badaVersion="DUMMY", acName="J2M")
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
flightPlanInitialMass = None # planned initial/takeoff mass [kg]
|
|
18
|
+
deltaTemp = 0 # deviation from ISA temperature [K or deg C]
|
|
19
|
+
M = 0.7 # Mach number [-]
|
|
20
|
+
altitude = conv.ft2m(30000) # cruise altitude[m]
|
|
21
|
+
distance = conv.nm2m(100) # flown distance [NM]
|
|
22
|
+
payload = 80 # payload mass [% of the maximum payload mass]
|
|
23
|
+
fuelReserve = 3600 # reserve of the fuel [s]
|
|
24
|
+
flightPlanInitialMass = None # planned initial/takeoff mass [kg]
|
|
26
25
|
|
|
27
26
|
# fuel flow in cruise
|
|
28
27
|
cruiseFuelFlow = TP.cruiseFuelConsumption(
|
|
@@ -61,4 +60,3 @@ initMass = TP.getInitialMass(
|
|
|
61
60
|
print(f"cruiseFuelFlow: {cruiseFuelFlow} [kg/s]")
|
|
62
61
|
print(f"breguetLeducInitialMass: {breguetLeducInitialMass} [kg]")
|
|
63
62
|
print(f"initMass: {initMass} [kg]")
|
|
64
|
-
|
|
@@ -4,11 +4,12 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pyBADA"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.5"
|
|
8
8
|
authors = [
|
|
9
|
-
{ name="Henrich Glaser-Opitz", email="henrich.glaser-opitz@eurocontrol.int" }
|
|
9
|
+
{ name="Henrich Glaser-Opitz", email="henrich.glaser-opitz@eurocontrol.int" },
|
|
10
|
+
{ name="Antonio Vivace", email="antonio.vivace@eurocontrol.int" }
|
|
10
11
|
]
|
|
11
|
-
description = "
|
|
12
|
+
description = "Aircraft performance modelling, trajectory prediction and optimisation, and visualisation with EUROCONTROL's BADA."
|
|
12
13
|
readme = "README.md"
|
|
13
14
|
requires-python = ">=3.12"
|
|
14
15
|
classifiers = [
|
|
@@ -27,8 +28,7 @@ license = { text = "EUPL-1.2" }
|
|
|
27
28
|
# Some additional deps not needed to run the package but to develop on it
|
|
28
29
|
# linter, formatter, to build the docs, ..
|
|
29
30
|
[project.optional-dependencies]
|
|
30
|
-
dev = [
|
|
31
|
-
"flake8==7.1.2",
|
|
31
|
+
dev = [
|
|
32
32
|
"sphinx-rtd-theme==3.0.2",
|
|
33
33
|
"Sphinx==8.2.3",
|
|
34
34
|
"pre-commit==4.1.0",
|
|
@@ -38,29 +38,34 @@ dev = ["black==25.1.0",
|
|
|
38
38
|
"pytest==8.3.5",
|
|
39
39
|
"build",
|
|
40
40
|
"twine",
|
|
41
|
-
"readthedocs-sphinx-search>=0.3.2"
|
|
41
|
+
"readthedocs-sphinx-search>=0.3.2",
|
|
42
|
+
"ruff==0.11.5",
|
|
42
43
|
]
|
|
43
44
|
|
|
44
45
|
[project.urls]
|
|
45
46
|
"Homepage" = "https://github.com/eurocontrol-bada/pybada"
|
|
46
47
|
|
|
47
|
-
[tool.
|
|
48
|
-
|
|
48
|
+
[tool.ruff.format]
|
|
49
|
+
docstring-code-format = true
|
|
50
|
+
|
|
51
|
+
[tool.ruff]
|
|
52
|
+
target-version = 'py312'
|
|
49
53
|
line-length = 79
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
exclude = [
|
|
55
|
+
".git",
|
|
56
|
+
".hg",
|
|
57
|
+
".mypy_cache",
|
|
58
|
+
".tox",
|
|
59
|
+
".venv",
|
|
60
|
+
"_build",
|
|
61
|
+
"buck-out",
|
|
62
|
+
"docs",
|
|
63
|
+
"dist",
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
[tool.ruff.lint]
|
|
67
|
+
select = ["E", "F401"]
|
|
68
|
+
ignore = ["E501"]
|
|
64
69
|
|
|
65
70
|
[tool.hatch.build.targets.wheel]
|
|
66
71
|
packages = ["src/pyBADA"]
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
"""
|
|
3
|
-
Trajectory Computation Light (TCL) for BADAH/BADAE/BADA3/BADA4 aircraft performance module
|
|
4
|
-
"""
|
|
1
|
+
"""Trajectory Computation Light (TCL) for BADAH/BADAE/BADA3/BADA4 aircraft
|
|
2
|
+
performance module."""
|
|
5
3
|
|
|
6
|
-
import os
|
|
7
4
|
import numpy as np
|
|
8
5
|
from pyBADA.geodesic import Vincenty as vincenty
|
|
9
6
|
from pyBADA.geodesic import RhumbLine as rhumb
|
|
10
7
|
from pyBADA.geodesic import Turn as turn
|
|
11
8
|
|
|
12
9
|
from dataclasses import dataclass
|
|
13
|
-
import importlib.util
|
|
14
10
|
import itertools
|
|
15
11
|
import warnings
|
|
16
12
|
|
|
@@ -57,10 +53,9 @@ def constantSpeedLevel(
|
|
|
57
53
|
magneticDeclinationGrid=None,
|
|
58
54
|
**kwargs,
|
|
59
55
|
):
|
|
60
|
-
"""
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
constant heading (true or magnetic), and turns.
|
|
56
|
+
"""Calculates the time, fuel consumption, and other parameters for a level
|
|
57
|
+
flight segment at a constant speed for a given aircraft in the BADA model.
|
|
58
|
+
It supports step-climb, constant heading (true or magnetic), and turns.
|
|
64
59
|
|
|
65
60
|
The function handles different BADA families (BADA3, BADA4, BADAH, BADAE), and computes various
|
|
66
61
|
parameters such as altitude, speed, fuel consumption, power, heading, and mass based on aircraft
|
|
@@ -176,7 +171,7 @@ def constantSpeedLevel(
|
|
|
176
171
|
magneticHeading = trueHeading - magneticDeclination
|
|
177
172
|
elif magneticHeading is not None and trueHeading is None:
|
|
178
173
|
# fly MAGNETIC Heading
|
|
179
|
-
if constantHeading
|
|
174
|
+
if constantHeading is True:
|
|
180
175
|
headingToFly = "MAGNETIC"
|
|
181
176
|
trueHeading = magneticHeading + magneticDeclination
|
|
182
177
|
else:
|
|
@@ -536,7 +531,6 @@ def constantSpeedLevel(
|
|
|
536
531
|
and Lon_i is not None
|
|
537
532
|
and (HDGMagnetic_i is not None or HDGTrue is not None)
|
|
538
533
|
):
|
|
539
|
-
|
|
540
534
|
if headingToFly == "TRUE":
|
|
541
535
|
if not turnFlight:
|
|
542
536
|
if not constantHeading:
|
|
@@ -1190,9 +1184,10 @@ def constantSpeedROCD(
|
|
|
1190
1184
|
magneticDeclinationGrid=None,
|
|
1191
1185
|
**kwargs,
|
|
1192
1186
|
):
|
|
1193
|
-
"""
|
|
1194
|
-
|
|
1195
|
-
|
|
1187
|
+
"""Computes the time, fuel consumption, and other parameters required for
|
|
1188
|
+
an aircraft to climb or descend from a given initial altitude (Hp_init) to
|
|
1189
|
+
a final altitude (Hp_final) at a constant speed and rate of climb/descent
|
|
1190
|
+
(ROCD).
|
|
1196
1191
|
|
|
1197
1192
|
The function handles multiple BADA families (BADA3, BADA4, BADAH, BADAE), computing various parameters
|
|
1198
1193
|
such as altitude, speed, fuel consumption, power, heading, and mass based on the aircraft's performance
|
|
@@ -1309,7 +1304,7 @@ def constantSpeedROCD(
|
|
|
1309
1304
|
magneticHeading = trueHeading - magneticDeclination
|
|
1310
1305
|
elif magneticHeading is not None and trueHeading is None:
|
|
1311
1306
|
# fly MAGNETIC Heading
|
|
1312
|
-
if constantHeading
|
|
1307
|
+
if constantHeading is True:
|
|
1313
1308
|
headingToFly = "MAGNETIC"
|
|
1314
1309
|
trueHeading = magneticHeading + magneticDeclination
|
|
1315
1310
|
else:
|
|
@@ -2229,10 +2224,10 @@ def constantSpeedROCD_time(
|
|
|
2229
2224
|
magneticDeclinationGrid=None,
|
|
2230
2225
|
**kwargs,
|
|
2231
2226
|
):
|
|
2232
|
-
"""
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2227
|
+
"""Computes the time, fuel consumption, and performance parameters
|
|
2228
|
+
required for an aircraft to perform a climb or descent based on a set
|
|
2229
|
+
amount of time, while maintaining a constant speed and constant rate of
|
|
2230
|
+
climb/descent (ROCD).
|
|
2236
2231
|
|
|
2237
2232
|
The function supports various BADA families (BADA3, BADA4, BADAH, BADAE), with different handling for mass changes,
|
|
2238
2233
|
aerodynamic configurations, and energy consumption. It calculates parameters such as fuel consumption, power
|
|
@@ -2343,7 +2338,7 @@ def constantSpeedROCD_time(
|
|
|
2343
2338
|
magneticHeading = trueHeading - magneticDeclination
|
|
2344
2339
|
elif magneticHeading is not None and trueHeading is None:
|
|
2345
2340
|
# fly MAGNETIC Heading
|
|
2346
|
-
if constantHeading
|
|
2341
|
+
if constantHeading is True:
|
|
2347
2342
|
headingToFly = "MAGNETIC"
|
|
2348
2343
|
trueHeading = magneticHeading + magneticDeclination
|
|
2349
2344
|
else:
|
|
@@ -3246,9 +3241,10 @@ def constantSpeedSlope(
|
|
|
3246
3241
|
magneticDeclinationGrid=None,
|
|
3247
3242
|
**kwargs,
|
|
3248
3243
|
):
|
|
3249
|
-
"""
|
|
3250
|
-
|
|
3251
|
-
|
|
3244
|
+
"""Calculates time, fuel consumption, and other parameters required for an
|
|
3245
|
+
aircraft to perform a climb or descent from an initial altitude (Hp_init)
|
|
3246
|
+
to a final altitude (Hp_final) while maintaining a constant speed and a
|
|
3247
|
+
constant slope.
|
|
3252
3248
|
|
|
3253
3249
|
It uses different models for BADA (Base of Aircraft Data) families (BADA3, BADA4, BADAH, BADAE) to compute key flight parameters
|
|
3254
3250
|
such as energy consumption, rate of climb/descent (ROCD), fuel burn, mass changes, and power requirements. The function also supports
|
|
@@ -3359,7 +3355,7 @@ def constantSpeedSlope(
|
|
|
3359
3355
|
magneticHeading = trueHeading - magneticDeclination
|
|
3360
3356
|
elif magneticHeading is not None and trueHeading is None:
|
|
3361
3357
|
# fly MAGNETIC Heading
|
|
3362
|
-
if constantHeading
|
|
3358
|
+
if constantHeading is True:
|
|
3363
3359
|
headingToFly = "MAGNETIC"
|
|
3364
3360
|
trueHeading = magneticHeading + magneticDeclination
|
|
3365
3361
|
else:
|
|
@@ -4277,8 +4273,9 @@ def constantSpeedSlope_time(
|
|
|
4277
4273
|
magneticDeclinationGrid=None,
|
|
4278
4274
|
**kwargs,
|
|
4279
4275
|
):
|
|
4280
|
-
"""
|
|
4281
|
-
|
|
4276
|
+
"""Computes the time, fuel, and trajectory parameters required by an
|
|
4277
|
+
aircraft to climb or descend at constant speed and slope over a given
|
|
4278
|
+
duration.
|
|
4282
4279
|
|
|
4283
4280
|
This function models a trajectory with constant speed (either CAS, TAS, or Mach) and a specified slope (degrees). The aircraft's dynamics are modeled based on BADA family data (BADA3, BADA4, BADAH, BADAE), supporting various aircraft types including electric models. It also accounts for turns, heading changes, and wind effects.
|
|
4284
4281
|
|
|
@@ -4388,7 +4385,7 @@ def constantSpeedSlope_time(
|
|
|
4388
4385
|
magneticHeading = trueHeading - magneticDeclination
|
|
4389
4386
|
elif magneticHeading is not None and trueHeading is None:
|
|
4390
4387
|
# fly MAGNETIC Heading
|
|
4391
|
-
if constantHeading
|
|
4388
|
+
if constantHeading is True:
|
|
4392
4389
|
headingToFly = "MAGNETIC"
|
|
4393
4390
|
trueHeading = magneticHeading + magneticDeclination
|
|
4394
4391
|
else:
|
|
@@ -5300,9 +5297,10 @@ def constantSpeedRating(
|
|
|
5300
5297
|
initRating=None,
|
|
5301
5298
|
**kwargs,
|
|
5302
5299
|
):
|
|
5303
|
-
"""
|
|
5304
|
-
|
|
5305
|
-
|
|
5300
|
+
"""Calculates time, fuel consumption, and other parameters required for an
|
|
5301
|
+
aircraft to perform a climb or descent from an initial altitude (Hp_init)
|
|
5302
|
+
to a final altitude (Hp_final) while maintaining a constant speed and
|
|
5303
|
+
engine rating.
|
|
5306
5304
|
|
|
5307
5305
|
It uses different models for BADA (Base of Aircraft Data) families (BADA3, BADA4, BADAH, BADAE) to compute key flight parameters
|
|
5308
5306
|
such as fuel burn, rate of climb/descent (ROCD), thrust, drag, and energy requirements. The function also supports
|
|
@@ -5413,7 +5411,7 @@ def constantSpeedRating(
|
|
|
5413
5411
|
magneticHeading = trueHeading - magneticDeclination
|
|
5414
5412
|
elif magneticHeading is not None and trueHeading is None:
|
|
5415
5413
|
# fly MAGNETIC Heading
|
|
5416
|
-
if constantHeading
|
|
5414
|
+
if constantHeading is True:
|
|
5417
5415
|
headingToFly = "MAGNETIC"
|
|
5418
5416
|
trueHeading = magneticHeading + magneticDeclination
|
|
5419
5417
|
else:
|
|
@@ -5813,7 +5811,12 @@ def constantSpeedRating(
|
|
|
5813
5811
|
CL = AC.CL(M=M_i, delta=delta, mass=mass_i, nz=nz)
|
|
5814
5812
|
# compute drag coefficient
|
|
5815
5813
|
CD = AC.CD(
|
|
5816
|
-
M=M_i,
|
|
5814
|
+
M=M_i,
|
|
5815
|
+
CL=CL,
|
|
5816
|
+
HLid=HLid_i,
|
|
5817
|
+
LG=LG_i,
|
|
5818
|
+
speedBrakes=speedBrakes,
|
|
5819
|
+
expedite=expedite,
|
|
5817
5820
|
)
|
|
5818
5821
|
# compute drag force
|
|
5819
5822
|
Drag = AC.D(M=M_i, delta=delta, CD=CD)
|
|
@@ -6244,9 +6247,9 @@ def constantSpeedRating_time(
|
|
|
6244
6247
|
initRating=None,
|
|
6245
6248
|
**kwargs,
|
|
6246
6249
|
):
|
|
6247
|
-
"""
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
+
"""Calculates the time, fuel consumption, and other flight parameters
|
|
6251
|
+
required for an aircraft to perform a climb or descent at constant speed
|
|
6252
|
+
and engine rating for a specified duration.
|
|
6250
6253
|
|
|
6251
6254
|
It uses different models for BADA (Base of Aircraft Data) families (BADA3, BADA4, BADAH, BADAE) to compute key parameters
|
|
6252
6255
|
such as rate of climb/descent (ROCD), thrust, drag, fuel burn, and power requirements. The function also supports complex
|
|
@@ -6359,7 +6362,7 @@ def constantSpeedRating_time(
|
|
|
6359
6362
|
magneticHeading = trueHeading - magneticDeclination
|
|
6360
6363
|
elif magneticHeading is not None and trueHeading is None:
|
|
6361
6364
|
# fly MAGNETIC Heading
|
|
6362
|
-
if constantHeading
|
|
6365
|
+
if constantHeading is True:
|
|
6363
6366
|
headingToFly = "MAGNETIC"
|
|
6364
6367
|
trueHeading = magneticHeading + magneticDeclination
|
|
6365
6368
|
else:
|
|
@@ -6750,7 +6753,12 @@ def constantSpeedRating_time(
|
|
|
6750
6753
|
CL = AC.CL(M=M_i, delta=delta, mass=mass_i, nz=nz)
|
|
6751
6754
|
# compute drag coefficient
|
|
6752
6755
|
CD = AC.CD(
|
|
6753
|
-
M=M_i,
|
|
6756
|
+
M=M_i,
|
|
6757
|
+
CL=CL,
|
|
6758
|
+
HLid=HLid_i,
|
|
6759
|
+
LG=LG_i,
|
|
6760
|
+
speedBrakes=speedBrakes,
|
|
6761
|
+
expedite=expedite,
|
|
6754
6762
|
)
|
|
6755
6763
|
# compute drag force
|
|
6756
6764
|
Drag = AC.D(M=M_i, delta=delta, CD=CD)
|
|
@@ -7178,10 +7186,10 @@ def accDec(
|
|
|
7178
7186
|
magneticDeclinationGrid=None,
|
|
7179
7187
|
**kwargs,
|
|
7180
7188
|
):
|
|
7181
|
-
"""
|
|
7182
|
-
|
|
7183
|
-
|
|
7184
|
-
|
|
7189
|
+
"""Calculates the time, fuel consumption, and other key flight parameters
|
|
7190
|
+
required for an aircraft to perform an acceleration or deceleration from
|
|
7191
|
+
an initial speed (v_init) to a final speed (v_final) during the climb,
|
|
7192
|
+
cruise, or descent phases of flight.
|
|
7185
7193
|
|
|
7186
7194
|
The flight parameters are calculated using different models for the BADA (Base of Aircraft Data) families (BADA3, BADA4, BADAH, BADAE).
|
|
7187
7195
|
The function can also accommodate different control laws, vertical evolution phases, wind conditions, and complex flight dynamics like turns.
|
|
@@ -7304,7 +7312,7 @@ def accDec(
|
|
|
7304
7312
|
magneticHeading = trueHeading - magneticDeclination
|
|
7305
7313
|
elif magneticHeading is not None and trueHeading is None:
|
|
7306
7314
|
# fly MAGNETIC Heading
|
|
7307
|
-
if constantHeading
|
|
7315
|
+
if constantHeading is True:
|
|
7308
7316
|
headingToFly = "MAGNETIC"
|
|
7309
7317
|
trueHeading = magneticHeading + magneticDeclination
|
|
7310
7318
|
else:
|
|
@@ -8460,10 +8468,10 @@ def accDec_time(
|
|
|
8460
8468
|
magneticDeclinationGrid=None,
|
|
8461
8469
|
**kwargs,
|
|
8462
8470
|
):
|
|
8463
|
-
"""
|
|
8464
|
-
|
|
8465
|
-
|
|
8466
|
-
|
|
8471
|
+
"""Calculates the time, fuel consumption, and other key flight parameters
|
|
8472
|
+
required for an aircraft to perform an acceleration or deceleration from
|
|
8473
|
+
an initial speed (v_init) over a set period of time during the climb,
|
|
8474
|
+
cruise, or descent phases of flight.
|
|
8467
8475
|
|
|
8468
8476
|
The flight parameters are calculated using different models for the BADA (Base of Aircraft Data) families (BADA3, BADA4, BADAH, BADAE).
|
|
8469
8477
|
The function can also accommodate different control laws, vertical evolution phases, wind conditions, and complex flight dynamics like turns.
|
|
@@ -8587,7 +8595,7 @@ def accDec_time(
|
|
|
8587
8595
|
magneticHeading = trueHeading - magneticDeclination
|
|
8588
8596
|
elif magneticHeading is not None and trueHeading is None:
|
|
8589
8597
|
# fly MAGNETIC Heading
|
|
8590
|
-
if constantHeading
|
|
8598
|
+
if constantHeading is True:
|
|
8591
8599
|
headingToFly = "MAGNETIC"
|
|
8592
8600
|
trueHeading = magneticHeading + magneticDeclination
|
|
8593
8601
|
else:
|
|
@@ -8978,7 +8986,6 @@ def accDec_time(
|
|
|
8978
8986
|
if P_i < Pmin:
|
|
8979
8987
|
P_i = Pmin
|
|
8980
8988
|
if ESFc is not None:
|
|
8981
|
-
|
|
8982
8989
|
ROCD_i = (
|
|
8983
8990
|
conv.m2ft(
|
|
8984
8991
|
AC.ROCD(
|