pycontrails 0.54.4__cp312-cp312-macosx_11_0_arm64.whl → 0.54.5__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.

@@ -3,16 +3,24 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import dataclasses
6
+ import sys
6
7
  from typing import Any, NoReturn, overload
7
8
 
9
+ if sys.version_info >= (3, 12):
10
+ from typing import override
11
+ else:
12
+ from typing_extensions import override
13
+
8
14
  import numpy as np
9
15
  import numpy.typing as npt
16
+ import pandas as pd
10
17
 
11
18
  from pycontrails.core import models
12
- from pycontrails.core.met import MetDataset
19
+ from pycontrails.core.met import MetDataset, maybe_downselect_mds
13
20
  from pycontrails.core.met_var import (
14
21
  AirTemperature,
15
22
  EastwardWind,
23
+ MetVariable,
16
24
  NorthwardWind,
17
25
  VerticalVelocity,
18
26
  )
@@ -89,7 +97,12 @@ class DryAdvection(models.Model):
89
97
 
90
98
  name = "dry_advection"
91
99
  long_name = "Emission plume advection without sedimentation"
92
- met_variables = AirTemperature, EastwardWind, NorthwardWind, VerticalVelocity
100
+ met_variables: tuple[MetVariable, ...] = (
101
+ AirTemperature,
102
+ EastwardWind,
103
+ NorthwardWind,
104
+ VerticalVelocity,
105
+ )
93
106
  default_params = DryAdvectionParams
94
107
 
95
108
  met: MetDataset
@@ -127,6 +140,10 @@ class DryAdvection(models.Model):
127
140
  self.update_params(params)
128
141
  self.set_source(source)
129
142
  self.source = self.require_source_type(GeoVectorDataset)
143
+ self.downselect_met()
144
+ if not self.source.coords_intersect_met(self.met).any():
145
+ msg = "No source coordinates intersect met data."
146
+ raise ValueError(msg)
130
147
 
131
148
  self.source = self._prepare_source()
132
149
 
@@ -139,18 +156,24 @@ class DryAdvection(models.Model):
139
156
  max_depth = self.params["max_depth"]
140
157
 
141
158
  source_time = self.source["time"]
142
- t0 = source_time.min()
159
+ t0 = pd.Timestamp(source_time.min()).floor(pd.Timedelta(dt_integration)).to_numpy()
143
160
  t1 = source_time.max()
144
161
  timesteps = np.arange(t0 + dt_integration, t1 + dt_integration + max_age, dt_integration)
145
162
 
146
163
  vector = GeoVectorDataset()
164
+ met = None
147
165
 
148
166
  evolved = []
149
167
  for t in timesteps:
150
168
  filt = (source_time < t) & (source_time >= t - dt_integration)
151
169
  vector = vector + self.source.filter(filt, copy=False)
170
+
171
+ t0 = vector["time"].min()
172
+ t1 = vector["time"].max()
173
+ met = maybe_downselect_mds(self.met, met, t0, t1)
174
+
152
175
  vector = _evolve_one_step(
153
- self.met,
176
+ met,
154
177
  vector,
155
178
  t,
156
179
  sedimentation_rate=sedimentation_rate,
@@ -202,7 +225,7 @@ class DryAdvection(models.Model):
202
225
  raise ValueError(
203
226
  "If 'azimuth' is None, then 'width' and 'depth' must also be None."
204
227
  )
205
- return GeoVectorDataset(self.source.select(columns, copy=False), copy=False)
228
+ return GeoVectorDataset._from_fastpath(self.source.select(columns, copy=False).data)
206
229
 
207
230
  if "azimuth" not in self.source:
208
231
  self.source["azimuth"] = np.full_like(self.source["longitude"], azimuth)
@@ -228,7 +251,19 @@ class DryAdvection(models.Model):
228
251
  width, depth, sigma_yz=0.0
229
252
  )
230
253
 
