pyBADA 0.1.7__tar.gz → 0.1.8__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.7 → pybada-0.1.8}/PKG-INFO +16 -16
- pybada-0.1.8/docs/source/API_reference/badaAircraft.rst +7 -0
- pybada-0.1.8/docs/source/API_reference/myTypes.rst +7 -0
- pybada-0.1.8/docs/source/API_reference/trajectorySegments.rst +7 -0
- pybada-0.1.8/docs/source/_templates/footer.html +10 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/conf.py +1 -1
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/pyBADA.rst +4 -1
- {pybada-0.1.7 → pybada-0.1.8}/examples/trajectoryAC.py +40 -40
- {pybada-0.1.7 → pybada-0.1.8}/examples/trajectoryAC_GPS.py +39 -39
- {pybada-0.1.7 → pybada-0.1.8}/examples/trajectoryHELI.py +15 -15
- {pybada-0.1.7 → pybada-0.1.8}/pyproject.toml +16 -16
- pybada-0.1.8/src/pyBADA/TCL.py +3341 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/bada4.py +1 -1
- pybada-0.1.8/src/pyBADA/badaAircraft.py +35 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/configuration.py +50 -0
- pybada-0.1.8/src/pyBADA/myTypes.py +204 -0
- pybada-0.1.7/src/pyBADA/TCL.py → pybada-0.1.8/src/pyBADA/trajectorySegments.py +7 -12
- {pybada-0.1.7 → pybada-0.1.8}/tests/atmosphereTest.py +63 -63
- pybada-0.1.7/docs/source/_templates/footer.html +0 -10
- {pybada-0.1.7 → pybada-0.1.8}/.github/workflows/lint.yml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/.github/workflows/pytest.yml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/.github/workflows/release.yml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/.github/workflows/sphinx.yml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/.gitignore +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/.pre-commit-config.yaml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/AMENDMENT_TO_EUPL_license.md +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/AUTHORS +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/LICENCE.txt +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/README.md +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/Makefile +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/TCL.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/aircraft.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/atmosphere.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/bada3.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/bada4.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/badaH.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/configuration.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/constants.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/conversions.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/flightTrajectory.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/geodesic.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/magnetic.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/API_reference/trajectoryPrediction.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/_static/css/custom.css +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/_static/default_thumbnail.png +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/_static/pyBADA_architecture.png +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/architecture.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/getting-started.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/history.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/index.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/userManual.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/user_manual/examples.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/docs/source/user_manual/introduction.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/BADAData.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/GALLERY_HEADER.rst +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/combinedSlopeAndDestination.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/fileParser.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/fuelFlow.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/geodesicCalculations.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/initialMass.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/examples/optimumSpeedAndAltitude.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/BADA.GPF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/BZJT__.APF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/BZJT__.OPF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/BZJT__.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/BZJT__.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/GA____.APF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/GA____.OPF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/GA____.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/GA____.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2H___.APF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2H___.OPF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2H___.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2H___.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2M___.APF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2M___.OPF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2M___.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J2M___.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J4H___.APF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J4H___.OPF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J4H___.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/J4H___.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/ReleaseSummary +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/SYNONYM.NEW +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/TP2M__.APF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/TP2M__.OPF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/TP2M__.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA3/DUMMY/TP2M__.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/ACM_BADA4.xsd +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.ATF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.xml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.ATF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.xml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/LRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/MEC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/MRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TBP/OPTALT.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.ATF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.xml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/ECON.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/LRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/MEC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/MRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/OPTALT.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.ATF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.xml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/ECON.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/LRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MEC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/OPTALT.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/GPF.xml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADA4/DUMMY/GPF_BADA4.xsd +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/DUMH.ATF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/DUMH.xml +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTD +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTF +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/LRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/MEC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/aircraft/BADAH/DUMMY/DUMH/MRC.OPT +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/data/magneticDeclinationGridData.json +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/__init__.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/aircraft.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/atmosphere.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/bada3.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/badaH.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/constants.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/conversions.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/flightTrajectory.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/geodesic.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/magnetic.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/trajectoryPrediction.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/src/pyBADA/utils.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/tests/load_test.py +0 -0
- {pybada-0.1.7 → pybada-0.1.8}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyBADA
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.8
|
|
4
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
6
|
Author-email: Henrich Glaser-Opitz <henrich.glaser-opitz@eurocontrol.int>, Antonio Vivace <antonio.vivace@eurocontrol.int>
|
|
@@ -9,25 +9,25 @@ License-File: AUTHORS
|
|
|
9
9
|
License-File: LICENCE.txt
|
|
10
10
|
Classifier: License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Requires-Python: >=3.12
|
|
13
|
-
Requires-Dist: numpy>=2.
|
|
14
|
-
Requires-Dist: pandas>=
|
|
15
|
-
Requires-Dist: scipy>=1.
|
|
12
|
+
Requires-Python: >=3.12.3
|
|
13
|
+
Requires-Dist: numpy>=2.4.2
|
|
14
|
+
Requires-Dist: pandas>=3.0.0
|
|
15
|
+
Requires-Dist: scipy>=1.17.0
|
|
16
16
|
Requires-Dist: simplekml>=1.3.6
|
|
17
|
-
Requires-Dist: xarray>=
|
|
18
|
-
Requires-Dist: xlsxwriter>=3.2.
|
|
17
|
+
Requires-Dist: xarray>=2026.1.0
|
|
18
|
+
Requires-Dist: xlsxwriter>=3.2.9
|
|
19
19
|
Provides-Extra: dev
|
|
20
|
-
Requires-Dist: build; extra == 'dev'
|
|
20
|
+
Requires-Dist: build==1.4.0; extra == 'dev'
|
|
21
21
|
Requires-Dist: folium==0.20.0; extra == 'dev'
|
|
22
|
-
Requires-Dist: matplotlib==3.10.
|
|
23
|
-
Requires-Dist: pre-commit==4.
|
|
24
|
-
Requires-Dist: pytest==
|
|
22
|
+
Requires-Dist: matplotlib==3.10.8; extra == 'dev'
|
|
23
|
+
Requires-Dist: pre-commit==4.5.1; extra == 'dev'
|
|
24
|
+
Requires-Dist: pytest==9.0.2; extra == 'dev'
|
|
25
25
|
Requires-Dist: readthedocs-sphinx-search>=0.3.2; extra == 'dev'
|
|
26
|
-
Requires-Dist: ruff==0.
|
|
27
|
-
Requires-Dist: sphinx-gallery==0.
|
|
28
|
-
Requires-Dist: sphinx-rtd-theme==3.0
|
|
29
|
-
Requires-Dist: sphinx==
|
|
30
|
-
Requires-Dist: twine; extra == 'dev'
|
|
26
|
+
Requires-Dist: ruff==0.15.0; extra == 'dev'
|
|
27
|
+
Requires-Dist: sphinx-gallery==0.20.0; extra == 'dev'
|
|
28
|
+
Requires-Dist: sphinx-rtd-theme==3.1.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: sphinx==9.1.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: twine==6.2.0; extra == 'dev'
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
|
|
33
33
|
# pyBADA
|
|
@@ -9,11 +9,14 @@ API reference
|
|
|
9
9
|
API_reference/bada3
|
|
10
10
|
API_reference/bada4
|
|
11
11
|
API_reference/badaH
|
|
12
|
+
API_reference/badaAircraft
|
|
12
13
|
API_reference/configuration
|
|
13
14
|
API_reference/constants
|
|
14
15
|
API_reference/conversions
|
|
15
16
|
API_reference/flightTrajectory
|
|
16
17
|
API_reference/geodesic
|
|
17
18
|
API_reference/magnetic
|
|
19
|
+
API_reference/myTypes
|
|
18
20
|
API_reference/TCL
|
|
19
|
-
API_reference/trajectoryPrediction
|
|
21
|
+
API_reference/trajectoryPrediction
|
|
22
|
+
API_reference/trajectorySegments
|
|
@@ -9,9 +9,9 @@ from dataclasses import dataclass
|
|
|
9
9
|
|
|
10
10
|
import matplotlib.pyplot as plt
|
|
11
11
|
|
|
12
|
-
from pyBADA import TCL as TCL
|
|
13
12
|
from pyBADA import atmosphere as atm
|
|
14
13
|
from pyBADA import conversions as conv
|
|
14
|
+
from pyBADA import trajectorySegments
|
|
15
15
|
from pyBADA.bada3 import Bada3Aircraft
|
|
16
16
|
from pyBADA.bada4 import Bada4Aircraft
|
|
17
17
|
from pyBADA.bada4 import Parser as Bada4Parser
|
|
@@ -49,7 +49,7 @@ AC = Bada4Aircraft(
|
|
|
49
49
|
# filePath="/home/<USER>/ec/pybada-models/models/BADA4/4.3",
|
|
50
50
|
# )
|
|
51
51
|
|
|
52
|
-
# create a Flight Trajectory object to store the output from
|
|
52
|
+
# create a Flight Trajectory object to store the output from trajectorySegments segment calculations
|
|
53
53
|
ft = FT()
|
|
54
54
|
|
|
55
55
|
# default parameters
|
|
@@ -93,7 +93,7 @@ Hp_CR = 33000 # [ft] CRUISing level
|
|
|
93
93
|
|
|
94
94
|
# CLIMB to threshold altitude 1500ft at take-off speed
|
|
95
95
|
# ------------------------------------------------
|
|
96
|
-
flightTrajectory =
|
|
96
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
97
97
|
AC=AC,
|
|
98
98
|
speedType="CAS",
|
|
99
99
|
v=conv.ms2kt(cas_cl1),
|
|
@@ -122,7 +122,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
122
122
|
deltaTemp=deltaTemp,
|
|
123
123
|
)
|
|
124
124
|
|
|
125
|
-
flightTrajectory =
|
|
125
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
126
126
|
AC=AC,
|
|
127
127
|
speedType="CAS",
|
|
128
128
|
v_init=CAS_final,
|
|
@@ -142,7 +142,7 @@ ft.append(AC, flightTrajectory)
|
|
|
142
142
|
# current values
|
|
143
143
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
144
144
|
|
|
145
|
-
flightTrajectory =
|
|
145
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
146
146
|
AC=AC,
|
|
147
147
|
speedType="CAS",
|
|
148
148
|
v=CAS_final,
|
|
@@ -172,7 +172,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
172
172
|
deltaTemp=deltaTemp,
|
|
173
173
|
)
|
|
174
174
|
|
|
175
|
-
flightTrajectory =
|
|
175
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
176
176
|
AC=AC,
|
|
177
177
|
speedType="CAS",
|
|
178
178
|
v_init=CAS_final,
|
|
@@ -192,7 +192,7 @@ ft.append(AC, flightTrajectory)
|
|
|
192
192
|
# current values
|
|
193
193
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
194
194
|
|
|
195
|
-
flightTrajectory =
|
|
195
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
196
196
|
AC=AC,
|
|
197
197
|
speedType="CAS",
|
|
198
198
|
v=CAS_final,
|
|
@@ -222,7 +222,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
222
222
|
deltaTemp=deltaTemp,
|
|
223
223
|
)
|
|
224
224
|
|
|
225
|
-
flightTrajectory =
|
|
225
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
226
226
|
AC=AC,
|
|
227
227
|
speedType="CAS",
|
|
228
228
|
v_init=CAS_final,
|
|
@@ -242,7 +242,7 @@ ft.append(AC, flightTrajectory)
|
|
|
242
242
|
# current values
|
|
243
243
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
244
244
|
|
|
245
|
-
flightTrajectory =
|
|
245
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
246
246
|
AC=AC,
|
|
247
247
|
speedType="CAS",
|
|
248
248
|
v=CAS_final,
|
|
@@ -272,7 +272,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
272
272
|
deltaTemp=deltaTemp,
|
|
273
273
|
)
|
|
274
274
|
|
|
275
|
-
flightTrajectory =
|
|
275
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
276
276
|
AC=AC,
|
|
277
277
|
speedType="CAS",
|
|
278
278
|
v_init=CAS_final,
|
|
@@ -292,7 +292,7 @@ ft.append(AC, flightTrajectory)
|
|
|
292
292
|
# current values
|
|
293
293
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
294
294
|
|
|
295
|
-
flightTrajectory =
|
|
295
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
296
296
|
AC=AC,
|
|
297
297
|
speedType="CAS",
|
|
298
298
|
v=CAS_final,
|
|
@@ -322,7 +322,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
322
322
|
deltaTemp=deltaTemp,
|
|
323
323
|
)
|
|
324
324
|
|
|
325
|
-
flightTrajectory =
|
|
325
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
326
326
|
AC=AC,
|
|
327
327
|
speedType="CAS",
|
|
328
328
|
v_init=CAS_final,
|
|
@@ -342,7 +342,7 @@ ft.append(AC, flightTrajectory)
|
|
|
342
342
|
# current values
|
|
343
343
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
344
344
|
|
|
345
|
-
flightTrajectory =
|
|
345
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
346
346
|
AC=AC,
|
|
347
347
|
speedType="CAS",
|
|
348
348
|
v=CAS_final,
|
|
@@ -361,7 +361,7 @@ ft.append(AC, flightTrajectory)
|
|
|
361
361
|
# current values
|
|
362
362
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
363
363
|
|
|
364
|
-
flightTrajectory =
|
|
364
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
365
365
|
AC=AC,
|
|
366
366
|
speedType="CAS",
|
|
367
367
|
v_init=CAS_final,
|
|
@@ -385,7 +385,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
385
385
|
# calculate the crosover altitude for climb phase
|
|
386
386
|
crossoverAltitude = conv.m2ft(atm.crossOver(Vcl2, Mcl))
|
|
387
387
|
|
|
388
|
-
flightTrajectory =
|
|
388
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
389
389
|
AC=AC,
|
|
390
390
|
speedType="CAS",
|
|
391
391
|
v=CAS_final,
|
|
@@ -403,7 +403,7 @@ ft.append(AC, flightTrajectory)
|
|
|
403
403
|
# current values
|
|
404
404
|
Hp, m_final = ft.getFinalValue(AC, ["Hp", "mass"])
|
|
405
405
|
|
|
406
|
-
flightTrajectory =
|
|
406
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
407
407
|
AC=AC,
|
|
408
408
|
speedType="M",
|
|
409
409
|
v=Mcl,
|
|
@@ -423,7 +423,7 @@ Hp, m_final, M_final = ft.getFinalValue(AC, ["Hp", "mass", "M"])
|
|
|
423
423
|
|
|
424
424
|
if M_final < Mcr:
|
|
425
425
|
control = target(acctarget=0.5)
|
|
426
|
-
flightTrajectory =
|
|
426
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
427
427
|
AC=AC,
|
|
428
428
|
speedType="M",
|
|
429
429
|
v_init=M_final,
|
|
@@ -443,9 +443,9 @@ if M_final < Mcr:
|
|
|
443
443
|
# current values
|
|
444
444
|
Hp, m_final = ft.getFinalValue(AC, ["Hp", "mass"])
|
|
445
445
|
|
|
446
|
-
flightTrajectory =
|
|
446
|
+
flightTrajectory = trajectorySegments.constantSpeedLevel(
|
|
447
447
|
AC=AC,
|
|
448
|
-
lengthType="
|
|
448
|
+
lengthType="DISTANCE",
|
|
449
449
|
length=200,
|
|
450
450
|
speedType="M",
|
|
451
451
|
v=Mcr,
|
|
@@ -462,9 +462,9 @@ ft.append(AC, flightTrajectory)
|
|
|
462
462
|
# current values
|
|
463
463
|
Hp, m_final = ft.getFinalValue(AC, ["Hp", "mass"])
|
|
464
464
|
|
|
465
|
-
flightTrajectory =
|
|
465
|
+
flightTrajectory = trajectorySegments.constantSpeedLevel(
|
|
466
466
|
AC=AC,
|
|
467
|
-
lengthType="
|
|
467
|
+
lengthType="DISTANCE",
|
|
468
468
|
length=200,
|
|
469
469
|
step_length=50,
|
|
470
470
|
maxRFL=36000,
|
|
@@ -484,7 +484,7 @@ ft.append(AC, flightTrajectory)
|
|
|
484
484
|
# current values
|
|
485
485
|
Hp, m_final, M_final = ft.getFinalValue(AC, ["Hp", "mass", "M"])
|
|
486
486
|
|
|
487
|
-
flightTrajectory =
|
|
487
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
488
488
|
AC=AC,
|
|
489
489
|
speedType="M",
|
|
490
490
|
v_init=M_final,
|
|
@@ -506,7 +506,7 @@ Hp, m_final = ft.getFinalValue(AC, ["Hp", "mass"])
|
|
|
506
506
|
# calculate the crosover altitude for descend phase
|
|
507
507
|
crossoverAltitude = conv.m2ft(atm.crossOver(Vdes2, Mdes))
|
|
508
508
|
|
|
509
|
-
flightTrajectory =
|
|
509
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
510
510
|
AC=AC,
|
|
511
511
|
speedType="M",
|
|
512
512
|
v=Mdes,
|
|
@@ -524,7 +524,7 @@ ft.append(AC, flightTrajectory)
|
|
|
524
524
|
# current values
|
|
525
525
|
Hp, m_final = ft.getFinalValue(AC, ["Hp", "mass"])
|
|
526
526
|
|
|
527
|
-
flightTrajectory =
|
|
527
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
528
528
|
AC=AC,
|
|
529
529
|
speedType="CAS",
|
|
530
530
|
v=conv.ms2kt(Vdes2),
|
|
@@ -554,7 +554,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
554
554
|
deltaTemp=deltaTemp,
|
|
555
555
|
)
|
|
556
556
|
|
|
557
|
-
flightTrajectory =
|
|
557
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
558
558
|
AC=AC,
|
|
559
559
|
speedType="CAS",
|
|
560
560
|
v_init=CAS_final,
|
|
@@ -573,7 +573,7 @@ ft.append(AC, flightTrajectory)
|
|
|
573
573
|
# current values
|
|
574
574
|
Hp, m_final = ft.getFinalValue(AC, ["Hp", "mass"])
|
|
575
575
|
|
|
576
|
-
flightTrajectory =
|
|
576
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
577
577
|
AC=AC,
|
|
578
578
|
speedType="CAS",
|
|
579
579
|
v=conv.ms2kt(cas),
|
|
@@ -603,7 +603,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
603
603
|
deltaTemp=deltaTemp,
|
|
604
604
|
)
|
|
605
605
|
|
|
606
|
-
flightTrajectory =
|
|
606
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
607
607
|
AC=AC,
|
|
608
608
|
speedType="CAS",
|
|
609
609
|
v_init=CAS_final,
|
|
@@ -622,7 +622,7 @@ ft.append(AC, flightTrajectory)
|
|
|
622
622
|
# current values
|
|
623
623
|
Hp, m_final = ft.getFinalValue(AC, ["Hp", "mass"])
|
|
624
624
|
|
|
625
|
-
flightTrajectory =
|
|
625
|
+
flightTrajectory = trajectorySegments.constantSpeedRating(
|
|
626
626
|
AC=AC,
|
|
627
627
|
speedType="CAS",
|
|
628
628
|
v=conv.ms2kt(cas),
|
|
@@ -642,7 +642,7 @@ ft.append(AC, flightTrajectory)
|
|
|
642
642
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
643
643
|
|
|
644
644
|
if AC.BADAFamily.BADA3:
|
|
645
|
-
flightTrajectory =
|
|
645
|
+
flightTrajectory = trajectorySegments.constantSpeedSlope(
|
|
646
646
|
AC=AC,
|
|
647
647
|
speedType="CAS",
|
|
648
648
|
v=CAS_final,
|
|
@@ -656,7 +656,7 @@ if AC.BADAFamily.BADA3:
|
|
|
656
656
|
deltaTemp=deltaTemp,
|
|
657
657
|
)
|
|
658
658
|
elif AC.BADAFamily.BADA4:
|
|
659
|
-
flightTrajectory =
|
|
659
|
+
flightTrajectory = trajectorySegments.constantSpeedSlope(
|
|
660
660
|
AC=AC,
|
|
661
661
|
speedType="CAS",
|
|
662
662
|
v=CAS_final,
|
|
@@ -691,7 +691,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
691
691
|
)
|
|
692
692
|
|
|
693
693
|
control = target(slopetarget=-3.0)
|
|
694
|
-
flightTrajectory =
|
|
694
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
695
695
|
AC=AC,
|
|
696
696
|
speedType="CAS",
|
|
697
697
|
v_init=CAS_final,
|
|
@@ -715,7 +715,7 @@ ft.append(AC, flightTrajectory)
|
|
|
715
715
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
716
716
|
|
|
717
717
|
if Hp > 2000:
|
|
718
|
-
flightTrajectory =
|
|
718
|
+
flightTrajectory = trajectorySegments.constantSpeedSlope(
|
|
719
719
|
AC=AC,
|
|
720
720
|
speedType="CAS",
|
|
721
721
|
v=CAS_final,
|
|
@@ -749,7 +749,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
749
749
|
)
|
|
750
750
|
|
|
751
751
|
control = target(slopetarget=-3.0)
|
|
752
|
-
flightTrajectory =
|
|
752
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
753
753
|
AC=AC,
|
|
754
754
|
speedType="CAS",
|
|
755
755
|
v_init=CAS_final,
|
|
@@ -773,7 +773,7 @@ ft.append(AC, flightTrajectory)
|
|
|
773
773
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
774
774
|
|
|
775
775
|
if Hp > 1500:
|
|
776
|
-
flightTrajectory =
|
|
776
|
+
flightTrajectory = trajectorySegments.constantSpeedSlope(
|
|
777
777
|
AC=AC,
|
|
778
778
|
speedType="CAS",
|
|
779
779
|
v=CAS_final,
|
|
@@ -808,7 +808,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
808
808
|
|
|
809
809
|
control = target(slopetarget=-3.0)
|
|
810
810
|
if AC.BADAFamily.BADA3:
|
|
811
|
-
flightTrajectory =
|
|
811
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
812
812
|
AC=AC,
|
|
813
813
|
speedType="CAS",
|
|
814
814
|
v_init=CAS_final,
|
|
@@ -824,7 +824,7 @@ if AC.BADAFamily.BADA3:
|
|
|
824
824
|
deltaTemp=deltaTemp,
|
|
825
825
|
)
|
|
826
826
|
elif AC.BADAFamily.BADA4:
|
|
827
|
-
flightTrajectory =
|
|
827
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
828
828
|
AC=AC,
|
|
829
829
|
speedType="CAS",
|
|
830
830
|
v_init=CAS_final,
|
|
@@ -847,7 +847,7 @@ ft.append(AC, flightTrajectory)
|
|
|
847
847
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
848
848
|
|
|
849
849
|
if Hp > 1000:
|
|
850
|
-
flightTrajectory =
|
|
850
|
+
flightTrajectory = trajectorySegments.constantSpeedSlope(
|
|
851
851
|
AC=AC,
|
|
852
852
|
speedType="CAS",
|
|
853
853
|
v=CAS_final,
|
|
@@ -881,7 +881,7 @@ Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
|
881
881
|
|
|
882
882
|
control = target(slopetarget=-3.0)
|
|
883
883
|
if AC.BADAFamily.BADA3:
|
|
884
|
-
flightTrajectory =
|
|
884
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
885
885
|
AC=AC,
|
|
886
886
|
speedType="CAS",
|
|
887
887
|
v_init=CAS_final,
|
|
@@ -897,7 +897,7 @@ if AC.BADAFamily.BADA3:
|
|
|
897
897
|
deltaTemp=deltaTemp,
|
|
898
898
|
)
|
|
899
899
|
elif AC.BADAFamily.BADA4:
|
|
900
|
-
flightTrajectory =
|
|
900
|
+
flightTrajectory = trajectorySegments.accDec(
|
|
901
901
|
AC=AC,
|
|
902
902
|
speedType="CAS",
|
|
903
903
|
v_init=CAS_final,
|
|
@@ -919,7 +919,7 @@ ft.append(AC, flightTrajectory)
|
|
|
919
919
|
# current values
|
|
920
920
|
Hp, m_final, CAS_final = ft.getFinalValue(AC, ["Hp", "mass", "CAS"])
|
|
921
921
|
|
|
922
|
-
flightTrajectory =
|
|
922
|
+
flightTrajectory = trajectorySegments.constantSpeedSlope(
|
|
923
923
|
AC=AC,
|
|
924
924
|
speedType="CAS",
|
|
925
925
|
v=CAS_final,
|