pycontrails 0.54.3__cp311-cp311-win_amd64.whl → 0.54.4__cp311-cp311-win_amd64.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.

Potentially problematic release.


This version of pycontrails might be problematic. Click here for more details.

Files changed (60) hide show
  1. pycontrails/__init__.py +2 -2
  2. pycontrails/_version.py +2 -2
  3. pycontrails/core/__init__.py +1 -1
  4. pycontrails/core/aircraft_performance.py +58 -58
  5. pycontrails/core/cache.py +7 -7
  6. pycontrails/core/fleet.py +25 -21
  7. pycontrails/core/flight.py +213 -301
  8. pycontrails/core/interpolation.py +56 -56
  9. pycontrails/core/met.py +48 -39
  10. pycontrails/core/models.py +25 -11
  11. pycontrails/core/polygon.py +15 -15
  12. pycontrails/core/rgi_cython.cp311-win_amd64.pyd +0 -0
  13. pycontrails/core/vector.py +22 -22
  14. pycontrails/datalib/_met_utils/metsource.py +8 -5
  15. pycontrails/datalib/ecmwf/__init__.py +14 -14
  16. pycontrails/datalib/ecmwf/common.py +1 -1
  17. pycontrails/datalib/ecmwf/era5.py +7 -7
  18. pycontrails/datalib/ecmwf/hres.py +3 -3
  19. pycontrails/datalib/ecmwf/ifs.py +1 -1
  20. pycontrails/datalib/gfs/__init__.py +6 -6
  21. pycontrails/datalib/gfs/gfs.py +2 -2
  22. pycontrails/datalib/goes.py +5 -5
  23. pycontrails/ext/empirical_grid.py +1 -1
  24. pycontrails/models/apcemm/apcemm.py +3 -3
  25. pycontrails/models/cocip/__init__.py +2 -2
  26. pycontrails/models/cocip/cocip.py +15 -15
  27. pycontrails/models/cocip/cocip_params.py +2 -11
  28. pycontrails/models/cocip/cocip_uncertainty.py +24 -18
  29. pycontrails/models/cocip/contrail_properties.py +331 -316
  30. pycontrails/models/cocip/output_formats.py +53 -53
  31. pycontrails/models/cocip/radiative_forcing.py +135 -131
  32. pycontrails/models/cocip/radiative_heating.py +135 -135
  33. pycontrails/models/cocip/unterstrasser_wake_vortex.py +90 -87
  34. pycontrails/models/cocip/wake_vortex.py +92 -92
  35. pycontrails/models/cocip/wind_shear.py +8 -8
  36. pycontrails/models/cocipgrid/cocip_grid.py +93 -87
  37. pycontrails/models/dry_advection.py +10 -5
  38. pycontrails/models/emissions/__init__.py +2 -2
  39. pycontrails/models/emissions/black_carbon.py +108 -108
  40. pycontrails/models/emissions/emissions.py +85 -85
  41. pycontrails/models/emissions/ffm2.py +35 -35
  42. pycontrails/models/humidity_scaling/humidity_scaling.py +23 -23
  43. pycontrails/models/ps_model/__init__.py +1 -1
  44. pycontrails/models/ps_model/ps_aircraft_params.py +8 -4
  45. pycontrails/models/ps_model/ps_grid.py +74 -64
  46. pycontrails/models/ps_model/ps_model.py +14 -14
  47. pycontrails/models/ps_model/ps_operational_limits.py +20 -18
  48. pycontrails/models/tau_cirrus.py +8 -1
  49. pycontrails/physics/geo.py +67 -67
  50. pycontrails/physics/jet.py +79 -79
  51. pycontrails/physics/units.py +14 -14
  52. pycontrails/utils/json.py +1 -2
  53. pycontrails/utils/types.py +12 -7
  54. {pycontrails-0.54.3.dist-info → pycontrails-0.54.4.dist-info}/METADATA +2 -2
  55. {pycontrails-0.54.3.dist-info → pycontrails-0.54.4.dist-info}/NOTICE +1 -1
  56. pycontrails-0.54.4.dist-info/RECORD +111 -0
  57. pycontrails-0.54.3.dist-info/RECORD +0 -111
  58. {pycontrails-0.54.3.dist-info → pycontrails-0.54.4.dist-info}/LICENSE +0 -0
  59. {pycontrails-0.54.3.dist-info → pycontrails-0.54.4.dist-info}/WHEEL +0 -0
  60. {pycontrails-0.54.3.dist-info → pycontrails-0.54.4.dist-info}/top_level.txt +0 -0
