pycontrails 0.53.1__cp310-cp310-macosx_11_0_arm64.whl → 0.54.1__cp310-cp310-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 (30) hide show
  1. pycontrails/_version.py +2 -2
  2. pycontrails/core/aircraft_performance.py +9 -3
  3. pycontrails/core/fleet.py +5 -22
  4. pycontrails/core/flight.py +12 -78
  5. pycontrails/core/met.py +30 -45
  6. pycontrails/core/rgi_cython.cpython-310-darwin.so +0 -0
  7. pycontrails/core/vector.py +13 -45
  8. pycontrails/datalib/_met_utils/metsource.py +1 -1
  9. pycontrails/datalib/ecmwf/__init__.py +23 -3
  10. pycontrails/datalib/ecmwf/arco_era5.py +119 -306
  11. pycontrails/datalib/ecmwf/era5.py +2 -1
  12. pycontrails/datalib/ecmwf/era5_model_level.py +115 -117
  13. pycontrails/datalib/ecmwf/hres_model_level.py +38 -74
  14. pycontrails/datalib/ecmwf/model_levels.py +400 -44
  15. pycontrails/datalib/ecmwf/variables.py +11 -0
  16. pycontrails/datalib/landsat.py +3 -2
  17. pycontrails/datalib/sentinel.py +0 -1
  18. pycontrails/ext/synthetic_flight.py +5 -1
  19. pycontrails/models/apcemm/apcemm.py +0 -1
  20. pycontrails/models/cocip/cocip.py +0 -1
  21. pycontrails/models/cocipgrid/cocip_grid.py +5 -3
  22. pycontrails/models/dry_advection.py +11 -3
  23. pycontrails/models/issr.py +2 -2
  24. pycontrails/models/ps_model/ps_model.py +39 -24
  25. {pycontrails-0.53.1.dist-info → pycontrails-0.54.1.dist-info}/METADATA +2 -4
  26. {pycontrails-0.53.1.dist-info → pycontrails-0.54.1.dist-info}/RECORD +30 -30
  27. {pycontrails-0.53.1.dist-info → pycontrails-0.54.1.dist-info}/WHEEL +1 -1
  28. {pycontrails-0.53.1.dist-info → pycontrails-0.54.1.dist-info}/LICENSE +0 -0
  29. {pycontrails-0.53.1.dist-info → pycontrails-0.54.1.dist-info}/NOTICE +0 -0
  30. {pycontrails-0.53.1.dist-info → pycontrails-0.54.1.dist-info}/top_level.txt +0 -0
@@ -20,6 +20,7 @@ from pycontrails.core.aircraft_performance import (
20
20
  AircraftPerformanceData,
21
21
  AircraftPerformanceParams,
22
22
  )
23
+ from pycontrails.core.fleet import Fleet
23
24
  from pycontrails.core.flight import Flight
24
25
  from pycontrails.core.met import MetDataset
25
26
  from pycontrails.core.met_var import AirTemperature, EastwardWind, NorthwardWind
@@ -115,6 +116,9 @@ class PSFlight(AircraftPerformance):
115
116
  raise KeyError(msg)
116
117
  return False
117
118
 
119
+ @overload
120
+ def eval(self, source: Fleet, **params: Any) -> Fleet: ...
121
+
118
122
  @overload
119
123
  def eval(self, source: Flight, **params: Any) -> Flight: ...
120
124
 
@@ -130,12 +134,20 @@ class PSFlight(AircraftPerformance):
130
134
  self.set_source_met()
131
135
 
132
136
  # Calculate true airspeed if not included on source
133
- true_airspeed = self.ensure_true_airspeed_on_source().copy()
134
- true_airspeed[true_airspeed == 0.0] = np.nan
137
+ self.ensure_true_airspeed_on_source()
138
+
139
+ if isinstance(self.source, Fleet):
140
+ fls = [self._eval_flight(fl) for fl in self.source.to_flight_list()]
141
+ self.source = Fleet.from_seq(fls, attrs=self.source.attrs, broadcast_numeric=False)
142
+ return self.source
143
+
144
+ self.source = self._eval_flight(self.source)
145
+ return self.source
135
146
 
