pycontrails 0.53.1__cp313-cp313-win_amd64.whl → 0.54.1__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (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.cp313-win_amd64.pyd +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,41 +1,41 @@
1
1
  pycontrails/__init__.py,sha256=EpPulx2dBYpqZNsyh6HTwGGnFsvBVHBXabG5VInwSg4,2071
2
- pycontrails/_version.py,sha256=tXiAe0xejHkKjDqXRtA457tOi-aZOUem3-wngegE9hg,429
2
+ pycontrails/_version.py,sha256=kaABJJ_hrJ3Rb5M_97qLMqoUHLUT6GrGqx7ZrJmYsc8,429
3
3
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  pycontrails/core/__init__.py,sha256=X0DX2FGboPN_svwN2xiBzoPpHhDtg0oKFjXQfmCqMWU,886
5
- pycontrails/core/aircraft_performance.py,sha256=osV68kKLpvnzBX8fqZcBefbKoYqTxhAf2EWLRdTA7Ec,26748
5
+ pycontrails/core/aircraft_performance.py,sha256=NkwdmV4R5u0RpVyldWDup1oanicStd3xxWYUdlRJbp4,26972
6
6
  pycontrails/core/airports.py,sha256=nGKXN3jOtzsDCaJZVFNO3e3w-U3lqMTz5Ww5jALiRJY,6984
7
7
  pycontrails/core/cache.py,sha256=9BctyrnZzBJWkLI1Y2KV8K6NIL2WNfXgd5eaL9k9IU8,28865
8
8
  pycontrails/core/coordinates.py,sha256=J5qjGuXgbLUw_U9_qREdgOaHl0ngK6Hbbjj3uw7FwNE,5565
9
- pycontrails/core/fleet.py,sha256=vB1XHcajtTLlelY_u72SAYUCt3h2smzqZIpeLFJaW0M,16610
10
- pycontrails/core/flight.py,sha256=kPXpi8vrHbZbXqr2LBNmS5A9yDeU6JudPRr-pxEtHx4,87471
9
+ pycontrails/core/fleet.py,sha256=MqVsuakmBQbG7_cat1-hogfMrsdfUvcbBm_84CF3b8o,16004
10
+ pycontrails/core/flight.py,sha256=2tgjRMdRYdYwnCl5NJjLPbPCZxORn_r5Nu6FLVbVNic,85155
11
11
  pycontrails/core/flightplan.py,sha256=0ozSt3jqa62PZBjXnEDQLbZO1YORg3r2552RpRtkKZA,7555
12
12
  pycontrails/core/fuel.py,sha256=06YUDhvC8Rx6KbUXRB9qLTsJX2V7tLbzjwAfDH0R6l8,4472
13
13
  pycontrails/core/interpolation.py,sha256=AYG5PKkBKlCZpje7HNi8P7wlbikds76QMlJnlRrCKFs,26338
14
- pycontrails/core/met.py,sha256=MBR7GK0LKaHP2uLmVReX1bxQNXnLMrQq66N7gwGdM1U,104175
14
+ pycontrails/core/met.py,sha256=tMI53vYxefm7MZyL_d6_4OeNxd2oaetd6v4IPBzeWMQ,103544
15
15
  pycontrails/core/met_var.py,sha256=iLk8R2Yq2MCnc7_XJLUULqojBwe1seFp3jdaTm8T-BY,9490
16
16
  pycontrails/core/models.py,sha256=KWDCVzpg-0pfp7075XtLlNm-ALuthPm4KSowr9Wn21Y,40463
17
17
  pycontrails/core/polygon.py,sha256=F403uzql_c47MPM2Qdmec6WwtFaXZyb48h-4gK-K4EU,18577
18
- pycontrails/core/rgi_cython.cp313-win_amd64.pyd,sha256=ArF0GvCyKTgm4LXyF4exd97p8JTRNhc8FYh548A433U,263680
19
- pycontrails/core/vector.py,sha256=ZbZpwfviyMYycU4e3yPKpZ0zEhuqiLqaWR_HlAVVn78,73732
18
+ pycontrails/core/rgi_cython.cp313-win_amd64.pyd,sha256=a1mrO9H02p3NVEhhjpXw4XYNpXk0iSTH29YOp1N7vU0,263680
19
+ pycontrails/core/vector.py,sha256=c9eZw50NViaj19mWY9G5NwJaAYAXbWKJMXbOL3Ka0W8,72689
20
20
  pycontrails/datalib/__init__.py,sha256=Q2RrnjwtFzfsmJ2tEojDCzDMkd8R0MYw4mQz3YwUsqI,381
21
21
  pycontrails/datalib/goes.py,sha256=UMxXXCiRL6SHY5_3cXs8GmG19eeKOOi3gKCimkyZSuc,27305
22
- pycontrails/datalib/landsat.py,sha256=2679tTcsegvePLaqGKcyuCxeUxkKSHJY37ZnsYZM9vI,20250
23
- pycontrails/datalib/sentinel.py,sha256=I8-NzxJenESosMUeGTt8ESiJ_kFEUSLsKdA6pZGNrEM,17734
22
+ pycontrails/datalib/landsat.py,sha256=bxk_3cOLndOguYkzyg9dLU2YNhGHYwrAOaQY_NkdPq8,20290
23
+ pycontrails/datalib/sentinel.py,sha256=BSoRcRldulWw1jHpm6rszeZdgUO7P6MMMYBwXAjLb1g,17732
24
24
  pycontrails/datalib/spire.py,sha256=aW0wh5GDrszFb20ZMzmWKQ4uHbOCmHvVt9Sf4U3AyTI,26070
25
25
  pycontrails/datalib/_leo_utils/search.py,sha256=8JzT56ps3SH1W-5rwL8BWuxLLljwxa_5fjLAuZdL_Vg,8937
26
26
  pycontrails/datalib/_leo_utils/vis.py,sha256=0UDVcqMRqHmAORDV4Xyk-HVnTAjbOCf7KCpWm2ilTLE,1861
27
27
  pycontrails/datalib/_leo_utils/static/bq_roi_query.sql,sha256=r_gVjpoEvCcAJP56QlXaXzgfWPZdf-kYo3D316glJLU,266
28
- pycontrails/datalib/_met_utils/metsource.py,sha256=bYemilnq346yEI793c1GEiNZCtKFX4AI41qN5-58jFU,24711
29
- pycontrails/datalib/ecmwf/__init__.py,sha256=a3prI136k2NCxCicLMWznvr52cTx6JjHpmV6ts4OGxI,1508
30
- pycontrails/datalib/ecmwf/arco_era5.py,sha256=gBQTK-pCQkwp0nsiewbnsnWjcpziekBvl1Lon27N43A,19151
28
+ pycontrails/datalib/_met_utils/metsource.py,sha256=8-f6Aee9wAG3RlVc2rnK-b1LKrtwABiPBd_1uEgM3dg,24712
29
+ pycontrails/datalib/ecmwf/__init__.py,sha256=l5AXK1UEt7OG7H-VTfEE-fvtesEqVagHM8ZqkElF1m0,2094
30
+ pycontrails/datalib/ecmwf/arco_era5.py,sha256=dnF9W4QJ3qe78Qlb7dmWxOwn6hDhkztxQ-JKZ4uh94k,12688
31
31
  pycontrails/datalib/ecmwf/common.py,sha256=GxyNnQMjIfM26SahTRNtQD7Gfd3evX32f7dTUjEatYY,4013
32
- pycontrails/datalib/ecmwf/era5.py,sha256=S9Ms8iby-12itJHKrE3JAjDTsZyVUqxrSyUSHqXFK-0,19565
33
- pycontrails/datalib/ecmwf/era5_model_level.py,sha256=uwcvXdOu1hKTgteZ29_13jH0hk_zPJg5pyAHtnFqjcs,20008
32
+ pycontrails/datalib/ecmwf/era5.py,sha256=CJFn3g8k7g-wNdUv6ClWho2qd9XU2dYLcyVAytnFZ18,19564
33
+ pycontrails/datalib/ecmwf/era5_model_level.py,sha256=nbkGk8kLMlYAX8JkfoTQZ4cxefFvCsmcHaV1vwahTbA,19827
34
34
  pycontrails/datalib/ecmwf/hres.py,sha256=NnpwQartFGxd6n3wIkSzZQiqHtimq5d9zUYxf7SDhiQ,29022
35
- pycontrails/datalib/ecmwf/hres_model_level.py,sha256=w77hhEw40R2K1TGBF7ob-DkA6rzZ7G4LfiCG5CEblfY,19642
35
+ pycontrails/datalib/ecmwf/hres_model_level.py,sha256=FtX8QWW9fAFFxMRKS694ArTbIKNJmGEIzjnNsrOqm0g,18027
36
36
  pycontrails/datalib/ecmwf/ifs.py,sha256=XzRZFutdf8TaHCAq1H7dmlC-hym8X-p8uluOwN1ToCw,10946
37
- pycontrails/datalib/ecmwf/model_levels.py,sha256=ZqgGmCDp_vcYNsTqPqUmYz6pPtILBEglWU7lMfynlO8,2791
38
- pycontrails/datalib/ecmwf/variables.py,sha256=S5_2GSmG-WuidhgNJQyEvu1zHkELaENnCcak4CGYccs,9819
37
+ pycontrails/datalib/ecmwf/model_levels.py,sha256=noLSx45AHZ0rFPiUh3aK3iaEueHgsg6mG_AplHqHeU8,17431
38
+ pycontrails/datalib/ecmwf/variables.py,sha256=nWHVbTsvGShjxJIrbgE0NgXNPlsefyU4ebSYY2tDTlY,10132
39
39
  pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv,sha256=9u7CVA3QnPUmNLIWUkF5b9wFunczkvx1zSudwGmtOv8,9927
40
40
  pycontrails/datalib/gfs/__init__.py,sha256=VcE2j62ITbY7F3tEtgaLrfyjHWci-4mvLtnVg3SVgtE,712
41
41
  pycontrails/datalib/gfs/gfs.py,sha256=v1ksUzy980JQ1OoognXki8eBUywqh1-87Nr76ehcSeg,22295
@@ -43,22 +43,22 @@ pycontrails/datalib/gfs/variables.py,sha256=u2rAsjCJTehB6MhQj9YhlZYovdwoscqAH33T
43
43
  pycontrails/ext/bada.py,sha256=S0qfNYsp1cGqkHGPu-IkAwk66lD79yikRlrq9uwgPpI,1104
44
44
  pycontrails/ext/cirium.py,sha256=zRPVBBWwocZKkX3XhonSBf54x7P_xnjRcA7psI0Kqnw,429
45
45
  pycontrails/ext/empirical_grid.py,sha256=1WHyt1VOWEr7bMlnXo1tEKJgePvLKjKsCCee2w22gf8,4502
46
- pycontrails/ext/synthetic_flight.py,sha256=FxSQlaCQTOp-SRCJB5Mg4wbp4B8o0829y4wuumsOkNk,17118
46
+ pycontrails/ext/synthetic_flight.py,sha256=1aaTTfNk0IP8ZhuUSqBLCNRmO-2oI7vv9FZKpA9HXLU,17187
47
47
  pycontrails/models/__init__.py,sha256=TKhrXe1Pu1-mV1gctx8cUAMrVxCCAtBkbZi9olfWq8s,34
48
48
  pycontrails/models/accf.py,sha256=Mncb82HZWbFerPBCQqZGs5P781JsqAuRxosXG-E-i6c,12974
49
- pycontrails/models/dry_advection.py,sha256=ES4NBxmnStxkz2hmCRVGaQj77cnvmg5H-yiZppaSxsg,17042
50
- pycontrails/models/issr.py,sha256=mqRKm106kz8um1cbRblxLRZDJanvqa5Q1BI2sqK5pkQ,7561
49
+ pycontrails/models/dry_advection.py,sha256=YurECAbB0J8w9M0JKTm4FzX1VcwzYoyAhnxGXB7HWgM,17191
50
+ pycontrails/models/issr.py,sha256=QXkTIpj13u9qG5BeAaMVdtWbN8hNSsnGLL5hIzU5ZMM,7550
51
51
  pycontrails/models/pcc.py,sha256=M5KhtRgdCP9pfDFgui7ibbijtRBTjx3QOJL_m1tQYfs,11443
52
52
  pycontrails/models/pcr.py,sha256=G_0yR5PsCMeJBP6tZFi3M7A6Wcq8s71UvosdA7ozUkI,5502
53
53
  pycontrails/models/sac.py,sha256=LhEwexJZnkxitj-x5eNVSCDGdkoCdj8Zh_I0WB8FWOY,16405
54
54
  pycontrails/models/tau_cirrus.py,sha256=eXt3yRrcFBaZNNeH6ZOuU4XEZU2rOfrLKEOC7f0_Ywo,5194
55
55
  pycontrails/models/apcemm/__init__.py,sha256=dDsRW3V6jjzKDd43Yoyc74m_Om1fccvftZgp3OFdAYE,183
56
- pycontrails/models/apcemm/apcemm.py,sha256=W6bAw-xqo0zfcoXQfDIKYQX1DN3-GN_k_gyR2KxyeG0,40920
56
+ pycontrails/models/apcemm/apcemm.py,sha256=0zsQBvuqJTgdD3DF3yw3qzSipoNMIliHfuTr5bhh744,40918
57
57
  pycontrails/models/apcemm/inputs.py,sha256=zHRSWVVlwYw6ms7PpC0p0I-xFsRDUVY9eDZ1g95Uf8U,6811
58
58
  pycontrails/models/apcemm/utils.py,sha256=6pKQbS5EAzTnI_edVtUvGrzM0xwNq1t9MBGgCRJtg_0,17531
59
59
  pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=A3H_FWVOtqkZhG91TWLdblMKaLWIcjRMsKqkfTN6mB4,6928
60
60
  pycontrails/models/cocip/__init__.py,sha256=miDxSFxN9PzL_ieSJb3BYeHmbKqZwGicCz1scNB5eW0,991
61
- pycontrails/models/cocip/cocip.py,sha256=_x5yGc35FnDeW28aeDf9dXvLnjmV0WpBENch3za17nE,102706
61
+ pycontrails/models/cocip/cocip.py,sha256=sStHyoTImaMVrvZKLrmX7c8IOARN-d5qYcxAlZJISm0,102704
62
62
  pycontrails/models/cocip/cocip_params.py,sha256=JwQl8FLcp4l5-MLiMQhPsxHL8jKXg2ymWXD7Jbn3zTQ,13002
63
63
  pycontrails/models/cocip/cocip_uncertainty.py,sha256=7W586BJEAY_wpSpfVdcdX-HpZG4twk3cMLhUR2ELTMA,12176
64
64
  pycontrails/models/cocip/contrail_properties.py,sha256=u6SvucHC6VtF2kujfSVFTfv0263t5uYpNOUJZAroEzc,57111
@@ -69,7 +69,7 @@ pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=Ymz-uO9vVhLIFwT9yuF
69
69
  pycontrails/models/cocip/wake_vortex.py,sha256=r3FM4egyGohRF0qGD3pFWBJppUQ_3GhtO_g7L74HmjU,14817
70
70
  pycontrails/models/cocip/wind_shear.py,sha256=Dm181EsiCBJWTnRTZ3ZI3YXscBRnhA6ANnKer004b2Q,3980
71
71
  pycontrails/models/cocipgrid/__init__.py,sha256=OYSdZ1Htbr_IP7N_HuOAj1Pa_KLHtdEeJfXP-cN-gnU,271
72
- pycontrails/models/cocipgrid/cocip_grid.py,sha256=-j_19IkDWI9hFHlF-LN0t3iwnSxHb-g0PUYwm2cxVg0,96920
72
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=j-lFzr48Vir9yU1hT0w6RtGSbfv3tYozlmfWubPi-9Q,96912
73
73
  pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=ZpN00VEmeRYaeZhvSfVjnEjrgn6XdClf1eqJC8Ytcuw,6013
74
74
  pycontrails/models/emissions/__init__.py,sha256=BXzV2pBps8j3xbaF1n9uPdVVLI5MBIGYx8xqDJezYIE,499
75
75
  pycontrails/models/emissions/black_carbon.py,sha256=9DRqB487pH8Iq83FXggA5mPLYEAA8NpsKx24f8uTEF4,20828
@@ -85,7 +85,7 @@ pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq,s
85
85
  pycontrails/models/ps_model/__init__.py,sha256=QggqLRpqUh6imcn7GFPcKFSU4s3WjgfdvO8hH_OO8NY,512
86
86
  pycontrails/models/ps_model/ps_aircraft_params.py,sha256=ZqY9VEnFmYQ10ZMHBUfcIE4RF3iml9ctp0YF2v4Lg0I,13453
87
87
  pycontrails/models/ps_model/ps_grid.py,sha256=DIUItUslzJARa_Ly_SUGur8_D3Ph6_qBX1BNcL2g4mI,19172
88
- pycontrails/models/ps_model/ps_model.py,sha256=5hvQuTfho6b7MMJmnmnRuINgt1ItgzPI-wNZPJXYYGQ,34030
88
+ pycontrails/models/ps_model/ps_model.py,sha256=ld4lsqamNTOGT2cZsI7KnH6qRfxwuzvoxmtjEsGr24o,34443
89
89
  pycontrails/models/ps_model/ps_operational_limits.py,sha256=hpgNkS1Xx7mjTSoNzfGoy50Yv9LNWfBDAVgPfa1c31k,17372
90
90
  pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv,sha256=2RtIHwXRuMVAEfsefopm1m6ozHi8YciYUN3WTMpfoo4,25852
91
91
  pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv,sha256=MLXOeVjC5FQULGNc6rn-_BdSURJAkJLMSDzPhC7OpDY,1141
@@ -101,9 +101,9 @@ pycontrails/utils/iteration.py,sha256=En2YY4NiNwCNtAVO8HL6tv9byBGKs8MKSI7R8P-gZy
101
101
  pycontrails/utils/json.py,sha256=OHfKm4b9VeToxNBJM6gh3eI1xkTPDbvmXvWhHtsNr94,6102
102
102
  pycontrails/utils/temp.py,sha256=5XXqQoEfWjz1OrhoOBZD5vkkCFeuq9LpZkyhc38gIeY,1159
103
103
  pycontrails/utils/types.py,sha256=pqyqz8oXE4cfsx0z2ctWrNnIQavpF8uVZaH2a5fqNak,4934
104
- pycontrails-0.53.1.dist-info/LICENSE,sha256=HVr8JnZfTaA-12BfKUQZi5hdrB3awOwLWs5X_ga5QzA,10353
105
- pycontrails-0.53.1.dist-info/METADATA,sha256=67oT742oApSxHyMYKioBoBmO046SjIOIBmMGzJd6lc8,9354
106
- pycontrails-0.53.1.dist-info/NOTICE,sha256=qYeNEp8OjDK5jSW3hTlr9LQRjZeEhXQm0zDei5UFaYs,1969
107
- pycontrails-0.53.1.dist-info/WHEEL,sha256=Bb-Y5DSyj9zbsyYyXqIcSUmK-KoPgMrCBPAr0L6585s,101
108
- pycontrails-0.53.1.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
109
- pycontrails-0.53.1.dist-info/RECORD,,
104
+ pycontrails-0.54.1.dist-info/LICENSE,sha256=HVr8JnZfTaA-12BfKUQZi5hdrB3awOwLWs5X_ga5QzA,10353
105
+ pycontrails-0.54.1.dist-info/METADATA,sha256=h6retfYiAie3K0AtpwLu_T1yl9X5Oi_zkWezzVfj5NI,9253
106
+ pycontrails-0.54.1.dist-info/NOTICE,sha256=qYeNEp8OjDK5jSW3hTlr9LQRjZeEhXQm0zDei5UFaYs,1969
107
+ pycontrails-0.54.1.dist-info/WHEEL,sha256=WsITy9NjrxZo875xZQhJpU3vZUHVZRtNnEd5DMBQpxU,101
108
+ pycontrails-0.54.1.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
109
+ pycontrails-0.54.1.dist-info/RECORD,,
@@ -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: cp313-cp313-win_amd64
5
5