@@ -14,29 +14,29 @@ from pycontrails.utils.types import ArrayScalarLike
14
14
 
15
15
 
16
16
  def mass_emissions_index_fox(
17
- air_pressure: npt.NDArray[np.float64],
18
- air_temperature: npt.NDArray[np.float64],
19
- true_airspeed: npt.NDArray[np.float64],
20
- fuel_flow_per_engine: npt.NDArray[np.float64],
21
- thrust_setting: npt.NDArray[np.float64],
17
+ air_pressure: npt.NDArray[np.floating],
18
+ air_temperature: npt.NDArray[np.floating],
19
+ true_airspeed: npt.NDArray[np.floating],
20
+ fuel_flow_per_engine: npt.NDArray[np.floating],
21
+ thrust_setting: npt.NDArray[np.floating],
22
22
  pressure_ratio: float,
23
23
  *,
24
24
  comp_efficiency: float = 0.9,
25
- ) -> npt.NDArray[np.float64]:
25
+ ) -> npt.NDArray[np.floating]:
26
26
  r"""
27
27
  Calculate the black carbon mass emissions index using the Formation and Oxidation Method (FOX).
28
28
 
29
29
  Parameters
30
30
  ----------
31
- air_pressure: npt.NDArray[np.float64]
31
+ air_pressure: npt.NDArray[np.floating]
32
32
  Pressure altitude at each waypoint, [:math:`Pa`]
33
- air_temperature: npt.NDArray[np.float64]
33
+ air_temperature: npt.NDArray[np.floating]
34
34
  Ambient temperature for each waypoint, [:math:`K`]
35
- true_airspeed: npt.NDArray[np.float64]
35
+ true_airspeed: npt.NDArray[np.floating]
36
36
  True airspeed for each waypoint, [:math:`m s^{-1}`]
37
- fuel_flow_per_engine: npt.NDArray[np.float64]
37
+ fuel_flow_per_engine: npt.NDArray[np.floating]
38
38
  Fuel mass flow rate per engine, [:math:`kg s^{-1}`]
39
- thrust_setting: npt.NDArray[np.float64]
39
+ thrust_setting: npt.NDArray[np.floating]
40
40
  Engine thrust setting, which is the fuel mass flow rate divided by
41
41
  the maximum fuel mass flow rate
42
42
  pressure_ratio: float
@@ -46,7 +46,7 @@ def mass_emissions_index_fox(
46
46
 
47
47
  Returns
48
48
  -------
49
- npt.NDArray[np.float64]
49
+ npt.NDArray[np.floating]
50
50
  Black carbon mass emissions index, [:math:`mg \ kg_{fuel}^{-1}`]
51
51
 
52
52
  References
@@ -102,10 +102,10 @@ def flame_temperature(t_3: ArrayScalarLike) -> ArrayScalarLike:
102
102
 
103
103
 
104
104
  def bc_mass_concentration_fox(
105
- fuel_flow: npt.NDArray[np.float64],
106
- t_fl: npt.NDArray[np.float64] | float,
107
- afr: npt.NDArray[np.float64] | float,
108
- ) -> npt.NDArray[np.float64]:
105
+ fuel_flow: npt.NDArray[np.floating],
106
+ t_fl: npt.NDArray[np.floating] | float,
107
+ afr: npt.NDArray[np.floating] | float,
108
+ ) -> npt.NDArray[np.floating]:
109
109
  """Calculate the black carbon mass concentration for ground conditions (``c_bc_ref``).