147
+ def _eval_flight(self, fl: Flight) -> Flight:
136
148
  # Ensure aircraft type is available
137
149
  try:
138
- aircraft_type = self.source.attrs["aircraft_type"]
150
+ aircraft_type = fl.attrs["aircraft_type"]
139
151
  except KeyError as exc:
140
152
  msg = "`aircraft_type` required on flight attrs"
141
153
  raise KeyError(msg) from exc
@@ -148,29 +160,32 @@ class PSFlight(AircraftPerformance):
148
160
  raise KeyError(msg) from exc
149
161
 
150
162
  # Set flight attributes based on engine, if they aren't already defined
151
- self.source.attrs.setdefault("aircraft_performance_model", self.name)
152
- self.source.attrs.setdefault("aircraft_type_ps", atyp_ps)
153
- self.source.attrs.setdefault("n_engine", aircraft_params.n_engine)
154
-
155
- self.source.attrs.setdefault("wingspan", aircraft_params.wing_span)
156
- self.source.attrs.setdefault("max_mach", aircraft_params.max_mach_num)
157
- self.source.attrs.setdefault("max_altitude", units.ft_to_m(aircraft_params.fl_max * 100.0))
158
- self.source.attrs.setdefault("n_engine", aircraft_params.n_engine)
159
-
160
- amass_oew = self.source.attrs.get("amass_oew", aircraft_params.amass_oew)
161
- amass_mtow = self.source.attrs.get("amass_mtow", aircraft_params.amass_mtow)
162
- amass_mpl = self.source.attrs.get("amass_mpl", aircraft_params.amass_mpl)
163
- load_factor = self.source.attrs.get("load_factor", DEFAULT_LOAD_FACTOR)
164
- takeoff_mass = self.source.attrs.get("takeoff_mass")
165
- q_fuel = self.source.fuel.q_fuel
163
+ fl.attrs.setdefault("aircraft_performance_model", self.name)
164
+ fl.attrs.setdefault("aircraft_type_ps", atyp_ps)
165
+ fl.attrs.setdefault("n_engine", aircraft_params.n_engine)
166
+
167
+ fl.attrs.setdefault("wingspan", aircraft_params.wing_span)
168
+ fl.attrs.setdefault("max_mach", aircraft_params.max_mach_num)
169
+ fl.attrs.setdefault("max_altitude", units.ft_to_m(aircraft_params.fl_max * 100.0))
170
+ fl.attrs.setdefault("n_engine", aircraft_params.n_engine)
171
+
172
+ amass_oew = fl.attrs.get("amass_oew", aircraft_params.amass_oew)
173
+ amass_mtow = fl.attrs.get("amass_mtow", aircraft_params.amass_mtow)
174
+ amass_mpl = fl.attrs.get("amass_mpl", aircraft_params.amass_mpl)
175
+ load_factor = fl.attrs.get("load_factor", DEFAULT_LOAD_FACTOR)
176
+ takeoff_mass = fl.attrs.get("takeoff_mass")
177
+ q_fuel = fl.fuel.q_fuel
178
+
179
+ true_airspeed = fl["true_airspeed"] # attached in PSFlight.eval
180
+ true_airspeed = np.where(true_airspeed == 0.0, np.nan, true_airspeed)
166
181
 
167
182
  # Run the simulation
168
183
  aircraft_performance = self.simulate_fuel_and_performance(
169
184
  aircraft_type=atyp_ps,
170
- altitude_ft=self.source.altitude_ft,
171
- time=self.source["time"],
185
+ altitude_ft=fl.altitude_ft,
186
+ time=fl["time"],
172
187
  true_airspeed=true_airspeed,
173
- air_temperature=self.source["air_temperature"],
188
+ air_temperature=fl["air_temperature"],
174
189
  aircraft_mass=self.get_source_param("aircraft_mass", None),
175
190
  thrust=self.get_source_param("thrust", None),
176
191
  engine_efficiency=self.get_source_param("engine_efficiency", None),
@@ -194,13 +209,13 @@ class PSFlight(AircraftPerformance):
194
209
  "thrust",
195
210
  "rocd",
196
211
  ):
