pyBADA 0.1.0__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.
Files changed (99) hide show
  1. pyBADA/TCL.py +8731 -0
  2. pyBADA/__init__.py +0 -0
  3. pyBADA/aircraft/BADA3/DUMMY/BADA.GPF +113 -0
  4. pyBADA/aircraft/BADA3/DUMMY/BZJT__.APF +25 -0
  5. pyBADA/aircraft/BADA3/DUMMY/BZJT__.OPF +61 -0
  6. pyBADA/aircraft/BADA3/DUMMY/BZJT__.PTD +139 -0
  7. pyBADA/aircraft/BADA3/DUMMY/BZJT__.PTF +73 -0
  8. pyBADA/aircraft/BADA3/DUMMY/GA____.APF +25 -0
  9. pyBADA/aircraft/BADA3/DUMMY/GA____.OPF +61 -0
  10. pyBADA/aircraft/BADA3/DUMMY/GA____.PTD +71 -0
  11. pyBADA/aircraft/BADA3/DUMMY/GA____.PTF +39 -0
  12. pyBADA/aircraft/BADA3/DUMMY/J2H___.APF +25 -0
  13. pyBADA/aircraft/BADA3/DUMMY/J2H___.OPF +61 -0
  14. pyBADA/aircraft/BADA3/DUMMY/J2H___.PTD +131 -0
  15. pyBADA/aircraft/BADA3/DUMMY/J2H___.PTF +69 -0
  16. pyBADA/aircraft/BADA3/DUMMY/J2M___.APF +25 -0
  17. pyBADA/aircraft/BADA3/DUMMY/J2M___.OPF +61 -0
  18. pyBADA/aircraft/BADA3/DUMMY/J2M___.PTD +123 -0
  19. pyBADA/aircraft/BADA3/DUMMY/J2M___.PTF +65 -0
  20. pyBADA/aircraft/BADA3/DUMMY/J4H___.APF +25 -0
  21. pyBADA/aircraft/BADA3/DUMMY/J4H___.OPF +61 -0
  22. pyBADA/aircraft/BADA3/DUMMY/J4H___.PTD +139 -0
  23. pyBADA/aircraft/BADA3/DUMMY/J4H___.PTF +73 -0
  24. pyBADA/aircraft/BADA3/DUMMY/ReleaseSummary +35 -0
  25. pyBADA/aircraft/BADA3/DUMMY/SYNONYM.NEW +155 -0
  26. pyBADA/aircraft/BADA3/DUMMY/TP2M__.APF +25 -0
  27. pyBADA/aircraft/BADA3/DUMMY/TP2M__.OPF +61 -0
  28. pyBADA/aircraft/BADA3/DUMMY/TP2M__.PTD +99 -0
  29. pyBADA/aircraft/BADA3/DUMMY/TP2M__.PTF +53 -0
  30. pyBADA/aircraft/BADA4/DUMMY/ACM_BADA4.xsd +556 -0
  31. pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.ATF +106 -0
  32. pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.xml +244 -0
  33. pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTD +182 -0
  34. pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTF +41 -0
  35. pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTD +182 -0
  36. pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTF +41 -0
  37. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.ATF +191 -0
  38. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.xml +540 -0
  39. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTD +218 -0
  40. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTF +49 -0
  41. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTD +218 -0
  42. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTF +49 -0
  43. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/LRC.dat +38 -0
  44. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/MEC.dat +58 -0
  45. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/MRC.dat +38 -0
  46. pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/OPTALT.dat +37 -0
  47. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.ATF +204 -0
  48. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.xml +648 -0
  49. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTD +281 -0
  50. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTF +63 -0
  51. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTD +281 -0
  52. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTF +63 -0
  53. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/ECON.OPT +37 -0
  54. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/LRC.OPT +38 -0
  55. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/MEC.OPT +58 -0
  56. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/MRC.OPT +38 -0
  57. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/OPTALT.OPT +37 -0
  58. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.ATF +238 -0
  59. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.xml +737 -0
  60. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTD +281 -0
  61. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTF +63 -0
  62. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTD +281 -0
  63. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTF +63 -0
  64. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/ECON.OPT +37 -0
  65. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/LRC.OPT +36 -0
  66. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MEC.OPT +56 -0
  67. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MRC.OPT +36 -0
  68. pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/OPTALT.OPT +37 -0
  69. pyBADA/aircraft/BADA4/DUMMY/GPF.xml +130 -0
  70. pyBADA/aircraft/BADA4/DUMMY/GPF_BADA4.xsd +75 -0
  71. pyBADA/aircraft/BADA4/DUMMY/aircraft_model_default.xml +311 -0
  72. pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH.ATF +97 -0
  73. pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH.xml +82 -0
  74. pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTD +632 -0
  75. pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTF +71 -0
  76. pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTD +632 -0
  77. pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTF +71 -0
  78. pyBADA/aircraft/BADAH/DUMMY/DUMH/LRC.OPT +142 -0
  79. pyBADA/aircraft/BADAH/DUMMY/DUMH/MEC.OPT +142 -0
  80. pyBADA/aircraft/BADAH/DUMMY/DUMH/MRC.OPT +142 -0
  81. pyBADA/aircraft.py +414 -0
  82. pyBADA/atmosphere.py +345 -0
  83. pyBADA/bada3.py +4566 -0
  84. pyBADA/bada4.py +5327 -0
  85. pyBADA/badaE.py +3317 -0
  86. pyBADA/badaH.py +3632 -0
  87. pyBADA/configuration.py +98 -0
  88. pyBADA/constants.py +64 -0
  89. pyBADA/conversions.py +197 -0
  90. pyBADA/data/magneticDeclinationGridData.json +247067 -0
  91. pyBADA/flightTrajectory.py +929 -0
  92. pyBADA/geodesic.py +760 -0
  93. pyBADA/magnetic.py +119 -0
  94. pyBADA/trajectoryPrediction.py +175 -0
  95. pybada-0.1.0.dist-info/METADATA +57 -0
  96. pybada-0.1.0.dist-info/RECORD +99 -0
  97. pybada-0.1.0.dist-info/WHEEL +4 -0
  98. pybada-0.1.0.dist-info/licenses/AUTHORS +2 -0
  99. pybada-0.1.0.dist-info/licenses/LICENCE.txt +287 -0