110
110
 
111
111
  This quantity is computed at the instrument sampling point without correcting
@@ -113,30 +113,30 @@ def bc_mass_concentration_fox(
113
113
 
114
114
  Parameters
115
115
  ----------
116
- fuel_flow: npt.NDArray[np.float64]
116
+ fuel_flow: npt.NDArray[np.floating]
117
117
  Fuel mass flow rate, [:math:`kg s^{-1}`]
118
- t_fl: npt.NDArray[np.float64] | float
118
+ t_fl: npt.NDArray[np.floating] | float
119
119
  Flame temperature at the combustion chamber, [:math:`K`]
120
- afr: npt.NDArray[np.float64] | float
120
+ afr: npt.NDArray[np.floating] | float
121
121
  Air-to-fuel ratio
122
122
 
123
123
  Returns
124
124
  -------
125
- npt.NDArray[np.float64]:
125
+ npt.NDArray[np.floating]:
126
126
  Black carbon mass concentration for ground conditions, [:math:`mg m^{-3}`]
127
127
  """
128
128
  return fuel_flow * (356 * np.exp(-6390 / t_fl) - 608 * afr * np.exp(-19778 / t_fl))
129
129
 
130
130
 
131
131
  def bc_mass_concentration_cruise_fox(
132
- c_bc_ref: npt.NDArray[np.float64],
133
- t_fl_cru: npt.NDArray[np.float64],
134
- t_fl_ref: npt.NDArray[np.float64] | float,
135
- p_3_cru: npt.NDArray[np.float64],
136
- p_3_ref: npt.NDArray[np.float64] | float,
137
- afr_cru: npt.NDArray[np.float64],
138
- afr_ref: npt.NDArray[np.float64] | float,
139
- ) -> npt.NDArray[np.float64]:
132
+ c_bc_ref: npt.NDArray[np.floating],
133
+ t_fl_cru: npt.NDArray[np.floating],
134
+ t_fl_ref: npt.NDArray[np.floating] | float,
135
+ p_3_cru: npt.NDArray[np.floating],
136
+ p_3_ref: npt.NDArray[np.floating] | float,
137
+ afr_cru: npt.NDArray[np.floating],
138
+ afr_ref: npt.NDArray[np.floating] | float,
139
+ ) -> npt.NDArray[np.floating]:
140
140
  """Calculate the black carbon mass concentration for cruise conditions (``c_bc_cru``).
141
141
 
142
142
  This quantity is computed at the instrument sampling point without correcting
@@ -144,24 +144,24 @@ def bc_mass_concentration_cruise_fox(
144
144
 
145
145
  Parameters
146
146
  ----------
147
- c_bc_ref: npt.NDArray[np.float64]
147
+ c_bc_ref: npt.NDArray[np.floating]
148
148
  Black carbon mass concentration at reference conditions, [:math:`mg m^{-3}`]
149
- t_fl_cru: npt.NDArray[np.float64]
149
+ t_fl_cru: npt.NDArray[np.floating]
150
150
  Flame temperature at cruise conditions, [:math:`K`]
151
- t_fl_ref: npt.NDArray[np.float64] | float
151
+ t_fl_ref: npt.NDArray[np.floating] | float
152
152
  Flame temperature at reference conditions, [:math:`K`]
153
- p_3_cru: npt.NDArray[np.float64]
153
+ p_3_cru: npt.NDArray[np.floating]
154
154
  Combustor inlet pressure at cruise conditions, [:math:`Pa`]
155
- p_3_ref: npt.NDArray[np.float64] | float
155
+ p_3_ref: npt.NDArray[np.floating] | float
156
156
  Combustor inlet pressure at reference conditions, [:math:`Pa`]
157
- afr_cru: npt.NDArray[np.float64]
157
+ afr_cru: npt.NDArray[np.floating]
158
158
  Air-to-fuel ratio at cruise conditions
159
- afr_ref: npt.NDArray[np.float64] | float
159
+ afr_ref: npt.NDArray[np.floating] | float
160
160
  Air-to-fuel ratio at reference conditions
161
161
 
162
162
  Returns
163
163
  -------
164
- npt.NDArray[np.float64]:
164
+ npt.NDArray[np.floating]:
165
165
  Black carbon mass concentration for cruise conditions, [:math:`mg m^{-3}`]
166
166
  """
167
167
  scaling_factor = dopelheuer_lecht_scaling_factor(
@@ -176,33 +176,33 @@ def bc_mass_concentration_cruise_fox(
176
176
 
177
177
 
178
178
  def dopelheuer_lecht_scaling_factor(
179
- t_fl_cru: npt.NDArray[np.float64],
180
- t_fl_ref: npt.NDArray[np.float64] | float,
181
- p_3_cru: npt.NDArray[np.float64],
182
- p_3_ref: npt.NDArray[np.float64] | float,
183
- afr_cru: npt.NDArray[np.float64],
184
- afr_ref: npt.NDArray[np.float64] | float,
185
- ) -> npt.NDArray[np.float64]:
179
+ t_fl_cru: npt.NDArray[np.floating],
180
+ t_fl_ref: npt.NDArray[np.floating] | float,
181
+ p_3_cru: npt.NDArray[np.floating],
182
+ p_3_ref: npt.NDArray[np.floating] | float,
183
+ afr_cru: npt.NDArray[np.floating],
184
+ afr_ref: npt.NDArray[np.floating] | float,
185
+ ) -> npt.NDArray[np.floating]:
186
186
  """Estimate scaling factor to convert the reference BC mass concentration from ground to cruise.
187
187
 
188
188
  Parameters
189
189
  ----------
190
- t_fl_cru: npt.NDArray[np.float64]
190
+ t_fl_cru: npt.NDArray[np.floating]
191
191
  Flame temperature at cruise conditions, [:math:`K`]
192
- t_fl_ref: npt.NDArray[np.float64] | float
192
+ t_fl_ref: npt.NDArray[np.floating] | float
193
193
  Flame temperature at reference conditions, [:math:`K`]
194
- p_3_cru: npt.NDArray[np.float64]
194
+ p_3_cru: npt.NDArray[np.floating]
195
195
  Combustor inlet pressure at cruise conditions, [:math:`Pa`]
196
- p_3_ref: npt.NDArray[np.float64] | float
196
+ p_3_ref: npt.NDArray[np.floating] | float
197
197
  Combustor inlet pressure at reference conditions, [:math:`Pa`]
198
- afr_cru: npt.NDArray[np.float64]
198
+ afr_cru: npt.NDArray[np.floating]
199
199
  Air-to-fuel ratio at cruise conditions
200
- afr_ref: npt.NDArray[np.float64] | float
200
+ afr_ref: npt.NDArray[np.floating] | float
201
201
  Air-to-fuel ratio at reference conditions
202
202
 
203
203
  Returns
204
204
  -------
205
- npt.NDArray[np.float64]
205
+ npt.NDArray[np.floating]
206
206
  Dopelheuer & Lecht scaling factor
207
207
 
208
208
  References
@@ -219,17 +219,17 @@ def dopelheuer_lecht_scaling_factor(
219
219
 
220
220
 
221
221
  def mass_emissions_index_imfox(
222
- fuel_flow_per_engine: npt.NDArray[np.float64],
223
- thrust_setting: npt.NDArray[np.float64],
222
+ fuel_flow_per_engine: npt.NDArray[np.floating],
223
+ thrust_setting: npt.NDArray[np.floating],
224
224
  fuel_hydrogen: float,
225
- ) -> npt.NDArray[np.float64]:
225
+ ) -> npt.NDArray[np.floating]:
226
226
  r"""Calculate the BC mass EI using the "Improved" Formation and Oxidation Method (ImFOX).
227
227
 
228
228
  Parameters
229
229
  ----------
230
- fuel_flow_per_engine: npt.NDArray[np.float64]
230
+ fuel_flow_per_engine: npt.NDArray[np.floating]
231
231
  Fuel mass flow rate per engine, [:math:`kg s^{-1}`]
232
- thrust_setting: npt.NDArray[np.float64]
232
+ thrust_setting: npt.NDArray[np.floating]
233
233
  Engine thrust setting, which is the fuel mass flow rate divided by the
234
234
  maximum fuel mass flow rate
235
235
  fuel_hydrogen: float
@@ -237,7 +237,7 @@ def mass_emissions_index_imfox(
237
237
 
238
238
  Returns
239
239
  -------
240
- npt.NDArray[np.float64]
240
+ npt.NDArray[np.floating]
241
241
  Black carbon mass emissions index, [:math:`mg \ kg_{fuel}^{-1}`]
242
242
 
243
243
  References
@@ -253,20 +253,20 @@ def mass_emissions_index_imfox(
253
253
  return bc_mass_emissions_index(c_bc_cru, q_exhaust_cru)
254
254
 
255
255
 
256
- def air_to_fuel_ratio_imfox(thrust_setting: npt.NDArray[np.float64]) -> npt.NDArray[np.float64]:
256
+ def air_to_fuel_ratio_imfox(thrust_setting: npt.NDArray[np.floating]) -> npt.NDArray[np.floating]:
257
257
  """Calculate the air-to-fuel ratio at cruise conditions via Abrahamson's method.
258
258
 
259
259
  See Eq. (11) in :cite:`abrahamsonPredictiveModelDevelopment2016`.
260
260
 
261
261
  Parameters
262
262
  ----------
263
- thrust_setting: npt.NDArray[np.float64]
263
+ thrust_setting: npt.NDArray[np.floating]
264
264
  Engine thrust setting, which is the fuel mass flow rate divided by
265
265
  the maximum fuel mass flow rate
266
266
 
267
267
  Returns
268
268
  -------
269
- npt.NDArray[np.float64]
269
+ npt.NDArray[np.floating]
270
270
  Air-to-fuel ratio at cruise conditions
271
271
 
272
272
  References
@@ -276,19 +276,19 @@ def air_to_fuel_ratio_imfox(thrust_setting: npt.NDArray[np.float64]) -> npt.NDAr
276
276
  return 55.4 - 30.8 * thrust_setting
277
277
 
278
278
 
279
- def turbine_inlet_temperature_imfox(afr: npt.NDArray[np.float64]) -> npt.NDArray[np.float64]:
279
+ def turbine_inlet_temperature_imfox(afr: npt.NDArray[np.floating]) -> npt.NDArray[np.floating]:
280
280
  """Calculate the turbine inlet temperature using Abrahamson's method.
281
281
 
282
282
  See Eq. (13) in :cite:`abrahamsonPredictiveModelDevelopment2016`.
283
283
 
284
284
  Parameters
285
285
  ----------
286
- afr: npt.NDArray[np.float64]
286
+ afr: npt.NDArray[np.floating]
287
287
  air-to-fuel ratio at cruise conditions
288
288
 
289
289
  Returns
290
290
  -------
291
- npt.NDArray[np.float64]
291
+ npt.NDArray[np.floating]
292
292
  turbine inlet temperature, [:math:`K`]
293
293
 
294
294
  References
@@ -299,11 +299,11 @@ def turbine_inlet_temperature_imfox(afr: npt.NDArray[np.float64]) -> npt.NDArray
299
299
 
300
300
 
301
301
  def bc_mass_concentration_imfox(
302
- fuel_flow_per_engine: npt.NDArray[np.float64],
303
- afr: npt.NDArray[np.float64],
304
- t_4: npt.NDArray[np.float64],
302
+ fuel_flow_per_engine: npt.NDArray[np.floating],
303
+ afr: npt.NDArray[np.floating],
304
+ t_4: npt.NDArray[np.floating],
305
305
  fuel_hydrogen: float,
306
- ) -> npt.NDArray[np.float64]:
306
+ ) -> npt.NDArray[np.floating]:
307
307
  """Calculate the BC mass concentration for ground and cruise conditions with ImFOX methodology.
308
308
 
309
309
  This quantity is computed at the instrument sampling point without
@@ -311,18 +311,18 @@ def bc_mass_concentration_imfox(
311
311
 
312
312
  Parameters
313
313
  ----------
314
- fuel_flow_per_engine: npt.NDArray[np.float64]
314
+ fuel_flow_per_engine: npt.NDArray[np.floating]
315
315
  fuel mass flow rate per engine, [:math:`kg s^{-1}`]
316
- afr: npt.NDArray[np.float64]
316
+ afr: npt.NDArray[np.floating]
317
317
  air-to-fuel ratio
318
- t_4: npt.NDArray[np.float64]
318
+ t_4: npt.NDArray[np.floating]
319
319
  turbine inlet temperature, [:math:`K`]
320
320
  fuel_hydrogen: float
321
321
  percentage of hydrogen mass content in the fuel (13.8% for conventional Jet A-1 fuel)
322
322
 
323
323
  Returns
324
324
  -------
325
- npt.NDArray[np.float64]
325
+ npt.NDArray[np.floating]
326
326
  Black carbon mass concentration, [:math:`mg m^{-3}`]
327
327
  """
328
328
  exp_term = np.exp(13.6 - fuel_hydrogen)
@@ -336,18 +336,18 @@ def bc_mass_concentration_imfox(
336
336
  # ---------------------------------------------------------
337
337
 
338
338
 
339
- def exhaust_gas_volume_per_kg_fuel(afr: npt.NDArray[np.float64]) -> npt.NDArray[np.float64]:
339
+ def exhaust_gas_volume_per_kg_fuel(afr: npt.NDArray[np.floating]) -> npt.NDArray[np.floating]:
340
340
  """
341
341
  Calculate the volume of exhaust gas per mass of fuel burnt.
342
342
 
343
343
  Parameters
344
344
  ----------
345
- afr: npt.NDArray[np.float64]
345
+ afr: npt.NDArray[np.floating]
346
346
  Air-to-fuel ratio
347
347
 
348
348
  Returns
349
349
  -------
350
- npt.NDArray[np.float64]
350
+ npt.NDArray[np.floating]
351
351
  Volume of exhaust gas per mass of fuel burnt, [:math:`m^{3}/kg_{fuel}`]
352
352
 
353
353
  References
@@ -358,21 +358,21 @@ def exhaust_gas_volume_per_kg_fuel(afr: npt.NDArray[np.float64]) -> npt.NDArray[
358
358
 
359
359
 
360
360
  def bc_mass_emissions_index(
361
- c_bc: npt.NDArray[np.float64], q_exhaust: npt.NDArray[np.float64]
362
- ) -> npt.NDArray[np.float64]:
361
+ c_bc: npt.NDArray[np.floating], q_exhaust: npt.NDArray[np.floating]
362
+ ) -> npt.NDArray[np.floating]:
363
363
  """
364
364
  Calculate the black carbon mass emissions index.
365
365
 
366
366
  Parameters
367
367
  ----------
368
- c_bc: npt.NDArray[np.float64]
368
+ c_bc: npt.NDArray[np.floating]
369
369
  Black carbon mass concentration, [:math:`mg m^{-3}`]
370
- q_exhaust: npt.NDArray[np.float64]
370
+ q_exhaust: npt.NDArray[np.floating]
371
371
  Volume of exhaust gas per mass of fuel burnt, [:math:`m^{3}/kg_{fuel}`]
372
372
 
373
373
  Returns
374
374
  -------
375
- npt.NDArray[np.float64]
375
+ npt.NDArray[np.floating]
376
376
  Black carbon mass emissions index, [:math:`mg/kg_{fuel}`]
377
377
 
378
378
  References
@@ -388,17 +388,17 @@ def bc_mass_emissions_index(
388
388
 
389
389
 
390
390
  def geometric_mean_diameter_sac(
391
- air_pressure: npt.NDArray[np.float64],
392
- air_temperature: npt.NDArray[np.float64],
393
- true_airspeed: npt.NDArray[np.float64],
394
- thrust_setting: npt.NDArray[np.float64],
391
+ air_pressure: npt.NDArray[np.floating],
392
+ air_temperature: npt.NDArray[np.floating],
393
+ true_airspeed: npt.NDArray[np.floating],
394
+ thrust_setting: npt.NDArray[np.floating],
395
395
  pressure_ratio: float,
396
396
  q_fuel: float,
397
397
  *,
398
398
  comp_efficiency: float = 0.9,
399
399
  delta_loss: float = 5.75,
400
400
  cruise: bool = True,
401
- ) -> npt.NDArray[np.float64]:
401
+ ) -> npt.NDArray[np.floating]:
402
402
  r"""Calculate the BC GMD for singular annular combustor (SAC) engines.
403
403
 
404
404
  The BC (black carbon) GMD (geometric mean diameter) is estimated using
@@ -407,13 +407,13 @@ def geometric_mean_diameter_sac(
407
407
 
408
408
  Parameters
409
409
  ----------
410
- air_pressure: npt.NDArray[np.float64]
410
+ air_pressure: npt.NDArray[np.floating]
411
411
  Pressure altitude at each waypoint, [:math:`Pa`]
412
- air_temperature: npt.NDArray[np.float64]
412
+ air_temperature: npt.NDArray[np.floating]
413
413
  Ambient temperature for each waypoint, [:math:`K`]
414
- true_airspeed: npt.NDArray[np.float64]
414
+ true_airspeed: npt.NDArray[np.floating]
415
415
  True airspeed for each waypoint, [:math:`m s^{-1}`]
416
- thrust_setting: npt.NDArray[np.float64]
416
+ thrust_setting: npt.NDArray[np.floating]
417
417
  Engine thrust setting, which is the fuel mass flow rate divided by the
418
418
  maximum fuel mass flow rate
419
419
  pressure_ratio: float
@@ -429,7 +429,7 @@ def geometric_mean_diameter_sac(
429
429
 
430
430
  Returns
431
431
  -------
432
- npt.NDArray[np.float64]
432
+ npt.NDArray[np.floating]
433
433
  black carbon geometric mean diameter, [:math:`nm`]
434
434
 
435
435
  References
@@ -450,15 +450,15 @@ def geometric_mean_diameter_sac(
450
450
 
451
451
 
452
452
  def number_emissions_index_fractal_aggregates(
453
- nvpm_ei_m: npt.NDArray[np.float64],
454
- gmd: npt.NDArray[np.float64],
453
+ nvpm_ei_m: npt.NDArray[np.floating],
454
+ gmd: npt.NDArray[np.floating],
455
455
  *,
456
- gsd: float | npt.NDArray[np.float64] = 1.80,
456
+ gsd: float | npt.NDArray[np.floating] = 1.80,
457
457
  rho_bc: float = 1770,
458
458
  k_tem: float = 1.621e-5,
459
459
  d_tem: float = 0.39,
460
460
  d_fm: float = 2.76,
461
- ) -> npt.NDArray[np.float64]:
461
+ ) -> npt.NDArray[np.floating]:
462
462
  """
463
463
  Estimate the black carbon number emission index using the fractal aggregates (FA) model.
464
464
 
@@ -467,9 +467,9 @@ def number_emissions_index_fractal_aggregates(
467
467
 
468
468
  Parameters
469
469
  ----------
470
- nvpm_ei_m: npt.NDArray[np.float64]
470
+ nvpm_ei_m: npt.NDArray[np.floating]
471
471
  Black carbon mass emissions index, [:math:`kg/kg_{fuel}`]
472
- gmd: npt.NDArray[np.float64]
472
+ gmd: npt.NDArray[np.floating]
473
473
  Black carbon geometric mean diameter, [:math:`m`]
474
474
  gsd: float
475
475
  Black carbon geometric standard deviation (assumed to be 1.80)
@@ -484,7 +484,7 @@ def number_emissions_index_fractal_aggregates(
484
484
 
485
485
  Returns
486
486
  -------
487
- npt.NDArray[np.float64]
487
+ npt.NDArray[np.floating]
488
488
  Black carbon number emissions index, [:math:`kg_{fuel}^{-1}`]
489
489
 
490
490
  References
@@ -506,9 +506,9 @@ def number_emissions_index_fractal_aggregates(
506
506
 
507
507
 
508
508
  def nvpm_number_ei_pct_reduction_due_to_saf(
509
- hydrogen_content: float | npt.NDArray[np.float64],
510
- thrust_setting: npt.NDArray[np.float64],
511
- ) -> npt.NDArray[np.float64]:
509
+ hydrogen_content: float | npt.NDArray[np.floating],
510
+ thrust_setting: npt.NDArray[np.floating],
511
+ ) -> npt.NDArray[np.floating]:
512
512
  """
513
513
  Adjust nvPM number emissions index to account for the effects of sustainable aviation fuels.
514
514
 
@@ -516,13 +516,13 @@ def nvpm_number_ei_pct_reduction_due_to_saf(
516
516
  ----------
517
517
  hydrogen_content: float
518
518
  The percentage of hydrogen mass content in the fuel.
519
- thrust_setting: npt.NDArray[np.float64]
519
+ thrust_setting: npt.NDArray[np.floating]
520
520
  Engine thrust setting, where the equivalent fuel mass flow rate per engine at
521
521
  sea level, :math:`[0 - 1]`.
522
522
 
523
523
  Returns
524
524
  -------
525
- npt.NDArray[np.float64]
525
+ npt.NDArray[np.floating]
526
526
  Percentage reduction in nvPM number emissions index
527
527
 
528
528
  References
@@ -537,9 +537,9 @@ def nvpm_number_ei_pct_reduction_due_to_saf(
537
537
 
538
538
 
539
539
  def nvpm_mass_ei_pct_reduction_due_to_saf(
540
- hydrogen_content: float | npt.NDArray[np.float64],
541
- thrust_setting: npt.NDArray[np.float64],
542
- ) -> npt.NDArray[np.float64]:
540
+ hydrogen_content: float | npt.NDArray[np.floating],
541
+ thrust_setting: npt.NDArray[np.floating],
542
+ ) -> npt.NDArray[np.floating]:
543
543
  """
544
544
  Adjust nvPM mass emissions index to account for the effects of sustainable aviation fuels.
545
545
 
@@ -550,13 +550,13 @@ def nvpm_mass_ei_pct_reduction_due_to_saf(
550
550
  ----------
551
551
  hydrogen_content: float
552
552
  The percentage of hydrogen mass content in the fuel.
553
- thrust_setting: npt.NDArray[np.float64]
553
+ thrust_setting: npt.NDArray[np.floating]
554
554
  Engine thrust setting, where the equivalent fuel mass flow rate per engine at
555
555
  sea level, :math:`[0 - 1]`.
556
556
 
557
557
  Returns
558
558
  -------
559
- npt.NDArray[np.float64]
559
+ npt.NDArray[np.floating]
560
560
  Percentage reduction in nvPM number emissions index
561
561
 
562
562
  References
@@ -571,12 +571,12 @@ def nvpm_mass_ei_pct_reduction_due_to_saf(
571
571
 
572
572
 
573
573
  def _template_saf_reduction(
574
- hydrogen_content: float | npt.NDArray[np.float64],
575
- thrust_setting: npt.NDArray[np.float64],
574
+ hydrogen_content: float | npt.NDArray[np.floating],
575
+ thrust_setting: npt.NDArray[np.floating],
576
576
  a0: float,
577
577
  a1: float,
578
578
  a2: float,
579
- ) -> npt.NDArray[np.float64]:
579
+ ) -> npt.NDArray[np.floating]:
580
580
  # Thrust setting cannot be computed when engine data is not provided in
581
581
  # the ICAO EDB, so set default to 45% thrust.
582
582
  thrust_setting = np.nan_to_num(thrust_setting, nan=0.45)