197
- self.source.setdefault(var, getattr(aircraft_performance, var))
212
+ fl.setdefault(var, getattr(aircraft_performance, var))
198
213
 
199
214
  self._cleanup_indices()
200
215
 
201
- self.source.attrs["total_fuel_burn"] = np.nansum(aircraft_performance.fuel_burn).item()
216
+ fl.attrs["total_fuel_burn"] = np.nansum(aircraft_performance.fuel_burn).item()
202
217
 
203
- return self.source
218
+ return fl
204
219
 
205
220
  @overrides
206
221
  def calculate_aircraft_performance(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycontrails
3
- Version: 0.53.1
3
+ Version: 0.54.1
4
4
  Summary: Python library for modeling aviation climate impacts
5
5
  Author-email: Breakthrough Energy <py@contrails.org>
6
6
  License: Apache-2.0
@@ -36,7 +36,6 @@ Requires-Dist: xarray>=2022.3
36
36
  Provides-Extra: complete
37
37
  Requires-Dist: pycontrails[ecmwf,gcp,gfs,jupyter,pyproj,sat,vis,zarr]; extra == "complete"
38
38
  Provides-Extra: dev
39
- Requires-Dist: black[jupyter]==24.8.0; extra == "dev"
40
39
  Requires-Dist: dep-license; extra == "dev"
41
40
  Requires-Dist: fastparquet>=0.8; extra == "dev"
42
41
  Requires-Dist: ipdb>=0.13; extra == "dev"
@@ -50,7 +49,7 @@ Requires-Dist: pyarrow>=5.0; extra == "dev"
50
49
  Requires-Dist: pytest>=8.2; extra == "dev"
51
50
  Requires-Dist: pytest-cov>=2.11; extra == "dev"
52
51
  Requires-Dist: requests>=2.25; extra == "dev"
53
- Requires-Dist: ruff==0.5.7; extra == "dev"
52
+ Requires-Dist: ruff==0.6.2; extra == "dev"
54
53
  Requires-Dist: setuptools; extra == "dev"
55
54
  Provides-Extra: docs
56
55
  Requires-Dist: doc8>=1.1; extra == "docs"
@@ -73,7 +72,6 @@ Requires-Dist: ecmwf-api-client>=1.6; extra == "ecmwf"
73
72
  Requires-Dist: netcdf4>=1.6.1; extra == "ecmwf"
74
73
  Requires-Dist: platformdirs>=3.0; extra == "ecmwf"
75
74
  Requires-Dist: requests>=2.25; extra == "ecmwf"
76
- Requires-Dist: lxml>=5.1.0; extra == "ecmwf"
77
75
  Provides-Extra: gcp
78
76
  Requires-Dist: google-cloud-storage>=2.1; extra == "gcp"
79
77
  Requires-Dist: platformdirs>=3.0; extra == "gcp"
@@ -1,43 +1,43 @@
1
- pycontrails-0.53.1.dist-info/RECORD,,
2
- pycontrails-0.53.1.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
- pycontrails-0.53.1.dist-info/WHEEL,sha256=75Qr8iQNVTP6TKgHkhg1liPCTLFI3Sohu_x1Dfc5cP8,109
4
- pycontrails-0.53.1.dist-info/NOTICE,sha256=gKI8DcN1WhiXB2SFRKDogcjONldGubTvBxiOYdC4CXU,1926
5
- pycontrails-0.53.1.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
- pycontrails-0.53.1.dist-info/METADATA,sha256=zCTO7zFOkvqI0JzbmFthdOuZs7Mdt5vl66qd3z7_x0Q,9173
7
- pycontrails/_version.py,sha256=vV71ixZB5LSC5mFURNjkJpZgkyEImidyN2Ez0p0YzQk,413
1
+ pycontrails-0.54.1.dist-info/RECORD,,
2
+ pycontrails-0.54.1.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
+ pycontrails-0.54.1.dist-info/WHEEL,sha256=1MPyPs9-MLQHZykOzeBqIZBROBGKPY6rzfLYqQeUsL8,109
4
+ pycontrails-0.54.1.dist-info/NOTICE,sha256=gKI8DcN1WhiXB2SFRKDogcjONldGubTvBxiOYdC4CXU,1926
5
+ pycontrails-0.54.1.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
+ pycontrails-0.54.1.dist-info/METADATA,sha256=nnFiKTAtEVMBl81BkYHnQ6HHanzpEFtonQgABT0R28E,9074
7
+ pycontrails/_version.py,sha256=k6EdzGzEntY3_PJAluVNA2mhyXh37neOah9DFH4IwDw,413
8
8
  pycontrails/__init__.py,sha256=O2T9kXCMhcELcMZz7HEnwiBhh4Gfcj-yG1HtrotOKHQ,2001
9
9
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pycontrails/core/vector.py,sha256=v_oO7if8SbNPMRci0TR8hLGSdAZ_fGZOVIT47e4hA58,71541
10
+ pycontrails/core/vector.py,sha256=6ESLZ_mzZiehzCrwyb1Ib5zLnp3Vf37wHDmnx-RKWZQ,70530
11
11
  pycontrails/core/models.py,sha256=mB3fhmBorFxt7uEhBFcuu0PIMWmBRB4KBRsPiFpPcvo,39282
12
12
  pycontrails/core/interpolation.py,sha256=yxVLO9lzNcNFeLwDyrQ7yfz4JEHLHTpgIRBrcOezsXg,25617
13
- pycontrails/core/fleet.py,sha256=wqYY_2xD9X-Og0_oxU8ZPqTHYDau9TOPLQcmEnB1kiQ,16140
14
- pycontrails/core/rgi_cython.cpython-310-darwin.so,sha256=aTGXiEaCRRsXye_EBTcRlxhzYEChryX8_LC8uyBzBBg,310832
15
- pycontrails/core/flight.py,sha256=_1K6tgwAJZwe18xmkOE7l0JQXzr6XgiqRQGzS6qHpxk,85159
13
+ pycontrails/core/fleet.py,sha256=u4Mw57KPePSycBRvhVSbhr-7hQ2rTiEWXNagXIQKOuY,15551
14
+ pycontrails/core/rgi_cython.cpython-310-darwin.so,sha256=QgjifAAiiwFAVjKVTz8lxmhXxLlg4dcsE05-MjEcOlQ,310832
15
+ pycontrails/core/flight.py,sha256=SbXO0w8je7v4YASoEHu4mGzLvyUyMJp720JniHJBz5c,82909
16
16
  pycontrails/core/fuel.py,sha256=kJZ3P1lPm1L6rdPREM55XQ-VfJ_pt35cP4sO2Nnvmjs,4332
17
17
  pycontrails/core/polygon.py,sha256=gosyZBX1XBKD2EcHycIZb7uM-xGs8rCfdpiSZlhc2Hc,18028
18
18
  pycontrails/core/cache.py,sha256=ly2Prq5CUxxc2pClZUXDeH-E8zkj3zZkLoKpdKUCyGs,27984
19
19
  pycontrails/core/__init__.py,sha256=x1z6x8w3sYmEqYcNWyWHuNkS9lPUPbHUoYJZs1K0q98,856
20
20
  pycontrails/core/flightplan.py,sha256=UO4vL087d5TZMlU984-FxfotGTxFbqK78w2fLDRiel4,7335
21
- pycontrails/core/met.py,sha256=0lGZqGu-_EnulU9Df05xo0I-IYX2MRQXvJ7PgCjU6p0,101342
22
- pycontrails/core/aircraft_performance.py,sha256=4KnLj0zK-mk8Oo3As1CXUkQWBQGMeDdrKi5TeOhOmUA,26107
21
+ pycontrails/core/met.py,sha256=vWUR2qNGvYrP4I9KKmk6rQoRkPV2mbvkNfxf2b7HV4U,100726
22
+ pycontrails/core/aircraft_performance.py,sha256=BsYMMK80lpVzSYS8sem4xgigLUpwlXglql2qztaHp0M,26325
23
23
  pycontrails/core/airports.py,sha256=aeyAXVkioIRomrP79UtNrxindL4f1DJyXFaojZCuBBw,6758
24
24
  pycontrails/core/met_var.py,sha256=GC5ijw4oGuIefmFOSz4vmxMEBj_SVs5Z75IMhDP56Cw,9183
25
25
  pycontrails/core/coordinates.py,sha256=0ySsHtqTon7GMbuwmmxMbI92j3ueMteJZh4xxNm5zto,5391
26
26
  pycontrails/datalib/goes.py,sha256=Muh_pqAXSqUlM4ssStUT9QmPxGPEKK21LHFroaqTq7k,26533
27
- pycontrails/datalib/landsat.py,sha256=WBOXcVgkoWmEM1jeUnOX1IKBOzzUbHWFU3lL3pJ8rfE,19682
27
+ pycontrails/datalib/landsat.py,sha256=wgQrc0sF-OqtCLbMINjes0hRFMUYJRYU0K6aV0gVJvg,19721
28
28
  pycontrails/datalib/spire.py,sha256=66SnMdA8KOS69USjKmqrJmTKPK08Ehih9tnlsCt-AJw,25331
29
29
  pycontrails/datalib/__init__.py,sha256=hW9NWdFPC3y_2vHMteQ7GgQdop3917MkDaf5ZhU2RBY,369
30
- pycontrails/datalib/sentinel.py,sha256=Rzsp5Hv6Rh3XVEfvFeofmClId4Eq2KhdYiEhIqFPE3U,17222
31
- pycontrails/datalib/_met_utils/metsource.py,sha256=1MLLnMDHlzXgRD-oeuZObgOoY8sGde81hluTm8oILPg,23965
32
- pycontrails/datalib/ecmwf/arco_era5.py,sha256=YuoPmPlP9TpZ6qhUPLbb30y3D3dTNDasTLZqP5MAWtw,18624
33
- pycontrails/datalib/ecmwf/era5.py,sha256=MvL8TgC8Wg-Q3pZSGVsvGRNL-HT_ndQT7CRdv2bGK7k,19016
34
- pycontrails/datalib/ecmwf/era5_model_level.py,sha256=8ewGjs0LU_sySPMCk0B1xcAeMGydDx31AOXao9vrbNE,19519
30
+ pycontrails/datalib/sentinel.py,sha256=pKB92KzKjvNOKnuxolXoz2ZnpXQ50iQ8g-EHDVMsnoA,17221
31
+ pycontrails/datalib/_met_utils/metsource.py,sha256=BGActBGApWb4yI97nBS9ui5j-PzIQotFMUtbMEBkvm8,23966
32
+ pycontrails/datalib/ecmwf/arco_era5.py,sha256=gezuXJo2gNT7WVK4xVwL8bPSxnPm8SGdj8g6THC4nXg,12348
33
+ pycontrails/datalib/ecmwf/era5.py,sha256=VV-t0WUCDSpNzAlerWNJMjtownjLX3MSzxRdVaTMn3M,19014
34
+ pycontrails/datalib/ecmwf/era5_model_level.py,sha256=Aey0juIzL2ZIAuPhFlsjTky9i45vKTT9gIeGxIrtIqs,19340
35
35
  pycontrails/datalib/ecmwf/hres.py,sha256=p_l0ytCEEWGam7G7aVynpLmH4H4LQNeVe0Ay7Tw6fp8,28240
36
- pycontrails/datalib/ecmwf/variables.py,sha256=jsyHxQ8YTjLA_28DrKvplFn7pOC4T6SrO4j9d2wpkic,9563
37
- pycontrails/datalib/ecmwf/hres_model_level.py,sha256=-xh6BIEvsyddqJjuV7tygV85H5J8k4gCUKjj2kdkJkY,19147
38
- pycontrails/datalib/ecmwf/__init__.py,sha256=kwgk9P4RYdLgOYcBLXX5rWz1T_yL7aO8nt2Eb1PB-eE,1455
36
+ pycontrails/datalib/ecmwf/variables.py,sha256=G6LlGTrlzdn819F-7kjEMXT-Ystp1gc79LOmQTZKrtQ,9865
37
+ pycontrails/datalib/ecmwf/hres_model_level.py,sha256=DiMw1cgbON_pu9ADjC0NC_itHSVa9n9zICLs1_iDq7c,17568
38
+ pycontrails/datalib/ecmwf/__init__.py,sha256=7OovwVTCo2DVH10NioUAc18evZkgb9b7Tn42S7tsJfU,2021
39
39
  pycontrails/datalib/ecmwf/common.py,sha256=PIkEdYEmlmwxQ7v4TenW_BaHX7mslnmdJW3iZYXb7Kg,3904
40
- pycontrails/datalib/ecmwf/model_levels.py,sha256=x83WJtjC6OnHcUsiNgvYIrVX4lY-pkXR-YlvUo9vYis,2712
40
+ pycontrails/datalib/ecmwf/model_levels.py,sha256=_kgpnogaS6MlfvTX9dB5ASTHFUlZuQ_DRb-VADwEa0k,16996
41
41
  pycontrails/datalib/ecmwf/ifs.py,sha256=2heema398PoEVCfiTZSBawN25PXAa_CpWm_pGLZ1GuY,10662
42
42
  pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv,sha256=PmvGLRzn6uuCKSwiasSuVcehvvmSaqP7cnLuN6hhCQQ,9788
43
43
  pycontrails/datalib/_leo_utils/vis.py,sha256=-fLcm1D5cP6lThVHovV3MJSiadWyTUAvYDMvr4drMU4,1802
@@ -46,7 +46,7 @@ pycontrails/datalib/_leo_utils/static/bq_roi_query.sql,sha256=xq6-tJyz0-bUwW0KjQ
46
46
  pycontrails/datalib/gfs/gfs.py,sha256=fmYFf7KOGr91sFFCfThG61A3vauNis8TGIAZItIOsrY,21649
47
47
  pycontrails/datalib/gfs/variables.py,sha256=KESzB1sTD3hsU8T-qZFD29oFM3l2ZcEtjAE_H7BHKIE,2861
48
48
  pycontrails/datalib/gfs/__init__.py,sha256=tWxgqmlW8Uo07J-3fBTXPrteatzTka9mSXomhWy3NVA,684
49
- pycontrails/ext/synthetic_flight.py,sha256=ypv_vUwpG-DyzD-uswk9MrJdj-k4NgsoJGJPvRkTFuo,16692
49
+ pycontrails/ext/synthetic_flight.py,sha256=0mgS6DuwY2ZTzQBswRqh_CsqkUV8K4vGH1leynoz05U,16757
50
50
  pycontrails/ext/cirium.py,sha256=DFPfRwLDwddpucAPRQhyT4bDGh0VvvoViMUd3pidam8,415
51
51
  pycontrails/ext/empirical_grid.py,sha256=WSC266aKsQLzCmtrZJCpLdDBykZ9rlFE9xEXmZjbgHo,4362
52
52
  pycontrails/ext/bada.py,sha256=j4Tj7oWSV_6UxYYa9_OjC1yTVzJMQdNRDI4aUQam_xM,1063
@@ -59,10 +59,10 @@ pycontrails/utils/dependencies.py,sha256=ATP45xYdUbIyGFzgbOe5SbokMytvB84TcexUEFn
59
59
  pycontrails/models/pcc.py,sha256=7hIlg_4-F6Ce7KVFyuIZBZY6uDr1h4KRMqBDlpGkzHE,11116
60
60
  pycontrails/models/tau_cirrus.py,sha256=yNYw4ukT68w2ATGFZr3p8AZxB6A2xufXQq7XP2U51y0,5026
61
61
  pycontrails/models/__init__.py,sha256=dQTOLQb7RdUdUwslt5se__5y_ymbInBexQmNrmAeOdE,33
62
- pycontrails/models/issr.py,sha256=k8yCKCtKLW0ECC0QIs-ID1zbr6vHJfeBm9Shq3oaA3U,7351
62
+ pycontrails/models/issr.py,sha256=Ts1rFr8XKqvq-hWTLzp285PDEt9J_kIR8V3XGCDqoxY,7340
63
63
  pycontrails/models/sac.py,sha256=lV1Or0AaLxuS1Zo5V8h5c1fkSKC-hKEgiFm7bmmusWw,15946
64
64
  pycontrails/models/accf.py,sha256=uPu8EB30Zbd3kd-3BuTnJkFNzpFqQ4u0HftFOJOX51s,12568
65
- pycontrails/models/dry_advection.py,sha256=jToOXFwv0V-ZbgpJBvUgTq-AiKP4El_uq1SWS6Oi6YY,16556
65
+ pycontrails/models/dry_advection.py,sha256=V3_oEYexGaeBnuOgmuj8a3FaxMVnMRvHIX_AVXXtWTg,16697
66
66
  pycontrails/models/pcr.py,sha256=ZzbEuTOuDdUmmL5T3Wk3HL-O8XzX3HMnn98WcPbASaU,5348
67
67
  pycontrails/models/emissions/__init__.py,sha256=N_EE768TNRDbdmXaxly2Pwun7UmVBTVPc4k89VBz5ys,478
68
68
  pycontrails/models/emissions/ffm2.py,sha256=h_bmB4pxxvC1ptqz5jB_rpf9QgaAv9J7Lu-6QpMiFtk,12032
@@ -74,7 +74,7 @@ pycontrails/models/emissions/static/default-engine-uids.csv,sha256=3blb0aqtM8YRs
74
74
  pycontrails/models/apcemm/__init__.py,sha256=M-hrJklbSgBckclm526MiBAhpKPLHgJbB58ArbJuGIk,175
75
75
  pycontrails/models/apcemm/inputs.py,sha256=88GylkiaymEW_XZeFxLsICI9wV6kl8wVYsuyTe8zIQ8,6585
76
76
  pycontrails/models/apcemm/utils.py,sha256=xlEVe0RKFXrqDr4V77mbb2HxY8IK42EX4K86tN1sLQs,17094
77
- pycontrails/models/apcemm/apcemm.py,sha256=PGuTSfeeA5kOzdTIeHV0svTht7walVoQ8foqf5iR8Ls,39937
77
+ pycontrails/models/apcemm/apcemm.py,sha256=Qo3CdpQ5JULUit7Oi2l2_Mu8JXcW0QOYfQOyaL66ldM,39936
78
78
  pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=uAZkc57OUvDMjgX6F5f6hgDh3Hgg1NbHWRUFSiv0DEI,6745
79
79
  pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=9619kSgNIBjkM8vFWcwny7t4mhg00pX0aKabrDGPn7I,36658
80
80
  pycontrails/models/humidity_scaling/__init__.py,sha256=nqsab_j9BCwMbTfCn4BjXMdhItlvNKkgUJ9-lb8RyIo,1119
@@ -82,7 +82,7 @@ pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq,s
82
82
  pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq,sha256=pShCvNUo0NYtAHhT9IBRuj38X9jejdlKfv-ZoOKmtKI,35943
83
83
  pycontrails/models/cocip/radiative_forcing.py,sha256=aA4ZHaVOsg0lro04LwwKaBf3mXljRAzbwQpDLaxk4qU,44873
84
84
  pycontrails/models/cocip/wind_shear.py,sha256=p8d3iaNzxPA3MoxFEM1ZDKt0aticoD6U9cv0QmbuBzs,3860
85
- pycontrails/models/cocip/cocip.py,sha256=zUvWQi77N13mx6nlIEbpvmEMPkdJoU2lsfK3iWovGXM,100089
85
+ pycontrails/models/cocip/cocip.py,sha256=G0VwIGxGxC2kAqrJNqoXXogqZoiO3PtOzikTE2IHaTE,100088
86
86
  pycontrails/models/cocip/output_formats.py,sha256=7P0j-UX4NNw56Gkd3ZsWDt0ctorJTZ4aPmUiibAh1FM,83641
87
87
  pycontrails/models/cocip/__init__.py,sha256=jd-9Tq20s1kwQBlxsYfZLi3hlT5MnWOY2XsPazq1fgE,962
88
88
  pycontrails/models/cocip/cocip_params.py,sha256=kKTeF1vVQr361XBR79q4mQHYI7UUQ6C5Ik5Z5pJDtag,12703
@@ -92,7 +92,7 @@ pycontrails/models/cocip/radiative_heating.py,sha256=YRpwfXgFnf89iuJiIM96q-jbdcM
92
92
  pycontrails/models/cocip/contrail_properties.py,sha256=tycCxKf8j9GvVYDQBPxjtp6xLll-r00C0XW-w1jGbMI,55594
93
93
  pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=kDxFpAIkcqqhGmwXoxv3_cSESj1Ur45GbLJF56IACJs,14573
94
94
  pycontrails/models/ps_model/__init__.py,sha256=5L-HympF1gJaZ6xiNkIQJygJhkDxM3-ejS_T2z-83hQ,495
95
- pycontrails/models/ps_model/ps_model.py,sha256=Cj79eJxHfq6205zNPxrwSs_Cx337MU3qvc7ds8sHAjA,33013
95
+ pycontrails/models/ps_model/ps_model.py,sha256=mhcSIq2ZGCScWpS2aVipvNKORv3QdspGme69Hm8LdvE,33411
96
96
  pycontrails/models/ps_model/ps_aircraft_params.py,sha256=-PfT2JC6RckVi_zTDVTqAMyaS-id6I2klUoXoEXreAc,13077
97
97
  pycontrails/models/ps_model/ps_operational_limits.py,sha256=_vFJiPqGuZJRzwuY10-z07-7eEyomnpxPm_Js1Cd5So,16832
98
98
  pycontrails/models/ps_model/ps_grid.py,sha256=AqZCEytWhrNbyujlJTufI4cxDonkPchGnrB3IvtRID4,18667
@@ -100,7 +100,7 @@ pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv,sha256=ksrpQTHkx
100
100
  pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv,sha256=3eNhSwzut0gon04k2EYKKaXRvQSUlau3yBAbHS0EBao,25784
101
101
  pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=l4vBPrOKCJDz5Y1uMjmOGVyUcSWgfZtFWbjW968OPz8,5875
102
102
  pycontrails/models/cocipgrid/__init__.py,sha256=ar6bF_8Pusbb-myujz_q5ntFylQTNH8yiM8fxP7Zk30,262
103
- pycontrails/models/cocipgrid/cocip_grid.py,sha256=B1-f3D62fg3OeLp7xnxANAsneg9JRiiRVMqs-REFaII,94347
103
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=JV-arscdjzvUWbtaOoDuo_87VlKIwID7Vbw-KwCurzI,94337
104
104
  pycontrails/physics/geo.py,sha256=9ZWIXyEEgrBNqsoeBBlYLTA-8GUTgyc-jgeVgchxXa8,30288
105
105
  pycontrails/physics/units.py,sha256=j-G5AC9eWIvv2MTOq9lUOoOQKFNJJuHzWLanHRji2tE,12272
106
106
  pycontrails/physics/constants.py,sha256=pHQQmccMUwuNnY4hFtm3L8G2rnUQcfJnroyQr8HAVeM,3146
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (73.0.1)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-macosx_11_0_arm64
5
5