pyBADA/magnetic.py ADDED
@@ -0,0 +1,119 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pyBADA
4
+ Magnetic declination module
5
+ Developped @EUROCONTROL (EIH)
6
+ 2024
7
+ """
8
+
9
+ __author__ = "Henrich Glaser-Opitz"
10
+ __copyright__ = "Copyright 2024, EUROCONTROL (EIH)"
11
+ __license__ = "BADA Eurocontrol"
12
+ __version__ = "1.0.0"
13
+ __maintainer__ = "Henrich Glaser-Opitz"
14
+ __email__ = "henrich.glaser-opitz@eurocontrol.int"
15
+ __status__ = "Development"
16
+ __docformat__ = "reStructuredText"
17
+
18
+
19
+ import json
20
+ import bisect
21
+ from pyBADA import configuration
22
+
23
+
24
+ class Grid:
25
+ """This class implements the calculations on the magnetic declination using the grid data
26
+
27
+ .. note::
28
+
29
+ """
30
+
31
+ def __init__(self, inputJSON=None):
32
+ if inputJSON is None:
33
+ inputJSON = (
34
+ configuration.getDataPath() + "/magneticDeclinationGridData.json"
35
+ )
36
+
37
+ f = open(inputJSON)
38
+ grid = json.load(f)
39
+
40
+ self.gridData = {}
41
+ latitudeList = []
42
+ longitudeList = []
43
+ magneticDeclinationList = []
44
+
45
+ for result in grid["result"]:
46
+ latitudeList.append(result["latitude"])
47
+ longitudeList.append(result["longitude"])
48
+ magneticDeclinationList.append(result["declination"])
49
+
50
+ self.gridData["LAT"] = latitudeList
51
+ self.gridData["LON"] = longitudeList
52
+ self.gridData["declination"] = magneticDeclinationList
53
+
54
+ def getClosestLatitude(self, LAT_target):
55
+ latitudeList = sorted(self.gridData["LAT"])
56
+
57
+ if LAT_target < latitudeList[0] or LAT_target > latitudeList[-1]:
58
+ return None
59
+
60
+ index = bisect.bisect_left(latitudeList, LAT_target)
61
+ if index == 0:
62
+ closest = latitudeList[0]
63
+ elif index == len(latitudeList):
64
+ closest = latitudeList[-1]
65
+ else:
66
+ before = latitudeList[index - 1]
67
+ after = latitudeList[index]
68
+ closest = before if after - LAT_target > LAT_target - before else after
69
+
70
+ return closest
71
+
72
+ def getClosestLongitude(self, LON_target):
73
+ longitudeList = sorted(self.gridData["LON"])
74
+
75
+ if LON_target < longitudeList[0] or LON_target > longitudeList[-1]:
76
+ return None
77
+
78
+ index = bisect.bisect_left(longitudeList, LON_target)
79
+ if index == 0:
80
+ closest = longitudeList[0]
81
+ elif index == len(longitudeList):
82
+ closest = longitudeList[-1]
83
+ else:
84
+ before = longitudeList[index - 1]
85
+ after = longitudeList[index]
86
+ closest = before if after - LON_target > LON_target - before else after
87
+
88
+ return closest
89
+
90
+ def getClosestIdx(self, LAT_target, LON_target):
91
+ closestLAT = self.getClosestLatitude(LAT_target=LAT_target)
92
+ closestLON = self.getClosestLongitude(LON_target=LON_target)
93
+
94
+ indicesLAT = [
95
+ i
96
+ for i in range(len(self.gridData["LAT"]))
97
+ if self.gridData["LAT"][i] == closestLAT
98
+ ]
99
+ indicesLON = [
100
+ i
101
+ for i in range(len(self.gridData["LON"]))
102
+ if self.gridData["LON"][i] == closestLON
103
+ ]
104
+
105
+ for idx in indicesLAT:
106
+ if idx in indicesLON:
107
+ return idx
108
+
109
+ return None
110
+
111
+ def getMagneticDeclination(self, LAT_target, LON_target):
112
+ idx = self.getClosestIdx(LAT_target=LAT_target, LON_target=LON_target)
113
+
114
+ if idx is None:
115
+ return None
116
+ else:
117
+ magneticDeclination = self.gridData["declination"][idx]
118
+
119
+ return magneticDeclination
@@ -0,0 +1,175 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pyBADA
4
+ Basic calculations for the Trajectory Prediction (TP)
5
+ Developped @EUROCONTROL (EIH)
6
+ 2024
7
+ """
8
+
9
+ __author__ = "Henrich Glaser-Opitz"
10
+ __copyright__ = "Copyright 2024, EUROCONTROL (EIH)"
11
+ __license__ = "BADA Eurocontrol"
12
+ __version__ = "1.0.0"
13
+ __maintainer__ = "Henrich Glaser-Opitz"
14
+ __email__ = "henrich.glaser-opitz@eurocontrol.int"
15
+ __status__ = "Development"
16
+ __docformat__ = "reStructuredText"
17
+
18
+
19
+ from pyBADA import atmosphere as atm
20
+ from pyBADA import conversions as conv
21
+ from math import exp
22
+
23
+
24
+ class TrajectoryPrediction:
25
+ """This class implements some basic calculations required for the trajectory prediction (TP)."""
26
+
27
+ def __init__(self):
28
+ pass
29
+
30
+ @staticmethod
31
+ def getInitialMass(
32
+ AC,
33
+ distance,
34
+ altitude,
35
+ M,
36
+ payload=60,
37
+ fuelReserve=3600,
38
+ flightPlanInitialMass=None,
39
+ ):
40
+ """This function returns calculated (estimated) aircrat initial mass
41
+ derived from the breguet leduc formula
42
+
43
+ :param AC: aircraft {BADA3/4/H/E}
44
+ :param distance: distance flown in [m]
45
+ :param altitude: cruising altitude in [m]
46
+ :param M: cruising speed in MACH [-]
47
+ :param payload: payload mass in [%] of maximum payload
48
+ :param fuelReserve: fuel reserve in [s]
49
+ :param flightPlanInitialMass: initial mass defined from the flight plan [kg]
50
+ :type AC: {Bada3Aircraft, Bada4Aircraft, BadaEAircraft, BadaHAircraft}.
51
+ :type distance: float
52
+ :type altitude: float
53
+ :type M: float
54
+ :type payload: float
55
+ :type fuelReserve: float
56
+ :type flightPlanInitialMass: float
57
+ :returns: initial mass [kg]
58
+ :rtype: float
59
+ """
60
+
61
+ def initialMassCalculation(
62
+ AC, distance, altitude, M, payload, fuelReserve, flightPlanInitialMass
63
+ ):
64
+ DeltaTemp = 0
65
+ [theta, delta, sigma] = atm.atmosphereProperties(
66
+ h=altitude, DeltaTemp=DeltaTemp
67
+ )
68
+ TAS = atm.mach2Tas(Mach=M, theta=theta)
69
+
70
+ config = "CR"
71
+ flightPhase = "Cruise"
72
+ mass = AC.MREF
73
+
74
+ if AC.BADAFamily.BADA3:
75
+ # compute lift coefficient
76
+ CL = AC.CL(tas=TAS, sigma=sigma, mass=mass)
77
+ # compute drag coefficient
78
+ CD = AC.CD(CL=CL, config=config)
79
+ # compute drag force
80
+ Drag = AC.D(tas=TAS, sigma=sigma, CD=CD)
81
+ # compute thrust force and fuel flow
82
+ THR = Drag
83
+
84
+ fuelFlow = AC.ff(
85
+ h=altitude, v=TAS, T=THR, config=config, flightPhase=flightPhase
86
+ )
87
+
88
+ elif AC.BADAFamily.BADA4:
89
+ # compute lift coefficient
90
+ CL = AC.CL(M=M, delta=delta, mass=mass)
91
+ # compute drag coefficient
92
+ [HLid, LG] = AC.flightEnvelope.getAeroConfig(config=config)
93
+ CD = AC.CD(M=M, CL=CL, HLid=HLid, LG=LG)
94
+ # compute drag force
95
+ Drag = AC.D(M=M, delta=delta, CD=CD)
96
+ # compute thrust force and fuel flow
97
+ THR = Drag
98
+ CT = AC.CT(Thrust=THR, delta=delta)
99
+
100
+ fuelFlow = AC.ff(
101
+ CT=CT, delta=delta, theta=theta, M=M, DeltaTemp=DeltaTemp
102
+ ) # [kg/s]
103
+
104
+ elif AC.BADAFamily.BADAH:
105
+ # compute Power required for level flight
106
+ Preq = AC.Preq(sigma=sigma, tas=TAS, mass=mass, phi=0)
107
+ Peng_i = Preq
108
+ # Pav_i = AC.Pav(rating="MCNT", theta=theta, delta=delta) # assume MCNT rating as the limit
109
+
110
+ # if Pav_i < Preq:
111
+ # warnings.warn("Power Available is lower than Power Required",UserWarning)
112
+
113
+ # compute fuel flow for level flight
114
+ CP = AC.CP(Peng=Preq)
115
+ fuelFlow = AC.ff(delta=delta, CP=CP) # [kg/s]
116
+
117
+ fuelReserveMass = fuelReserve * fuelFlow
118
+
119
+ if AC.MPL is not None:
120
+ maximumPayload = AC.MPL
121
+ else:
122
+ maximumPayload = AC.MTOW - AC.OEW - AC.MFL
123
+ payloadMass = (payload / 100) * maximumPayload
124
+
125
+ minimumLandingMass = AC.OEW + payloadMass + fuelReserveMass
126
+
127
+ # in case of no wind, the ground speed is the same as true airspeed
128
+ GS = TAS
129
+
130
+ initialMass = minimumLandingMass * exp(
131
+ (fuelFlow * distance) / (AC.MREF * GS)
132
+ )
133
+
134
+ # set Initial Mass from FPL check
135
+ if flightPlanInitialMass is not None:
136
+ initialMass = flightPlanInitialMass
137
+
138
+ # envelope check
139
+ initialMass = min(max(initialMass, AC.OEW), AC.MTOW)
140
+
141
+ return initialMass
142
+
143
+ if AC.BADAFamily.BADA3 or AC.BADAFamily.BADA4:
144
+ if (AC.MMO is not None and AC.MMO >= 1.0) or (
145
+ AC.VMO is not None and AC.VMO >= 400
146
+ ):
147
+ # identified as fighter jet
148
+ initialMass = AC.MREF
149
+ else:
150
+ initialMass = initialMassCalculation(
151
+ AC=AC,
152
+ distance=distance,
153
+ altitude=altitude,
154
+ M=M,
155
+ payload=payload,
156
+ fuelReserve=fuelReserve,
157
+ flightPlanInitialMass=flightPlanInitialMass,
158
+ )
159
+
160
+ elif AC.BADAFamily.BADAH:
161
+ if AC.vne is not None and AC.vne >= 400:
162
+ # identified as fighter
163
+ initialMass = AC.MREF
164
+ else:
165
+ initialMass = initialMassCalculation(
166
+ AC=AC,
167
+ distance=distance,
168
+ altitude=altitude,
169
+ M=M,
170
+ payload=payload,
171
+ fuelReserve=fuelReserve,
172
+ flightPlanInitialMass=flightPlanInitialMass,
173
+ )
174
+
175
+ return initialMass
@@ -0,0 +1,57 @@
1
+ Metadata-Version: 2.3
2
+ Name: pyBADA
3
+ Version: 0.1.0
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
+ 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.11
13
+ Requires-Dist: numpy==1.26.1
14
+ Requires-Dist: pandas==2.2.3
15
+ Requires-Dist: scipy==1.11.3
16
+ Requires-Dist: simplekml==1.3.6
17
+ Requires-Dist: xlsxwriter==3.2.0
18
+ Description-Content-Type: text/markdown
19
+
20
+ # pyBADA
21
+
22
+ <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>
23
+ ![Python 3.12](https://img.shields.io/badge/Python-3.12-3776AB.svg?logo=python&logoColor=white)
24
+ <a href="https://github.com/eurocontrol/pybada"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
25
+
26
+ The BADA aircraft performance toolbox for Python
27
+
28
+ To get started
29
+
30
+ ```bash
31
+ pip install pyBADA
32
+ ```
33
+
34
+ ## Examples
35
+
36
+ - `file_parser`: example of BADA file parser and retrieval of some basic BADA parameters for all BADA3/4/H
37
+ - `optimum_speed_altitude`: example of calculation of optimum speeds and altitude for BADA4 and BADAH aircraft
38
+ - `ac_trajectory`: a simple, but complete aircraft trajectory for BADA3 and BADA4 aircraft
39
+ - `ac_trajectory_GPS`: an example of a simple, but complete aircraft trajectory for BADA3 and BADA4 aircraft including geodesic calculations
40
+
41
+ ## Development
42
+
43
+ ```bash
44
+ # Optionally, set up a virtual env and activate it
45
+ python3 -m venv env
46
+ source env/bin/activate
47
+ # Install package in editable mode
48
+ pip install -e .
49
+ # Install a couple of packages for formatting and linting
50
+ pip install -r requirements-dev.txt
51
+ ```
52
+
53
+ ## License
54
+
55
+ BADA and pyBADA are developed and maintained by [EUROCONTROL](https://www.eurocontrol.int/).
56
+
57
+ 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.
@@ -0,0 +1,99 @@
1
+ pyBADA/TCL.py,sha256=togXlsqpVwfvZrYPLt_hiFVR4Pw_lCkRWHmk_dpZ9U0,350731
2
+ pyBADA/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ pyBADA/aircraft.py,sha256=u4rpOOZ2LIcoDZVdf78xUf6VjT5HUrFK5e9jTLpFzO4,12568
4
+ pyBADA/atmosphere.py,sha256=-Fz_xG1w_f8d04vM1NuwGkaQLQiHr0aUHepIiO79u3c,9243
5
+ pyBADA/bada3.py,sha256=6WBsZadwYaLagDMK3Rc4xykbjwLbPAN8wYbZuChTGTc,165049
6
+ pyBADA/bada4.py,sha256=sEsOiz1IKuoagg6JFqhjH7Xt8CV0k2doEHID8zkQf2M,191871
7
+ pyBADA/badaE.py,sha256=FQ9m4Tzp92ygfFODIUK1Mra18mpQq3OokY1BF_0WfAI,109671
8
+ pyBADA/badaH.py,sha256=OvyBoBdzYsDv5ZLzN1OLzXVxAjCH4A-uinFi64i8R6s,122735
9
+ pyBADA/configuration.py,sha256=F67QwMSIMTZvnPWhhDvBnPkchRTK284YceZIEsAMrfg,2562
10
+ pyBADA/constants.py,sha256=snn8m5LkkTHNrK65gSTBEeGHj9ypNIIoSaEv75jUwRE,1315
11
+ pyBADA/conversions.py,sha256=bsPsxD9t5X2Ofjux7zVxy5_QPM9Mabi4ZMaI8Md5s3Q,3660
12
+ pyBADA/flightTrajectory.py,sha256=cmTVdgpm-N3oIaAma2XHZXZZ1S6S6-zqYYUqM6Qi2g8,33259
13
+ pyBADA/geodesic.py,sha256=y1Pi1H2LzAALGwwYzbKmsXtdZ-6sVdIk2NqXKdj9IGM,26249
14
+ pyBADA/magnetic.py,sha256=4jJDz32iV7SRY9DLob3wJxk6xgtqiwdh2ZE-HGQHDD4,3477
15
+ pyBADA/trajectoryPrediction.py,sha256=Sm4mgabBt_UepDlzdZjoopn-6lDLqYQUA-SrYbMNRv4,6008
16
+ pyBADA/data/magneticDeclinationGridData.json,sha256=ffmLcxdDwFwJqV4WPyMM5SWt60tMj8xsLh5IHYkpO3U,5390918
17
+ pyBADA/aircraft/BADA3/DUMMY/BADA.GPF,sha256=1Am9yU8v9nnIpvJt-XhJRz4APOkRzfNPujKAy3UCYg0,9831
18
+ pyBADA/aircraft/BADA3/DUMMY/BZJT__.APF,sha256=wGyXK-ro1S6YhC4wp2nMQKi0JGYLvTunNjO6x_YbhW4,2523
19
+ pyBADA/aircraft/BADA3/DUMMY/BZJT__.OPF,sha256=SIpFU1SQ4FFtzVNhmZT7kbMv3lXH0gsd1VG9m_-QuHo,4392
20
+ pyBADA/aircraft/BADA3/DUMMY/BZJT__.PTD,sha256=z30e-isuF19PGSsknZRaE53Tf47bjsWhpnsiZ_jdskQ,15279
21
+ pyBADA/aircraft/BADA3/DUMMY/BZJT__.PTF,sha256=dyfCnUmDswaHKepAO1ZqpHeTpuXopOgDs_9LUKo2L-w,5652
22
+ pyBADA/aircraft/BADA3/DUMMY/GA____.APF,sha256=u7QDDvV3CChXU3AsvP74IpFio_CA_NjTU3j2MMbae4A,2523
23
+ pyBADA/aircraft/BADA3/DUMMY/GA____.OPF,sha256=FzttyOUkhpBK4-1Q7V_YSspBPWghiuYKu_QI3Xl2Eag,4392
24
+ pyBADA/aircraft/BADA3/DUMMY/GA____.PTD,sha256=xj3odetvTxe5_Vm0VErRNIz9Ecpy1lGGyPf_6neLTcQ,6490
25
+ pyBADA/aircraft/BADA3/DUMMY/GA____.PTF,sha256=evOBR9qILGFQyiuzDm-edTAdni3G-YojwBv_e0kS1Oo,2897
26
+ pyBADA/aircraft/BADA3/DUMMY/J2H___.APF,sha256=Gr7HFa3uVsomfSDxrW8rZsvfHCfjAlLE8YH2Rd-xjRE,2523
27
+ pyBADA/aircraft/BADA3/DUMMY/J2H___.OPF,sha256=dMjyQwbjCW9FMvybX8E4PaoMm4vtSYonIFyc7lJe32M,4392
28
+ pyBADA/aircraft/BADA3/DUMMY/J2H___.PTD,sha256=Lb4OUbi9v_nmBygtMUbqBzvBUio2y1syDw2zikNN3fM,14245
29
+ pyBADA/aircraft/BADA3/DUMMY/J2H___.PTF,sha256=yS5TgNpEeNvRN7lhkxG9DQf4YzGAt3c98x06JsLWEqk,5332
30
+ pyBADA/aircraft/BADA3/DUMMY/J2M___.APF,sha256=WuIm3ewdda6geFH0wLbv7xZWHPabJ5rD6RvIfQiRAnk,2523
31
+ pyBADA/aircraft/BADA3/DUMMY/J2M___.OPF,sha256=UaNmWyu5hs-vB0vR4rzegZ27uFkd04S0yLAs8zpXsH8,4392
32
+ pyBADA/aircraft/BADA3/DUMMY/J2M___.PTD,sha256=JJRydMSHf5eIEACo6MK4vLL0rw_CNu8jvWOs-GarCh8,13211
33
+ pyBADA/aircraft/BADA3/DUMMY/J2M___.PTF,sha256=CqrgyOr16ZIi7zF4fUqZxD7H_te6PDs-dgS4Q88o7zE,5006
34
+ pyBADA/aircraft/BADA3/DUMMY/J4H___.APF,sha256=prepTtzyxQCwhDAnEOmwsgmK23XVlpS3S0lvlpHQMpg,2523
35
+ pyBADA/aircraft/BADA3/DUMMY/J4H___.OPF,sha256=zD0s_bJTL43Ifg7BgzL9qxO7Y6680Wp3GlzGhNV0ECw,4392
36
+ pyBADA/aircraft/BADA3/DUMMY/J4H___.PTD,sha256=DgDhbfeTzp-pjI6lQTWbilDteGiKA1s__jQvnlxWBY8,15279
37
+ pyBADA/aircraft/BADA3/DUMMY/J4H___.PTF,sha256=5Zrti8qTFBlZ19_rum8O-kA_ah_YoGd7_arc51fc5K8,5656
38
+ pyBADA/aircraft/BADA3/DUMMY/ReleaseSummary,sha256=_DYSX5ogjvaN3BLpg9-Vgp_ZGk1BP1_n7_2K-k2QacU,817
39
+ pyBADA/aircraft/BADA3/DUMMY/SYNONYM.NEW,sha256=goqxeUiGVmHBNojb-klV_djcr4UVm7wWdXgU9VWcDZw,11160
40
+ pyBADA/aircraft/BADA3/DUMMY/TP2M__.APF,sha256=0zgXhhCwBsOE5xM134H9zshuAZqVUrgASRkRNchvqQI,2523
41
+ pyBADA/aircraft/BADA3/DUMMY/TP2M__.OPF,sha256=neehlUwSzfuO6Q_zJWUgmCXYgGUZKuyLTVhgTJvyzWg,4392
42
+ pyBADA/aircraft/BADA3/DUMMY/TP2M__.PTD,sha256=2d3thuPdOs4MCBDeb5ByRDndnQTto_0ldLMqAUQG70g,10109
43
+ pyBADA/aircraft/BADA3/DUMMY/TP2M__.PTF,sha256=h3PLtFQrf0W63b2DfXKvF6AoAyJi-m2Fm5SlrNKb3Qo,4034
44
+ pyBADA/aircraft/BADA4/DUMMY/ACM_BADA4.xsd,sha256=ib8Uwb2kPlA7057ck_EKt4_6uei86fqlAdsd_y5Vjk8,20067
45
+ pyBADA/aircraft/BADA4/DUMMY/GPF.xml,sha256=Ee6W4B06QFqGpFOP4p4eHIiCRSyVLI4FJXWeGVddvfM,2439
46
+ pyBADA/aircraft/BADA4/DUMMY/GPF_BADA4.xsd,sha256=-Zgtwb4-28utcLsJzbO4XUFyHtMkO5kcrK1OX7gn068,2377
47
+ pyBADA/aircraft/BADA4/DUMMY/aircraft_model_default.xml,sha256=iFErjK2fvG2luVhN3ZHk0uWjlocjUg4FK01QzNXVntY,5170
48
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.ATF,sha256=mxKlp7VT1mWao-VfcMM4lqRZTdOLgynOBZwsPGJ72o4,6399
49
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST.xml,sha256=DDIpsSfo7Wt-qMpQ6U_xak6w5mvoOu8QDqUqfaP7zhQ,6148
50
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTD,sha256=clnS8-2AMEcgS6x759VbxXKsNqSVnc-wt7aWzhLFLGU,16686
51
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA+20.PTF,sha256=RehF0PexeeqzXBVOfapGJlcJEWmRAGDFGMIfydXtU8k,3325
52
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTD,sha256=SZAgCj-AmHHs2Lfi6gQzpSZKsegIFEFs1JS6UFFk58c,16686
53
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-PST/Dummy-PST_ISA.PTF,sha256=i4Qao4DbmkaMjQJmpYWK44pQNjp2O2lM_EbTB7ULOUY,3322
54
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.ATF,sha256=w8lUlpOZUIx_vke_rStgnIq28M6Uw-dTOxlYN1FovpQ,12201
55
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP.xml,sha256=sw43T6HVlZsVlRmFWTtwWF7E7Df_hgJGQgDj3MHjEWM,14398
56
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTD,sha256=DZRndJ4L4O0c3dK4m5p6HQZKwBnT-crBRXf8EorMz5A,21012
57
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA+20.PTF,sha256=CXwRdzyuRzcr0kOoJajDrIwZ-7nObNYDSPiQkIQahA4,4021
58
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTD,sha256=5jFpPiJxdfrdpxgwDsMn4yfh6PVYGGc-xUVCEnSAQto,21002
59
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/Dummy-TBP_ISA.PTF,sha256=wT0bxYzalyXPxvjjA47GPUjGTFDGjqfT7BBXBaGn6P4,4018
60
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/LRC.dat,sha256=_wc8m6G9Cld0oVodNweHOt0tI6MsuUNo36GfCGybJKc,746
61
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/MEC.dat,sha256=yLodyztOLapc9SRXIBpFFIuBQQKNZ0UDGOqTfbm7iJc,1186
62
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/MRC.dat,sha256=4TiZW6YN9Rv8xM_KwbfHNnXRjFsVAy22mcpxK3cufxw,746
63
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TBP/OPTALT.dat,sha256=sdQ7XyahAgU1zSQI3fON_-1rxY4mFy8qbtj2_BihQTA,3069
64
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.ATF,sha256=mbnLXrro4pHsWooXFD1EmbdLK02O2hbnt7Sgl4EshlE,13035
65
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN.xml,sha256=3nDswOmFMFBATMOjAHCYpGsfCHmznQc3Tj_nDd2YdgY,17535
66
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTD,sha256=4VyHhi70IThHCjeMiZnxmkVagBW4TBE66XAToFgn2mo,28580
67
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA+20.PTF,sha256=TYrpsaf1MKLVDj-TapJ67F3XaFT_moYTWfwV6SHlmY4,5240
68
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTD,sha256=GKjTukmjLXWuV1qYoIkXXpva-lVLj-_FLDYwE54qMpE,28580
69
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/Dummy-TWIN_ISA.PTF,sha256=nR3SQKotmB3XjMPEvrsgKEvrAVNQYciW849Njhf2OKI,5237
70
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/ECON.OPT,sha256=gQkKlATkpguSeEX7UJkTEt1MIMYpR8yfuOFP2JtW9-8,1913
71
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/LRC.OPT,sha256=Jdm3PA8bepO2REm0lNiujdbDzGco7Mh7Ox2R6yFGU8M,746
72
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/MEC.OPT,sha256=L95Q9IH4b_Spv_-hnAS9-fZgT7oqzpwd_ZMuZ5YBV3o,1186
73
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/MRC.OPT,sha256=9J-qukwfxOHxyV6Js_R1DPdB78AF5cBUMF_Je0rNF6w,746
74
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN/OPTALT.OPT,sha256=o3yaQ663M85vQfokJ9E-yjGrPjop1wKt1QgFEICINQQ,3069
75
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.ATF,sha256=XFa4BqkMhm-MpPFg_kd827sEYjbaF67ykSCWIy8g7wU,15343
76
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus.xml,sha256=R6090X_UTfYCt1-aq2CRnXP3jt9HO7hm4Yh3iaEqgls,22561
77
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTD,sha256=7qPfH4N9VfbXusaVd-0K8xAOMBAyZhhDvglVq6WDy3g,28580
78
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA+20.PTF,sha256=RnziMiyMR6-Qq8xLuzNZL_MAlVNgqSsSRWThcdExGUU,5245
79
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTD,sha256=_Rr90bpz2mI7pVgOv-nZs6yQqFcvb-xX_1faHjvgwuI,28580
80
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/Dummy-TWIN-plus_ISA.PTF,sha256=fsVnMJmKoY3aNTbZSzSlt6mDTmmmU7O71M4i8eMEr0E,5242
81
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/ECON.OPT,sha256=K7knVR58KHBdCPTQrxo78Q3tXJEw81dDINH5ehlQ_4o,1918
82
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/LRC.OPT,sha256=R77gfsMWqRPlfnKNsv559W9PGfh0GRDM-sWepwmIlas,749
83
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MEC.OPT,sha256=WAJyTIuX87iHTs29Ooz-CLzMCq2cwaYn34D2Ou9ZQ8o,1189
84
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/MRC.OPT,sha256=P4y2a4TrnJtCdx50B9G9shC6RPC0FaMqRjydKVt2uqQ,749
85
+ pyBADA/aircraft/BADA4/DUMMY/Dummy-TWIN-plus/OPTALT.OPT,sha256=WCFKaygKWK6po08FJuhYhRiZOr8mpsipsLG58cyveqQ,3074
86
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH.ATF,sha256=pjceC0_HdayyrskTK5Xn_SwvcdfNzz-cp6OcXQhPcQM,5997
87
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH.xml,sha256=KM0WV1BLsdeNewjnQYchYBRSTsXQgqKi-PMtKrKoXM8,2311
88
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTD,sha256=rDWg5g-2RedJQ_y05IcU1ZiBvzOZksfDeem7mdJb9xY,63127
89
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA+20.PTF,sha256=-OmXG-BZXKMa3gb-cIad4QOWe4DVMM8-Xcv_88XTKcM,5930
90
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTD,sha256=Lxk9FjrLx1yL0VfJ9TTuGQsbc6P6C6E7uu0lH1B-mQI,63112
91
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/DUMH_ISA.PTF,sha256=aEthZF1xztp6QSHYEwU5tH4HF8x9HnA1vd-3wEg0J10,5927
92
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/LRC.OPT,sha256=7WecIu4kfw5nM_ADih06Hb8pCoxLVsEdHHJTqQrx4hg,10123
93
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/MEC.OPT,sha256=yKczjH6lZqTplmcV79tZLvwXmHM2F9bYoB2gIM8hBpg,10123
94
+ pyBADA/aircraft/BADAH/DUMMY/DUMH/MRC.OPT,sha256=fTGqt0P9xgt9Q4sKPlL0CZi9aj73prAPlXj1dpWHSOk,10123
95
+ pybada-0.1.0.dist-info/METADATA,sha256=JIIPdt7lgLH3VQU7kVQslH4xJWDZF8jI1btU48dFYpI,2146
96
+ pybada-0.1.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
97
+ pybada-0.1.0.dist-info/licenses/AUTHORS,sha256=iCKpU7CHp2sB4u5hkS2WyMJHLzL0gfMm-bobd7QDmzE,108
98
+ pybada-0.1.0.dist-info/licenses/LICENCE.txt,sha256=RpvAZSjULHvoTR_esTlucJ08-zdQydnoqQLbqOh9Ub8,13826
99
+ pybada-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.25.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ Henrich Glaser-Opitz <henrich.glaser-opitz@eurocontrol.int>
2
+ Antonio Vivace <antonio.vivace@eurocontrol.int>