pyBADA 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl
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/TCL.py +255 -88
- pyBADA/aircraft.py +40 -44
- pyBADA/atmosphere.py +79 -75
- pyBADA/bada3.py +273 -249
- pyBADA/bada4.py +463 -337
- pyBADA/badaH.py +341 -243
- pyBADA/configuration.py +31 -24
- pyBADA/constants.py +0 -4
- pyBADA/conversions.py +11 -26
- pyBADA/flightTrajectory.py +159 -71
- pyBADA/geodesic.py +119 -85
- pyBADA/magnetic.py +12 -10
- pyBADA/trajectoryPrediction.py +180 -143
- pybada-0.1.4.dist-info/METADATA +92 -0
- {pybada-0.1.2.dist-info → pybada-0.1.4.dist-info}/RECORD +18 -18
- {pybada-0.1.2.dist-info → pybada-0.1.4.dist-info}/WHEEL +1 -1
- pybada-0.1.2.dist-info/METADATA +0 -70
- {pybada-0.1.2.dist-info → pybada-0.1.4.dist-info}/licenses/AUTHORS +0 -0
- {pybada-0.1.2.dist-info → pybada-0.1.4.dist-info}/licenses/LICENCE.txt +0 -0
pyBADA/trajectoryPrediction.py
CHANGED
|
@@ -1,145 +1,175 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
|
-
pyBADA
|
|
4
2
|
Basic calculations for the Trajectory Prediction (TP) using BADA
|
|
5
|
-
Developped @EUROCONTROL (EIH)
|
|
6
|
-
2024
|
|
7
3
|
"""
|
|
8
4
|
|
|
9
5
|
from pyBADA import atmosphere as atm
|
|
10
|
-
from pyBADA import conversions as conv
|
|
11
6
|
from math import exp
|
|
12
7
|
|
|
13
8
|
|
|
14
|
-
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
9
|
+
def cruiseFuelConsumption(AC, altitude, M, deltaTemp):
|
|
10
|
+
"""
|
|
11
|
+
Calculate the cruise fuel consumption for an aircraft during cruise flight using BADA.
|
|
12
|
+
|
|
13
|
+
:param AC: Aircraft object (instance of Bada3Aircraft, Bada4Aircraft, or BadaHAircraft).
|
|
14
|
+
:param altitude: Altitude in meters.
|
|
15
|
+
:param M: Mach number at cruising altitude.
|
|
16
|
+
:param deltaTemp: Temperature deviation from standard atmosphere.
|
|
17
|
+
:type AC: object
|
|
18
|
+
:type altitude: float
|
|
19
|
+
:type M: float
|
|
20
|
+
:type deltaTemp: float
|
|
21
|
+
:return: Fuel flow in kg/s.
|
|
22
|
+
:rtype: float
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
26
|
+
h=altitude, DeltaTemp=deltaTemp
|
|
27
|
+
)
|
|
28
|
+
TAS = atm.mach2Tas(Mach=M, theta=theta)
|
|
29
|
+
|
|
30
|
+
config = "CR"
|
|
31
|
+
flightPhase = "Cruise"
|
|
32
|
+
mass = AC.MREF
|
|
33
|
+
|
|
34
|
+
if AC.BADAFamily.BADA3:
|
|
35
|
+
# compute lift coefficient
|
|
36
|
+
CL = AC.CL(tas=TAS, sigma=sigma, mass=mass)
|
|
37
|
+
# compute drag coefficient
|
|
38
|
+
CD = AC.CD(CL=CL, config=config)
|
|
39
|
+
# compute drag force
|
|
40
|
+
Drag = AC.D(tas=TAS, sigma=sigma, CD=CD)
|
|
41
|
+
# compute thrust force and fuel flow
|
|
42
|
+
THR = Drag
|
|
43
|
+
|
|
44
|
+
fuelFlow = AC.ff(
|
|
45
|
+
h=altitude,
|
|
46
|
+
v=TAS,
|
|
47
|
+
T=THR,
|
|
48
|
+
config=config,
|
|
49
|
+
flightPhase=flightPhase,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
elif AC.BADAFamily.BADA4:
|
|
53
|
+
# compute lift coefficient
|
|
54
|
+
CL = AC.CL(M=M, delta=delta, mass=mass)
|
|
55
|
+
# compute drag coefficient
|
|
56
|
+
[HLid, LG] = AC.flightEnvelope.getAeroConfig(config=config)
|
|
57
|
+
CD = AC.CD(M=M, CL=CL, HLid=HLid, LG=LG)
|
|
58
|
+
# compute drag force
|
|
59
|
+
Drag = AC.D(M=M, delta=delta, CD=CD)
|
|
60
|
+
# compute thrust force and fuel flow
|
|
61
|
+
THR = Drag
|
|
62
|
+
CT = AC.CT(Thrust=THR, delta=delta)
|
|
63
|
+
|
|
64
|
+
fuelFlow = AC.ff(
|
|
65
|
+
CT=CT, delta=delta, theta=theta, M=M, deltaTemp=deltaTemp
|
|
66
|
+
) # [kg/s]
|
|
67
|
+
|
|
68
|
+
elif AC.BADAFamily.BADAH:
|
|
69
|
+
# compute Power required for level flight
|
|
70
|
+
Preq = AC.Preq(sigma=sigma, tas=TAS, mass=mass, phi=0)
|
|
71
|
+
Peng_i = Preq
|
|
72
|
+
# Pav_i = AC.Pav(rating="MCNT", theta=theta, delta=delta) # assume MCNT rating as the limit
|
|
73
|
+
|
|
74
|
+
# if Pav_i < Preq:
|
|
75
|
+
# warnings.warn("Power Available is lower than Power Required",UserWarning)
|
|
76
|
+
|
|
77
|
+
# compute fuel flow for level flight
|
|
78
|
+
CP = AC.CP(Peng=Preq)
|
|
79
|
+
fuelFlow = AC.ff(delta=delta, CP=CP) # [kg/s]
|
|
80
|
+
|
|
81
|
+
return fuelFlow
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def breguetLeducInitialMass(
|
|
85
|
+
AC, distance, GS, cruiseFuelFlow, payload, fuelReserve
|
|
86
|
+
):
|
|
87
|
+
"""Calculate the estimated initial mass required for the aircraft using
|
|
88
|
+
the Breguet Leduc formula.
|
|
89
|
+
|
|
90
|
+
:param AC: Aircraft object (instance of Bada3Aircraft, Bada4Aircraft, or
|
|
91
|
+
BadaHAircraft).
|
|
92
|
+
:param distance: Flight distance in meters.
|
|
93
|
+
:param GS: Ground speed in m/s (assumed equal to true airspeed under no-
|
|
94
|
+
wind conditions).
|
|
95
|
+
:param cruiseFuelFlow: Fuel flow rate during cruise in kg/s.
|
|
96
|
+
:param payload: Payload percentage (of the maximum payload mass) to be
|
|
97
|
+
used.
|
|
98
|
+
:param fuelReserve: Fuel reserve time in seconds.
|
|
99
|
+
:type AC: object
|
|
100
|
+
:type distance: float
|
|
101
|
+
:type GS: float
|
|
102
|
+
:type cruiseFuelFlow: float
|
|
103
|
+
:type payload: float
|
|
104
|
+
:type fuelReserve: float
|
|
105
|
+
:return: Initial mass in kg.
|
|
106
|
+
:rtype: float
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
fuelReserveMass = fuelReserve * cruiseFuelFlow
|
|
110
|
+
|
|
111
|
+
if AC.MPL is not None:
|
|
112
|
+
maximumPayload = AC.MPL
|
|
113
|
+
else:
|
|
114
|
+
maximumPayload = AC.MTOW - AC.OEW - AC.MFL
|
|
115
|
+
payloadMass = (payload / 100) * maximumPayload
|
|
116
|
+
|
|
117
|
+
minimumLandingMass = AC.OEW + payloadMass + fuelReserveMass
|
|
118
|
+
|
|
119
|
+
initialMass = minimumLandingMass * exp(
|
|
120
|
+
(cruiseFuelFlow * distance) / (AC.MREF * GS)
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
return initialMass
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def getInitialMass(
|
|
127
|
+
AC,
|
|
128
|
+
distance,
|
|
129
|
+
altitude,
|
|
130
|
+
M,
|
|
131
|
+
payload=60,
|
|
132
|
+
fuelReserve=3600,
|
|
133
|
+
flightPlanInitialMass=None,
|
|
134
|
+
deltaTemp=0,
|
|
135
|
+
):
|
|
136
|
+
"""Calculates the estimated initial aircraft mass assumig cruise phase,
|
|
137
|
+
combining flight plan data, aircraft envelope constraints, and an
|
|
138
|
+
exponential fuel consumption model inspired by the Breguet Leduc formula.
|
|
139
|
+
|
|
140
|
+
:param AC: Aircraft object (instance of Bada3Aircraft, Bada4Aircraft,
|
|
141
|
+
BadaEAircraft, or BadaHAircraft).
|
|
142
|
+
:param distance: Distance to be flown in meters.
|
|
143
|
+
:param altitude: Cruising altitude in meters.
|
|
144
|
+
:param M: Mach number at cruising altitude.
|
|
145
|
+
:param payload: Percentage of the maximum payload mass (default is 60%).
|
|
146
|
+
:param fuelReserve: Fuel reserve time in seconds (default is 3600 seconds,
|
|
147
|
+
or 1 hour).
|
|
148
|
+
:param flightPlanInitialMass: Optional initial mass from a flight plan, in
|
|
149
|
+
kg.
|
|
150
|
+
:param deltaTemp: Temperature deviation from standard atmosphere.
|
|
151
|
+
:type AC: object
|
|
152
|
+
:type distance: float
|
|
153
|
+
:type altitude: float
|
|
154
|
+
:type M: float
|
|
155
|
+
:type payload: float, optional
|
|
156
|
+
:type fuelReserve: float, optional
|
|
157
|
+
:type flightPlanInitialMass: float, optional
|
|
158
|
+
:type deltaTemp: float, optional
|
|
159
|
+
:return: Estimated initial aircraft mass in kg.
|
|
160
|
+
:rtype: float
|
|
161
|
+
"""
|
|
162
|
+
|
|
163
|
+
# set Initial Mass from FPL check
|
|
164
|
+
if flightPlanInitialMass is not None:
|
|
165
|
+
initialMass = flightPlanInitialMass
|
|
166
|
+
else:
|
|
167
|
+
# in case of no wind, the ground speed is the same as true airspeed
|
|
168
|
+
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
169
|
+
h=altitude, DeltaTemp=deltaTemp
|
|
170
|
+
)
|
|
171
|
+
TAS = atm.mach2Tas(Mach=M, theta=theta)
|
|
172
|
+
GS = TAS
|
|
143
173
|
|
|
144
174
|
if AC.BADAFamily.BADA3 or AC.BADAFamily.BADA4:
|
|
145
175
|
if (AC.MMO is not None and AC.MMO >= 1.0) or (
|
|
@@ -148,14 +178,16 @@ class TrajectoryPrediction:
|
|
|
148
178
|
# identified as fighter jet
|
|
149
179
|
initialMass = AC.MREF
|
|
150
180
|
else:
|
|
151
|
-
|
|
181
|
+
cruiseFuelFlow = cruiseFuelConsumption(
|
|
182
|
+
AC=AC, altitude=altitude, M=M, deltaTemp=deltaTemp
|
|
183
|
+
)
|
|
184
|
+
initialMass = breguetLeducInitialMass(
|
|
152
185
|
AC=AC,
|
|
153
186
|
distance=distance,
|
|
154
|
-
|
|
155
|
-
|
|
187
|
+
GS=GS,
|
|
188
|
+
cruiseFuelFlow=cruiseFuelFlow,
|
|
156
189
|
payload=payload,
|
|
157
190
|
fuelReserve=fuelReserve,
|
|
158
|
-
flightPlanInitialMass=flightPlanInitialMass,
|
|
159
191
|
)
|
|
160
192
|
|
|
161
193
|
elif AC.BADAFamily.BADAH:
|
|
@@ -163,14 +195,19 @@ class TrajectoryPrediction:
|
|
|
163
195
|
# identified as fighter
|
|
164
196
|
initialMass = AC.MREF
|
|
165
197
|
else:
|
|
166
|
-
|
|
198
|
+
cruiseFuelFlow = cruiseFuelConsumption(
|
|
199
|
+
AC=AC, altitude=altitude, M=M, deltaTemp=deltaTemp
|
|
200
|
+
)
|
|
201
|
+
initialMass = breguetLeducInitialMass(
|
|
167
202
|
AC=AC,
|
|
168
203
|
distance=distance,
|
|
169
|
-
|
|
170
|
-
|
|
204
|
+
GS=GS,
|
|
205
|
+
cruiseFuelFlow=cruiseFuelFlow,
|
|
171
206
|
payload=payload,
|
|
172
207
|
fuelReserve=fuelReserve,
|
|
173
|
-
flightPlanInitialMass=flightPlanInitialMass,
|
|
174
208
|
)
|
|
175
209
|
|
|
176
|
-
|
|
210
|
+
# envelope check
|
|
211
|
+
initialMass = min(max(initialMass, AC.OEW), AC.MTOW)
|
|
212
|
+
|
|
213
|
+
return initialMass
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyBADA
|
|
3
|
+
Version: 0.1.4
|
|
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: build; extra == 'dev'
|
|
20
|
+
Requires-Dist: folium==0.19.5; extra == 'dev'
|
|
21
|
+
Requires-Dist: matplotlib==3.10.1; extra == 'dev'
|
|
22
|
+
Requires-Dist: pre-commit==4.1.0; extra == 'dev'
|
|
23
|
+
Requires-Dist: pytest==8.3.5; extra == 'dev'
|
|
24
|
+
Requires-Dist: readthedocs-sphinx-search>=0.3.2; extra == 'dev'
|
|
25
|
+
Requires-Dist: ruff==0.11.5; extra == 'dev'
|
|
26
|
+
Requires-Dist: sphinx-gallery==0.19.0; extra == 'dev'
|
|
27
|
+
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == 'dev'
|
|
28
|
+
Requires-Dist: sphinx==8.2.3; extra == 'dev'
|
|
29
|
+
Requires-Dist: twine; extra == 'dev'
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
|
|
32
|
+
# pyBADA
|
|
33
|
+
|
|
34
|
+
[](https://github.com/astral-sh/ruff)
|
|
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
|
+
# 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
|
+
# Install pre-commit
|
|
66
|
+
pre-commit install
|
|
67
|
+
|
|
68
|
+
# Run unit tests
|
|
69
|
+
python3 -m pytest tests/
|
|
70
|
+
|
|
71
|
+
# Format code
|
|
72
|
+
ruff format
|
|
73
|
+
|
|
74
|
+
# Lint code
|
|
75
|
+
ruff check
|
|
76
|
+
|
|
77
|
+
# Build the docs
|
|
78
|
+
cd docs
|
|
79
|
+
make html
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
### Running on unsupported environments
|
|
84
|
+
|
|
85
|
+
You won't receive support for it, but you can pass the flag `--ignore-requires-python` to install pyBADA on an unsupported Python version.
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## License
|
|
89
|
+
|
|
90
|
+
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/model/bada).
|
|
91
|
+
|
|
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,17 +1,17 @@
|
|
|
1
|
-
pyBADA/TCL.py,sha256=
|
|
1
|
+
pyBADA/TCL.py,sha256=K6L_E0BchttNDWrAfDfuHWk3-ux7mvgeONpr2OkQNgw,373689
|
|
2
2
|
pyBADA/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
pyBADA/aircraft.py,sha256=
|
|
4
|
-
pyBADA/atmosphere.py,sha256=
|
|
5
|
-
pyBADA/bada3.py,sha256=
|
|
6
|
-
pyBADA/bada4.py,sha256=
|
|
7
|
-
pyBADA/badaH.py,sha256=
|
|
8
|
-
pyBADA/configuration.py,sha256=
|
|
9
|
-
pyBADA/constants.py,sha256=
|
|
10
|
-
pyBADA/conversions.py,sha256=
|
|
11
|
-
pyBADA/flightTrajectory.py,sha256=
|
|
12
|
-
pyBADA/geodesic.py,sha256=
|
|
13
|
-
pyBADA/magnetic.py,sha256=
|
|
14
|
-
pyBADA/trajectoryPrediction.py,sha256=
|
|
3
|
+
pyBADA/aircraft.py,sha256=VTXMyTm9Gw-EQpNTL9Q8-Mzp2wXE9S2mjJLHvSF-AZs,13009
|
|
4
|
+
pyBADA/atmosphere.py,sha256=audmiVJR1fdraeorWBpYqQTlFn_uZVRWcC9ex-Nr9Jw,11348
|
|
5
|
+
pyBADA/bada3.py,sha256=hpKX4abW16ocRe2RjOvE7Codo5ljWy6Wm3eXFvos8J4,186306
|
|
6
|
+
pyBADA/bada4.py,sha256=PjP26gEn45Ebajm4TR9FhKMUDQuIlBXOANSCjeS7NsY,222266
|
|
7
|
+
pyBADA/badaH.py,sha256=rF7gE5-tsemGDKwkUpiPazw5vdLpMkBNuXpI_22z0S8,153349
|
|
8
|
+
pyBADA/configuration.py,sha256=66OCBBYJhXF4quCHDK47YA9yOftuPdrbvbn88P-531E,6505
|
|
9
|
+
pyBADA/constants.py,sha256=zJhiLcG49Ab2i-c_mHNCmfLpecmQozvIOjX71aVB5KE,952
|
|
10
|
+
pyBADA/conversions.py,sha256=grIokt50KOTaINsmMDWyCJvMpt-_U3FgC9ZNg_aqC1g,3252
|
|
11
|
+
pyBADA/flightTrajectory.py,sha256=XEbohC3NGLaDymSLyqyzM9h3D6Tzns2iHLx9uGAMs-U,38483
|
|
12
|
+
pyBADA/geodesic.py,sha256=jTEphU_H9D10lgi1Pm77OSsT7icApniaNtSSVHTjZXo,30721
|
|
13
|
+
pyBADA/magnetic.py,sha256=O5Ki4ViSqvznl08gZRM90mBbkkpAMR6PR0hKc-FY8yg,4996
|
|
14
|
+
pyBADA/trajectoryPrediction.py,sha256=jC-FxEhD3C_hP5nRutZndYtrat14NIKMVG30Aiq0XJ4,6945
|
|
15
15
|
pyBADA/data/magneticDeclinationGridData.json,sha256=ffmLcxdDwFwJqV4WPyMM5SWt60tMj8xsLh5IHYkpO3U,5390918
|
|
16
16
|
pyBADA/aircraft/BADA3/DUMMY/BADA.GPF,sha256=1Am9yU8v9nnIpvJt-XhJRz4APOkRzfNPujKAy3UCYg0,9831
|
|
17
17
|
pyBADA/aircraft/BADA3/DUMMY/BZJT__.APF,sha256=wGyXK-ro1S6YhC4wp2nMQKi0JGYLvTunNjO6x_YbhW4,2523
|
|
@@ -90,8 +90,8 @@ pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTF,sha256=aEthZF1xztp6QSHYEwU5tH4HF8x
|
|
|
90
90
|
pyBADA/aircraft/BADAH/DUMMY/DUMH/LRC.OPT,sha256=7WecIu4kfw5nM_ADih06Hb8pCoxLVsEdHHJTqQrx4hg,10123
|
|
91
91
|
pyBADA/aircraft/BADAH/DUMMY/DUMH/MEC.OPT,sha256=yKczjH6lZqTplmcV79tZLvwXmHM2F9bYoB2gIM8hBpg,10123
|
|
92
92
|
pyBADA/aircraft/BADAH/DUMMY/DUMH/MRC.OPT,sha256=fTGqt0P9xgt9Q4sKPlL0CZi9aj73prAPlXj1dpWHSOk,10123
|
|
93
|
-
pybada-0.1.
|
|
94
|
-
pybada-0.1.
|
|
95
|
-
pybada-0.1.
|
|
96
|
-
pybada-0.1.
|
|
97
|
-
pybada-0.1.
|
|
93
|
+
pybada-0.1.4.dist-info/METADATA,sha256=k2Cw0Hv96AneCh1db80ENgUDtwaVkva9yJzcwXrvtCg,3382
|
|
94
|
+
pybada-0.1.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
95
|
+
pybada-0.1.4.dist-info/licenses/AUTHORS,sha256=iCKpU7CHp2sB4u5hkS2WyMJHLzL0gfMm-bobd7QDmzE,108
|
|
96
|
+
pybada-0.1.4.dist-info/licenses/LICENCE.txt,sha256=RpvAZSjULHvoTR_esTlucJ08-zdQydnoqQLbqOh9Ub8,13826
|
|
97
|
+
pybada-0.1.4.dist-info/RECORD,,
|
pybada-0.1.2.dist-info/METADATA
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.3
|
|
2
|
-
Name: pyBADA
|
|
3
|
-
Version: 0.1.2
|
|
4
|
-
Summary: pyBADA
|
|
5
|
-
Project-URL: Homepage, https://github.com/eurocontrol/pybada
|
|
6
|
-
Author-email: Henrich Glaser-Opitz <henrich.glaser-opitz@eurocontrol.int>
|
|
7
|
-
License: EUPL-1.2
|
|
8
|
-
Classifier: License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)
|
|
9
|
-
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Requires-Python: >=3.11
|
|
11
|
-
Requires-Dist: numpy==1.26.1
|
|
12
|
-
Requires-Dist: pandas==2.2.3
|
|
13
|
-
Requires-Dist: scipy==1.11.3
|
|
14
|
-
Requires-Dist: simplekml==1.3.6
|
|
15
|
-
Requires-Dist: xlsxwriter==3.2.0
|
|
16
|
-
Provides-Extra: dev
|
|
17
|
-
Requires-Dist: black==23.9.1; extra == 'dev'
|
|
18
|
-
Requires-Dist: flake8==6.1.0; extra == 'dev'
|
|
19
|
-
Requires-Dist: folium==0.17.0; extra == 'dev'
|
|
20
|
-
Requires-Dist: matplotlib==3.9.2; extra == 'dev'
|
|
21
|
-
Requires-Dist: pre-commit==3.8.0; extra == 'dev'
|
|
22
|
-
Requires-Dist: sphinx-gallery==0.17.1; extra == 'dev'
|
|
23
|
-
Requires-Dist: sphinx-rtd-theme==2.0.0; extra == 'dev'
|
|
24
|
-
Requires-Dist: sphinx==7.4.7; extra == 'dev'
|
|
25
|
-
Description-Content-Type: text/markdown
|
|
26
|
-
|
|
27
|
-
# pyBADA
|
|
28
|
-
|
|
29
|
-
<a href="https://github.com/eurocontrol/pybada/blob/main/LICENCE.txt"><img alt="License: EUPL" src="https://img.shields.io/badge/license-EUPL-3785D1.svg"></a>
|
|
30
|
-
<a href="https://pypi.org/project/pyBADA"><img alt="Released on PyPi" src="https://img.shields.io/pypi/v/pyBADA.svg"></a>
|
|
31
|
-

|
|
32
|
-
<a href="https://github.com/eurocontrol/pybada"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
|
|
33
|
-
|
|
34
|
-
The BADA aircraft performance toolbox for Python
|
|
35
|
-
|
|
36
|
-
To get started
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
pip install pyBADA
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Examples
|
|
43
|
-
|
|
44
|
-
- `file_parser`: BADA file parser and retrieval of some basic BADA parameters for all BADA3/4/H
|
|
45
|
-
- `BADAData`: loading complete BADA3 dataset and retrieval of a specific parameters for a specific aircraft
|
|
46
|
-
- `optimum_speed_altitude`: calculation of optimum speeds and altitude for BADA4 and BADAH aircraft
|
|
47
|
-
- `ac_trajectory`: simple, but complete, aircraft trajectory for BADA3 and BADA4 aircraft
|
|
48
|
-
- `ac_trajectory_GPS`: simple, but complete, aircraft trajectory for BADA3 and BADA4 aircraft including geodesic calculations
|
|
49
|
-
- `heli_trajectory`: simple, but complete, helicopter trajectory for BADAH aircraft
|
|
50
|
-
|
|
51
|
-
## Development
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
# Optionally, set up a virtual env and activate it
|
|
55
|
-
python3 -m venv env
|
|
56
|
-
source env/bin/activate
|
|
57
|
-
# Install package in editable mode
|
|
58
|
-
pip install -e .
|
|
59
|
-
# Install a couple of packages for formatting, linting and building the docs
|
|
60
|
-
pip install -e .[dev]
|
|
61
|
-
# To build the docs
|
|
62
|
-
cd docs
|
|
63
|
-
make html
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## License
|
|
67
|
-
|
|
68
|
-
BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/).
|
|
69
|
-
|
|
70
|
-
This project is licensed 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.
|
|
File without changes
|
|
File without changes
|