231
- return GeoVectorDataset(self.source.select(columns, copy=False), copy=False)
254
+ return GeoVectorDataset._from_fastpath(self.source.select(columns, copy=False).data)
255
+
256
+ @override
257
+ def downselect_met(self) -> None:
258
+ if not self.params["downselect_met"]:
259
+ return
260
+
261
+ buffers = {
262
+ f"{coord}_buffer": self.params[f"met_{coord}_buffer"]
263
+ for coord in ("longitude", "latitude", "level")
264
+ }
265
+ buffers["time_buffer"] = (np.timedelta64(0, "ns"), self.params["max_age"])
266
+ self.met = self.source.downselect_met(self.met, **buffers)
232
267
 
233
268
 
234
269
  def _perform_interp_for_step(
@@ -464,15 +499,16 @@ def _evolve_one_step(
464
499
  dt, # type: ignore[arg-type]
465
500
  )
466
501
 
467
- out = GeoVectorDataset(
468
- longitude=longitude_2,
469
- latitude=latitude_2,
470
- level=level_2,
471
- time=np.full(longitude_2.shape, t),
472
- copy=False,
502
+ out = GeoVectorDataset._from_fastpath(
503
+ {
504
+ "longitude": longitude_2,
505
+ "latitude": latitude_2,
506
+ "level": level_2,
507
+ "time": np.full(longitude_2.shape, t),
508
+ "age": vector["age"] + dt,
509
+ "waypoint": vector["waypoint"],
510
+ }
473
511
  )
474
- out["age"] = vector["age"] + dt
475
- out["waypoint"] = vector["waypoint"]
476
512
 
477
513
  azimuth = vector.get("azimuth")
478
514
  if azimuth is None:
@@ -19,7 +19,7 @@ from pycontrails.core.flight import Flight
19
19
  from pycontrails.core.fuel import Fuel, SAFBlend
20
20
  from pycontrails.core.interpolation import EmissionsProfileInterpolator
21
21
  from pycontrails.core.met import MetDataset
22
- from pycontrails.core.met_var import AirTemperature, SpecificHumidity
22
+ from pycontrails.core.met_var import AirTemperature, MetVariable, SpecificHumidity
23
23
  from pycontrails.core.models import Model, ModelParams
24
24
  from pycontrails.core.vector import GeoVectorDataset
25
25
  from pycontrails.models.emissions import black_carbon, ffm2
@@ -75,7 +75,7 @@ class Emissions(Model):
75
75
 
76
76
  name = "emissions"
77
77
  long_name = "ICAO Emissions Databank (EDB)"
78
- met_variables = AirTemperature, SpecificHumidity
78
+ met_variables: tuple[MetVariable, ...] = AirTemperature, SpecificHumidity
79
79
  default_params = EmissionsParams
80
80
 
81
81
  source: GeoVectorDataset
@@ -10,7 +10,7 @@ import numpy as np
10
10
  import pycontrails
11
11
  from pycontrails.core.flight import Flight
12
12
  from pycontrails.core.met import MetDataset
13
- from pycontrails.core.met_var import AirTemperature, SpecificHumidity
13
+ from pycontrails.core.met_var import AirTemperature, MetVariable, SpecificHumidity
14
14
  from pycontrails.core.models import Model, ModelParams
15
15
  from pycontrails.core.vector import GeoVectorDataset
16
16
  from pycontrails.models.humidity_scaling import HumidityScaling
@@ -70,7 +70,7 @@ class ISSR(Model):
70
70
 
71
71
  name = "issr"
72
72
  long_name = "Ice super-saturated regions"
73
- met_variables = AirTemperature, SpecificHumidity
73
+ met_variables: tuple[MetVariable, ...] = AirTemperature, SpecificHumidity
74
74
  default_params = ISSRParams
75
75
 
76
76
  @overload
@@ -19,7 +19,7 @@ from pycontrails.core.aircraft_performance import (
19
19
  from pycontrails.core.flight import Flight
20
20
  from pycontrails.core.fuel import JetA
21
21
  from pycontrails.core.met import MetDataset
22
- from pycontrails.core.met_var import AirTemperature
22
+ from pycontrails.core.met_var import AirTemperature, MetVariable
23
23
  from pycontrails.core.vector import GeoVectorDataset
24
24
  from pycontrails.models.ps_model import ps_model, ps_operational_limits
25
25
  from pycontrails.models.ps_model.ps_aircraft_params import PSAircraftEngineParams
@@ -58,7 +58,7 @@ class PSGrid(AircraftPerformanceGrid):
58
58
 
59
59
  name = "PSGrid"
60
60
  long_name = "Poll-Schumann Aircraft Performance evaluated at arbitrary points"
61
- met_variables = (AirTemperature,)
61
+ met_variables: tuple[MetVariable, ...] = (AirTemperature,)
62
62
  default_params = PSGridParams
63
63
 
64
64
  met: MetDataset
@@ -28,7 +28,7 @@ from pycontrails.core.aircraft_performance import (
28
28
  from pycontrails.core.fleet import Fleet
29
29
  from pycontrails.core.flight import Flight
30
30
  from pycontrails.core.met import MetDataset
31
- from pycontrails.core.met_var import AirTemperature, EastwardWind, NorthwardWind
31
+ from pycontrails.core.met_var import AirTemperature, EastwardWind, MetVariable, NorthwardWind
32
32
  from pycontrails.models.ps_model import ps_operational_limits as ps_lims
33
33
  from pycontrails.models.ps_model.ps_aircraft_params import (
34
34
  PSAircraftEngineParams,
@@ -71,7 +71,7 @@ class PSFlight(AircraftPerformance):
71
71
 
72
72
  name = "PSFlight"
73
73
  long_name = "Poll-Schumann Aircraft Performance Model"
74
- met_variables = (AirTemperature,)
74
+ met_variables: tuple[MetVariable, ...] = (AirTemperature,)
75
75
  optional_met_variables = EastwardWind, NorthwardWind
76
76
  default_params = PSFlightParams
77
77
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycontrails
3
- Version: 0.54.4
3
+ Version: 0.54.5
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
@@ -1,27 +1,27 @@
1
- pycontrails-0.54.4.dist-info/RECORD,,
2
- pycontrails-0.54.4.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
- pycontrails-0.54.4.dist-info/WHEEL,sha256=7Wd-yga4fjSiXpUH443rsPZpiZ4h8-uNrXJrYRW_e14,109
4
- pycontrails-0.54.4.dist-info/NOTICE,sha256=TeY5lUhEbf5ouzABkrRUsUDJzS5v9jDEYADpwku4mgA,1929
5
- pycontrails-0.54.4.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
- pycontrails-0.54.4.dist-info/METADATA,sha256=284mIuqMUJd3IbNlLAQcXyoHHlXDfDVTA1XXj1FFTXg,9155
7
- pycontrails/_version.py,sha256=K1krGB4lhzC1Jsut-7Vsyk3SU0xYvsCQSVsvbKXz2pE,413
1
+ pycontrails-0.54.5.dist-info/RECORD,,
2
+ pycontrails-0.54.5.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
+ pycontrails-0.54.5.dist-info/WHEEL,sha256=7Wd-yga4fjSiXpUH443rsPZpiZ4h8-uNrXJrYRW_e14,109
4
+ pycontrails-0.54.5.dist-info/NOTICE,sha256=TeY5lUhEbf5ouzABkrRUsUDJzS5v9jDEYADpwku4mgA,1929
5
+ pycontrails-0.54.5.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
+ pycontrails-0.54.5.dist-info/METADATA,sha256=Tabqvf9lZ6tBPR5HdM4WA-NIhMj63APhKpIqvST89kU,9155
7
+ pycontrails/_version.py,sha256=As6esyAJK0I-dknf0mXTw-4gYl46DB5WJ1UEk7dWCTo,413
8
8
  pycontrails/__init__.py,sha256=vomSUHQ1d7ru2-3LgnmczzuPJw0kHmBSaCSVOpqvEtQ,2004
9
9
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pycontrails/core/vector.py,sha256=GaxOJSDd5t2GzHFpUBCoF7qi-KcWrxIJ_Y1PwRejWQo,70080
11
- pycontrails/core/models.py,sha256=ZFyZWK378sex9uk5yKPMWBuMublYhUEOqjlNqicw5os,39789
12
- pycontrails/core/interpolation.py,sha256=Ifs0tdNe03N-OmoPK1mNB3i8vNXbmIfc3i26AdnRkyE,25679
13
- pycontrails/core/fleet.py,sha256=PD2psa6LHhbH-T9XvVY2CQihsaksGnSgZilddzX1ktU,15964
14
- pycontrails/core/flight.py,sha256=vV9cjKg_XtSn0aVulfoYojVC7xm4TsSqzua7JhDYlJE,80372
10
+ pycontrails/core/vector.py,sha256=N-B-VSNX5bz-FwzSRBdbO3fZ1A8Xh3odbTs_6rnZty4,71263
11
+ pycontrails/core/models.py,sha256=9sFTumUN6WmOP_wbXLu8bYoCCk-6zVQTE_KGtJ9OnIY,39792
12
+ pycontrails/core/interpolation.py,sha256=wovjj3TAf3xonVxjarclpvZLyLq6N7wZQQXsI9hT3YA,25713
13
+ pycontrails/core/fleet.py,sha256=0hi_N4R93St-7iD29SE0EnadpBEl_p9lSGtDwpWvGkk,16704
14
+ pycontrails/core/flight.py,sha256=DRQx2pd06OYAxjlJajyquirpxHRzOu9a7YahW_kSaF0,80680
15
15
  pycontrails/core/fuel.py,sha256=kJZ3P1lPm1L6rdPREM55XQ-VfJ_pt35cP4sO2Nnvmjs,4332
16
16
  pycontrails/core/polygon.py,sha256=EmfHPj0e58whsHvR-3YvDgMWkvMFgp_BgwaoG8IZ4n0,18044
17
17
  pycontrails/core/cache.py,sha256=XG_RCIemv1xatDBmaVyxnoYdi8gD2gkUvjfvRi9RsJA,28068
18
18
  pycontrails/core/__init__.py,sha256=p0O09HxdeXU0X5Z3zrHMlTfXa92YumT3fJ8wJBI5ido,856
19
19
  pycontrails/core/flightplan.py,sha256=UO4vL087d5TZMlU984-FxfotGTxFbqK78w2fLDRiel4,7335
20
- pycontrails/core/met.py,sha256=KPby1dgsjrQ1rHK7JcSCnh_I5TFmqyqyL0KEOc1JPbs,101413
20
+ pycontrails/core/met.py,sha256=5b2K4PQWcAO5X8Mb3LLJ224_06WDyDEGUIeE3_EB3zA,103599
21
21
  pycontrails/core/aircraft_performance.py,sha256=P3_StjXJJqtBOYWbyHyVNuxdOZzuVZDfeRxtNQmSpFY,27236
22
22
  pycontrails/core/airports.py,sha256=aeyAXVkioIRomrP79UtNrxindL4f1DJyXFaojZCuBBw,6758
23
23
  pycontrails/core/met_var.py,sha256=GC5ijw4oGuIefmFOSz4vmxMEBj_SVs5Z75IMhDP56Cw,9183
24
- pycontrails/core/rgi_cython.cpython-312-darwin.so,sha256=D8oX7fGA9xHE8XNd1FqvxMy94yZpVLN-SL-69xk3NG8,312000
24
+ pycontrails/core/rgi_cython.cpython-312-darwin.so,sha256=hTPtsxktmRYsPFaBzw9C7nzoc88Y5OllGECzQ7x6HjI,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
@@ -59,22 +59,22 @@ 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=GjCkGMf6_zRyzdWRSpO7WieNjY8b-RpPmss0WO3e1HM,5381
61
61
  pycontrails/models/__init__.py,sha256=dQTOLQb7RdUdUwslt5se__5y_ymbInBexQmNrmAeOdE,33
62
- pycontrails/models/issr.py,sha256=Ts1rFr8XKqvq-hWTLzp285PDEt9J_kIR8V3XGCDqoxY,7340
62
+ pycontrails/models/issr.py,sha256=AYLYLHxtG8je5UG6x1zLV0ul89MJPqe5Xk0oWIyZ7b0,7378
63
63
  pycontrails/models/sac.py,sha256=lV1Or0AaLxuS1Zo5V8h5c1fkSKC-hKEgiFm7bmmusWw,15946
64
64
  pycontrails/models/accf.py,sha256=meIcgojYvHgm3de9iro2Bv0M4y9ta5VPwcqGAMEbBp8,13663
65
- pycontrails/models/dry_advection.py,sha256=k7jEibAjrdt42he0QqDckZ0VLfSwKPKeTc2qOa5ciEg,16882
65
+ pycontrails/models/dry_advection.py,sha256=haV2Lfzop6DUEpb69sR-7OVdvFAmTiFWUfwzIfgoBRs,18028
66
66
  pycontrails/models/pcr.py,sha256=ZzbEuTOuDdUmmL5T3Wk3HL-O8XzX3HMnn98WcPbASaU,5348
67
67
  pycontrails/models/emissions/__init__.py,sha256=CZB2zIkLUI3NGNmq2ddvRYjEtiboY6PWJjiEiXj_zII,478
68
68
  pycontrails/models/emissions/ffm2.py,sha256=mAvBHnp-p3hIn2fjKGq50eaMHi0jcb5hA5uXbJGeE9I,12068
69
- pycontrails/models/emissions/emissions.py,sha256=jJlK2zPygyz57SQK-DofJUvimD49fRxHA3hiU5REPCQ,47653
69
+ pycontrails/models/emissions/emissions.py,sha256=iAUJQFVzFDllKlDRVzIEZRm18IryFQedbzq3h2GmFcQ,47691
70
70
  pycontrails/models/emissions/black_carbon.py,sha256=HV56zz5-9nrIxDqL2-F6aa7XQYZyv26IDkLHo_Jop9A,20346
71
71
  pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv,sha256=NatpVI1D2tTDLK7uVvlanm9DhfFB44nmFA4aocUcXco,77318
72
72
  pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv,sha256=jCjt7cP6sqLdbDp5NUoaqllVkZNE7NJtSnbB3rX_zQI,127523
73
73
  pycontrails/models/emissions/static/default-engine-uids.csv,sha256=3blb0aqtM8YRsyT1WDo0UYTBtv1h4BwXRIC_Ll9fhnI,6217
74
74
  pycontrails/models/apcemm/__init__.py,sha256=M-hrJklbSgBckclm526MiBAhpKPLHgJbB58ArbJuGIk,175
75
75
  pycontrails/models/apcemm/inputs.py,sha256=88GylkiaymEW_XZeFxLsICI9wV6kl8wVYsuyTe8zIQ8,6585
76
- pycontrails/models/apcemm/utils.py,sha256=xlEVe0RKFXrqDr4V77mbb2HxY8IK42EX4K86tN1sLQs,17094
77
- pycontrails/models/apcemm/apcemm.py,sha256=ow50xVVS1QcRc_RXGZY0h5fOZQ_TETITkujvSx86Sp0,39999
76
+ pycontrails/models/apcemm/utils.py,sha256=Ex6EqXin6yoJv2WWhBotSzhjzUlFNZm2MDgL4CvvX6E,17082
77
+ pycontrails/models/apcemm/apcemm.py,sha256=rKvIaEsqtLbZ5h4o4EOY4Ge4-HdPn2X4M1lEUFDvr68,39975
78
78
  pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=uAZkc57OUvDMjgX6F5f6hgDh3Hgg1NbHWRUFSiv0DEI,6745
79
79
  pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=Mpy6Jd0UNta4nUhS01kkm6uCg0Yo5EhHIrP656lLpnI,36770
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=0zTXQXANYC3oIDyYEUHkaJxuwTe0-GojxBipEutWGxU,45031
84
84
  pycontrails/models/cocip/wind_shear.py,sha256=m6ZlWjORfI-lI-D74Z_dIMOHnK4FDYmkb0S6vSpKTO8,3868
85
- pycontrails/models/cocip/cocip.py,sha256=jLipDqA832VVerYj7F8rdNcG7vxyRvdT5tUwrsnA-eY,100138
85
+ pycontrails/models/cocip/cocip.py,sha256=fqEP5zxvPsprYcKVXNnIXwu-y7QzQMBs5KhMHeWafJ4,100112
86
86
  pycontrails/models/cocip/output_formats.py,sha256=Tyu4080PO5tqZuXjZ0XIxoFF2Nik-stttEMBpu33b-s,83697
87
87
  pycontrails/models/cocip/__init__.py,sha256=CWrkNd6S3ZJq04pjTc2W22sVAJeJD3bJJRy_zLW8Kkc,962
88
88
  pycontrails/models/cocip/cocip_params.py,sha256=rwVW1SnjKnzztlxcxxaCztgzRbIPkMJqC2GefUKQZ6w,12341
@@ -92,15 +92,15 @@ pycontrails/models/cocip/radiative_heating.py,sha256=1U4SQWwogtyQ2u6J996kAHP0Ofp
92
92
  pycontrails/models/cocip/contrail_properties.py,sha256=H0D2FQodX6jW3EmAxQNxGS8erOU0EW2MSAAOLB0LyQc,56202
93
93
  pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=M6tdl5ZfNDtiLwJOrXg3sBesf6Larg-5JchsVlJNsG4,14675
94
94
  pycontrails/models/ps_model/__init__.py,sha256=Fuum5Rq8ya8qkvbeq2wh6NDo-42RCRnK1Y-2syYy0Ck,553
95
- pycontrails/models/ps_model/ps_model.py,sha256=l2FPbMi1N_KXuG8YXctdT6b1x-Kp55PDQcnVk5t7U8k,33221
95
+ pycontrails/models/ps_model/ps_model.py,sha256=_6SvkL2jL1Awa6ehR1XFZe5NdHBZbgc6jJp5jaUDNLo,33259
96
96
  pycontrails/models/ps_model/ps_aircraft_params.py,sha256=pD1xpTBX6ML2Pie78kypNibzE5AkvqnAIaTyEMfciuY,13350
97
97
  pycontrails/models/ps_model/ps_operational_limits.py,sha256=jPjzjwOENOHdcS2yU_UhAKABlyJ0_kDcHqj-egN3gTc,16477
98
- pycontrails/models/ps_model/ps_grid.py,sha256=ybrHM8IfVuOE_lBQN6z35CVguMyHsCVzA0CKJmydKMQ,26033
98
+ pycontrails/models/ps_model/ps_grid.py,sha256=DTUXTxYIQ-6iquiCGtScOqkPvakz9F57DxUHQ3JmXIA,26071
99
99
  pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv,sha256=ksrpQTHkxSt1Va_R0rHdenEz6DlIs-Sfk1KFBzHKjhk,1038
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=3lytIYCiTSZSSRvtDCCISM_0oOx3BH50Z-Y04-6v0Uk,93459
103
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=uLQ86xK12LJ43KKb-CdSaDDamj4GyfDbiHp_NefotZU,91151
104
104
  pycontrails/physics/geo.py,sha256=Br0w1-Yfzin1a_IZDeKDT21YtYqoQC8FQGRxcPyoPcU,36233
105
105
  pycontrails/physics/units.py,sha256=BC0e0l_pDeijqN179tXl8eX_Qpw8d17MVujBu1SV3IE,12293
106
106
  pycontrails/physics/constants.py,sha256=pHQQmccMUwuNnY4hFtm3L8G2rnUQcfJnroyQr8HAVeM,3146