pycontrails 0.54.7__cp312-cp312-macosx_11_0_arm64.whl → 0.54.8__cp312-cp312-macosx_11_0_arm64.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 (28) hide show
  1. pycontrails/_version.py +9 -4
  2. pycontrails/core/cache.py +4 -0
  3. pycontrails/core/flightplan.py +10 -2
  4. pycontrails/core/met.py +12 -7
  5. pycontrails/core/rgi_cython.cpython-312-darwin.so +0 -0
  6. pycontrails/core/vector.py +11 -3
  7. pycontrails/datalib/spire/spire.py +6 -8
  8. pycontrails/models/cocip/cocip.py +14 -5
  9. pycontrails/models/cocip/contrail_properties.py +4 -6
  10. pycontrails/models/cocip/output_formats.py +12 -4
  11. pycontrails/models/cocip/radiative_forcing.py +2 -8
  12. pycontrails/models/cocipgrid/cocip_grid.py +11 -11
  13. pycontrails/models/humidity_scaling/humidity_scaling.py +49 -4
  14. pycontrails/models/ps_model/ps_aircraft_params.py +1 -1
  15. pycontrails/models/ps_model/ps_grid.py +22 -22
  16. pycontrails/models/ps_model/ps_model.py +3 -6
  17. pycontrails/models/ps_model/static/{ps-aircraft-params-20240524.csv → ps-aircraft-params-20250328.csv} +58 -57
  18. pycontrails/models/ps_model/static/{ps-synonym-list-20240524.csv → ps-synonym-list-20250328.csv} +1 -0
  19. pycontrails/models/tau_cirrus.py +1 -0
  20. pycontrails/physics/jet.py +5 -4
  21. pycontrails/physics/static/{iata-cargo-load-factors-20241115.csv → iata-cargo-load-factors-20250221.csv} +3 -0
  22. pycontrails/physics/static/{iata-passenger-load-factors-20241115.csv → iata-passenger-load-factors-20250221.csv} +3 -0
  23. {pycontrails-0.54.7.dist-info → pycontrails-0.54.8.dist-info}/METADATA +3 -2
  24. {pycontrails-0.54.7.dist-info → pycontrails-0.54.8.dist-info}/RECORD +28 -28
  25. {pycontrails-0.54.7.dist-info → pycontrails-0.54.8.dist-info}/WHEEL +2 -1
  26. {pycontrails-0.54.7.dist-info → pycontrails-0.54.8.dist-info/licenses}/LICENSE +0 -0
  27. {pycontrails-0.54.7.dist-info → pycontrails-0.54.8.dist-info/licenses}/NOTICE +0 -0
  28. {pycontrails-0.54.7.dist-info → pycontrails-0.54.8.dist-info}/top_level.txt +0 -0
pycontrails/_version.py CHANGED
@@ -1,8 +1,13 @@
1
- # file generated by setuptools_scm
1
+ # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
+
4
+ __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
5
+
3
6
  TYPE_CHECKING = False
4
7
  if TYPE_CHECKING:
5
- from typing import Tuple, Union
8
+ from typing import Tuple
9
+ from typing import Union
10
+
6
11
  VERSION_TUPLE = Tuple[Union[int, str], ...]
7
12
  else:
8
13
  VERSION_TUPLE = object
@@ -12,5 +17,5 @@ __version__: str
12
17
  __version_tuple__: VERSION_TUPLE
13
18
  version_tuple: VERSION_TUPLE
14
19
 
15
- __version__ = version = '0.54.7'
16
- __version_tuple__ = version_tuple = (0, 54, 7)
20
+ __version__ = version = '0.54.8'
21
+ __version_tuple__ = version_tuple = (0, 54, 8)
pycontrails/core/cache.py CHANGED
@@ -266,6 +266,8 @@ class DiskCacheStore(CacheStore):
266
266
  >>> # put a file directly
267
267
  >>> disk_cache.put("README.md", "test/file.md")
268
268
  'test/file.md'
269
+
270
+ >>> disk_cache.clear() # cleanup
269
271
  """
270
272
 
271
273
  if not pathlib.Path(data_path).is_file():
@@ -312,6 +314,8 @@ class DiskCacheStore(CacheStore):
312
314
  >>> # returns a path
313
315
  >>> disk_cache.get("test/file.md")
314
316
  'cache/test/file.md'
317
+
318
+ >>> disk_cache.clear() # cleanup
315
319
  """
316
320
  return self.path(cache_path)
317
321
 
@@ -38,10 +38,13 @@ def to_atc_plan(plan: dict[str, Any]) -> str:
38
38
  if "second_alt_icao" in plan:
39
39
  ret += f" {plan['second_alt_icao']}"
40
40
  ret += "\n"
41
- ret += f"-{plan['other_info']})\n"
41
+ ret += f"-{plan['other_info']}"
42
42
  if "supplementary_info" in plan:
43
+ ret += "\n-"
43
44
  ret += " ".join([f"{i[0]}/{i[1]}" for i in plan["supplementary_info"].items()])
44
45
 
46
+ ret += ")"
47
+
45
48
  if ret[-1] == "\n":
46
49
  ret = ret[:-1]
47
50
 
@@ -194,7 +197,12 @@ def parse_atc_plan(atc_plan: str) -> dict[str, str]:
194
197
 
195
198
  # Other info
196
199
  if len(basic) > 8:
197
- flightplan["other_info"] = basic[8]
200
+ info = basic[8]
201
+ idx = info.find("DOF")
202
+ if idx != -1:
203
+ flightplan["departure_date"] = info[idx + 4 : idx + 10]
204
+
205
+ flightplan["other_info"] = info.strip()
198
206
 
199
207
  # Supl. Info
200
208
  if len(basic) > 9:
pycontrails/core/met.py CHANGED
@@ -2643,19 +2643,24 @@ def downselect(data: XArrayType, bbox: tuple[float, ...]) -> XArrayType:
2643
2643
  "or length 6 [west, south, min-level, east, north, max-level]"
2644
2644
  )
2645
2645
 
2646
+ if west <= east:
2647
+ # Return a view of the data
2648
+ # If data is lazy, this will not load the data
2649
+ return data.sel(
2650
+ longitude=slice(west, east),
2651
+ latitude=slice(south, north),
2652
+ level=slice(level_min, level_max),
2653
+ )
2654
+
2655
+ # In this case, the bbox spans the antimeridian
2656
+ # If data is lazy, this will load the data (data.where is not lazy AFAIK)
2646
2657
  cond = (
2647
2658
  (data["latitude"] >= south)
2648
2659
  & (data["latitude"] <= north)
2649
2660
  & (data["level"] >= level_min)
2650
2661
  & (data["level"] <= level_max)
2662
+ & ((data["longitude"] >= west) | (data["longitude"] <= east))
2651
2663
  )
2652
-
2653
- # wrapping longitude
2654
- if west <= east:
2655
- cond = cond & (data["longitude"] >= west) & (data["longitude"] <= east)
2656
- else:
2657
- cond = cond & ((data["longitude"] >= west) | (data["longitude"] <= east))
2658
-
2659
2664
  return data.where(cond, drop=True)
2660
2665
 
2661
2666
 
@@ -1067,9 +1067,17 @@ class VectorDataset:
1067
1067
  if out is not marker:
1068
1068
  return out
1069
1069
 
1070
- out = self.data.get(key, marker)
1071
- if out is not marker:
1072
- vals = np.unique(out)
1070
+ arr: np.ndarray = self.data.get(key, marker) # type: ignore[arg-type]
1071
+ if arr is not marker:
1072
+ try:
1073
+ vals = np.unique(arr)
1074
+ except TypeError:
1075
+ # A TypeError can occur if the arr has object dtype and contains None
1076
+ # Handle this case by returning None
1077
+ if arr.dtype == object and np.all(arr == None): # noqa: E711
1078
+ return None
1079
+ raise
1080
+
1073
1081
  if len(vals) == 1:
1074
1082
  return vals[0]
1075
1083
 
@@ -75,7 +75,7 @@ class ValidateTrajectoryHandler:
75
75
  <LINK HERE TO HOSTED REFERENCE EXAMPLE(S)>.
76
76
  """
77
77
 
78
- CRUISE_ROCD_THRESHOLD_FPS = 4.2 # 4.2 ft/sec ~= 250 ft/min
78
+ ROCD_THRESHOLD_FPS = 83.25 # 83.25 ft/sec ~= 5000 ft/min
79
79
  CRUISE_LOW_ALTITUDE_THRESHOLD_FT = 15000.0 # lowest expected cruise altitude
80
80
  INSTANTANEOUS_HIGH_GROUND_SPEED_THRESHOLD_MPS = 350.0 # 350m/sec ~= 780mph ~= 1260kph
81
81
  INSTANTANEOUS_LOW_GROUND_SPEED_THRESHOLD_MPS = 45.0 # 45m/sec ~= 100mph ~= 160kph
@@ -473,12 +473,12 @@ class ValidateTrajectoryHandler:
473
473
  Evaluate flight altitude profile.
474
474
 
475
475
  Failure modes include:
476
- RocdError
476
+ FlightAltitudeProfileError
477
477
  1) flight climbs above alt threshold,
478
478
  then descends below that threshold one or more times,
479
479
  before making final descent to land.
480
480
 
481
- FlightAltitudeProfileError
481
+ RocdError
482
482
  2) rate of instantaneous (between consecutive waypoint) climb or descent is above threshold,
483
483
  while aircraft is above the cruise altitude.
484
484
  """
@@ -488,15 +488,13 @@ class ValidateTrajectoryHandler:
488
488
 
489
489
  violations: list[FlightAltitudeProfileError | ROCDError] = []
490
490
 
491
- # only evaluate rocd errors when at cruising altitude
492
- rocd_above_thres = (self._df["rocd_fps"].abs() >= self.CRUISE_ROCD_THRESHOLD_FPS) & (
493
- self._df["altitude_baro"] >= self.CRUISE_LOW_ALTITUDE_THRESHOLD_FT
494
- )
491
+ # evaluate ROCD
492
+ rocd_above_thres = self._df["rocd_fps"].abs() >= self.ROCD_THRESHOLD_FPS
495
493
  if rocd_above_thres.any():
496
494
  msg = (
497
495
  "Flight trajectory has rate of climb/descent values "
498
496
  "between consecutive waypoints that exceed threshold "
499
- f"of {self.CRUISE_ROCD_THRESHOLD_FPS:.3f}ft/sec. "
497
+ f"of {self.ROCD_THRESHOLD_FPS:.3f}ft/sec. "
500
498
  f"Max value found: {self._df['rocd_fps'].abs().max():.3f}ft/sec"
501
499
  )
502
500
  violations.append(ROCDError(msg))
@@ -997,14 +997,14 @@ class Cocip(Model):
997
997
  else:
998
998
  f_surv = contrail_properties.ice_particle_survival_fraction(iwc, iwc_1)
999
999
 
