pyBADA 0.1.1__tar.gz → 0.1.3__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.3/.github/workflows/pytest.yml +31 -0
- pybada-0.1.3/.github/workflows/release.yml +33 -0
- {pybada-0.1.1 → pybada-0.1.3}/.github/workflows/sphinx.yml +1 -0
- pybada-0.1.3/PKG-INFO +83 -0
- pybada-0.1.3/README.md +51 -0
- pybada-0.1.3/docs/source/_static/css/custom.css +15 -0
- pybada-0.1.3/docs/source/_templates/footer.html +10 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/conf.py +7 -0
- pybada-0.1.3/docs/source/getting-started.rst +65 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/index.rst +7 -2
- {pybada-0.1.1 → pybada-0.1.3}/examples/BADAData.py +7 -10
- {pybada-0.1.1 → pybada-0.1.3}/examples/ac_trajectory.py +10 -2
- {pybada-0.1.1 → pybada-0.1.3}/examples/file_parser.py +32 -16
- pybada-0.1.3/examples/initial_mass.py +64 -0
- {pybada-0.1.1 → pybada-0.1.3}/examples/optimum_speed_altitude.py +7 -4
- {pybada-0.1.1 → pybada-0.1.3}/pyproject.toml +22 -17
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/TCL.py +589 -379
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/aircraft.py +81 -134
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/atmosphere.py +0 -3
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/bada3.py +270 -316
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/bada4.py +215 -260
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/badaH.py +87 -173
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/configuration.py +60 -3
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/constants.py +0 -3
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/conversions.py +0 -3
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/flightTrajectory.py +78 -22
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/geodesic.py +0 -3
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/magnetic.py +0 -3
- pybada-0.1.3/src/pyBADA/trajectoryPrediction.py +209 -0
- pybada-0.1.3/tests/load_test.py +17 -0
- pybada-0.1.1/PKG-INFO +0 -72
- pybada-0.1.1/README.md +0 -44
- pybada-0.1.1/src/pyBADA/trajectoryPrediction.py +0 -176
- {pybada-0.1.1 → pybada-0.1.3}/.gitignore +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/.pre-commit-config.yaml +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/AUTHORS +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/LICENCE.txt +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/Makefile +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/TCL.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/aircraft.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/atmosphere.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/bada3.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/bada4.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/badaH.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/configuration.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/constants.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/conversions.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/flightTrajectory.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/geodesic.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/magnetic.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/API_reference/trajectoryPrediction.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/_static/default_thumbnail.png +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/_static/pyBADA_architecture.png +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/architecture.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/history.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/pyBADA.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/userManual.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/user_manual/examples.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/docs/source/user_manual/introduction.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/examples/GALLERY_HEADER.rst +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/examples/ac_trajectory_GPS.py +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/examples/geodesic.py +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/examples/heli_trajectory.py +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/BADA.GPF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/BZJT__.APF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/BZJT__.OPF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/BZJT__.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/BZJT__.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/GA____.APF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/GA____.OPF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/GA____.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/GA____.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2H___.APF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2H___.OPF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2H___.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2H___.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2M___.APF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2M___.OPF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2M___.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J2M___.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J4H___.APF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J4H___.OPF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J4H___.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/J4H___.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/ReleaseSummary +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/SYNONYM.NEW +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/TP2M__.APF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/TP2M__.OPF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/TP2M__.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA3/DUMMY/TP2M__.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/ACM_BADA4.xsd +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.ATF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.xml +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.ATF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.xml +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/LRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/MEC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/MRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TBP/OPTALT.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.ATF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.xml +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/ECON.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/LRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/MEC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/MRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN/OPTALT.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.ATF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.xml +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/ECON.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/LRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MEC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/OPTALT.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/GPF.xml +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADA4/DUMMY/GPF_BADA4.xsd +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/DUMH.ATF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/DUMH.xml +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTD +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTF +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/LRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/MEC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/aircraft/BADAH/DUMMY/DUMH/MRC.OPT +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/data/magneticDeclinationGridData.json +0 -0
- {pybada-0.1.1 → pybada-0.1.3}/src/pyBADA/__init__.py +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Run unit tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
name: Run unit tests
|
|
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 Pytest
|
|
30
|
+
run: |
|
|
31
|
+
python -m pytest tests/ -s --junitxml=path
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Release new version on PyPi
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- '*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
name: Build wheel and upload
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout repository
|
|
15
|
+
uses: actions/checkout@v3
|
|
16
|
+
|
|
17
|
+
- name: Set up Python
|
|
18
|
+
uses: actions/setup-python@v4
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.12"
|
|
21
|
+
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: |
|
|
24
|
+
python -m pip install --upgrade pip
|
|
25
|
+
pip install .
|
|
26
|
+
pip install .[dev]
|
|
27
|
+
|
|
28
|
+
- name: Build pyBADA and upload wheel to PyPi
|
|
29
|
+
run: |
|
|
30
|
+
export TWINE_USERNAME=__token__
|
|
31
|
+
export TWINE_PASSWORD=${{ secrets.PYPI_API_TOKEN }}
|
|
32
|
+
python3 -m build
|
|
33
|
+
twine upload dist/*
|
pybada-0.1.3/PKG-INFO
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyBADA
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: pyBADA
|
|
5
|
+
Project-URL: Homepage, https://github.com/eurocontrol-bada/pybada
|
|
6
|
+
Author-email: Henrich Glaser-Opitz <henrich.glaser-opitz@eurocontrol.int>
|
|
7
|
+
License: EUPL-1.2
|
|
8
|
+
License-File: AUTHORS
|
|
9
|
+
License-File: LICENCE.txt
|
|
10
|
+
Classifier: License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Requires-Python: >=3.12
|
|
13
|
+
Requires-Dist: numpy>=2.2.3
|
|
14
|
+
Requires-Dist: pandas>=2.2.3
|
|
15
|
+
Requires-Dist: scipy>=1.15.2
|
|
16
|
+
Requires-Dist: simplekml>=1.3.6
|
|
17
|
+
Requires-Dist: xlsxwriter>=3.2.2
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Requires-Dist: black==25.1.0; extra == 'dev'
|
|
20
|
+
Requires-Dist: build; extra == 'dev'
|
|
21
|
+
Requires-Dist: flake8==7.1.2; extra == 'dev'
|
|
22
|
+
Requires-Dist: folium==0.19.5; extra == 'dev'
|
|
23
|
+
Requires-Dist: matplotlib==3.10.1; extra == 'dev'
|
|
24
|
+
Requires-Dist: pre-commit==4.1.0; extra == 'dev'
|
|
25
|
+
Requires-Dist: pytest==8.3.5; extra == 'dev'
|
|
26
|
+
Requires-Dist: readthedocs-sphinx-search>=0.3.2; extra == 'dev'
|
|
27
|
+
Requires-Dist: sphinx-gallery==0.19.0; extra == 'dev'
|
|
28
|
+
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == 'dev'
|
|
29
|
+
Requires-Dist: sphinx==8.2.3; extra == 'dev'
|
|
30
|
+
Requires-Dist: twine; extra == 'dev'
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
33
|
+
# pyBADA
|
|
34
|
+
|
|
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
|
+
<a href="https://pypi.org/project/pyBADA"><img alt="Released on PyPi" src="https://img.shields.io/pypi/v/pyBADA.svg"></a>
|
|
37
|
+

|
|
38
|
+
<a href="https://github.com/eurocontrol-bada/pybada"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
|
|
39
|
+
[](https://github.com/eurocontrol-bada/pybada/actions/workflows/pytest.yml)
|
|
40
|
+
|
|
41
|
+
This package provides aircraft performance modelling, trajectory prediction and optimisation, and visualisation with [BADA](https://www.eurocontrol.int/model/bada) in Python.
|
|
42
|
+
|
|
43
|
+
To get started
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install pyBADA
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Examples, the user manual and the API reference can be found at the [pyBADA documentation website](https://eurocontrol-bada.github.io/pybada/index.html).
|
|
50
|
+
|
|
51
|
+
## Development
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Clone the repository
|
|
55
|
+
git clone https://github.com/eurocontrol-bada/pybada
|
|
56
|
+
|
|
57
|
+
# Optionally, set up a virtual env and activate it
|
|
58
|
+
python3 -m venv env
|
|
59
|
+
source env/bin/activate
|
|
60
|
+
|
|
61
|
+
# Install package
|
|
62
|
+
pip install .
|
|
63
|
+
# Install a couple of packages for formatting, linting and building the docs
|
|
64
|
+
pip install .[dev]
|
|
65
|
+
|
|
66
|
+
# Run unit tests
|
|
67
|
+
python3 -m pytest tests/
|
|
68
|
+
# Build the docs
|
|
69
|
+
cd docs
|
|
70
|
+
make html
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Running on unsupported environments
|
|
75
|
+
|
|
76
|
+
You won't receive support for it, but you can pass the flag `--ignore-requires-python` to install pyBADA on an unsupported Python version.
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
## License
|
|
80
|
+
|
|
81
|
+
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/).
|
|
82
|
+
|
|
83
|
+
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.
|
pybada-0.1.3/README.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# pyBADA
|
|
2
|
+
|
|
3
|
+
<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
|
+
<a href="https://pypi.org/project/pyBADA"><img alt="Released on PyPi" src="https://img.shields.io/pypi/v/pyBADA.svg"></a>
|
|
5
|
+

|
|
6
|
+
<a href="https://github.com/eurocontrol-bada/pybada"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
|
|
7
|
+
[](https://github.com/eurocontrol-bada/pybada/actions/workflows/pytest.yml)
|
|
8
|
+
|
|
9
|
+
This package provides aircraft performance modelling, trajectory prediction and optimisation, and visualisation with [BADA](https://www.eurocontrol.int/model/bada) in Python.
|
|
10
|
+
|
|
11
|
+
To get started
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install pyBADA
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples, the user manual and the API reference can be found at the [pyBADA documentation website](https://eurocontrol-bada.github.io/pybada/index.html).
|
|
18
|
+
|
|
19
|
+
## Development
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Clone the repository
|
|
23
|
+
git clone https://github.com/eurocontrol-bada/pybada
|
|
24
|
+
|
|
25
|
+
# Optionally, set up a virtual env and activate it
|
|
26
|
+
python3 -m venv env
|
|
27
|
+
source env/bin/activate
|
|
28
|
+
|
|
29
|
+
# Install package
|
|
30
|
+
pip install .
|
|
31
|
+
# Install a couple of packages for formatting, linting and building the docs
|
|
32
|
+
pip install .[dev]
|
|
33
|
+
|
|
34
|
+
# Run unit tests
|
|
35
|
+
python3 -m pytest tests/
|
|
36
|
+
# Build the docs
|
|
37
|
+
cd docs
|
|
38
|
+
make html
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Running on unsupported environments
|
|
43
|
+
|
|
44
|
+
You won't receive support for it, but you can pass the flag `--ignore-requires-python` to install pyBADA on an unsupported Python version.
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## License
|
|
48
|
+
|
|
49
|
+
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/).
|
|
50
|
+
|
|
51
|
+
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.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Exo:ital,wght@0,100..900;1,100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=K2D:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800&family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap');
|
|
2
|
+
|
|
3
|
+
.rst-content .toctree-wrapper > p.caption, h1, h2, h3, h4, h5, h6, legend, .wy-nav-side {
|
|
4
|
+
font-family: Exo;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.wy-side-scroll {
|
|
8
|
+
font-size: 18px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.wy-side-nav-search {
|
|
12
|
+
background-image: linear-gradient(150deg,#004B8D 0%,#2990EA 100%);
|
|
13
|
+
padding-top: 2em;
|
|
14
|
+
padding-bottom: 2.5em;
|
|
15
|
+
}
|
|
@@ -18,6 +18,7 @@ extensions = [
|
|
|
18
18
|
"sphinx.ext.viewcode",
|
|
19
19
|
"sphinx.ext.autosummary",
|
|
20
20
|
"sphinx_gallery.gen_gallery",
|
|
21
|
+
"sphinx_search.extension",
|
|
21
22
|
]
|
|
22
23
|
|
|
23
24
|
sphinx_gallery_conf = {
|
|
@@ -39,6 +40,10 @@ autosummary_generate = True
|
|
|
39
40
|
templates_path = ["_templates"]
|
|
40
41
|
exclude_patterns = []
|
|
41
42
|
|
|
43
|
+
html_css_files = [
|
|
44
|
+
'css/custom.css',
|
|
45
|
+
]
|
|
46
|
+
|
|
42
47
|
# add_module_names = False
|
|
43
48
|
modindex_common_prefix = ["pyBADA."]
|
|
44
49
|
|
|
@@ -46,3 +51,5 @@ modindex_common_prefix = ["pyBADA."]
|
|
|
46
51
|
|
|
47
52
|
html_theme = "sphinx_rtd_theme"
|
|
48
53
|
html_static_path = ["_static"]
|
|
54
|
+
|
|
55
|
+
copyright = "2024, EUROCONTROL"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Getting started
|
|
2
|
+
==================================
|
|
3
|
+
|
|
4
|
+
.. code-block:: bash
|
|
5
|
+
|
|
6
|
+
pip install pyBADA
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Running on unsupported environments
|
|
10
|
+
-----------------------------------
|
|
11
|
+
|
|
12
|
+
You won't receive support for it, but you can pass the flag ``--ignore-requires-python`` to install pyBADA on an unsupported Python version.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
Providing custom models
|
|
16
|
+
-----------------------
|
|
17
|
+
|
|
18
|
+
To load your own BADA models, when instantiating an aircraft, pass as ``filePath`` the parent folder containing the desired BADA models. For example:
|
|
19
|
+
|
|
20
|
+
E.g. If your ``/home/<USER>/bada-models/BADA4/4.3/`` folder contains:
|
|
21
|
+
|
|
22
|
+
.. code-block:: text
|
|
23
|
+
|
|
24
|
+
A320-212
|
|
25
|
+
.
|
|
26
|
+
├── A320-212.ATF
|
|
27
|
+
├── A320-212_final_.mat
|
|
28
|
+
├── A320-212_ISA+20.PTD
|
|
29
|
+
├── A320-212_ISA+20.PTF
|
|
30
|
+
├── A320-212_ISA.PTD
|
|
31
|
+
├── A320-212_ISA.PTF
|
|
32
|
+
├── A320-212.xml
|
|
33
|
+
├── ECON.OPT
|
|
34
|
+
├── LRC.OPT
|
|
35
|
+
├── MEC.OPT
|
|
36
|
+
├── MRC.OPT
|
|
37
|
+
└── OPTALT.OPT
|
|
38
|
+
A320-232
|
|
39
|
+
.
|
|
40
|
+
├── A320-232.ATF
|
|
41
|
+
├── A320-232_final_.mat
|
|
42
|
+
├── A320-232_ISA+20.PTD
|
|
43
|
+
├── A320-232_ISA+20.PTF
|
|
44
|
+
├── A320-232_ISA.PTD
|
|
45
|
+
├── A320-232_ISA.PTF
|
|
46
|
+
├── A320-232.xml
|
|
47
|
+
├── ECON.OPT
|
|
48
|
+
├── LRC.OPT
|
|
49
|
+
├── MEC.OPT
|
|
50
|
+
├── MRC.OPT
|
|
51
|
+
└── OPTALT.OPT
|
|
52
|
+
|
|
53
|
+
You can instantiate an A320-232 like this:
|
|
54
|
+
|
|
55
|
+
.. code-block:: python
|
|
56
|
+
|
|
57
|
+
AC = Bada4Aircraft(
|
|
58
|
+
badaVersion=badaVersion,
|
|
59
|
+
acName="A320-232",
|
|
60
|
+
filePath="/home/<USER>/bada-models/BADA4/4.3",
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
In the case of BADA3, this means directly pointing to the folder containing the model files.
|
|
64
|
+
|
|
65
|
+
|
|
@@ -10,6 +10,10 @@ To get started:
|
|
|
10
10
|
pip install pybada
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
You can find the source code, report issues and contribute on the `GitHub repository <https://github.com/eurocontrol-bada/pybada>`_.
|
|
14
|
+
|
|
15
|
+
This package released as open source software under the terms of the `European Union Public Licence <https://commission.europa.eu/about/departments-and-executive-agencies/digital-services/open-source-strategy-history/european-union-public-licence_en>`_.
|
|
16
|
+
|
|
13
17
|
About BADA
|
|
14
18
|
==========
|
|
15
19
|
|
|
@@ -17,7 +21,7 @@ Efficient air traffic operations rely on the capability of air traffic managemen
|
|
|
17
21
|
|
|
18
22
|
To enable modelling and simulation of aircraft trajectories, every aircraft in operation shall have a corresponding Aircraft Performance Model (APM).
|
|
19
23
|
|
|
20
|
-
This is why
|
|
24
|
+
This is why `EUROCONTROL <https://www.eurocontrol.int/>`_, in cooperation with aircraft manufacturers and operating airlines, has created and maintains an APM called `BADA (Base of Aircraft Data) <https://www.eurocontrol.int/model/bada>`_.
|
|
21
25
|
|
|
22
26
|
Owning to this cooperation, BADA prevails as a unique product provided by EUROCONTROL to the aviation community worldwide
|
|
23
27
|
|
|
@@ -29,6 +33,7 @@ BADA APM is based on a kinetic approach to aircraft performance modelling. It is
|
|
|
29
33
|
:maxdepth: 2
|
|
30
34
|
:caption: Contents:
|
|
31
35
|
|
|
36
|
+
getting-started
|
|
32
37
|
pyBADA
|
|
33
38
|
architecture
|
|
34
39
|
userManual
|
|
@@ -40,4 +45,4 @@ Indices and tables
|
|
|
40
45
|
|
|
41
46
|
* :ref:`genindex`
|
|
42
47
|
* :ref:`modindex`
|
|
43
|
-
* :ref:`search`
|
|
48
|
+
* :ref:`search`
|
|
@@ -5,24 +5,23 @@ BADA Data Retrieval
|
|
|
5
5
|
Example of BADA parametes retrieval for specific aircraft
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
from pyBADA.bada3 import Bada3Aircraft
|
|
9
8
|
from pyBADA.bada3 import Parser as Bada3Parser
|
|
9
|
+
from pyBADA.aircraft import Bada
|
|
10
10
|
|
|
11
|
-
badaVersion = "DUMMY"
|
|
12
11
|
|
|
13
12
|
# loading all the BADA data into a dataframe
|
|
14
|
-
allData = Bada3Parser.parseAll(badaVersion=
|
|
13
|
+
allData = Bada3Parser.parseAll(badaVersion="DUMMY")
|
|
15
14
|
|
|
16
15
|
# retrieve specific data from the whole database, including synonyms
|
|
17
|
-
params =
|
|
16
|
+
params = Bada.getBADAParameters(
|
|
18
17
|
df=allData,
|
|
19
|
-
acName=["
|
|
18
|
+
acName=["A1", "P38", "AT45", "DA42", "B789", "J2H"],
|
|
20
19
|
parameters=["VMO", "MMO", "MTOW", "engineType"],
|
|
21
20
|
)
|
|
22
21
|
print(params)
|
|
23
22
|
print("\n")
|
|
24
23
|
|
|
25
|
-
params =
|
|
24
|
+
params = Bada.getBADAParameters(
|
|
26
25
|
df=allData,
|
|
27
26
|
acName=["B737"],
|
|
28
27
|
parameters=["VMO", "MMO", "MTOW", "engineType"],
|
|
@@ -30,14 +29,12 @@ params = Bada3Parser.getBADAParameters(
|
|
|
30
29
|
print(params)
|
|
31
30
|
print("\n")
|
|
32
31
|
|
|
33
|
-
params =
|
|
32
|
+
params = Bada.getBADAParameters(
|
|
34
33
|
df=allData, acName="DA42", parameters=["VMO", "MMO", "MTOW", "engineType"]
|
|
35
34
|
)
|
|
36
35
|
print(params)
|
|
37
36
|
print("\n")
|
|
38
37
|
|
|
39
|
-
params =
|
|
40
|
-
df=allData, acName="DA42", parameters="VMO"
|
|
41
|
-
)
|
|
38
|
+
params = Bada.getBADAParameters(df=allData, acName="DA42", parameters="VMO")
|
|
42
39
|
print(params)
|
|
43
40
|
print("\n")
|
|
@@ -36,11 +36,19 @@ badaVersion = "DUMMY"
|
|
|
36
36
|
allData = Bada4Parser.parseAll(badaVersion=badaVersion)
|
|
37
37
|
print(allData)
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
AC = Bada3Aircraft(badaVersion=badaVersion, acName="J2H", allData=allData)
|
|
40
40
|
AC = Bada4Aircraft(
|
|
41
|
-
badaVersion=badaVersion,
|
|
41
|
+
badaVersion=badaVersion,
|
|
42
|
+
acName="Dummy-TWIN",
|
|
43
|
+
allData=allData,
|
|
42
44
|
)
|
|
43
45
|
|
|
46
|
+
# Example loading models from files on disk
|
|
47
|
+
# AC = Bada4Aircraft(
|
|
48
|
+
# badaVersion=badaVersion,
|
|
49
|
+
# acName="A320-232",
|
|
50
|
+
# filePath="/home/<USER>/ec/pybada-models/models/BADA4/4.3",
|
|
51
|
+
# )
|
|
44
52
|
|
|
45
53
|
# create a Flight Trajectory object to store the output from TCL segment calculations
|
|
46
54
|
ft = FT()
|
|
@@ -8,23 +8,30 @@ Example of BADA3, BADA4 and BADAH file parser
|
|
|
8
8
|
from pyBADA.bada3 import Bada3Aircraft
|
|
9
9
|
from pyBADA.bada4 import Bada4Aircraft
|
|
10
10
|
from pyBADA.badaH import BadaHAircraft
|
|
11
|
-
from pyBADA.bada3 import Parser as Bada3Parser
|
|
12
|
-
from pyBADA.bada4 import Parser as Bada4Parser
|
|
13
|
-
from pyBADA.badaH import Parser as BadaHParser
|
|
14
11
|
|
|
12
|
+
# initialization of BADAH
|
|
13
|
+
AC = BadaHAircraft(badaVersion="DUMMY", acName="DUMH")
|
|
15
14
|
|
|
16
|
-
# initialization of BADA3, BADA4 and BADAH
|
|
17
|
-
# uncomment for testing different BADA family if available
|
|
18
15
|
# BADAH
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
if AC.BADAFamily.BADAH:
|
|
17
|
+
ICAO = AC.ICAO
|
|
18
|
+
WTC = AC.WTC
|
|
19
|
+
MTOW = AC.MTOW
|
|
20
|
+
print(
|
|
21
|
+
"BADA Family:",
|
|
22
|
+
AC.BADAFamilyName,
|
|
23
|
+
"| BADA Version:",
|
|
24
|
+
AC.BADAVersion,
|
|
25
|
+
"| ICAO:",
|
|
26
|
+
ICAO,
|
|
27
|
+
"| WTC:",
|
|
28
|
+
WTC,
|
|
29
|
+
"| MTOW =",
|
|
30
|
+
MTOW,
|
|
31
|
+
)
|
|
27
32
|
|
|
33
|
+
# initialization of BADA4
|
|
34
|
+
AC = Bada4Aircraft(badaVersion="DUMMY", acName="Dummy-TBP")
|
|
28
35
|
|
|
29
36
|
# BADA3 or BADA4
|
|
30
37
|
if AC.BADAFamily.BADA3 or AC.BADAFamily.BADA4:
|
|
@@ -50,10 +57,15 @@ if AC.BADAFamily.BADA3 or AC.BADAFamily.BADA4:
|
|
|
50
57
|
MTOW,
|
|
51
58
|
)
|
|
52
59
|
|
|
53
|
-
#
|
|
54
|
-
|
|
60
|
+
# initialization of BADA3
|
|
61
|
+
AC = Bada3Aircraft(badaVersion="DUMMY", acName="BZJT")
|
|
62
|
+
|
|
63
|
+
# BADA3 or BADA4
|
|
64
|
+
if AC.BADAFamily.BADA3 or AC.BADAFamily.BADA4:
|
|
55
65
|
ICAO = AC.ICAO
|
|
56
66
|
WTC = AC.WTC
|
|
67
|
+
VMO = AC.VMO
|
|
68
|
+
MMO = AC.MMO
|
|
57
69
|
MTOW = AC.MTOW
|
|
58
70
|
print(
|
|
59
71
|
"BADA Family:",
|
|
@@ -62,8 +74,12 @@ if AC.BADAFamily.BADAH:
|
|
|
62
74
|
AC.BADAVersion,
|
|
63
75
|
"| ICAO:",
|
|
64
76
|
ICAO,
|
|
65
|
-
"
|
|
77
|
+
"| WTC:",
|
|
66
78
|
WTC,
|
|
79
|
+
"| VMO =",
|
|
80
|
+
VMO,
|
|
81
|
+
"| MMO =",
|
|
82
|
+
MMO,
|
|
67
83
|
"| MTOW =",
|
|
68
84
|
MTOW,
|
|
69
85
|
)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Initial Mass Calculation
|
|
3
|
+
========================
|
|
4
|
+
|
|
5
|
+
Example calculation of aircraft initial mass
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from pyBADA.bada3 import Bada3Aircraft
|
|
10
|
+
from pyBADA import trajectoryPrediction as TP
|
|
11
|
+
from pyBADA import atmosphere as atm
|
|
12
|
+
from pyBADA import conversions as conv
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# calculate estimations for the fuel flow, and aircraft initial mass
|
|
16
|
+
AC = Bada3Aircraft(badaVersion='DUMMY', acName="J2M")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
deltaTemp = 0 # deviation from ISA temperature [K or deg C]
|
|
20
|
+
M = 0.7 # Mach number [-]
|
|
21
|
+
altitude = conv.ft2m(30000) # cruise altitude[m]
|
|
22
|
+
distance = conv.nm2m(100) # flown distance [NM]
|
|
23
|
+
payload = 80 # payload mass [% of the maximum payload mass]
|
|
24
|
+
fuelReserve = 3600 # reserve of the fuel [s]
|
|
25
|
+
flightPlanInitialMass = None # planned initial/takeoff mass [kg]
|
|
26
|
+
|
|
27
|
+
# fuel flow in cruise
|
|
28
|
+
cruiseFuelFlow = TP.cruiseFuelConsumption(
|
|
29
|
+
AC=AC, altitude=altitude, M=M, deltaTemp=deltaTemp
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# in case of no wind, the ground speed is the same as true airspeed
|
|
33
|
+
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
34
|
+
h=altitude, DeltaTemp=deltaTemp
|
|
35
|
+
)
|
|
36
|
+
TAS = atm.mach2Tas(Mach=M, theta=theta)
|
|
37
|
+
GS = TAS
|
|
38
|
+
|
|
39
|
+
# distance based initial mass
|
|
40
|
+
breguetLeducInitialMass = TP.breguetLeducInitialMass(
|
|
41
|
+
AC=AC,
|
|
42
|
+
distance=distance,
|
|
43
|
+
GS=GS,
|
|
44
|
+
cruiseFuelFlow=cruiseFuelFlow,
|
|
45
|
+
payload=payload,
|
|
46
|
+
fuelReserve=fuelReserve,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
# calculation of initial mass taking into account flight plan data and aircraft flight envelope
|
|
50
|
+
initMass = TP.getInitialMass(
|
|
51
|
+
AC=AC,
|
|
52
|
+
distance=distance,
|
|
53
|
+
altitude=altitude,
|
|
54
|
+
M=M,
|
|
55
|
+
payload=payload,
|
|
56
|
+
fuelReserve=fuelReserve,
|
|
57
|
+
flightPlanInitialMass=flightPlanInitialMass,
|
|
58
|
+
deltaTemp=deltaTemp,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
print(f"cruiseFuelFlow: {cruiseFuelFlow} [kg/s]")
|
|
62
|
+
print(f"breguetLeducInitialMass: {breguetLeducInitialMass} [kg]")
|
|
63
|
+
print(f"initMass: {initMass} [kg]")
|
|
64
|
+
|
|
@@ -13,11 +13,11 @@ from pyBADA.badaH import BadaHAircraft
|
|
|
13
13
|
from pyBADA.bada4 import Parser as Bada4Parser
|
|
14
14
|
from pyBADA.badaH import Parser as BadaHParser
|
|
15
15
|
|
|
16
|
-
# initialization of BADA3, BADA4 and BADAH
|
|
17
|
-
# uncomment for testing different BADA family if available
|
|
18
16
|
badaVersion = "DUMMY"
|
|
19
|
-
|
|
20
|
-
#
|
|
17
|
+
|
|
18
|
+
# initialization of BADA4
|
|
19
|
+
AC = Bada4Aircraft(badaVersion=badaVersion, acName="Dummy-TWIN")
|
|
20
|
+
print("BADA4 Optimum Speed and Altitude:")
|
|
21
21
|
|
|
22
22
|
# BADA4
|
|
23
23
|
if AC.BADAFamily.BADA4:
|
|
@@ -77,6 +77,9 @@ if AC.BADAFamily.BADA4:
|
|
|
77
77
|
optAlt_precomputed = AC.OPT.getOPTParam("OPTALT", M, mass)
|
|
78
78
|
print("optAlt_precomputed = ", optAlt_precomputed)
|
|
79
79
|
|
|
80
|
+
# initialization of BADAH
|
|
81
|
+
AC = BadaHAircraft(badaVersion=badaVersion, acName="DUMH")
|
|
82
|
+
print("\nBADAH Optimum Speed and Altitude:")
|
|
80
83
|
|
|
81
84
|
# BADAH
|
|
82
85
|
if AC.BADAFamily.BADAH:
|
|
@@ -4,40 +4,45 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pyBADA"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.3"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Henrich Glaser-Opitz", email="henrich.glaser-opitz@eurocontrol.int" }
|
|
10
10
|
]
|
|
11
11
|
description = "pyBADA"
|
|
12
12
|
readme = "README.md"
|
|
13
|
-
requires-python = ">=3.
|
|
13
|
+
requires-python = ">=3.12"
|
|
14
14
|
classifiers = [
|
|
15
15
|
"Programming Language :: Python :: 3",
|
|
16
16
|
"License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)"
|
|
17
17
|
]
|
|
18
18
|
dependencies = [
|
|
19
|
-
"scipy
|
|
20
|
-
"numpy
|
|
21
|
-
"pandas
|
|
22
|
-
"simplekml
|
|
23
|
-
"XlsxWriter
|
|
19
|
+
"scipy>=1.15.2",
|
|
20
|
+
"numpy>=2.2.3",
|
|
21
|
+
"pandas>=2.2.3",
|
|
22
|
+
"simplekml>=1.3.6",
|
|
23
|
+
"XlsxWriter>=3.2.2"
|
|
24
24
|
]
|
|
25
25
|
license = { text = "EUPL-1.2" }
|
|
26
26
|
|
|
27
27
|
# Some additional deps not needed to run the package but to develop on it
|
|
28
28
|
# linter, formatter, to build the docs, ..
|
|
29
29
|
[project.optional-dependencies]
|
|
30
|
-
dev = ["black==
|
|
31
|
-
"flake8==
|
|
32
|
-
"sphinx-rtd-theme==
|
|
33
|
-
"Sphinx==
|
|
34
|
-
"pre-commit==
|
|
35
|
-
"sphinx-gallery==0.
|
|
36
|
-
"matplotlib==3.
|
|
37
|
-
"folium==0.
|
|
30
|
+
dev = ["black==25.1.0",
|
|
31
|
+
"flake8==7.1.2",
|
|
32
|
+
"sphinx-rtd-theme==3.0.2",
|
|
33
|
+
"Sphinx==8.2.3",
|
|
34
|
+
"pre-commit==4.1.0",
|
|
35
|
+
"sphinx-gallery==0.19.0",
|
|
36
|
+
"matplotlib==3.10.1",
|
|
37
|
+
"folium==0.19.5",
|
|
38
|
+
"pytest==8.3.5",
|
|
39
|
+
"build",
|
|
40
|
+
"twine",
|
|
41
|
+
"readthedocs-sphinx-search>=0.3.2"
|
|
42
|
+
]
|
|
38
43
|
|
|
39
44
|
[project.urls]
|
|
40
|
-
"Homepage" = "https://github.com/eurocontrol/pybada"
|
|
45
|
+
"Homepage" = "https://github.com/eurocontrol-bada/pybada"
|
|
41
46
|
|
|
42
47
|
[tool.black]
|
|
43
48
|
target-version = ['py312']
|
|
@@ -64,4 +69,4 @@ packages = ["src/pyBADA"]
|
|
|
64
69
|
"src/aircraft/BADA3/DUMMY" = "pyBADA/aircraft/BADA3/DUMMY"
|
|
65
70
|
"src/aircraft/BADA4/DUMMY" = "pyBADA/aircraft/BADA4/DUMMY"
|
|
66
71
|
"src/aircraft/BADAH/DUMMY" = "pyBADA/aircraft/BADAH/DUMMY"
|
|
67
|
-
"src/data" = "pyBADA/data"
|
|
72
|
+
"src/data" = "pyBADA/data"
|