1000
- n_ice_per_m_1 = contrail_properties.ice_particle_number(
1000
+ n_ice_per_m_0 = contrail_properties.initial_ice_particle_number(
1001
1001
  nvpm_ei_n=nvpm_ei_n,
1002
1002
  fuel_dist=fuel_dist,
1003
- f_surv=f_surv,
1004
1003
  air_temperature=air_temperature,
1005
1004
  T_crit_sac=T_critical_sac,
1006
1005
  min_ice_particle_number_nvpm_ei_n=self.params["min_ice_particle_number_nvpm_ei_n"],
1007
1006
  )
1007
+ n_ice_per_m_1 = n_ice_per_m_0 * f_surv
1008
1008
 
1009
1009
  # Check for persistent initial_contrails
1010
1010
  persistent_1 = contrail_properties.initial_persistent(iwc_1, rhi_1)
@@ -1018,6 +1018,8 @@ class Cocip(Model):
1018
1018
  self._sac_flight["rho_air_1"] = rho_air_1
1019
1019
  self._sac_flight["rhi_1"] = rhi_1
1020
1020
  self._sac_flight["iwc_1"] = iwc_1
1021
+ self._sac_flight["f_surv"] = f_surv
1022
+ self._sac_flight["n_ice_per_m_0"] = n_ice_per_m_0
1021
1023
  self._sac_flight["n_ice_per_m_1"] = n_ice_per_m_1
1022
1024
  self._sac_flight["persistent_1"] = persistent_1
1023
1025
 
@@ -1384,7 +1386,13 @@ class Cocip(Model):
1384
1386
  if verbose_outputs:
1385
1387
  sac_cols += ["dT_dz", "ds_dz", "dz_max"]
1386
1388
 
1387
- downwash_cols = ["rho_air_1", "iwc_1", "n_ice_per_m_1"]
1389
+ downwash_cols = [
1390
+ "rho_air_1",
1391
+ "iwc_1",
1392
+ "f_surv",
1393
+ "n_ice_per_m_0",
1394
+ "n_ice_per_m_1",
1395
+ ]
1388
1396
  df = pd.concat(
1389
1397
  [
1390
1398
  self.source.dataframe.set_index(col_idx),
@@ -2211,8 +2219,6 @@ def calc_contrail_properties(
2211
2219
  air_temperature += contrail["cumul_heat"]
2212
2220
 
2213
2221
  # get required radiation
2214
- theta_rad = geo.orbital_position(time)
2215
- sd0 = geo.solar_constant(theta_rad)
2216
2222
  sdr = contrail["sdr"]
2217
2223
  rsr = contrail["rsr"]
2218
2224
  olr = contrail["olr"]
@@ -2247,6 +2253,9 @@ def calc_contrail_properties(
2247
2253
  diffuse_h = contrail_properties.horizontal_diffusivity(ds_dz, depth)
2248
2254
 
2249
2255
  if radiative_heating_effects:
2256
+ # theta_rad has float64 dtype, convert back to float32 if needed
2257
+ theta_rad = geo.orbital_position(time).astype(sdr.dtype, copy=False)
2258
+ sd0 = geo.solar_constant(theta_rad)
2250
2259
  heat_rate = radiative_heating.heating_rate(
2251
2260
  air_temperature=air_temperature,
2252
2261
  rhi=rhi,
@@ -201,10 +201,9 @@ def iwc_post_wake_vortex(
201
201
  return np.maximum(iwc - iwc_ad, 0.0)
202
202
 
203
203
 
204
- def ice_particle_number(
204
+ def initial_ice_particle_number(
205
205
  nvpm_ei_n: npt.NDArray[np.floating],
206
206
  fuel_dist: npt.NDArray[np.floating],
207
- f_surv: npt.NDArray[np.floating],
208
207
  air_temperature: npt.NDArray[np.floating],
209
208
  T_crit_sac: npt.NDArray[np.floating],
210
209
  min_ice_particle_number_nvpm_ei_n: float,
@@ -222,8 +221,6 @@ def ice_particle_number(
222
221
  black carbon number emissions index, [:math:`kg^{-1}`]
223
222
  fuel_dist : npt.NDArray[np.floating]
224
223
  fuel consumption of the flight segment per distance traveled, [:math:`kg m^{-1}`]
225
- f_surv : npt.NDArray[np.floating]
226
- Fraction of contrail ice particle number that survive the wake vortex phase.
227
224
  air_temperature : npt.NDArray[np.floating]
228
225
  ambient temperature for each waypoint, [:math:`K`]
229
226
  T_crit_sac : npt.NDArray[np.floating]
@@ -235,11 +232,12 @@ def ice_particle_number(
235
232
  Returns
236
233
  -------
237
234
  npt.NDArray[np.floating]
238
- initial number of ice particles per distance after the wake vortex phase, [:math:`# m^{-1}`]
235
+ The initial number of ice particles per distance before the wake vortex
236
+ phase, [:math:`# m^{-1}`]
239
237
  """
240
238
  f_activation = ice_particle_activation_rate(air_temperature, T_crit_sac)
241
239
  nvpm_ei_n_activated = nvpm_ei_n * f_activation
242
- return fuel_dist * np.maximum(nvpm_ei_n_activated, min_ice_particle_number_nvpm_ei_n) * f_surv
240
+ return fuel_dist * np.maximum(nvpm_ei_n_activated, min_ice_particle_number_nvpm_ei_n)
243
241
 
244
242
 
245
243
  def ice_particle_activation_rate(
@@ -1188,10 +1188,18 @@ def meteorological_time_slice_statistics(
1188
1188
  )
1189
1189
 
1190
1190
  # ISSR: Volume of airspace with RHi > 100% between FL300 and FL450
1191
- met = humidity_scaling.eval(met)
1192
- rhi = met["rhi"].data.sel(level=slice(150, 300))
1193
- rhi = rhi.interp(time=time)
1194
- is_issr = rhi > 1
1191
+ met_cruise = MetDataset(met.data.sel(level=slice(150, 300)))
1192
+ rhi = humidity_scaling.eval(met_cruise)["rhi"].data
1193
+
1194
+ try:
1195
+ # If the given time is already in the dataset, select the time slice
1196
+ i = rhi.get_index("time").get_loc(time)
1197
+ except KeyError:
1198
+ rhi = rhi.interp(time=time)
1199
+ else:
1200
+ rhi = rhi.isel(time=i)
1201
+
1202
+ is_issr = rhi > 1.0
1195
1203
 
1196
1204
  # Cirrus in a longitude-latitude grid
1197
1205
  if cirrus_coverage is None:
@@ -1104,10 +1104,7 @@ def _contrail_optical_depth_above_contrail_layer(
1104
1104
 
1105
1105
  da_surface_area = geo.grid_surface_area(da["longitude"].values, da["latitude"].values)
1106
1106
  da = da / da_surface_area
1107
-
1108
- lon_coords = da["longitude"].values
1109
- wrap_longitude = (lon_coords[-1] + lon_coords[0] + np.diff(lon_coords)[0]) == 0.0
1110
- mda = MetDataArray(da, wrap_longitude=wrap_longitude, copy=False)
1107
+ mda = MetDataArray(da)
1111
1108
 
1112
1109
  # Interpolate to contrails_level
1113
1110
  contrails_level["tau_contrails_above"] = contrails_level.intersect_met(mda)
@@ -1133,10 +1130,7 @@ def _rsr_and_olr_with_contrail_overlap(
1133
1130
  Contrail waypoints at the current altitude layer with `rsr_overlap` and
1134
1131
  `olr_overlap` attached.
1135
1132
  """
1136
- # Change in radiation fields
1137
- lon_coords = delta_rad_t["longitude"].values
1138
- wrap_longitude = (lon_coords[-1] + lon_coords[0] + np.diff(lon_coords)[0]) == 0.0
1139
- mds = MetDataset(delta_rad_t, wrap_longitude=wrap_longitude, copy=False)
1133
+ mds = MetDataset(delta_rad_t)
1140
1134
 
1141
1135
  # Interpolate radiation fields to obtain `rsr_overlap` and `olr_overlap`
1142
1136
  delta_rsr = contrails_level.intersect_met(mds["rsr"])
@@ -1488,18 +1488,18 @@ def find_initial_persistent_contrails(
1488
1488
  )
1489
1489
  iwc_1 = contrail_properties.iwc_post_wake_vortex(iwc, iwc_ad)
1490
1490
  f_surv = contrail_properties.ice_particle_survival_fraction(iwc, iwc_1)
1491
- n_ice_per_m = contrail_properties.ice_particle_number(
1491
+ n_ice_per_m_0 = contrail_properties.initial_ice_particle_number(
1492
1492
  nvpm_ei_n=nvpm_ei_n,
1493
1493
  fuel_dist=fuel_dist,
1494
- f_surv=f_surv,
1495
1494
  air_temperature=air_temperature,
1496
1495
  T_crit_sac=T_crit_sac,
1497
1496
  min_ice_particle_number_nvpm_ei_n=params["min_ice_particle_number_nvpm_ei_n"],
1498
1497
  )
1498
+ n_ice_per_m_1 = n_ice_per_m_0 * f_surv
1499
1499
 
1500
1500
  # The logic below corresponds to Cocip._create_downwash_contrail (roughly)
1501
1501
  contrail["iwc"] = iwc_1
1502
- contrail["n_ice_per_m"] = n_ice_per_m
1502
+ contrail["n_ice_per_m"] = n_ice_per_m_1
1503
1503
 
1504
1504
  # Check for persistent initial_contrails
1505
1505
  rhi_1 = contrail["rhi"]
@@ -2152,18 +2152,18 @@ def result_to_metdataset(
2152
2152
  size = np.prod(shape)
2153
2153
 
2154
2154
  dtype = result["ef"].dtype if result else np.float32
2155
- contrail_age = np.zeros(size, dtype=np.float32)
2156
- ef_per_m = np.zeros(size, dtype=dtype)
2155
+ contrail_age_1d = np.zeros(size, dtype=np.float32)
2156
+ ef_per_m_1d = np.zeros(size, dtype=dtype)
2157
2157
 
2158
2158
  if result:
2159
2159
  contrail_idx = result["index"]
2160
2160
  # Step 1: Contrail age. Convert from timedelta to float
2161
- contrail_age[contrail_idx] = result["age"] / np.timedelta64(1, "h")
2161
+ contrail_age_1d[contrail_idx] = result["age"] / np.timedelta64(1, "h")
2162
2162
  # Step 2: EF
2163
- ef_per_m[contrail_idx] = result["ef"] / nominal_segment_length
2163
+ ef_per_m_1d[contrail_idx] = result["ef"] / nominal_segment_length
2164
2164
 
2165
- contrail_age = contrail_age.reshape(shape)
2166
- ef_per_m = ef_per_m.reshape(shape)
2165
+ contrail_age_4d = contrail_age_1d.reshape(shape)
2166
+ ef_per_m_4d = ef_per_m_1d.reshape(shape)
2167
2167
 
2168
2168
  # Step 3: Dataset dims and attrs
2169
2169
  dims = tuple(source.coords)
@@ -2171,8 +2171,8 @@ def result_to_metdataset(
2171
2171
 
2172
2172
  # Step 4: Dataset core variables
2173
2173
  data_vars = {
2174
- "contrail_age": (dims, contrail_age, local_attrs["contrail_age"]),
2175
- "ef_per_m": (dims, ef_per_m, local_attrs["ef_per_m"]),
2174
+ "contrail_age": (dims, contrail_age_4d, local_attrs["contrail_age"]),
2175
+ "ef_per_m": (dims, ef_per_m_4d, local_attrs["ef_per_m"]),
2176
2176
  }
2177
2177
 
2178
2178
  # Step 5: Dataset variables from verbose_dicts
@@ -321,7 +321,27 @@ class _SigmoidCoefficients:
321
321
 
322
322
 
323
323
  @functools.cache
324
- def _load_sigmoid_coef(q_method: str | None) -> _SigmoidCoefficients:
324
+ def _load_sigmoid_coef(q_method: str | None, level_type: str) -> _SigmoidCoefficients:
325
+ available = ("pressure", "model")
326
+ if level_type not in available:
327
+ msg = f"Invalid 'level_type' value '{level_type}'. Must be one of {available}."
328
+ raise ValueError(msg)
329
+
330
+ if level_type == "model":
331
+ if q_method is not None:
332
+ msg = "Parameter 'q_method' must be None for model-level data."
333
+ raise ValueError(msg)
334
+ return _SigmoidCoefficients(
335
+ a1=0.026302083473778933,
336
+ a2=0.9651041666272301,
337
+ a3=2.250107435038734,
338
+ a4=36.549393263544914,
339
+ b1=0.489062500000000095,
340
+ b2=2.210937499999999,
341
+ b3=4.182743010484767,
342
+ b4=17.53378893219587,
343
+ )
344
+
325
345
  if q_method is None:
326
346
  return _SigmoidCoefficients(
327
347
  a1=0.062621,
@@ -347,6 +367,14 @@ def _load_sigmoid_coef(q_method: str | None) -> _SigmoidCoefficients:
347
367
  raise NotImplementedError(f"Unsupported q_method: {q_method}")
348
368
 
349
369
 
370
+ @dataclasses.dataclass
371
+ class ExponentialBoostLatitudeCorrectionParams(models.ModelParams):
372
+ """Parameters for :class:`ExponentialBoostLatitudeCorrectionHumidityScaling`."""
373
+
374
+ #: The ERA5 vertical level type. Must be one of ``"pressure"`` or ``"model"``.
375
+ level_type: str = "pressure"
376
+
377
+
350
378
  class ExponentialBoostLatitudeCorrectionHumidityScaling(HumidityScaling):
351
379
  """Correct RHi values derived from ECMWF ERA5 HRES.
352
380
 
@@ -406,12 +434,28 @@ class ExponentialBoostLatitudeCorrectionHumidityScaling(HumidityScaling):
406
434
  name = "exponential_boost_latitude_customization"
407
435
  long_name = "Latitude specific humidity scaling composed with exponential boosting"
408
436
  formula = "rhi -> (rhi / rhi_adj) ^ rhi_boost_exponent"
409
- default_params = models.ModelParams
437
+ default_params = ExponentialBoostLatitudeCorrectionParams
410
438
  scaler_specific_keys = ("latitude",)
411
439
 
440
+ def __init__(
441
+ self,
442
+ met: MetDataset | None = None,
443
+ params: dict[str, Any] | None = None,
444
+ **params_kwargs: Any,
445
+ ):
446
+ if (params is None or "level_type" not in params) and ("level_type" not in params_kwargs):
447
+ msg = (
448
+ "The default level_type will change from 'pressure' to 'model' "
449
+ "in a future release. To silence this warning, provide a 'level_type' "
450
+ "value when instantiating ExponentialBoostLatitudeCorrectionHumidityScaling."
451
+ )
452
+ warnings.warn(msg, DeprecationWarning)
453
+ super().__init__(met, params, **params_kwargs)
454
+
412
455
  def _scale_kwargs(self) -> dict[str, Any]:
413
456
  q_method = self.params["interpolation_q_method"]
414
- return {**super()._scale_kwargs(), "q_method": q_method}
457
+ level_type = self.params["level_type"]
458
+ return {**super()._scale_kwargs(), "q_method": q_method, "level_type": level_type}
415
459
 
416
460
  @override
417
461
  def scale(
@@ -423,7 +467,8 @@ class ExponentialBoostLatitudeCorrectionHumidityScaling(HumidityScaling):
423
467
  ) -> tuple[ArrayLike, ArrayLike]:
424
468
  # Get sigmoid coefficients
425
469
  q_method = kwargs["q_method"]
426
- coef = _load_sigmoid_coef(q_method)
470
+ level_type = kwargs["level_type"]
471
+ coef = _load_sigmoid_coef(q_method, level_type)
427
472
 
428
473
  # Use the dtype of specific_humidity to determine the precision of the
429
474
  # the calculation. If working with gridded data here, latitude will have
@@ -16,7 +16,7 @@ from pycontrails.physics import constants as c
16
16
  from pycontrails.utils.types import ArrayOrFloat
17
17
 
18
18
  #: Path to the Poll-Schumann aircraft parameters CSV file.
19
- PS_FILE_PATH = pathlib.Path(__file__).parent / "static" / "ps-aircraft-params-20240524.csv"
19
+ PS_FILE_PATH = pathlib.Path(__file__).parent / "static" / "ps-aircraft-params-20250328.csv"
20
20
 
21
21
 
22
22
  @dataclasses.dataclass(frozen=True)
@@ -408,35 +408,35 @@ def ps_nominal_grid(
408
408
  >>> perf.attrs["mach_number"]
409
409
  0.753
410
410
 
411
- >>> perf.to_dataframe()
411
+ >>> perf.to_dataframe().round({"aircraft_mass": 0, "engine_efficiency": 3, "fuel_flow": 3})
412
412
  aircraft_mass engine_efficiency fuel_flow
413
413
  level
414
- 200.0 58416.230844 0.300958 0.575635
415
- 210.0 61617.676624 0.300958 0.604417
416
- 220.0 64829.702584 0.300958 0.633199
417
- 230.0 68026.415694 0.300958 0.662998
418
- 240.0 71187.897060 0.300958 0.694631
419
- 250.0 71775.399880 0.300824 0.703349
420
- 260.0 71765.716789 0.300363 0.708259
421
- 270.0 71752.405449 0.299671 0.714514
422
- 280.0 71736.129125 0.298823 0.721878
423
- 290.0 71717.392213 0.297875 0.730169
414
+ 200.0 58416.0 0.301 0.576
415
+ 210.0 61618.0 0.301 0.604
416
+ 220.0 64830.0 0.301 0.633
417
+ 230.0 68026.0 0.301 0.663
418
+ 240.0 71188.0 0.301 0.695
419
+ 250.0 71775.0 0.301 0.703
420
+ 260.0 71766.0 0.300 0.708
421
+ 270.0 71752.0 0.300 0.715
422
+ 280.0 71736.0 0.299 0.722
423
+ 290.0 71717.0 0.298 0.730
424
424
 
425
425
  >>> # Now compute it for a higher Mach number
426
426
  >>> perf = ps_nominal_grid("A320", level=level, mach_number=0.78)
427
- >>> perf.to_dataframe()
427
+ >>> perf.to_dataframe().round({"aircraft_mass": 0, "engine_efficiency": 3, "fuel_flow": 3})
428
428
  aircraft_mass engine_efficiency fuel_flow
429
429
  level
430
- 200.0 57941.825236 0.306598 0.596100
431
- 210.0 60626.062062 0.306605 0.621331
432
- 220.0 63818.498305 0.306605 0.650918
433
- 230.0 66993.691515 0.306605 0.681551
434
- 240.0 70129.930502 0.306605 0.714069
435
- 250.0 71703.009114 0.306560 0.732944
436
- 260.0 71690.188703 0.306239 0.739276
437
- 270.0 71673.392137 0.305694 0.747052
438
- 280.0 71653.431366 0.304997 0.755990
439
- 290.0 71630.901358 0.304201 0.765883
430
+ 200.0 58473.0 0.307 0.601
431
+ 210.0 60626.0 0.307 0.621
432
+ 220.0 63818.0 0.307 0.651
433
+ 230.0 66994.0 0.307 0.682
434
+ 240.0 70130.0 0.307 0.714
435
+ 250.0 71703.0 0.307 0.733
436
+ 260.0 71690.0 0.306 0.739
437
+ 270.0 71673.0 0.306 0.747
438
+ 280.0 71653.0 0.305 0.756
439
+ 290.0 71631.0 0.304 0.766
440
440
  """
441
441
  dims, coords, air_pressure, air_temperature = _parse_variables(level, air_temperature)
442
442
 
@@ -39,7 +39,7 @@ from pycontrails.utils.types import ArrayOrFloat
39
39
  # mypy: disable-error-code = "type-var, arg-type"
40
40
 
41
41
  #: Path to the Poll-Schumann aircraft parameters CSV file.
42
- PS_SYNONYM_FILE_PATH = pathlib.Path(__file__).parent / "static" / "ps-synonym-list-20240524.csv"
42
+ PS_SYNONYM_FILE_PATH = pathlib.Path(__file__).parent / "static" / "ps-synonym-list-20250328.csv"
43
43
 
44
44
 
45
45
  @dataclasses.dataclass
@@ -999,8 +999,5 @@ def get_aircraft_synonym_dict_ps() -> dict[str, str]:
999
999
  Dictionary of the form ``{"icao_aircraft_type": "ps_aircraft_type"}``.
1000
1000
  """
1001
1001
  # get path to static PS synonym list
1002
- synonym_path = pathlib.Path(__file__).parent / "static" / "ps-synonym-list-20240524.csv"
1003
- df_atyp_icao_to_ps = pd.read_csv(
1004
- synonym_path, usecols=["ICAO Aircraft Code", "PS ATYP"], index_col=0
1005
- )
1006
- return df_atyp_icao_to_ps.squeeze("columns").to_dict()
1002
+ df_atyp_icao_to_ps = pd.read_csv(PS_SYNONYM_FILE_PATH, index_col="ICAO Aircraft Code")
1003
+ return df_atyp_icao_to_ps["PS ATYP"].to_dict()
@@ -1,68 +1,69 @@
1
1
  ICAO,Manufacturer,Type,Year_of_first_flight,n_engine,winglets,WV,MTOM_kg,MLM_kg,MZFM_kg,OEM_i_kg,MPM_i_kg,MZFM_MTOM,OEM_i_MTOM,MPM_i_MTOM,Sref_m2,span_m,bf_m,delta_2,cos_sweep,AR,psi_0,Xo,wing_constant,j_2,j_1,CL_do,etaL_D_do,nominal_F00_ISA_kn,mf_max_T_O_SLS_kg_s,mf_idle_SLS_kg_s,M_des,CT_des,eta_1,eta_2,Mec,Tec,FL_max,MMO,pi_max_pa,pinf_co_pa,nominal_opr,nominal_bpr,nominal_fpr
2
- A20N,Airbus,A320-NEO,2014,2,yes,54,79000,66300,62800,43600,19200,0.794936709,0.551898734,0.243037975,122.4,35.1,3.59,0.02092207,0.906307767,10.06544118,7.519168898,0.956139347,0.786244088,0.872610625,0.075611461,0.597752236,6.437505219,255.7834783,1.771291826,0.179714609,0.7527,0.030225318,0.363162533,0.38526913,0.787080092,6.248203519,410,0.82,20882.78822,37618.41516,34.13434783,11.63652174,1.65
3
- A21N,Airbus,A321-NEO,2016,2,yes,52,93500,77300,73000,48000,25000,0.780748663,0.513368984,0.267379679,122.4,35.27,3.95,0.025084952,0.906307767,10.16317729,8.080988052,0.973612104,0.776932809,0.873049689,0.077052255,0.626442739,6.502543201,255.7834783,1.771291826,0.179714609,0.7527,0.032774858,0.379556514,0.38526913,0.787080092,6.202228431,391.0104987,0.82,20882.78822,37618.41516,34.13434783,11.63652174,1.65
4
- A306,Airbus,A300B4-600R,1983,2,no,0,170500,140000,130000,86220,43780,0.762463343,0.50568915,0.256774194,260,44.84,5.64,0.031641495,0.882947568,7.733175385,7.803846371,1.014875092,0.721487903,0.871400617,0.076160146,0.519478424,5.296827535,524.8533333,5.078666667,0.424,0.7527,0.030658862,0.364210924,0.537766667,0.683259556,5.336387723,410,0.82,20882.78822,37618.41516,31.52666667,4.933333333,1.65
5
- A30B,Airbus,A300B4-200,1973,2,no,6,165000,134000,124000,88505,35495,0.751515152,0.536393939,0.215121212,260,44.83,5.64,0.031655613,0.882947568,7.729726538,8.774193537,1.036099444,0.711780698,0.86836702,0.07391802,0.548381029,4.318482734,466.2,4.8029,0.4,0.7527,0.034997635,0.321789379,0.54535,0.674344,4.93205278,390,0.82,20882.78822,37618.41516,26.47,4.6,1.65
6
- A310,Airbus,A310-200,1982,2,no,8,138600,122000,112000,79207,32793,0.808080808,0.571479076,0.236601732,219,43.89,5.64,0.033026081,0.882947568,8.796036986,8.375562451,1.013898087,0.743809599,0.868659927,0.073287068,0.557549017,5.65582168,443.525,4.2895,0.3842,0.772,0.032940786,0.383837958,0.53568125,0.685649,5.373550789,410,0.84,21865.62405,37237.40235,26.3725,5.025,1.65
7
- A313,Airbus,A310-300,1982,2,no,0,150000,123000,113000,77397,35603,0.753333333,0.51598,0.237353333,219,43.89,5.64,0.033026081,0.882947568,8.796036986,8.212622174,1.024582936,0.737571745,0.869516104,0.074562862,0.563576336,5.602548625,480.258,4.5104,0.3946,0.772,0.032853327,0.375278919,0.5369325,0.68421856,5.364267817,410,0.84,21865.62405,37237.40235,28.184,4.97,1.65
8
- A318,Airbus,A318-100,2002,2,no,5,68000,57500,53000,38818,14182,0.779411765,0.570852941,0.208558824,122.4,34.1,3.95,0.026835855,0.906307767,9.500081699,7.471444005,0.995441823,0.753958954,0.870956053,0.075008678,0.563947374,5.333478382,199.2533333,2.060666667,0.211333333,0.7527,0.030936248,0.340355901,0.532458333,0.689288889,6.031933509,410,0.82,20882.78822,37618.41516,25.43333333,5.166666667,1.65
9
- A319,Airbus,A319-100,1995,2,no,6,73500,62500,58500,39725,18775,0.795918367,0.54047619,0.255442177,122.4,34.1,3.95,0.026835855,0.906307767,9.500081699,7.700920319,0.995030706,0.754823537,0.870775437,0.074774133,0.568723265,5.098135499,212.4783333,1.987166667,0.212,0.7527,0.031550436,0.328,0.521633125,0.70104451,5.849202578,410,0.82,20882.78822,37618.41516,25.33833333,5.6425,1.65
10
- A320,Airbus,A320-200,1987,2,no,0,73500,64500,60500,41244,19256,0.823129252,0.561142857,0.261986395,122.4,34.1,3.95,0.026835855,0.906307767,9.500081699,8.395287612,1.006597506,0.749584382,0.868903458,0.073191605,0.59039895,5.259100576,224.638,2.1462,0.2239,0.7527,0.034652548,0.358,0.5218265,0.70084087,5.588929572,410,0.82,20882.78822,37618.41516,26.909,5.634,1.65
11
- A321,Airbus,A321-100,1993,2,no,8,89000,75500,71500,46856,24644,0.803370787,0.52647191,0.276898876,122.4,34.15,3.95,0.02675733,0.906307767,9.527961601,8.631216449,1.023748365,0.740171309,0.869023229,0.074059188,0.606338494,4.98823425,269.3142857,2.690571429,0.246285714,0.7527,0.0358593,0.342780897,0.52832,0.693868454,5.741120348,391.0006562,0.82,20882.78822,37618.41516,31.16285714,5.348571429,1.65
12
- A332,Airbus,A330-200,1992,2,no,52,233000,182000,170000,116840,53160,0.729613734,0.501459227,0.228154506,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,6.691783708,0.986539447,0.762475042,0.872047153,0.076050268,0.528141489,6.875896605,609.465,5.93725,0.4895,0.786475,0.02499242,0.37,0.535055625,0.68636059,5.728484511,410,0.86,22875.41229,36864.52979,34.20375,5.0525,1.65
13
- A333,Airbus,A330-300,1992,2,no,52,233000,187000,175000,120132,54868,0.751072961,0.515587983,0.235484979,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,6.899510103,0.989985236,0.76102049,0.871552208,0.075532661,0.535352593,7.128484765,604.4625,5.839875,0.49225,0.786475,0.025831756,0.391045891,0.534117188,0.687423438,5.727838461,410,0.86,22875.41229,36864.52979,33.67251837,5.09375,1.65
14
- A338,Airbus,A330-800,2018,2,no,,242000,186000,174000,132000,42000,0.719008264,0.545454545,0.173553719,374,64,5.64,0.015532031,0.866025375,10.95187166,6.212990529,0.958877916,0.780583541,0.873631599,0.077578309,0.530216374,8.328327417,655.6,4.956,0.482,0.786,0.022900369,0.400414909,0.44525,0.7634,6.246060604,414.5,0.86,22875.41229,36864.52979,45.4,9,1.65
15
- A339,Airbus,A330-900,2017,2,no,,242000,191000,181000,135000,46000,0.747933884,0.55785124,0.190082645,374,64,5.64,0.015532031,0.866025375,10.95187166,6.46325095,0.96246813,0.779169206,0.873192286,0.076918011,0.539469135,8.110705591,655.6,4.956,0.482,0.786,0.023887738,0.399788387,0.44525,0.7634,6.232485988,414.5,0.86,22875.41229,36864.52979,45.4,9,1.65
16
- A342,Airbus,A340-200,1991,4,no,1,257000,181000,169000,125242,43758,0.657587549,0.487322957,0.170264591,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,7.076588203,0.994839196,0.759754196,0.872370296,0.076725978,0.551202388,6.689573974,579.4666667,5.516,0.4824,0.786475,0.026833302,0.367,0.497575,0.724576,5.643739289,415,0.86,22875.41229,36864.52979,29.95,6.7,1.65
17
- A343,Airbus,A340-300,1991,4,no,1,257000,186000,174000,125242,48758,0.677042802,0.487322957,0.189719844,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,7.383954096,1.000285382,0.7573768,0.871649368,0.076010212,0.561474717,6.610070249,579.4666667,5.516,0.4824,0.786475,0.028082741,0.372580342,0.497575,0.724576,5.663601105,415,0.86,22875.41229,36864.52979,29.95,6.7,1.65
18
- A345,Airbus,A340-500,2002,4,no,1,372000,243000,230000,170370,59630,0.61827957,0.457983871,0.160295699,437.3,63.45,5.64,0.015802469,0.856267054,9.206271438,6.730844314,0.984937415,0.761952208,0.873638932,0.078182371,0.511999654,6.777298015,1036.4,8.786666667,0.92,0.796125,0.024513506,0.361959064,0.479375,0.74,5.668646964,414.5013123,0.86,22875.41229,36864.52979,36.17666667,7.5,1.65
19
- A346,Airbus,A340-600,2001,4,no,1,368000,259000,245000,176364,68636,0.66576087,0.47925,0.18651087,437.3,63.45,5.64,0.015802469,0.856267054,9.206271438,7.056855481,0.990652069,0.759481269,0.872973519,0.077394212,0.523156024,6.815977225,1050.8,8.96,0.92,0.796125,0.025814567,0.37517065,0.479375,0.74,5.68183304,415,0.86,22875.41229,36864.52979,36.67,7.5,1.65
20
- A359,Airbus,A350-900,2013,2,no,9,275000,207000,195700,146600,49100,0.711636364,0.533090909,0.178545455,445,64.75,5.96,0.016945054,0.848048064,9.421488764,6.140290359,0.962361567,0.791413177,0.873943906,0.078227432,0.493332851,8.125436058,758,5.638,0.582,0.82025,0.022496843,0.404691496,0.4450225,0.76353184,6.122466226,431.0006562,0.89,24441.49186,36319.05391,41.095,9.01,1.65
21
- A35K,Airbus,A350-1000,2016,2,yes,2,316000,236000,223000,156000,67000,0.705696203,0.493670886,0.212025316,465,64.75,5.96,0.016945054,0.848048064,9.016263441,6.183084792,0.966883665,0.788899107,0.87362679,0.077787748,0.499564827,8.147693431,873.4,7.014,0.65,0.82025,0.022347631,0.399824282,0.46709,0.74925344,6.172981137,414.5,0.89,24441.49186,36319.05391,48.57,8.04,1.65
22
- A388,Airbus,A380-800,2005,4,no,2,569000,391000,366000,275000,91000,0.643233743,0.483304042,0.159929701,845,79.8,7.142,0.016020051,0.866025375,7.536142012,6.132045576,0.966638255,0.794400187,0.875962464,0.081840299,0.446446426,7.498481785,1350.653333,10.56933333,1.072,0.82025,0.021624953,0.398677354,0.470199167,0.746999716,5.869080111,431.0006562,0.89,24441.49186,36319.05391,38.07666667,7.903333333,1.65
23
- B37M,Boeing,B737 MAX 7,2018,2,yes,,80285,66043,62913,42033,20880,0.783620851,0.523547363,0.260073488,121.875,33.26,3.76,0.02556002,0.906307767,9.076739282,7.585063721,0.975506932,0.778868312,0.872091922,0.075686978,0.572742665,6.295944315,247.6,2.0025,0.189,0.763285024,0.030537405,0.379940115,0.458445,0.75520576,6.283950827,410,0.82,20882.78822,37618.41516,40.14,8.42,1.65
24
- B38M,Boeing,B737 MAX 8/8-200,2016,2,yes,,82644,69308,65952,45072,20880,0.798025265,0.545375345,0.25264992,121.875,33.26,3.76,0.02556002,0.906307767,9.076739282,7.869374698,0.97906074,0.77729995,0.871570728,0.075098953,0.581003295,6.209094863,247.6,2.0025,0.189,0.763285024,0.031631133,0.382601025,0.458445,0.75520576,6.256185757,410,0.82,20882.78822,37618.41516,40.14,8.42,1.65
25
- B39M,Boeing,B737 MAX 9,2017,2,yes,,88314,74343,70987,50107,20880,0.803802342,0.567373236,0.236429105,121.875,33.26,3.76,0.02556002,0.906307767,9.076739282,8.05844544,0.994198601,0.76872365,0.87201018,0.076256786,0.598926212,6.239926908,247.6,2.0025,0.189,0.763285024,0.033089092,0.39018692,0.458445,0.75520576,6.236986266,410,0.82,20882.78822,37618.41516,40.14,8.42,1.65
26
- B712,Boeing,B717-200,1998,2,no,HGW,54884,49898,45586,31071,14515,0.83058815,0.566121274,0.264466876,92.75,28.4,3.4,0.028664947,0.906307767,8.69606469,8.722339782,1.035797278,0.684750239,0.867306999,0.07298002,0.593541399,4.555779693,179.025,1.8155,0.201,0.7,0.037603724,0.350583851,0.545179375,0.67454851,5.998301413,370.9973753,0.82,20882.78822,37618.41516,30.4725,4.6075,1.65
27
- B722,Boeing,727-200,1967,2,no,0,83820,70100,63560,44390,19170,0.758291577,0.529587211,0.228704366,157.9,32.92,3.76,0.026090718,0.848048064,6.863371754,7.901954881,1.057801221,0.686729187,0.86502235,0.07205027,0.499213735,3.689723246,203.75625,3.4058625,0.41835,0.77,0.03284992,0.286,0.626595938,0.556514178,4.631875613,420,0.9,24977.42649,36140.62533,16.539375,1.02875,1.65
28
- B732,Boeing,B737-200,1967,2,no,5,52390,46720,43092,27125,15967,0.822523382,0.517751479,0.304771903,99,28.35,3.76,0.035180302,0.906307767,8.118409091,8.406144658,1.040134437,0.677684157,0.866573271,0.072538149,0.55647915,3.340772824,137.0738462,2.302092308,0.280215385,0.7,0.035879744,0.26934358,0.626585,0.556532787,4.655496203,370,0.82,20882.78822,37618.41516,16.59230769,1.029230769,1.65
29
- B733,Boeing,B737-300,1984,2,no,3,61236,51710,48308,32904,15404,0.788882357,0.537330982,0.251551375,102,28.9,3.76,0.033854001,0.906307767,8.188333333,9.200303497,1.023913881,0.715234635,0.867001262,0.072169037,0.577795554,4.096979487,187.3,2.014,0.234,0.728575,0.038442568,0.322802793,0.533975,0.687584,5.504887402,390,0.82,20882.78822,37618.41516,23.335,5.1,1.65
30
- B734,Boeing,B737-400,1988,2,no,6,68039,56246,53070,33643,19427,0.779993827,0.494466409,0.285527418,102.5,28.9,3.76,0.033854001,0.906307767,8.148390244,8.898192984,1.032441891,0.710077823,0.868386618,0.073800023,0.579192045,4.13010135,190.1266667,2.054666667,0.236,0.728575,0.037719014,0.318517837,0.533975,0.687584,5.587042978,370,0.82,20882.78822,37618.41516,23.63333333,5.1,1.65
31
- B735,Boeing,B737-500,1989,2,no,3,60555,49895,46494,31312,15182,0.76779787,0.517083643,0.250714227,103.7,28.9,3.76,0.033854001,0.906307767,8.054098361,8.33451025,1.009337993,0.721164574,0.869653399,0.074113442,0.550008118,4.05463838,187.3,2.014,0.234,0.728575,0.034586216,0.301940508,0.533975,0.687584,5.694014409,370,0.82,20882.78822,37618.41516,23.335,5.1,1.65
32
- B736,Boeing,B737-600,1997,2,no,3,65544,55112,51936,36378,15558,0.792383742,0.555016477,0.237367265,124.6,34.3,3.76,0.024033523,0.906307767,9.442134831,7.424658581,0.99420637,0.75916017,0.871081977,0.0751116,0.56354659,5.269028449,189.9709091,1.880909091,0.197454545,0.757525,0.030955608,0.335074122,0.527356818,0.69491914,5.900578607,410,0.82,20882.78822,37618.41516,23.16272727,5.390909091,1.65
33
- B737,Boeing,B737-700,1997,2,no,3,70080,58604,55202,37648,17554,0.787699772,0.537214612,0.25048516,124.6,34.3,3.76,0.024033523,0.906307767,9.442134831,7.610623423,0.997092665,0.757625964,0.870727093,0.074802808,0.567363946,5.021956077,214.1278261,2.175826087,0.209652174,0.757525,0.031490511,0.323004185,0.530809783,0.691125898,5.90211253,410,0.82,20882.78822,37618.41516,25.6326087,5.239130435,1.65
34
- B738,Boeing,B737-800,1997,2,no,3,79016,66361,61689,41413,20276,0.780715298,0.524109041,0.256606257,124.6,34.3,3.76,0.024033523,0.906307767,9.442134831,8.181516743,1.00523362,0.753742328,0.86950188,0.073769983,0.581267312,4.983308444,233.3695652,2.432434783,0.218695652,0.757525,0.033462541,0.332681166,0.533381522,0.688252824,5.90333496,410,0.82,20882.78822,37618.41516,27.74869565,5.126086957,1.65
35
- B739,Boeing,B737-900ER,2006,2,no,2,85139,71350,67721,44676,23045,0.795416906,0.524741893,0.270675014,124.6,34.32,3.76,0.024005521,0.906307767,9.453149278,7.92834468,1.013309441,0.748758647,0.870784513,0.075460257,0.585041361,5.003070394,233.3695652,2.432434783,0.218695652,0.757525,0.032950004,0.326763054,0.533381522,0.688252824,6.102506148,410,0.82,20882.78822,37618.41516,27.74869565,5.126086957,1.65
36
- B742,Boeing,B747-200B,1971,4,no,4,371900,285700,238780,175970,62810,0.642054316,0.473164829,0.168889486,511,59.64,6.5,0.023756444,0.793353296,6.960723288,7.019056156,1.038495569,0.69161267,0.867976442,0.073665148,0.45831945,5.337545419,882.3333333,9.1104,0.89784,0.81,0.025930712,0.338481202,0.541406667,0.679024462,4.612144185,450,0.9,24977.42649,36140.62533,24.73333333,4.773333333,1.65
37
- B743,Boeing,B747-300,1980,4,no,0,377800,260320,242630,174820,67810,0.642218105,0.462731604,0.179486501,511,59.64,6.5,0.023756444,0.782608111,6.960723288,6.881751548,1.041627795,0.68253174,0.867287749,0.073197605,0.452943745,5.374951837,898.8126316,9.187157895,0.909452632,0.81,0.025344181,0.337122346,0.541757895,0.678611479,5.0506812,450,0.9,24977.42649,36140.62533,25.81736842,4.757894737,1.65
38
- B744,Boeing,B747-400,1985,4,no,5,396894,285764,246075,178756,67319,0.620001814,0.450387257,0.169614557,547,64.44,6.5,0.020349121,0.793353296,7.591432541,6.688263979,1.029069691,0.698340832,0.868929586,0.074170378,0.464992693,6.027234116,1021.254118,9.786509804,0.822909804,0.81,0.024511914,0.355811516,0.537298284,0.683798564,5.296210572,450,0.92,26070.46918,35788.4714,30.57901961,4.953921569,1.65
39
- B748,Boeing,B747-8F,2010,4,no,1,442253,345184,328854,197131,131723,0.743587946,0.445742595,0.297845351,594,68.4,6.5,0.018061113,0.793353296,7.876363636,6.248755182,0.997894651,0.732488325,0.872320594,0.076747175,0.457551278,7.386886339,1199.22,9.808,0.87,0.8299,0.022440249,0.395291631,0.46765875,0.74884564,5.888619001,421.0006562,0.9,24977.42649,36140.62533,42.975,8.015,1.65
40
- B752,Boeing,B757-200,1982,2,no,4,113400,89800,83450,62100,21350,0.735890653,0.547619048,0.188271605,189,38.06,3.76,0.019519474,0.906307767,7.664357672,7.102482242,0.985678149,0.770287681,0.873576345,0.078107881,0.496548327,5.358463362,357.962,3.6404,0.3454,0.772,0.027960973,0.347178893,0.54209675,0.678212322,5.37738391,420,0.86,22875.41229,36864.52979,26.909,4.743,1.65
41
- B753,Boeing,B757-300,1998,2,no,2,122470,101610,95270,64580,30690,0.777904793,0.527312811,0.250591982,189,38.06,3.76,0.019519474,0.906307767,7.664357672,7.593716886,1.005262025,0.759572707,0.87301803,0.077746352,0.522123205,5.260668861,357.962,3.6404,0.3454,0.772,0.030631737,0.355109179,0.54209675,0.678212322,5.884200369,430,0.86,22875.41229,36864.52979,26.909,4.743,1.65
42
- B762,Boeing,B767-200ER,1984,2,no,6,179169,136078,117934,82377,35557,0.658227707,0.459772617,0.19845509,283.3,47.57,5.03,0.022361435,0.852640133,7.987662902,6.962665875,1.012922549,0.718636663,0.871373991,0.076077449,0.50014418,5.891145984,504.4066667,4.8587,0.407266667,0.772,0.027161252,0.367680713,0.537596042,0.683456066,5.407506184,430,0.86,22875.41229,36864.52979,30.22716667,4.940833333,1.65
43
- B763,Boeing,B767-300,1995,2,no,2,158758,136078,126299,86069,40230,0.795544162,0.542139609,0.253404553,283.3,47.57,5.03,0.022361435,0.852640133,7.987662902,6.296852184,0.988567215,0.730450667,0.872804122,0.077119108,0.469638583,6.001519547,504.4066667,4.8587,0.407266667,0.772,0.02403592,0.353,0.537596042,0.683456066,5.537312075,431.0006562,0.86,22875.41229,36864.52979,30.22716667,4.940833333,1.65
44
- B764,Boeing,B767-400ER,1999,2,no,1,204116,158757,149685,103147,46538,0.733333007,0.505335202,0.227997805,283.3,51.92,5.03,0.018771397,0.852640133,9.515306742,7.202171898,1.015950634,0.72271456,0.869996123,0.074730057,0.543871305,6.148190272,512.7957895,4.861157895,0.399794737,0.772,0.027844828,0.361414229,0.533975,0.687584,5.831334305,450,0.86,22875.41229,36864.52979,30.55605263,5.1,1.65
45
- B772,Boeing,B777-200,1994,2,no,6,286900,206350,195030,135600,59430,0.679783897,0.47263855,0.207145347,427.8,60.93,6.2,0.020708613,0.851726902,8.678038569,6.461822217,0.987569999,0.767369197,0.873764241,0.078399473,0.495253823,6.781321287,781.2292857,6.885785714,0.5735,0.8106,0.024180523,0.367,0.490319375,0.730970427,5.71612393,431.0006562,0.89,24441.49186,36319.05391,37.69964286,7.018928571,1.65
46
- B773,Boeing,B777-300,1997,2,no,4,299370,237680,224530,159570,64960,0.750008351,0.533019341,0.21698901,427.8,60.93,6.2,0.020708613,0.851726902,8.678038569,7.06941142,1.002684301,0.759514113,0.872187708,0.076713703,0.51471757,6.864081938,744.7577778,6.869444444,0.561,0.8106,0.026557394,0.393961604,0.507218472,0.715573354,5.802646414,431.0006562,0.89,24441.49186,36319.05391,36.31444444,6.276111111,1.65
47
- B77L,Boeing,B777-200LR,2005,2,no,1,347450,223168,209107,145150,63957,0.601833357,0.417757951,0.184075407,427.8,64.8,6.2,0.018308947,0.851726902,9.81542777,6.503715019,0.985544142,0.772137202,0.873492551,0.077988704,0.519417863,7.585117015,1006.5,9.01,0.75,0.8106,0.02389309,0.386398306,0.4859725,0.73464544,5.820183704,431.0006562,0.89,24441.49186,36319.05391,40.985,7.21,1.65
48
- B77W,Boeing,B777-300ER,2002,2,no,1,351530,251290,237673,167820,69853,0.676110147,0.4773988,0.198711348,427.8,64.8,6.2,0.018308947,0.851726902,9.81542777,7.159075436,0.997868415,0.76653828,0.872013573,0.076372489,0.541566421,7.183146325,1027.8,9.38,0.76,0.8106,0.026449404,0.388746118,0.48893,0.73215776,5.59316908,431.0006562,0.89,24441.49186,36319.05391,42.24,7.08,1.65
49
- B788,Boeing,B787-8,2009,2,no,1,227930,172365,161025,117707,43318,0.706466898,0.516417321,0.190049577,377,60.12,5.77,0.018422293,0.846193133,9.587306101,6.382579903,0.968083144,0.783757191,0.873178246,0.077083447,0.508399177,8.025698576,633.0491892,4.822891892,0.453081081,0.815425,0.023810747,0.411614512,0.445062466,0.763508702,6.062664522,431.0006562,0.9,24977.42649,36140.62533,42.93635135,9.008243243,1.65
50
- B789,Boeing,B787-9,2013,2,no,1,254011,192777,181437,128850,52587,0.714287964,0.507261497,0.207026467,377,60.12,5.77,0.018422293,0.846193133,9.587306101,6.477888019,0.968258434,0.783684365,0.873156144,0.077053182,0.508801657,8.027179776,633.0491892,4.822891892,0.453081081,0.815425,0.023856026,0.412147079,0.445062466,0.763508702,6.129298314,431.0334646,0.9,24977.42649,36140.62533,42.93635135,9.008243243,1.65
2
+ A20N,Airbus,A320-NEO,2014,2,yes,54,79000,66919,63644,43644,20000,0.794936709,0.551898734,0.243037975,122.4,35.1,3.59,0.02092207,0.906307767,10.06544118,7.519168898,0.956139347,0.786244088,0.872610625,0.075611461,0.597752236,6.437505219,255.7834783,1.771291826,0.179714609,0.7527,0.030225318,0.363162533,0.38526913,0.787080092,6.248203519,410,0.82,20882.78822,37618.41516,34.13434783,11.63652174,1.65
3
+ A21N,Airbus,A321-NEO,2016,2,yes,52,93500,77809,73982,48482,25500,0.780748663,0.513368984,0.267379679,122.4,35.27,3.95,0.025084952,0.906307767,10.16317729,8.080988052,0.973612104,0.776932809,0.873049689,0.077052255,0.626442739,6.502543201,255.7834783,1.771291826,0.179714609,0.7527,0.032774858,0.379556514,0.38526913,0.787080092,6.202228431,391.0104987,0.82,20882.78822,37618.41516,34.13434783,11.63652174,1.65
4
+ A306,Airbus,A300B4-600R,1983,2,no,0,170500,139777,130000,88565,46990,0.762463343,0.50568915,0.256774194,260,44.84,5.64,0.031641495,0.882947568,7.733175385,7.803846371,1.014875092,0.721487903,0.871400617,0.076160146,0.519478424,5.296827535,524.8533333,5.078666667,0.424,0.7527,0.030658862,0.364210924,0.537766667,0.683259556,5.336387723,410,0.82,20882.78822,37618.41516,31.52666667,4.933333333,1.65
5
+ A30B,Airbus,A300B4-200,1973,2,no,6,165000,135333,126000,88505,37495,0.751515152,0.536393939,0.215121212,260,44.83,5.64,0.031655613,0.882947568,7.729726538,8.774193537,1.036099444,0.711780698,0.86836702,0.07391802,0.548381029,4.318482734,466.2,4.8029,0.4,0.7527,0.034997635,0.321789379,0.54535,0.674344,4.93205278,390,0.82,20882.78822,37618.41516,26.47,4.6,1.65
6
+ A310,Airbus,A310-200,1982,2,no,8,138600,120682,111136,79186,31950,0.808080808,0.571479076,0.236601732,219,43.89,5.64,0.033026081,0.882947568,8.796036986,8.375562451,1.013898087,0.743809599,0.868659927,0.073287068,0.557549017,5.65582168,443.525,4.2895,0.3842,0.772,0.032940786,0.383837958,0.53568125,0.685649,5.373550789,410,0.84,21865.62405,37237.40235,26.3725,5.025,1.65
7
+ A313,Airbus,A310-300,1982,2,no,0,150000,124000,114500,78590,35910,0.753333333,0.51598,0.237353333,219,43.89,5.64,0.033026081,0.882947568,8.796036986,8.212622174,1.024582936,0.737571745,0.869516104,0.074562862,0.563576336,5.602548625,480.258,4.5104,0.3946,0.772,0.032853327,0.375278919,0.5369325,0.68421856,5.364267817,410,0.84,21865.62405,37237.40235,28.184,4.97,1.65
8
+ A318,Airbus,A318-100,2002,2,no,5,68000,56667,53667,38740,14927,0.779411765,0.570852941,0.208558824,122.4,34.1,3.95,0.026835855,0.906307767,9.500081699,7.471444005,0.995441823,0.753958954,0.870956053,0.075008678,0.563947374,5.333478382,199.2533333,2.060666667,0.211333333,0.7527,0.030936248,0.340355901,0.532458333,0.689288889,6.031933509,410,0.82,20882.78822,37618.41516,25.43333333,5.166666667,1.65
9
+ A319,Airbus,A319-100,1995,2,no,6,73500,61857,57393,39776,17617,0.795918367,0.54047619,0.255442177,122.4,34.1,3.95,0.026835855,0.906307767,9.500081699,7.700920319,0.995030706,0.754823537,0.870775437,0.074774133,0.568723265,5.098135499,212.4783333,1.987166667,0.212,0.7527,0.031550436,0.328,0.521633125,0.70104451,5.849202578,410,0.82,20882.78822,37618.41516,25.33833333,5.6425,1.65
10
+ A320,Airbus,A320-200,1987,2,no,0,73500,64875,61200,41295,19905,0.823129252,0.561142857,0.261986395,122.4,34.1,3.95,0.026835855,0.906307767,9.500081699,8.395287612,1.006597506,0.749584382,0.868903458,0.073191605,0.59039895,5.259100576,224.638,2.1462,0.2239,0.7527,0.034652548,0.358,0.5218265,0.70084087,5.588929572,410,0.82,20882.78822,37618.41516,26.909,5.634,1.65
11
+ A321,Airbus,A321-100,1993,2,no,8,89000,74313,70313,46908,23405,0.803370787,0.52647191,0.276898876,122.4,34.15,3.95,0.02675733,0.906307767,9.527961601,8.631216449,1.023748365,0.740171309,0.869023229,0.074059188,0.606338494,4.98823425,269.3142857,2.690571429,0.246285714,0.7527,0.0358593,0.342780897,0.52832,0.693868454,5.741120348,391.0006562,0.82,20882.78822,37618.41516,31.16285714,5.348571429,1.65
12
+ A332,Airbus,A330-200,1992,2,no,52,233000,181333,168593,116874,51719,0.729613734,0.501459227,0.228154506,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,6.691783708,0.986539447,0.762475042,0.872047153,0.076050268,0.528141489,6.875896605,609.465,5.93725,0.4895,0.786475,0.02499242,0.37,0.535055625,0.68636059,5.728484511,410,0.86,22875.41229,36864.52979,34.20375,5.0525,1.65
13
+ A333,Airbus,A330-300,1992,2,no,52,233000,183526,171842,119965,51877,0.751072961,0.515587983,0.235484979,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,6.899510103,0.989985236,0.76102049,0.871552208,0.075532661,0.535352593,7.128484765,604.4625,5.839875,0.49225,0.786475,0.025831756,0.391045891,0.534117188,0.687423438,5.727838461,410,0.86,22875.41229,36864.52979,33.67251837,5.09375,1.65
14
+ A338,Airbus,A330-800,2018,2,no,,242000,186000,174769,132000,42769,0.719008264,0.545454545,0.173553719,374,64,5.64,0.015532031,0.866025375,10.95187166,6.212990529,0.958877916,0.780583541,0.873631599,0.077578309,0.530216374,8.328327417,655.6,4.956,0.482,0.786,0.022900369,0.400414909,0.44525,0.7634,6.246060604,414.5,0.86,22875.41229,36864.52979,45.4,9,1.65
15
+ A339,Airbus,A330-900,2017,2,no,,242000,191000,179667,133667,46000,0.747933884,0.55785124,0.190082645,374,64,5.64,0.015532031,0.866025375,10.95187166,6.46325095,0.96246813,0.779169206,0.873192286,0.076918011,0.539469135,8.110705591,655.6,4.956,0.482,0.786,0.023887738,0.399788387,0.44525,0.7634,6.232485988,414.5,0.86,22875.41229,36864.52979,45.4,9,1.65
16
+ A342,Airbus,A340-200,1991,4,no,1,257000,182000,170000,125242,44758,0.657587549,0.487322957,0.170264591,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,7.076588203,0.994839196,0.759754196,0.872370296,0.076725978,0.551202388,6.689573974,579.4666667,5.516,0.4824,0.786475,0.026833302,0.367,0.497575,0.724576,5.643739289,415,0.86,22875.41229,36864.52979,29.95,6.7,1.65
17
+ A343,Airbus,A340-300,1991,4,no,1,257000,189895,178579,125242,53337,0.677042802,0.487322957,0.189719844,361.6,60.3,5.64,0.017496597,0.868631486,10.05555863,7.383954096,1.000285382,0.7573768,0.871649368,0.076010212,0.561474717,6.610070249,579.4666667,5.516,0.4824,0.786475,0.028082741,0.372580342,0.497575,0.724576,5.663601105,415,0.86,22875.41229,36864.52979,29.95,6.7,1.65
18
+ A345,Airbus,A340-500,2002,4,no,1,372000,241875,226750,170370,56380,0.61827957,0.457983871,0.160295699,437.3,63.45,5.64,0.015802469,0.856267054,9.206271438,6.730844314,0.984937415,0.761952208,0.873638932,0.078182371,0.511999654,6.777298015,1036.4,8.786666667,0.92,0.796125,0.024513506,0.361959064,0.479375,0.74,5.668646964,414.5013123,0.86,22875.41229,36864.52979,36.17666667,7.5,1.65
19
+ A346,Airbus,A340-600,2001,4,no,1,368000,260800,246800,176364,70436,0.66576087,0.47925,0.18651087,437.3,63.45,5.64,0.015802469,0.856267054,9.206271438,7.056855481,0.990652069,0.759481269,0.872973519,0.077394212,0.523156024,6.815977225,1050.8,8.96,0.92,0.796125,0.025814567,0.37517065,0.479375,0.74,5.68183304,415,0.86,22875.41229,36864.52979,36.67,7.5,1.65
20
+ A359,Airbus,A350-900,2013,2,no,9,275000,206500,194550,142800,51750,0.711636364,0.533090909,0.178545455,445,64.75,5.96,0.016945054,0.848048064,9.421488764,6.140290359,0.962361567,0.791413177,0.873943906,0.078227432,0.493332851,8.125436058,758,5.638,0.582,0.82025,0.022496843,0.404691496,0.4450225,0.76353184,6.122466226,431.0006562,0.89,24441.49186,36319.05391,41.095,9.01,1.65
21
+ A35K,Airbus,A350-1000,2016,2,yes,2,316000,235500,222500,155000,67500,0.705696203,0.493670886,0.212025316,465,64.75,5.96,0.016945054,0.848048064,9.016263441,6.183084792,0.966883665,0.788899107,0.87362679,0.077787748,0.499564827,8.147693431,873.4,7.014,0.65,0.82025,0.022347631,0.399824282,0.46709,0.74925344,6.172981137,414.5,0.89,24441.49186,36319.05391,48.57,8.04,1.65
22
+ A388,Airbus,A380-800,2005,4,no,2,569000,391308,367000,270148,96852,0.643233743,0.483304042,0.159929701,845,79.8,7.142,0.016020051,0.866025375,7.536142012,6.132045576,0.966638255,0.794400187,0.875962464,0.081840299,0.446446426,7.498481785,1350.653333,10.56933333,1.072,0.82025,0.021624953,0.398677354,0.470199167,0.746999716,5.869080111,431.0006562,0.89,24441.49186,36319.05391,38.07666667,7.903333333,1.65
23
+ B37M,Boeing,B737 MAX 7,2018,2,yes,,80285,64977,61847,42606,19241,0.783620851,0.523547363,0.260073488,121.875,33.26,3.76,0.02556002,0.906307767,9.076739282,7.585063721,0.975506932,0.778868312,0.872091922,0.075686978,0.572742665,6.295944315,247.6,2.0025,0.189,0.763285024,0.030537405,0.379940115,0.458445,0.75520576,6.283950827,410,0.82,20882.78822,37618.41516,40.14,8.42,1.65
24
+ B38M,Boeing,B737 MAX 8/8-200,2016,2,yes,,82644,68552,65196,43831.6505,21364.3495,0.798025265,0.545375345,0.25264992,121.875,33.26,3.76,0.02556002,0.906307767,9.076739282,7.869374698,0.97906074,0.77729995,0.871570728,0.075098953,0.581003295,6.209094863,247.6,2.0025,0.189,0.763285024,0.031631133,0.382601025,0.458445,0.75520576,6.256185757,410,0.82,20882.78822,37618.41516,40.14,8.42,1.65
25
+ B39M,Boeing,B737 MAX 9,2017,2,yes,,88314,71864,68507,44735.68,23771.32,0.803802342,0.567373236,0.236429105,121.875,33.26,3.76,0.02556002,0.906307767,9.076739282,8.05844544,0.994198601,0.76872365,0.87201018,0.076256786,0.598926212,6.239926908,247.6,2.0025,0.189,0.763285024,0.033089092,0.39018692,0.458445,0.75520576,6.236986266,410,0.82,20882.78822,37618.41516,40.14,8.42,1.65
26
+ B3XM,Boeing,B737 MAX 10,2018,2,yes,,89765,74087,70730,46120,24610,0.787946304,0.513785997,0.274160307,121.875,33.26,3.76,0.02556002,0.906307767,9.076739282,8.179,0.995847683,0.767985398,0.871784191,0.076029992,0.606768804,6.187944799,247.6,2.0025,0.189,0.763285024,0.033556498,0.39018692,0.458445,0.75520576,6.237935869,410,0.82,20882.78822,37618.41516,40.14,8.42,1.65
27
+ B712,Boeing,B717-200,1998,2,no,HGW,54884,47970,44452,30833,13619,0.83058815,0.566121274,0.264466876,92.75,28.4,3.4,0.028664947,0.906307767,8.69606469,8.722339782,1.035797278,0.684750239,0.867306999,0.07298002,0.593541399,4.555779693,179.025,1.8155,0.201,0.7,0.037603724,0.350583851,0.545179375,0.67454851,5.998301413,370.9973753,0.82,20882.78822,37618.41516,30.4725,4.6075,1.65
28
+ B722,Boeing,727-200,1967,2,no,0,83820,71600,64350,45062,19288,0.758291577,0.529587211,0.228704366,157.9,32.92,3.76,0.026090718,0.848048064,6.863371754,7.901954881,1.057801221,0.686729187,0.86502235,0.07205027,0.499213735,3.689723246,203.75625,3.4058625,0.41835,0.77,0.03284992,0.286,0.626595938,0.556514178,4.631875613,420,0.9,24977.42649,36140.62533,16.539375,1.02875,1.65
29
+ B732,Boeing,B737-200,1967,2,no,5,52390,46131,41731,28243,13488,0.822523382,0.517751479,0.304771903,99,28.35,3.76,0.035180302,0.906307767,8.118409091,8.406144658,1.040134437,0.677684157,0.866573271,0.072538149,0.55647915,3.340772824,137.0738462,2.302092308,0.280215385,0.7,0.035879744,0.26934358,0.626585,0.556532787,4.655496203,370,0.82,20882.78822,37618.41516,16.59230769,1.029230769,1.65
30
+ B733,Boeing,B737-300,1984,2,no,3,61236,51982,48081,32616,15465,0.788882357,0.537330982,0.251551375,102,28.9,3.76,0.033854001,0.906307767,8.188333333,9.200303497,1.023913881,0.715234635,0.867001262,0.072169037,0.577795554,4.096979487,187.3,2.014,0.234,0.728575,0.038442568,0.322802793,0.533975,0.687584,5.504887402,390,0.82,20882.78822,37618.41516,23.335,5.1,1.65
31
+ B734,Boeing,B737-400,1988,2,no,6,68039,55792,52465,33416,19049,0.779993827,0.494466409,0.285527418,102.5,28.9,3.76,0.033854001,0.906307767,8.148390244,8.898192984,1.032441891,0.710077823,0.868386618,0.073800023,0.579192045,4.13010135,190.1266667,2.054666667,0.236,0.728575,0.037719014,0.318517837,0.533975,0.687584,5.587042978,370,0.82,20882.78822,37618.41516,23.63333333,5.1,1.65
32
+ B735,Boeing,B737-500,1989,2,no,3,60555,49895,46538,31312,15226,0.76779787,0.517083643,0.250714227,103.7,28.9,3.76,0.033854001,0.906307767,8.054098361,8.33451025,1.009337993,0.721164574,0.869653399,0.074113442,0.550008118,4.05463838,187.3,2.014,0.234,0.728575,0.034586216,0.301940508,0.533975,0.687584,5.694014409,370,0.82,20882.78822,37618.41516,23.335,5.1,1.65
33
+ B736,Boeing,B737-600,1997,2,no,3,65544,54827,51634,36378,15256,0.792383742,0.555016477,0.237367265,124.6,34.3,3.76,0.024033523,0.906307767,9.442134831,7.424658581,0.99420637,0.75916017,0.871081977,0.0751116,0.56354659,5.269028449,189.9709091,1.880909091,0.197454545,0.757525,0.030955608,0.335074122,0.527356818,0.69491914,5.900578607,410,0.82,20882.78822,37618.41516,23.16272727,5.390909091,1.65
34
+ B737,Boeing,B737-700,1997,2,no,3,70080,58241,54839,37648,17191,0.787699772,0.537214612,0.25048516,124.6,34.3,3.76,0.024033523,0.906307767,9.442134831,7.610623423,0.997092665,0.757625964,0.870727093,0.074802808,0.567363946,5.021956077,214.1278261,2.175826087,0.209652174,0.757525,0.031490511,0.323004185,0.530809783,0.691125898,5.90211253,410,0.82,20882.78822,37618.41516,25.6326087,5.239130435,1.65
35
+ B738,Boeing,B737-800,1997,2,no,3,79016,65665,62037,41413,20624,0.780715298,0.524109041,0.256606257,124.6,34.3,3.76,0.024033523,0.906307767,9.442134831,8.181516743,1.00523362,0.753742328,0.86950188,0.073769983,0.581267312,4.983308444,233.3695652,2.432434783,0.218695652,0.757525,0.033462541,0.332681166,0.533381522,0.688252824,5.90333496,410,0.82,20882.78822,37618.41516,27.74869565,5.126086957,1.65
36
+ B739,Boeing,B737-900ER,2006,2,no,2,85139,68856,65227,44677,20550,0.795416906,0.524741893,0.270675014,124.6,34.32,3.76,0.024005521,0.906307767,9.453149278,7.92834468,1.013309441,0.748758647,0.870784513,0.075460257,0.585041361,5.003070394,233.3695652,2.432434783,0.218695652,0.757525,0.032950004,0.326763054,0.533381522,0.688252824,6.102506148,410,0.82,20882.78822,37618.41516,27.74869565,5.126086957,1.65
37
+ B742,Boeing,B747-200B,1971,4,no,4,371900,269660,238780,173032,65748,0.642054316,0.473164829,0.168889486,511,59.64,6.5,0.023756444,0.793353296,6.960723288,7.019056156,1.038495569,0.69161267,0.867976442,0.073665148,0.45831945,5.337545419,882.3333333,9.1104,0.89784,0.81,0.025930712,0.338481202,0.541406667,0.679024462,4.612144185,450,0.9,24977.42649,36140.62533,24.73333333,4.773333333,1.65
38
+ B743,Boeing,B747-300,1980,4,no,0,377800,258060,243363,176533,66830,0.642218105,0.462731604,0.179486501,511,59.64,6.5,0.023756444,0.782608111,6.960723288,6.881751548,1.041627795,0.68253174,0.867287749,0.073197605,0.452943745,5.374951837,898.8126316,9.187157895,0.909452632,0.81,0.025344181,0.337122346,0.541757895,0.678611479,5.0506812,450,0.9,24977.42649,36140.62533,25.81736842,4.757894737,1.65
39
+ B744,Boeing,B747-400,1985,4,no,5,396894,275603,244184,179174,65010,0.620001814,0.450387257,0.169614557,547,64.44,6.5,0.020349121,0.793353296,7.591432541,6.688263979,1.029069691,0.698340832,0.868929586,0.074170378,0.464992693,6.027234116,1021.254118,9.786509804,0.822909804,0.81,0.024511914,0.355811516,0.537298284,0.683798564,5.296210572,450,0.92,26070.46918,35788.4714,30.57901961,4.953921569,1.65
40
+ B748,Boeing,B747-8F,2010,4,no,1,442253,345638,329308,197131,132177,0.743587946,0.445742595,0.297845351,594,68.4,6.5,0.018061113,0.793353296,7.876363636,6.248755182,0.997894651,0.732488325,0.872320594,0.076747175,0.457551278,7.386886339,1199.22,9.808,0.87,0.8299,0.022440249,0.395291631,0.46765875,0.74884564,5.888619001,421.0006562,0.9,24977.42649,36140.62533,42.975,8.015,1.65
41
+ B752,Boeing,B757-200,1982,2,no,4,113400,90890,83820,59740,24080,0.735890653,0.547619048,0.188271605,189,38.06,3.76,0.019519474,0.906307767,7.664357672,7.102482242,0.985678149,0.770287681,0.873576345,0.078107881,0.496548327,5.358463362,357.962,3.6404,0.3454,0.772,0.027960973,0.347178893,0.54209675,0.678212322,5.37738391,420,0.86,22875.41229,36864.52979,26.909,4.743,1.65
42
+ B753,Boeing,B757-300,1998,2,no,2,122470,101610,95260,64455,30805,0.777904793,0.527312811,0.250591982,189,38.06,3.76,0.019519474,0.906307767,7.664357672,7.593716886,1.005262025,0.759572707,0.87301803,0.077746352,0.522123205,5.260668861,357.962,3.6404,0.3454,0.772,0.030631737,0.355109179,0.54209675,0.678212322,5.884200369,430,0.86,22875.41229,36864.52979,26.909,4.743,1.65
43
+ B762,Boeing,B767-200ER,1984,2,no,6,179169,128820,116347,82285,34062,0.658227707,0.459772617,0.19845509,283.3,47.57,5.03,0.022361435,0.852640133,7.987662902,6.962665875,1.012922549,0.718636663,0.871373991,0.076077449,0.50014418,5.891145984,504.4066667,4.8587,0.407266667,0.772,0.027161252,0.367680713,0.537596042,0.683456066,5.407506184,430,0.86,22875.41229,36864.52979,30.22716667,4.940833333,1.65
44
+ B763,Boeing,B767-300,1995,2,no,2,158758,140614,129955,87856,42099,0.795544162,0.542139609,0.253404553,283.3,47.57,5.03,0.022361435,0.852640133,7.987662902,6.296852184,0.988567215,0.730450667,0.872804122,0.077119108,0.469638583,6.001519547,504.4066667,4.8587,0.407266667,0.772,0.02403592,0.353,0.537596042,0.683456066,5.537312075,431.0006562,0.86,22875.41229,36864.52979,30.22716667,4.940833333,1.65
45
+ B764,Boeing,B767-400ER,1999,2,no,1,204116,158757,149685,103510,46175,0.733333007,0.505335202,0.227997805,283.3,51.92,5.03,0.018771397,0.852640133,9.515306742,7.202171898,1.015950634,0.72271456,0.869996123,0.074730057,0.543871305,6.148190272,512.7957895,4.861157895,0.399794737,0.772,0.027844828,0.361414229,0.533975,0.687584,5.831334305,450,0.86,22875.41229,36864.52979,30.55605263,5.1,1.65
46
+ B772,Boeing,B777-200,1994,2,no,6,286900,203922.6667,192735,135692.6667,57042.33333,0.679783897,0.47263855,0.207145347,427.8,60.93,6.2,0.020708613,0.851726902,8.678038569,6.461822217,0.987569999,0.767369197,0.873764241,0.078399473,0.495253823,6.781321287,781.2292857,6.885785714,0.5735,0.8106,0.024180523,0.367,0.490319375,0.730970427,5.71612393,431.0006562,0.89,24441.49186,36319.05391,37.69964286,7.018928571,1.65
47
+ B773,Boeing,B777-300,1997,2,no,4,299370,237680,224530,159300,65230,0.750008351,0.533019341,0.21698901,427.8,60.93,6.2,0.020708613,0.851726902,8.678038569,7.06941142,1.002684301,0.759514113,0.872187708,0.076713703,0.51471757,6.864081938,744.7577778,6.869444444,0.561,0.8106,0.026557394,0.393961604,0.507218472,0.715573354,5.802646414,431.0006562,0.89,24441.49186,36319.05391,36.31444444,6.276111111,1.65
48
+ B77L,Boeing,B777-200LR,2005,2,no,1,347450,223168,209106,145150,63956,0.601833357,0.417757951,0.184075407,427.8,64.8,6.2,0.018308947,0.851726902,9.81542777,6.503715019,0.985544142,0.772137202,0.873492551,0.077988704,0.519417863,7.585117015,1006.5,9.01,0.75,0.8106,0.02389309,0.386398306,0.4859725,0.73464544,5.820183704,431.0006562,0.89,24441.49186,36319.05391,40.985,7.21,1.65
49
+ B77W,Boeing,B777-300ER,2002,2,no,1,351530,251290,237683,167829,69854,0.676110147,0.4773988,0.198711348,427.8,64.8,6.2,0.018308947,0.851726902,9.81542777,7.159075436,0.997868415,0.76653828,0.872013573,0.076372489,0.541566421,7.183146325,1027.8,9.38,0.76,0.8106,0.026449404,0.388746118,0.48893,0.73215776,5.59316908,431.0006562,0.89,24441.49186,36319.05391,42.24,7.08,1.65
50
+ B788,Boeing,B787-8,2009,2,no,1,227930,172365,161025,120000,41025,0.706466898,0.516417321,0.190049577,377,60.12,5.77,0.018422293,0.846193133,9.587306101,6.382579903,0.968083144,0.783757191,0.873178246,0.077083447,0.508399177,8.025698576,633.0491892,4.822891892,0.453081081,0.815425,0.023810747,0.411614512,0.445062466,0.763508702,6.062664522,431.0006562,0.9,24977.42649,36140.62533,42.93635135,9.008243243,1.65
51
+ B789,Boeing,B787-9,2013,2,no,1,254011,192776,181436,129000,52436,0.714287964,0.507261497,0.207026467,377,60.12,5.77,0.018422293,0.846193133,9.587306101,6.477888019,0.968258434,0.783684365,0.873156144,0.077053182,0.508801657,8.027179776,633.0491892,4.822891892,0.453081081,0.815425,0.023856026,0.412147079,0.445062466,0.763508702,6.129298314,431.0334646,0.9,24977.42649,36140.62533,42.93635135,9.008243243,1.65
51
52
  B78X,Boeing,B787-10,2017,2,no,,254011,201848,192776,135500,57276,0.758927763,0.533441465,0.225486298,377,60.12,5.77,0.018422293,0.846193133,9.587306101,6.607025807,0.970886833,0.78231171,0.872881338,0.076703182,0.512787007,7.704002339,688.56,5.332568421,0.474731579,0.815425,0.024318041,0.400356131,0.448435,0.76152064,6.188500149,411,0.9,24977.42649,36140.62533,46.44,8.86,1.65
52
- BCS1,Airbus,A220-100,2013,2,yes,,60781,51029,48987,35222,13765,0.805959099,0.579490301,0.226468798,115,32.5,3.505,0.023261586,0.898794024,9.184782609,7.341279884,0.960595004,0.776436689,0.872616965,0.075848076,0.575972879,6.185990497,200.8,1.438,0.148,0.753623188,0.030392966,0.364818967,0.3931525,0.78523744,6.230436775,410,0.82,20882.78822,37618.41516,36.1,11.29,1.65
53
- BCS3,Airbus,A220-200,2015,2,yes,,70896,61008,58060,37082,20978,0.818946062,0.523047845,0.295898217,115,32.5,3.505,0.023261586,0.898794024,9.184782609,7.724262518,0.963925925,0.775119863,0.872128778,0.075195994,0.585019236,6.055724131,200.8,1.438,0.148,0.753623188,0.031581624,0.365365479,0.3931525,0.78523744,6.261141077,410,0.82,20882.78822,37618.41516,36.1,11.29,1.65
54
- CRJ9,Bombardier,CRJ-9,1999,2,yes,0,38329,34065,32092,21350,10742,0.837277257,0.557019489,0.280257768,69,22.62,2.69,0.028284555,0.898794024,7.415426087,7.940977915,1.011391814,0.736978861,0.869436756,0.073972647,0.549943744,4.185393752,120.9433333,1.326366667,0.129766667,0.7527,0.034336494,0.304067923,0.5332925,0.68835296,5.960740978,410,0.85,22367.12483,37049.99171,23.44833333,5.13,1.65
53
+ BCS1,Airbus,A220-100,2013,2,yes,,60781,52844,50802,35702,15100,0.805959099,0.579490301,0.226468798,115,32.5,3.505,0.023261586,0.898794024,9.184782609,7.341279884,0.960595004,0.776436689,0.872616965,0.075848076,0.575972879,6.185990497,200.8,1.438,0.148,0.753623188,0.030392966,0.364818967,0.3931525,0.78523744,6.230436775,410,0.82,20882.78822,37618.41516,36.1,11.29,1.65
54
+ BCS3,Airbus,A220-200,2015,2,yes,,70896,61008,58060,39360,18700,0.818946062,0.523047845,0.295898217,115,32.5,3.505,0.023261586,0.898794024,9.184782609,7.724262518,0.963925925,0.775119863,0.872128778,0.075195994,0.585019236,6.055724131,200.8,1.438,0.148,0.753623188,0.031581624,0.365365479,0.3931525,0.78523744,6.261141077,410,0.82,20882.78822,37618.41516,36.1,11.29,1.65
55
+ CRJ9,Bombardier,CRJ-9,1999,2,yes,0,38329,33345,32092,21845,10247,0.837277257,0.557019489,0.280257768,69,22.62,2.69,0.028284555,0.898794024,7.415426087,7.940977915,1.011391814,0.736978861,0.869436756,0.073972647,0.549943744,4.185393752,120.9433333,1.326366667,0.129766667,0.7527,0.034336494,0.304067923,0.5332925,0.68835296,5.960740978,410,0.85,22367.12483,37049.99171,23.44833333,5.13,1.65
55
56
  DC93,Boeing,DC-9-32,1967,2,no,0,48988,44906,39463,25789,13674,0.805564628,0.526435045,0.279129583,93,28.44,3.35,0.027749836,0.913545439,8.697135484,7.952009382,1.029517002,0.718504638,0.868319059,0.073625769,0.565164551,3.47919413,130.48,2.134,0.2732,0.7334,0.034308395,0.2565,0.626643333,0.556433529,4.641949038,370,0.84,21865.62405,37237.40235,16.31,1.026666667,1.65
56
- E135,Embraer,EMB-135LR,1995,2,no,0,20000,18500,15999,11500,4499,0.79995,0.575,0.22495,51.18,20.04,2.25,0.025211553,0.923879516,7.846846424,8.018356069,1.012322431,0.708748302,0.869299248,0.073869708,0.562009635,3.431268437,66.1,0.7178,0.0898,0.70445,0.036968374,0.27276541,0.5405725,0.68000224,5.917521821,370,0.78,18996.45555,38407.92089,17.22,4.81,1.65
57
+ E135,Embraer,EMB-135LR,1995,2,no,0,20000,18500,16000,11501,4499,0.79995,0.575,0.22495,51.18,20.04,2.25,0.025211553,0.923879516,7.846846424,8.018356069,1.012322431,0.708748302,0.869299248,0.073869708,0.562009635,3.431268437,66.1,0.7178,0.0898,0.70445,0.036968374,0.27276541,0.5405725,0.68000224,5.917521821,370,0.78,18996.45555,38407.92089,17.22,4.81,1.65
57
58
  E145,Embraer,EMB-145LR,1995,2,no,0,22000,19300,17900,12114,5786,0.813636364,0.550636364,0.263,51.18,20.04,2.25,0.025211553,0.923879516,7.846846424,8.379769784,1.017505025,0.706378777,0.868482629,0.073274618,0.569734872,3.597812118,74.32,0.8244,0.095,0.70445,0.038245748,0.292084412,0.54262,0.67759456,5.917909369,370,0.78,18996.45555,38407.92089,19.06,4.72,1.65
58
- E170,Embraer,EMB-170LR,2002,2,yes,0,37200,32800,29800,20700,9100,0.801075269,0.556451613,0.244623656,72.72,25.3,3.15,0.031003453,0.923879516,8.802117712,8.103,1.005217924,0.744171061,0.869283909,0.073532873,0.598468911,4.066065719,120.114,1.31516,0.12908,0.7334,0.035430036,0.283999174,0.5332925,0.68835296,6.056766771,410,0.82,20882.78822,37618.41516,23.314,5.13,1.65
59
+ E170,Embraer,EMB-170LR,2002,2,yes,0,37200,32800,29600,20500,9100,0.801075269,0.556451613,0.244623656,72.72,25.3,3.15,0.031003453,0.923879516,8.802117712,8.103,1.005217924,0.744171061,0.869283909,0.073532873,0.598468911,4.066065719,120.114,1.31516,0.12908,0.7334,0.035430036,0.283999174,0.5332925,0.68835296,6.056766771,410,0.82,20882.78822,37618.41516,23.314,5.13,1.65
59
60
  E190,Embraer,EMB-190STD,2004,2,yes,,47790,43000,40800,27900,12900,0.853735091,0.583804143,0.269930948,86,27.71,2.74,0.019555011,0.923879516,8.928419767,7.898386381,0.99968373,0.769679725,0.870246567,0.074352897,0.594043088,4.6941615,167.4,1.74,0.176,0.757525,0.033846101,0.310223835,0.5342025,0.68732704,6.07089511,410,0.82,20882.78822,37618.41516,27.3,5.09,1.65
60
61
  E195,Embraer,EMB-195STD,2004,2,yes,0,48790,45000,42500,28700,13800,0.871080139,0.588235294,0.282844845,92.53,27.73,3,0.023408456,0.923879516,8.310309089,8.12816248,1.003277121,0.765946572,0.870141166,0.074388188,0.583581105,4.471913613,161.9811765,1.671294118,0.172823529,0.757525,0.034908937,0.310281044,0.5342025,0.68732704,6.07089511,410,0.82,20882.78822,37618.41516,26.53529412,5.09,1.65
61
62
  E290,Embraer,E190-E2,2016,2,no,,56400,49050,46700,33000,13700,0.828014184,0.585106383,0.242907801,110,33.72,3,0.0158306,0.923879516,10.33671273,6.992079637,0.949032729,0.805612509,0.873781408,0.077556026,0.57787765,6.546016199,185.58,1.3,0.14,0.758,0.029180534,0.367869793,0.3861,0.786904,6.267767387,410,0.82,20882.78822,37618.41516,33.27,11.6,1.65
62
63
  E295,Embraer,E195-E2,2017,2,no,,61500,54000,51850,35750,16100,0.843089431,0.581300813,0.261788618,110,35.12,3,0.014593635,0.923879516,11.21285818,7.518186583,0.955695668,0.804622027,0.872687085,0.075726997,0.613335059,6.348908893,200.6,1.42,0.14,0.758,0.031226955,0.360286236,0.39156,0.78564064,6.281663673,410,0.82,20882.78822,37618.41516,35.76,11.36,1.65
63
- E75L,Embraer,E170-200 (long wing),2002,2,yes,,40370,34100,32000,21890,10110,0.542234332,0.542234332,0.25043349,83,25,3,0.0288,0.923879516,7.530120482,7.971,1.001508411,0.741368946,0.870818124,0.075084185,0.556390672,3.87871406,120.114,1.31516,0.12908,0.733,0.034519925,0.283998994,0.5332925,0.68835296,6.057293054,410,0.82,20882.78822,37618.41516,23.314,5.13,1.65
64
- E75S,Embraer,E170-200 (short wing),2002,2,yes,,40370,34100,32000,21890,10110,0.542234332,0.542234332,0.25043349,83,25,3,0.0288,0.923879516,7.530120482,7.845214774,0.999386883,0.742337704,0.871132376,0.075370291,0.552407435,3.91652483,120.114,1.31516,0.12908,0.733,0.033926186,0.283867353,0.5332925,0.68835296,6.057293054,410,0.82,20882.78822,37618.41516,23.314,5.13,1.65
65
- GLF5,Gulfstream,G-550,1995,2,no,0,41277,34155,23587,21909,1678,0.571432032,0.530779853,0.040652179,105.56,28.5,2.5,0.015389351,0.906307767,7.694676014,6.702319588,0.99471301,0.76525366,0.872752056,0.077203567,0.508157359,5.5011112,137.54,1.494,0.166,0.772,0.029344031,0.367,0.5578625,0.658856,5.849906518,510,0.885,24176.14834,36408.88368,24.95,4.05,1.65
64
+ E75L,Embraer,E170-200 (long wing),2002,2,yes,,40370,34100,32000,21800,10200,0.542234332,0.542234332,0.25043349,83,25,3,0.0288,0.923879516,7.530120482,7.971,1.001508411,0.741368946,0.870818124,0.075084185,0.556390672,3.87871406,120.114,1.31516,0.12908,0.733,0.034519925,0.283998994,0.5332925,0.68835296,6.057293054,410,0.82,20882.78822,37618.41516,23.314,5.13,1.65
65
+ E75S,Embraer,E170-200 (short wing),2002,2,yes,,40370,34100,32000,21800,10200,0.542234332,0.542234332,0.25043349,83,25,3,0.0288,0.923879516,7.530120482,7.845214774,0.999386883,0.742337704,0.871132376,0.075370291,0.552407435,3.91652483,120.114,1.31516,0.12908,0.733,0.033926186,0.283867353,0.5332925,0.68835296,6.057293054,410,0.82,20882.78822,37618.41516,23.314,5.13,1.65
66
+ GLF5,Gulfstream,G-550,1995,2,no,0,41277,34156,24721,21909,2812,0.571432032,0.530779853,0.040652179,105.56,28.5,2.5,0.015389351,0.906307767,7.694676014,6.702319588,0.99471301,0.76525366,0.872752056,0.077203567,0.508157359,5.5011112,137.54,1.494,0.166,0.772,0.029344031,0.367,0.5578625,0.658856,5.849906518,510,0.885,24176.14834,36408.88368,24.95,4.05,1.65
66
67
  MD82,Boeing,MD-82,1981,2,no,0,67812,58967,55338,35369,19969,0.816050257,0.521574353,0.294475904,112.3,32.85,3.35,0.020799307,0.923879516,9.60928317,8.955934197,1.034594007,0.714688042,0.866072122,0.0718649,0.612313936,3.987672179,185.48,2.621,0.2743,0.72,0.037613802,0.299388919,0.610813125,0.58259779,5.437458322,370,0.84,21865.62405,37237.40235,19.5075,1.7225,1.65
67
68
  MD83,Boeing,MD-83,1984,2,no,0,72575,63276,55338,36145,19193,0.762493972,0.498036514,0.264457458,112.3,32.85,3.35,0.020799307,0.923879516,9.60928317,8.85605389,1.046265541,0.708621624,0.866902498,0.073058432,0.62175399,3.897539841,193.04,2.708,0.2688,0.72,0.037907506,0.290478105,0.611325,0.581776,5.567055426,370,0.84,21865.62405,37237.40235,20.27,1.7,1.65
68
69
  RJ1H,BAESystems,RJ-100,1987,4,no,0,44225,40142,37421,25640,11781,0.846150367,0.579762578,0.26638779,77.3,26.34,3.5,0.035312994,0.965925819,8.975363519,9.769273679,1.023211827,0.681862045,0.868995494,0.074011851,0.636811428,3.247264845,124,1.4312,0.1812,0.65,0.042741457,0.274318931,0.533975,0.687584,5.677433606,350,0.734,16954.77401,39369.19067,13,5.1,1.65
@@ -25,6 +25,7 @@ A388,A388
25
25
  B37M,B37M
26
26
  B38M,B38M
27
27
  B39M,B39M
28
+ B3XM,B3XM
28
29
  B701,B752
29
30
  B712,B712
30
31
  B720,B752
@@ -44,6 +44,7 @@ def tau_cirrus(met: MetDataset) -> xr.DataArray:
44
44
  ----------
45
45
  met : MetDataset
46
46
  A MetDataset with the following variables:
47
+
47
48
  - "air_temperature"
48
49
  - "mass_fraction_of_cloud_ice_in_air", "specific_cloud_ice_water_content",
49
50
  or "ice_water_mixing_ratio"
@@ -21,8 +21,8 @@ from pycontrails.utils.types import ArrayOrFloat, ArrayScalarLike
21
21
 
22
22
  logger = logging.getLogger(__name__)
23
23
  _path_to_static = pathlib.Path(__file__).parent / "static"
24
- PLF_PATH = _path_to_static / "iata-passenger-load-factors-20241115.csv"
25
- CLF_PATH = _path_to_static / "iata-cargo-load-factors-20241115.csv"
24
+ PLF_PATH = _path_to_static / "iata-passenger-load-factors-20250221.csv"
25
+ CLF_PATH = _path_to_static / "iata-cargo-load-factors-20250221.csv"
26
26
 
27
27
 
28
28
  # -------------------
@@ -431,8 +431,9 @@ def aircraft_load_factor(
431
431
  float
432
432
  Passenger/cargo load factor [0 - 1], unitless
433
433
  """
434
- # If origin airport is provided, use regional load factor
435
- if origin_airport_icao is not None:
434
+ # If origin airport is provided, use regional load factor.
435
+ # Otherwise, do not allow empty string and `None` to pass
436
+ if origin_airport_icao:
436
437
  first_letter = origin_airport_icao[0]
437
438
  region = AIRPORT_TO_REGION.get(first_letter, "Global")
438
439
  else:
@@ -69,3 +69,6 @@ Date,Global,Africa,Asia Pacific,Europe,Latin America,Middle East,North America
69
69
  15/7/2024,0.444,0.4,0.48,0.496,0.338,0.458,0.382
70
70
  15/8/2024,0.44,0.378,0.466,0.501,0.359,0.445,0.387
71
71
  15/9/2024,0.456,0.392,0.485,0.525,0.368,0.474,0.389
72
+ 15/10/2024,0.473,0.401,0.493,0.555,0.411,0.48,0.411
73
+ 15/11/2024,0.49,0.425,0.5,0.576,0.396,0.494,0.438
74
+ 15/12/2024,0.473,0.415,0.491,0.567,0.335,0.473,0.421
@@ -69,3 +69,6 @@ Date,Global,Africa,Asia Pacific,Europe,Latin America,Middle East,North America
69
69
  15/7/2024,0.86,0.75,0.834,0.882,0.862,0.84,0.889
70
70
  15/8/2024,0.862,0.779,0.86,0.879,0.84,0.823,0.871
71
71
  15/9/2024,0.836,0.765,0.831,0.865,0.834,0.814,0.824
72
+ 15/10/2024,0.839,0.738,0.841,0.862,0.845,0.803,0.832
73
+ 15/11/2024,0.834,0.733,0.849,0.853,0.845,0.812,0.81
74
+ 15/12/2024,0.84,0.76,0.833,0.865,0.83,0.805,0.85
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: pycontrails
3
- Version: 0.54.7
3
+ Version: 0.54.8
4
4
  Summary: Python library for modeling aviation climate impacts
5
5
  Author-email: "Contrails.org" <py@contrails.org>
6
6
  License: Apache-2.0
@@ -111,6 +111,7 @@ Provides-Extra: zarr
111
111
  Requires-Dist: fsspec>=2022.7.1; extra == "zarr"
112
112
  Requires-Dist: gcsfs>=2022.7.1; extra == "zarr"
113
113
  Requires-Dist: zarr>=2.12; extra == "zarr"
114
+ Dynamic: license-file
114
115
 
115
116
  # pycontrails
116
117
 
@@ -1,27 +1,27 @@
1
- pycontrails-0.54.7.dist-info/RECORD,,
2
- pycontrails-0.54.7.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
- pycontrails-0.54.7.dist-info/WHEEL,sha256=VujM3ypTCyUW6hcTDdK2ej0ARVMxlU1Djlh_zWnDgqk,109
4
- pycontrails-0.54.7.dist-info/NOTICE,sha256=fiBPdjYibMpDzf8hqcn7TvAQ-yeK10q_Nqq24DnskYg,1962
5
- pycontrails-0.54.7.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
- pycontrails-0.54.7.dist-info/METADATA,sha256=DFXvJSrBL-pJrxfU5pLgCxGr0B4dCPNll7OmAZWjbuY,9109
7
- pycontrails/_version.py,sha256=xFXeQmKQBcVm0YCwIVk_9_pSpczqhMiPo8kIlvHU_lI,413
1
+ pycontrails-0.54.8.dist-info/RECORD,,
2
+ pycontrails-0.54.8.dist-info/WHEEL,sha256=KHOVnc2vWrx65VXrDDCaawSLNQgekLqYoXzctjltp_U,136
3
+ pycontrails-0.54.8.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
4
+ pycontrails-0.54.8.dist-info/METADATA,sha256=RmMykD8fNfp0FkT9-7ZQKcrfKNVtrfQYj9WKJGdRMqM,9131
5
+ pycontrails-0.54.8.dist-info/licenses/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
6
+ pycontrails-0.54.8.dist-info/licenses/NOTICE,sha256=fiBPdjYibMpDzf8hqcn7TvAQ-yeK10q_Nqq24DnskYg,1962
7
+ pycontrails/_version.py,sha256=toc4afFEmuid8E3AkMqVXqnNfmxWW94KE_GHaPTt9lg,513
8
8
  pycontrails/__init__.py,sha256=9ypSB2fKZlKghTvSrjWo6OHm5qfASwiTIvlMew3Olu4,2037
9
9
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pycontrails/core/vector.py,sha256=IO7Xq63JdxbjH4h7RMJkepOi7-E568ZuxM8DeYvtnL4,73240
10
+ pycontrails/core/vector.py,sha256=N-3VhPaUEyFSJWjplMKFcv9GLvEqAibKn1zqJWuNZQU,73601
11
11
  pycontrails/core/models.py,sha256=iuGy9pQU-OI-AqPQyROxshSn2LbLcKNjXQcMEZw2IzA,42340
12
12
  pycontrails/core/interpolation.py,sha256=wovjj3TAf3xonVxjarclpvZLyLq6N7wZQQXsI9hT3YA,25713
13
13
  pycontrails/core/fleet.py,sha256=0hi_N4R93St-7iD29SE0EnadpBEl_p9lSGtDwpWvGkk,16704
14
14
  pycontrails/core/flight.py,sha256=QZTGeZVnZ14UUWHSqgCSU49g_EGQZel-hzKwm_9dcFY,80653
15
15
  pycontrails/core/fuel.py,sha256=kJZ3P1lPm1L6rdPREM55XQ-VfJ_pt35cP4sO2Nnvmjs,4332
16
16
  pycontrails/core/polygon.py,sha256=EmfHPj0e58whsHvR-3YvDgMWkvMFgp_BgwaoG8IZ4n0,18044
17
- pycontrails/core/cache.py,sha256=XG_RCIemv1xatDBmaVyxnoYdi8gD2gkUvjfvRi9RsJA,28068
17
+ pycontrails/core/cache.py,sha256=IIyx726zN7JzNSKV0JJDksMI9OhCLdnJShmBVStRqzI,28154
18
18
  pycontrails/core/__init__.py,sha256=p0O09HxdeXU0X5Z3zrHMlTfXa92YumT3fJ8wJBI5ido,856
19
- pycontrails/core/flightplan.py,sha256=_7j4puAMiSe2aqHXcENR58c-N8crjUp4nbi3O2u7Adg,7335
20
- pycontrails/core/met.py,sha256=l2ORveZxCMGsV2Db74xbn_QIuXKMdh5WpFtCZcDtWzY,103734
19
+ pycontrails/core/flightplan.py,sha256=xgyYLi36OlNKtIFuOHaifcDM6XMBYTyMQlXAtfd-6Js,7519
20
+ pycontrails/core/met.py,sha256=4XQAJrKWBN0SZQSeBpMUnkLn87vYpn2VMiY3dQyFRIw,103992
21
21
  pycontrails/core/aircraft_performance.py,sha256=ww5YBZkCPiUxRZERI5bUmxBeiF6rIrS2AsZyv8mVjvE,27400
22
22
  pycontrails/core/airports.py,sha256=ubYo-WvxKPd_dUcADx6yew9Tqh1a4VJDgX7aFqLYwB8,6775
23
23
  pycontrails/core/met_var.py,sha256=lAbp3cko_rzMk_u0kq-F27sUXUxUKikUvCNycwp9ILY,12020
24
- pycontrails/core/rgi_cython.cpython-312-darwin.so,sha256=ogBtrQcslQLAdedx3kP5zpxDUBC2gdtYpp350XuznT0,312000
24
+ pycontrails/core/rgi_cython.cpython-312-darwin.so,sha256=AP8T3x3KQeHYvCU1tIdbBilOC6UFQT7hBKNt6_jKHTc,312000
25
25
  pycontrails/core/coordinates.py,sha256=0ySsHtqTon7GMbuwmmxMbI92j3ueMteJZh4xxNm5zto,5391
26
26
  pycontrails/datalib/goes.py,sha256=mCEuDYdt1GIBA-sbDq5LdC6ZRvWJ28uaaBTnsXE4syc,26555
27
27
  pycontrails/datalib/landsat.py,sha256=r6366rEF7fOA7mT5KySCPGJplgGE5LvBw5fMqk-U1oM,19697
@@ -45,7 +45,7 @@ pycontrails/datalib/_leo_utils/static/bq_roi_query.sql,sha256=xq6-tJyz0-bUwW0KjQ
45
45
  pycontrails/datalib/gfs/gfs.py,sha256=3tFiR7IObHcFmhGOdb-SJ7QQJSk6tF_6qkyi-pLrIdE,22393
46
46
  pycontrails/datalib/gfs/variables.py,sha256=4ALR4zhYW8tQVlNVHrd0CK8oRNSe_2OkW3ELeaImtAI,3135
47
47
  pycontrails/datalib/gfs/__init__.py,sha256=pXNjb9cJC6ngpuCnoHnmVZ2RHzbHZ0AlsyGvgcdcl2E,684
48
- pycontrails/datalib/spire/spire.py,sha256=jDNlkgytLw6pO1YMMFwcxRaeFLsuct8lk63XuWr0lqg,24391
48
+ pycontrails/datalib/spire/spire.py,sha256=h25BVgSr7E71Ox3-y9WgqFvp-54L08yzb2Ou-iMl7wM,24242
49
49
  pycontrails/datalib/spire/__init__.py,sha256=3-My8yQItS6PL0DqXgNaltLqvN6T7nbnNnLD-sy7kt4,186
50
50
  pycontrails/datalib/spire/exceptions.py,sha256=U0V_nZTLhxJwrzldvU9PdESx8-zLddRH3FmzkJyFyrI,1714
51
51
  pycontrails/ext/synthetic_flight.py,sha256=ByuJDfpuK5WaGMj41wflfzH6zwI1nejVcQXC4JoMvSI,16795
@@ -59,7 +59,7 @@ pycontrails/utils/temp.py,sha256=lGU0b_R8ze4yKlsOusHIIBaoNFBrmrB3vBjgHRlfcXk,110
59
59
  pycontrails/utils/json.py,sha256=oTiO8xh603esfBGaGVmA5eUzR0NhAqNpQCegMMgnSbg,5896
60
60
  pycontrails/utils/dependencies.py,sha256=ATP45xYdUbIyGFzgbOe5SbokMytvB84TcexUEFnEUZE,2559
61
61
  pycontrails/models/pcc.py,sha256=0Qdl4u8PmUEpNYd398glTChkbTwsh83wYPt0Bmi8qd8,11068
62
- pycontrails/models/tau_cirrus.py,sha256=0K7cdHBGaahuWDM0FG1HGqbvhkwyWKHMInwctkBWYbo,5777
62
+ pycontrails/models/tau_cirrus.py,sha256=2Z4egt-QFprkyITRgtarA5alOTTQRQbjzgmSqE49_1g,5778
63
63
  pycontrails/models/__init__.py,sha256=dQTOLQb7RdUdUwslt5se__5y_ymbInBexQmNrmAeOdE,33
64
64
  pycontrails/models/issr.py,sha256=AYLYLHxtG8je5UG6x1zLV0ul89MJPqe5Xk0oWIyZ7b0,7378
65
65
  pycontrails/models/sac.py,sha256=lV1Or0AaLxuS1Zo5V8h5c1fkSKC-hKEgiFm7bmmusWw,15946
@@ -78,36 +78,36 @@ pycontrails/models/apcemm/inputs.py,sha256=88GylkiaymEW_XZeFxLsICI9wV6kl8wVYsuyT
78
78
  pycontrails/models/apcemm/utils.py,sha256=Ex6EqXin6yoJv2WWhBotSzhjzUlFNZm2MDgL4CvvX6E,17082
79
79
  pycontrails/models/apcemm/apcemm.py,sha256=rKvIaEsqtLbZ5h4o4EOY4Ge4-HdPn2X4M1lEUFDvr68,39975
80
80
  pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=uAZkc57OUvDMjgX6F5f6hgDh3Hgg1NbHWRUFSiv0DEI,6745
81
- pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=pYpJHi9dcuGjJASdZkbc49pIl2cQkVlRu80Gy3ZN5bA,36767
81
+ pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=ntNnhqo-lLvuQ6ntApDAtalZF6vmF8bK0PKUgmIye8c,38579
82
82
  pycontrails/models/humidity_scaling/__init__.py,sha256=nqsab_j9BCwMbTfCn4BjXMdhItlvNKkgUJ9-lb8RyIo,1119
83
83
  pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq,sha256=tfYhbafF9Z-gGCg6VQ1YBlOaK_01e65Dc6s9b-hQ6Zo,286375
84
84
  pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq,sha256=pShCvNUo0NYtAHhT9IBRuj38X9jejdlKfv-ZoOKmtKI,35943
85
- pycontrails/models/cocip/radiative_forcing.py,sha256=0zTXQXANYC3oIDyYEUHkaJxuwTe0-GojxBipEutWGxU,45031
85
+ pycontrails/models/cocip/radiative_forcing.py,sha256=A-k3V7Cb9tXvCpne3CsQpWIKDR9ZD4k8Jf3z6FfSkA0,44650
86
86
  pycontrails/models/cocip/wind_shear.py,sha256=m6ZlWjORfI-lI-D74Z_dIMOHnK4FDYmkb0S6vSpKTO8,3868
87
- pycontrails/models/cocip/cocip.py,sha256=LXopyTZsi7QjOJLmoI9uKXeyvt-JU1jkiAgm_G_askQ,103756
88
- pycontrails/models/cocip/output_formats.py,sha256=YXYfm32NsI3OkZn4htAOceMIDG31ulehUiMUCqu8hEQ,83713
87
+ pycontrails/models/cocip/cocip.py,sha256=uSorvK_AgAceTaeN8AqSiT4jqZO1lsqmewuLW2U02K4,104095
88
+ pycontrails/models/cocip/output_formats.py,sha256=cvuliaxhUBRZKBGkGkVOeV4-CN7IVAeZ2tIwXqHmUKw,83948
89
89
  pycontrails/models/cocip/__init__.py,sha256=CWrkNd6S3ZJq04pjTc2W22sVAJeJD3bJJRy_zLW8Kkc,962
90
90
  pycontrails/models/cocip/cocip_params.py,sha256=34_F7mXyJpSfek7iRhLVj6JaZeSoFmfcxx2WmmZN42Q,12534
91
91
  pycontrails/models/cocip/wake_vortex.py,sha256=YmOuv_oWJ9-fmTx9PVHr6gsXwex0qzLhvoZIJNB9rsk,14515
92
92
  pycontrails/models/cocip/cocip_uncertainty.py,sha256=XFWYIEVcmbOO9bP7BMdQXbCiQa0OSvfyr71CWtNON6E,12237
93
93
  pycontrails/models/cocip/radiative_heating.py,sha256=1U4SQWwogtyQ2u6J996kAHP0OfpZ3hH2_x4Cyt3Cy8U,18984
94
- pycontrails/models/cocip/contrail_properties.py,sha256=H0D2FQodX6jW3EmAxQNxGS8erOU0EW2MSAAOLB0LyQc,56202
94
+ pycontrails/models/cocip/contrail_properties.py,sha256=qdvFykCYBee17G1jDklzyoeYWDMzoOXCP-A6p9P_4sE,56053
95
95
  pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=edMHuWKzFN1P4EMWC2HRv5ZS_rUI7Q5Nw3LsYkrI0mE,18936
96
96
  pycontrails/models/ps_model/__init__.py,sha256=Fuum5Rq8ya8qkvbeq2wh6NDo-42RCRnK1Y-2syYy0Ck,553
97
- pycontrails/models/ps_model/ps_model.py,sha256=svv9_T5rYDhFRXdnod4xfia1HPQCb9vG9z3fHGjkABU,32262
98
- pycontrails/models/ps_model/ps_aircraft_params.py,sha256=pD1xpTBX6ML2Pie78kypNibzE5AkvqnAIaTyEMfciuY,13350
97
+ pycontrails/models/ps_model/ps_model.py,sha256=U_xWn1b5CxmatvRSuGegfI-ANXscYq2s_7IROyK1p84,32131
98
+ pycontrails/models/ps_model/ps_aircraft_params.py,sha256=I2nBkdnRo9YGMn-0k35ooYpzPNJkHyEH5cU3K-Cz8b0,13350
99
99
  pycontrails/models/ps_model/ps_operational_limits.py,sha256=XwMHO8yu8EZUWtxRgjRKwxmCrmKGoHO7Ob6nlfkrthI,16441
100
- pycontrails/models/ps_model/ps_grid.py,sha256=DTUXTxYIQ-6iquiCGtScOqkPvakz9F57DxUHQ3JmXIA,26071
101
- pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv,sha256=ksrpQTHkxSt1Va_R0rHdenEz6DlIs-Sfk1KFBzHKjhk,1038
102
- pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv,sha256=3eNhSwzut0gon04k2EYKKaXRvQSUlau3yBAbHS0EBao,25784
100
+ pycontrails/models/ps_model/ps_grid.py,sha256=rBsCEQkGY4cTf57spF0sqCfOo4oC4auE8ngS_mcl0VM,26207
101
+ pycontrails/models/ps_model/static/ps-aircraft-params-20250328.csv,sha256=LUYuWozE8fv4ZxuPhQIyVi0Kz4aYGyRjPcH5bSl4oNs,26185
102
+ pycontrails/models/ps_model/static/ps-synonym-list-20250328.csv,sha256=phtrf0m-UYQ7gjoKtIIwINzftTSNd-Bwe9CPen_Gvc8,1048
103
103
  pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=l4vBPrOKCJDz5Y1uMjmOGVyUcSWgfZtFWbjW968OPz8,5875
104
104
  pycontrails/models/cocipgrid/__init__.py,sha256=ar6bF_8Pusbb-myujz_q5ntFylQTNH8yiM8fxP7Zk30,262
105
- pycontrails/models/cocipgrid/cocip_grid.py,sha256=vMzkgPxUjef4vVPDHlCOCn7AJJozBWicuHhaqC208M8,91325
105
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=di6LDHCPqOzuTAK0xB_Re8NLLd8HK-c1sFSIW9MSKFk,91387
106
106
  pycontrails/physics/geo.py,sha256=5THIXgpaHBQdSYWLgtK4mV_8e1hWW9XeTsSHOShFMeA,36323
107
107
  pycontrails/physics/units.py,sha256=BC0e0l_pDeijqN179tXl8eX_Qpw8d17MVujBu1SV3IE,12293
108
108
  pycontrails/physics/constants.py,sha256=xWy7OkDOJNM6umq5dYiuzwG0aTEl5aECLxEpg3Z2SBQ,3202
109
109
  pycontrails/physics/__init__.py,sha256=_1eWbEy6evEWdfJCEkwDiSdpiDNzNWEPVqaPekHyhwU,44
110
110
  pycontrails/physics/thermo.py,sha256=sWGpKa12daSpqZYNgyXd8Ii5nfA_1Mm5mMbnM5GsW-E,12787
111
- pycontrails/physics/jet.py,sha256=RoHns04wi2EGYWQqYxnr6LUAV-CqsgLhXdrUCrBHAGk,30307
112
- pycontrails/physics/static/iata-cargo-load-factors-20241115.csv,sha256=lbTsVjgXqdB9FTuaYQsLnmfPZX0vWS6kuKmiqiQYa0c,3686
113
- pycontrails/physics/static/iata-passenger-load-factors-20241115.csv,sha256=uKtz6JNvgEhOlSRkWCLBeOTja6C3lI2Gkz2HmB-B0m4,3681
111
+ pycontrails/physics/jet.py,sha256=Je1d3vgbBEaVIAL1WZ3C-4p2f9fy9dWOjP5vFVsGGh8,30358
112
+ pycontrails/physics/static/iata-cargo-load-factors-20250221.csv,sha256=ixsnQk1DyGxHMo0pDy4aOoQIwgOyrGfhMRPumEwPMBc,3841
113
+ pycontrails/physics/static/iata-passenger-load-factors-20250221.csv,sha256=Q2olRIqUpbOaavvM5ikG8m1v1YQAN3KLNHeFDPvM53Q,3835
@@ -1,5 +1,6 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_11_0_arm64
5
+ Generator: delocate 0.13.0
5
6