pycontrails 0.57.0__cp311-cp311-macosx_11_0_arm64.whl → 0.59.0__cp311-cp311-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 (40) hide show
  1. pycontrails/_version.py +3 -3
  2. pycontrails/core/aircraft_performance.py +1 -1
  3. pycontrails/core/cache.py +2 -2
  4. pycontrails/core/fleet.py +2 -7
  5. pycontrails/core/flight.py +2 -7
  6. pycontrails/core/interpolation.py +45 -67
  7. pycontrails/core/met.py +62 -37
  8. pycontrails/core/polygon.py +3 -3
  9. pycontrails/core/rgi_cython.cpython-311-darwin.so +0 -0
  10. pycontrails/core/vector.py +3 -8
  11. pycontrails/datalib/_met_utils/metsource.py +4 -7
  12. pycontrails/datalib/ecmwf/common.py +2 -2
  13. pycontrails/datalib/ecmwf/hres.py +2 -2
  14. pycontrails/datalib/ecmwf/ifs.py +1 -1
  15. pycontrails/datalib/ecmwf/model_levels.py +1 -1
  16. pycontrails/datalib/gfs/gfs.py +1 -1
  17. pycontrails/datalib/goes.py +10 -3
  18. pycontrails/datalib/gruan.py +343 -0
  19. pycontrails/datalib/himawari/header_struct.py +1 -1
  20. pycontrails/datalib/himawari/himawari.py +24 -7
  21. pycontrails/datalib/leo_utils/sentinel_metadata.py +9 -9
  22. pycontrails/ext/synthetic_flight.py +2 -2
  23. pycontrails/models/cocip/cocip_uncertainty.py +1 -1
  24. pycontrails/models/cocip/contrail_properties.py +1 -1
  25. pycontrails/models/cocip/output_formats.py +1 -1
  26. pycontrails/models/cocipgrid/cocip_grid.py +3 -3
  27. pycontrails/models/dry_advection.py +1 -1
  28. pycontrails/models/extended_k15.py +4 -4
  29. pycontrails/models/humidity_scaling/humidity_scaling.py +2 -2
  30. pycontrails/models/ps_model/ps_grid.py +2 -2
  31. pycontrails/models/sac.py +1 -1
  32. pycontrails/models/tau_cirrus.py +1 -1
  33. pycontrails/physics/thermo.py +4 -4
  34. pycontrails/utils/iteration.py +1 -1
  35. {pycontrails-0.57.0.dist-info → pycontrails-0.59.0.dist-info}/METADATA +5 -6
  36. {pycontrails-0.57.0.dist-info → pycontrails-0.59.0.dist-info}/RECORD +40 -39
  37. {pycontrails-0.57.0.dist-info → pycontrails-0.59.0.dist-info}/WHEEL +0 -0
  38. {pycontrails-0.57.0.dist-info → pycontrails-0.59.0.dist-info}/licenses/LICENSE +0 -0
  39. {pycontrails-0.57.0.dist-info → pycontrails-0.59.0.dist-info}/licenses/NOTICE +0 -0
  40. {pycontrails-0.57.0.dist-info → pycontrails-0.59.0.dist-info}/top_level.txt +0 -0
@@ -442,7 +442,7 @@ class ExponentialBoostLatitudeCorrectionHumidityScaling(HumidityScaling):
442
442
  met: MetDataset | None = None,
443
443
  params: dict[str, Any] | None = None,
444
444
  **params_kwargs: Any,
445
- ):
445
+ ) -> None:
446
446
  if (params is None or "level_type" not in params) and ("level_type" not in params_kwargs):
447
447
  msg = (
448
448
  "The default level_type will change from 'pressure' to 'model' "
@@ -863,7 +863,7 @@ class HistogramMatching(HumidityScaling):
863
863
  met: MetDataset | None = None,
864
864
  params: dict[str, Any] | None = None,
865
865
  **params_kwargs: Any,
866
- ):
866
+ ) -> None:
867
867
  if (params is None or "level_type" not in params) and (
868
868
  params_kwargs is None or "level_type" not in params_kwargs
869
869
  ):
@@ -639,9 +639,9 @@ def ps_nominal_optimize_mach(
639
639
  if sin_a is None or cos_a is None:
640
640
  msg = "Segment angles must be provide if wind data is specified"
641
641
  raise ValueError(msg)
642
- headwind = -(northward_wind * cos_a + eastward_wind * sin_a) # type: ignore[misc]
642
+ headwind = -(northward_wind * cos_a + eastward_wind * sin_a)
643
643
  else:
644
- headwind = 0.0 # type: ignore
644
+ headwind = 0.0
645
645
 
646
646
  min_mach = ps_operational_limits.minimum_mach_num(
647
647
  air_pressure=level * 100.0,
pycontrails/models/sac.py CHANGED
@@ -133,7 +133,7 @@ class SAC(Model):
133
133
 
134
134
  G = slope_mixing_line(specific_humidity, air_pressure, engine_efficiency, ei_h2o, q_fuel)
135
135
  T_sat_liquid_ = T_sat_liquid(G)
136
- rh_crit_sac = rh_critical_sac(air_temperature, T_sat_liquid_, G) # type: ignore[type-var]
136
+ rh_crit_sac = rh_critical_sac(air_temperature, T_sat_liquid_, G)
137
137
  rh = thermo.rh(specific_humidity, air_temperature, air_pressure) # type: ignore[type-var]
138
138
  sac_ = sac(rh, rh_crit_sac)
139
139
 
@@ -91,7 +91,7 @@ def tau_cirrus(met: MetDataset) -> xr.DataArray:
91
91
  # dask.array.gradient expects at least 2 elements in each chunk
92
92
  level_axis = geopotential_height.get_axis_num("level")
93
93
  if geopotential_height.chunks:
94
- level_chunks = geopotential_height.chunks[level_axis] # type: ignore[call-overload, index]
94
+ level_chunks = geopotential_height.chunks[level_axis]
95
95
  if any(chunk < 2 for chunk in level_chunks):
96
96
  geopotential_height = geopotential_height.chunk(level=-1)
97
97
 
@@ -84,7 +84,7 @@ def p_vapor(q: ArrayScalarLike, p: ArrayScalarLike) -> ArrayScalarLike:
84
84
  ArrayScalarTypeVar
85
85
  Vapor pressure, [:math:`Pa`]
86
86
  """
87
- return q * p * (constants.R_v / constants.R_d)
87
+ return q * p / constants.epsilon
88
88
 
89
89
 
90
90
  def water_vapor_partial_pressure_along_mixing_line(
@@ -269,7 +269,7 @@ def mk05_e_sat_liquid_prime(T: ArrayScalarLike) -> ArrayScalarLike:
269
269
  Derivative of :func:`mk05_e_sat_liquid`
270
270
  """
271
271
  tanh_term = np.tanh(0.0415 * (T - 218.8))
272
- return mk05_e_sat_liquid(T) * ( # type: ignore[return-value]
272
+ return mk05_e_sat_liquid(T) * (
273
273
  6763.22 / T**2
274
274
  - 4.21 / T
275
275
  + 0.000367
@@ -399,7 +399,7 @@ def rh(q: ArrayScalarLike, T: ArrayScalarLike, p: ArrayScalarLike) -> ArrayScala
399
399
  ArrayScalarLike
400
400
  Relative Humidity, :math:`[0 - 1]`
401
401
  """
402
- return (q * p * (constants.R_v / constants.R_d)) / e_sat_liquid(T)
402
+ return (q * p) / (constants.epsilon * e_sat_liquid(T))
403
403
 
404
404
 
405
405
  def rhi(q: ArrayScalarLike, T: ArrayScalarLike, p: ArrayScalarLike) -> ArrayScalarLike:
@@ -419,7 +419,7 @@ def rhi(q: ArrayScalarLike, T: ArrayScalarLike, p: ArrayScalarLike) -> ArrayScal
419
419
  ArrayScalarLike
420
420
  Relative Humidity over ice, :math:`[0 - 1]`
421
421
  """
422
- return (q * p * (constants.R_v / constants.R_d)) / e_sat_ice(T)
422
+ return (q * p) / (constants.epsilon * e_sat_ice(T))
423
423
 
424
424
 
425
425
  # --------------
@@ -6,7 +6,7 @@ from collections.abc import Iterator
6
6
  from typing import Any
7
7
 
8
8
 
9
- def chunk_list(lst: list, n: int) -> Iterator[list[Any]]:
9
+ def chunk_list(lst: list[Any], n: int) -> Iterator[list[Any]]:
10
10
  """Yield successive n-sized chunks from list."""
11
11
 
12
12
  for i in range(0, len(lst), n):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycontrails
3
- Version: 0.57.0
3
+ Version: 0.59.0
4
4
  Summary: Python library for modeling aviation climate impacts
5
5
  Author-email: "Contrails.org" <py@contrails.org>
6
6
  License-Expression: Apache-2.0
@@ -13,29 +13,28 @@ Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Science/Research
14
14
  Classifier: Operating System :: OS Independent
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
22
  Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
23
23
  Classifier: Topic :: Scientific/Engineering :: GIS
24
24
  Classifier: Typing :: Typed
25
- Requires-Python: >=3.10
25
+ Requires-Python: >=3.11
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
28
  License-File: NOTICE
29
29
  Requires-Dist: dask>=2022.3
30
30
  Requires-Dist: numpy>=1.22
31
31
  Requires-Dist: pandas>=2.0
32
- Requires-Dist: scipy>=1.10
32
+ Requires-Dist: scipy>=1.12
33
33
  Requires-Dist: typing-extensions>=4.5; python_version < "3.12"
34
34
  Requires-Dist: xarray>=2022.3
35
35
  Provides-Extra: complete
36
36
  Requires-Dist: pycontrails[ecmwf,gcp,gfs,jupyter,pyproj,sat,vis,zarr]; extra == "complete"
37
37
  Provides-Extra: dev
38
- Requires-Dist: fastparquet>=0.8; extra == "dev"
39
38
  Requires-Dist: ipdb>=0.13; extra == "dev"
40
39
  Requires-Dist: memory_profiler; extra == "dev"
41
40
  Requires-Dist: mypy>=1.8; extra == "dev"
@@ -140,7 +139,7 @@ Documentation and examples available at [py.contrails.org](https://py.contrails.
140
139
 
141
140
  ### Install with pip
142
141
 
143
- You can install pycontrails from PyPI with `pip` (Python 3.10 or later required):
142
+ You can install pycontrails from PyPI with `pip` (Python 3.11 or later required):
144
143
 
145
144
  ```bash
146
145
  $ pip install pycontrails
@@ -1,79 +1,80 @@
1
- pycontrails-0.57.0.dist-info/RECORD,,
2
- pycontrails-0.57.0.dist-info/WHEEL,sha256=sunMa2yiYbrNLGeMVDqEA0ayyJbHlex7SCn1TZrEq60,136
3
- pycontrails-0.57.0.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
4
- pycontrails-0.57.0.dist-info/METADATA,sha256=hMlpeGFk6SKCi-56vcSantrPjYPn4lD_eF9LyZaxetE,9129
5
- pycontrails-0.57.0.dist-info/licenses/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
6
- pycontrails-0.57.0.dist-info/licenses/NOTICE,sha256=fiBPdjYibMpDzf8hqcn7TvAQ-yeK10q_Nqq24DnskYg,1962
7
- pycontrails/_version.py,sha256=nChqOuolnzO53ha9g4Di1DOVXj5DhnPGthV03BPY4tY,714
1
+ pycontrails-0.59.0.dist-info/RECORD,,
2
+ pycontrails-0.59.0.dist-info/WHEEL,sha256=sunMa2yiYbrNLGeMVDqEA0ayyJbHlex7SCn1TZrEq60,136
3
+ pycontrails-0.59.0.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
4
+ pycontrails-0.59.0.dist-info/METADATA,sha256=s3R-ww4kBEE-scE3ZTAxgvdndp--LPpmF1Bgoa9dofc,9081
5
+ pycontrails-0.59.0.dist-info/licenses/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
6
+ pycontrails-0.59.0.dist-info/licenses/NOTICE,sha256=fiBPdjYibMpDzf8hqcn7TvAQ-yeK10q_Nqq24DnskYg,1962
7
+ pycontrails/_version.py,sha256=4JDTQzRvD4h--EgLI4W50oyfLqa3M8rQJJovGr52AZA,714
8
8
  pycontrails/__init__.py,sha256=9ypSB2fKZlKghTvSrjWo6OHm5qfASwiTIvlMew3Olu4,2037
9
9
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pycontrails/core/rgi_cython.cpython-311-darwin.so,sha256=gH01DnPP9rVg7TX1RnV5jf9v6VotzCS5xFOcsL6kM_M,360832
11
- pycontrails/core/vector.py,sha256=mQG1NmULztZjTK7O4waiggiR_4dA7LhTeuyQnLJRHsE,73650
10
+ pycontrails/core/rgi_cython.cpython-311-darwin.so,sha256=MSxuIqBwVwLT7fZm9tVTD-Eqzn3bdAfhNrid12RGpRo,341568
11
+ pycontrails/core/vector.py,sha256=hms3hea2Y86LOuZFfOqzGZToqpOVksgXikM_S5w355w,73498
12
12
  pycontrails/core/models.py,sha256=3mDTqp1V5aae9akuYwbMGIUEkESKSYTjZeyu2IiMW7s,43915
13
- pycontrails/core/interpolation.py,sha256=wovjj3TAf3xonVxjarclpvZLyLq6N7wZQQXsI9hT3YA,25713
14
- pycontrails/core/fleet.py,sha256=3uRByONZW8yHiS2gmgwOozVm6ksUVdsy6Gyf6jYjSPY,16703
15
- pycontrails/core/flight.py,sha256=_a4AJjewA_lcW_qjBPga9z6JlVAev-es_M8TFVyX_1E,81590
13
+ pycontrails/core/interpolation.py,sha256=vttZiW78RnHmzLv2lmflwR9po3ghRxwT7MtAj49WvUY,24836
14
+ pycontrails/core/fleet.py,sha256=a_vVwAjMbjkhszg7ejP3V0yly_wJ9Va_OQEATG-9UHw,16572
15
+ pycontrails/core/flight.py,sha256=dmqO1PxADMHIcK9U8XSnuXbP59ftQgeKvdI2xGP04ig,81460
16
16
  pycontrails/core/fuel.py,sha256=kJZ3P1lPm1L6rdPREM55XQ-VfJ_pt35cP4sO2Nnvmjs,4332
17
- pycontrails/core/polygon.py,sha256=g7YqWzUbOHWT65XrLqLUZLrQXYcx_x1NcJ041-Cj7UY,18070
18
- pycontrails/core/cache.py,sha256=Zng2edpSKYNyrkD4j1omYMCzJ7Lm762YJnUmqoVu1Z4,28161
17
+ pycontrails/core/polygon.py,sha256=kXYwj1Xy-mo8GEWXFAO_OJEtZbGx11DE_sZw6iyNvN4,17995
18
+ pycontrails/core/cache.py,sha256=JQIy1sQf0Vil7wlEk9ZIvVacnOD4wM3X8-UkMFjR2wQ,28177
19
19
  pycontrails/core/__init__.py,sha256=p0O09HxdeXU0X5Z3zrHMlTfXa92YumT3fJ8wJBI5ido,856
20
20
  pycontrails/core/flightplan.py,sha256=0mvA3IO19Sap-7gwpmEIV35_mg6ChvajwhurvjZZt_U,7521
21
- pycontrails/core/met.py,sha256=O9W6RaEwUsg7ZERR47Q-6fYjg13BzOZtcQdw92444xg,103987
22
- pycontrails/core/aircraft_performance.py,sha256=Kk_Rb61jDOWPmCQHwn2jR5vMPmB8b3aq1iTWfiUMj9U,28232
21
+ pycontrails/core/met.py,sha256=C_2NoRovK6Irz20XyDDLNYRfOwfHcOFtI9hE-IeuvHA,104859
22
+ pycontrails/core/aircraft_performance.py,sha256=CPIgIi5nUuCHiNVLAvZcWECRfakmMd-wUWd3lMA6oGM,28204
23
23
  pycontrails/core/airports.py,sha256=CzZrgJNZ7wtNv8vg9sJczMhFov7k0gmrGR4tRKCH8i8,6782
24
24
  pycontrails/core/met_var.py,sha256=g69vqbxpJeXEQU8vrrcoUR1PX3zCo2-k3au1Lv2TiIw,12027
25
25
  pycontrails/core/coordinates.py,sha256=0ySsHtqTon7GMbuwmmxMbI92j3ueMteJZh4xxNm5zto,5391
26
- pycontrails/datalib/goes.py,sha256=kZIhx1cKIcNtIxQ3IiuN45aCpwDzzTOxi0Y4fjyaOLs,27481
26
+ pycontrails/datalib/goes.py,sha256=QFy7peNrfQcmujEcmUzK8zR1xBxli2vHxqak84PtYTc,27632
27
27
  pycontrails/datalib/landsat.py,sha256=6ylDkAjnyX7b4ZbHn4bprO8HB8ADPFyMkwWehIs8FLg,20915
28
28
  pycontrails/datalib/geo_utils.py,sha256=w6VYhJQeMpBXaBclqANv4Nn0yqPIxlQr6GTUpjArTj0,9070
29
29
  pycontrails/datalib/__init__.py,sha256=hW9NWdFPC3y_2vHMteQ7GgQdop3917MkDaf5ZhU2RBY,369
30
+ pycontrails/datalib/gruan.py,sha256=n-MI2iCAi3FdlbuWJKSYJFeKCtiRn3e-o4pRrUOC_dU,11673
30
31
  pycontrails/datalib/sentinel.py,sha256=ed1l1avq8lBvQinY_vNSsWRcpqxUdAPY61AGyPcLawo,23532
31
- pycontrails/datalib/himawari/himawari.py,sha256=G1YHa3b_l1J0tnk_TOz4dUCn-Q522rT6RR7lS3-NPE8,23120
32
+ pycontrails/datalib/himawari/himawari.py,sha256=GueKQsytmuy4ojaECnRq-PZKNfIcJLvftDn56fqwMLQ,23424
32
33
  pycontrails/datalib/himawari/__init__.py,sha256=SWupVbeuyK07IPDCgiNjN6hoLB7hlceabJ3fixhDkl0,619
33
- pycontrails/datalib/himawari/header_struct.py,sha256=Eu2tf5BXNDkW7VH-bSGCOwnrOiKNv73eCBrY09r0UPo,9954
34
- pycontrails/datalib/_met_utils/metsource.py,sha256=B4Gd9gkfMMlXe-xc_xcNNZAJ0gOeRelvrBsFyk6tEs4,24151
34
+ pycontrails/datalib/himawari/header_struct.py,sha256=WbPkNBNUVm8tGKU8wpj4rldY17g5MHQ_OfbWicZSokc,9975
35
+ pycontrails/datalib/_met_utils/metsource.py,sha256=mlKcRko5ZKuYK5uwWn6AAgUSJLMQAYq1nFqskVMGgYo,23999
35
36
  pycontrails/datalib/ecmwf/arco_era5.py,sha256=7HXQU5S02PzX9Ew2ZrDKSp0tDEG1eeVAvbP3decmm20,12437
36
37
  pycontrails/datalib/ecmwf/era5.py,sha256=4ULNdDlUN0kP6Tbp8D_-Bc12nAsLf0iNfZaDoj_AoZU,18952
37
38
  pycontrails/datalib/ecmwf/era5_model_level.py,sha256=AO7ePIGZtavx5nQSPYP4p07RNZeg3bbzmoZC7RUC4Gg,19354
38
- pycontrails/datalib/ecmwf/hres.py,sha256=isRQkybVZyKxVvqpQyGQsMtePFfv_qqAMBQ98wDLYtc,29680
39
+ pycontrails/datalib/ecmwf/hres.py,sha256=tvIXPJjXgijtVdsSyPGtvKf0h5GUczBSsovKEbCgBxg,29624
39
40
  pycontrails/datalib/ecmwf/variables.py,sha256=lU3BNe265XVhCXvdMwZqfkWQwtsetZxVRLSfPqHFKAE,9913
40
41
  pycontrails/datalib/ecmwf/hres_model_level.py,sha256=CcxMKiFJyLvM9njmBVywAXJxyWE7atsgHXBubKJQqHM,17779
41
42
  pycontrails/datalib/ecmwf/__init__.py,sha256=wdfhplEaW2UKTItIoshTtVEjbPyfDYoprTJNxbKZuvA,2021
42
- pycontrails/datalib/ecmwf/common.py,sha256=qRMSzDQikGMi3uqvz-Y57e3biHPzSoVMfUwOu9iTxHc,4024
43
- pycontrails/datalib/ecmwf/model_levels.py,sha256=_kgpnogaS6MlfvTX9dB5ASTHFUlZuQ_DRb-VADwEa0k,16996
44
- pycontrails/datalib/ecmwf/ifs.py,sha256=0swHe6tFc5Fbu9e4_jREW0H-xYHYLtxjNoE3aUUlgvc,10761
43
+ pycontrails/datalib/ecmwf/common.py,sha256=axOxvdrey9YD34uk0Ocav08MxKvC2uVaiwvyQgFZMEw,3970
44
+ pycontrails/datalib/ecmwf/model_levels.py,sha256=xdH2B5KvzAIk2_OIOgZXFIZ6ndR6MxxqZsvstO0cNmg,16996
45
+ pycontrails/datalib/ecmwf/ifs.py,sha256=_1UarorPp9VlgFZc-NnZy8YnfEqBdp7GV1A-ye6JqS8,10733
45
46
  pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv,sha256=PmvGLRzn6uuCKSwiasSuVcehvvmSaqP7cnLuN6hhCQQ,9788
46
- pycontrails/datalib/gfs/gfs.py,sha256=ROFxCiLudxyMqdSJAVNecKbP1nWZktiRK8Gyjede2wg,22266
47
+ pycontrails/datalib/gfs/gfs.py,sha256=VqS0MRLawgzkBDpjDUYoswXByIy6XUqA9XP7lM1ueBk,22238
47
48
  pycontrails/datalib/gfs/variables.py,sha256=4ALR4zhYW8tQVlNVHrd0CK8oRNSe_2OkW3ELeaImtAI,3135
48
49
  pycontrails/datalib/gfs/__init__.py,sha256=pXNjb9cJC6ngpuCnoHnmVZ2RHzbHZ0AlsyGvgcdcl2E,684
49
50
  pycontrails/datalib/spire/spire.py,sha256=h25BVgSr7E71Ox3-y9WgqFvp-54L08yzb2Ou-iMl7wM,24242
50
51
  pycontrails/datalib/spire/__init__.py,sha256=3-My8yQItS6PL0DqXgNaltLqvN6T7nbnNnLD-sy7kt4,186
51
52
  pycontrails/datalib/spire/exceptions.py,sha256=U0V_nZTLhxJwrzldvU9PdESx8-zLddRH3FmzkJyFyrI,1714
52
- pycontrails/datalib/leo_utils/sentinel_metadata.py,sha256=h5ieEwtmeAAtiIBdfOF8HaoE121ba0DrKb7dLvuaAeI,25506
53
+ pycontrails/datalib/leo_utils/sentinel_metadata.py,sha256=UXpv0XPmtQezVfprcFYNlRpV7nherCDW4oKStBZTdT8,25552
53
54
  pycontrails/datalib/leo_utils/landsat_metadata.py,sha256=B455-Yq6HTj0Se0dS4c_2F5ZjcATu2yNK1gyoIlgLMg,10628
54
55
  pycontrails/datalib/leo_utils/__init__.py,sha256=-SEAc1f7zEbJHcKjgwLuhnIwte9W-ystFNLvfC4RE94,213
55
56
  pycontrails/datalib/leo_utils/vis.py,sha256=-fLcm1D5cP6lThVHovV3MJSiadWyTUAvYDMvr4drMU4,1802
56
57
  pycontrails/datalib/leo_utils/search.py,sha256=KbHQ2GARacDuUz3zEJuATSga-R32dQFVTqhZgndHUZI,8686
57
58
  pycontrails/datalib/leo_utils/correction.py,sha256=cHf4PhHNYMqdVAFYNiTnjcVyqr1vCBMCKi0IjKB_3pw,9564
58
59
  pycontrails/datalib/leo_utils/static/bq_roi_query.sql,sha256=xq6-tJyz0-bUwW0KjQymqygjH3WlQBmyBtP7Ci7SBe8,260
59
- pycontrails/ext/synthetic_flight.py,sha256=wROBQErfr_IhEPndC97fuWbnZQega2Z89VhzoXzZMO8,16802
60
+ pycontrails/ext/synthetic_flight.py,sha256=DdDy1gih8bwdBjsTsvi4mK3lJhcNKlhyllpOWaaASio,16770
60
61
  pycontrails/ext/cirium.py,sha256=DFPfRwLDwddpucAPRQhyT4bDGh0VvvoViMUd3pidam8,415
61
62
  pycontrails/ext/empirical_grid.py,sha256=FPNQA0x4nVwBXFlbs3DgIapSrXFYhoc8b8IX0M4xhBc,4363
62
63
  pycontrails/ext/bada.py,sha256=YlQq4nnFyWza1Am2e2ZucpaICHDuUFRTrtVzIKMzf9s,1091
63
- pycontrails/utils/iteration.py,sha256=q_vb39VjxRr4hqTyPYko3gK4sboJOJf_Evq6m_2DL-g,319
64
+ pycontrails/utils/iteration.py,sha256=YGcex8pBDegU9dbDJmarxqdPzebAk_Gnc8DK3khY9SY,324
64
65
  pycontrails/utils/__init__.py,sha256=Gt_57sBgfliFSxx9sDpuchykFDxmM11Wg9xAeSqPcnI,32
65
66
  pycontrails/utils/types.py,sha256=1AaY1x_qGlYAl08xg6PS0MPKm3OZwFBM7xLI_nHK7EY,4869
66
67
  pycontrails/utils/temp.py,sha256=lGU0b_R8ze4yKlsOusHIIBaoNFBrmrB3vBjgHRlfcXk,1109
67
68
  pycontrails/utils/json.py,sha256=oTiO8xh603esfBGaGVmA5eUzR0NhAqNpQCegMMgnSbg,5896
68
69
  pycontrails/utils/dependencies.py,sha256=ATP45xYdUbIyGFzgbOe5SbokMytvB84TcexUEFnEUZE,2559
69
- pycontrails/models/extended_k15.py,sha256=uZ32wC5HNCJ5M9u4V4x10QoXn2hZRZy1tKcSvNJE0K4,47978
70
+ pycontrails/models/extended_k15.py,sha256=ZNL1XDvw-aG24_zGbP6Xkn203oVNqIwMau2exkiADS0,47994
70
71
  pycontrails/models/pcc.py,sha256=0Qdl4u8PmUEpNYd398glTChkbTwsh83wYPt0Bmi8qd8,11068
71
- pycontrails/models/tau_cirrus.py,sha256=2Z4egt-QFprkyITRgtarA5alOTTQRQbjzgmSqE49_1g,5778
72
+ pycontrails/models/tau_cirrus.py,sha256=wMhh8xQ1byW9WdzRSJIAVDMeyZTBl_PUKMXdF6Zy1uE,5740
72
73
  pycontrails/models/__init__.py,sha256=dQTOLQb7RdUdUwslt5se__5y_ymbInBexQmNrmAeOdE,33
73
74
  pycontrails/models/issr.py,sha256=_qIKDgO0Owxeb0Q4WJlxcn1FJEvF3QDU-cqh2fpDsBo,7404
74
- pycontrails/models/sac.py,sha256=8Vx5wg4-Kb8l4GK67wp7VNVpdFM4Wyux1xKuNrjZ_IQ,15516
75
+ pycontrails/models/sac.py,sha256=xTPTuCwYf8_goC5xJXxRl0NRZADuNOzyGJh13cuunQM,15490
75
76
  pycontrails/models/accf.py,sha256=_tunWpw1sYW8ES8RvpdhNahXwaf4LwdHMEdXhv7-cCI,13566
76
- pycontrails/models/dry_advection.py,sha256=3Vf-oug6an4WRHBOMlXZMsD7B6lx-ieMr-8mkSQyP3c,20496
77
+ pycontrails/models/dry_advection.py,sha256=CwR37hwQEAWNrFKBrCjUmaaB3D-ToaQrxq2x7Ek5Hc4,20470
77
78
  pycontrails/models/pcr.py,sha256=Xde0aF8cMV9jTQ_uI2UvdHSLqotVUgPutb1Wgq7LtfY,5374
78
79
  pycontrails/models/emissions/__init__.py,sha256=CZB2zIkLUI3NGNmq2ddvRYjEtiboY6PWJjiEiXj_zII,478
79
80
  pycontrails/models/emissions/ffm2.py,sha256=mAvBHnp-p3hIn2fjKGq50eaMHi0jcb5hA5uXbJGeE9I,12068
@@ -87,36 +88,36 @@ pycontrails/models/apcemm/inputs.py,sha256=88GylkiaymEW_XZeFxLsICI9wV6kl8wVYsuyT
87
88
  pycontrails/models/apcemm/utils.py,sha256=Ex6EqXin6yoJv2WWhBotSzhjzUlFNZm2MDgL4CvvX6E,17082
88
89
  pycontrails/models/apcemm/apcemm.py,sha256=rKvIaEsqtLbZ5h4o4EOY4Ge4-HdPn2X4M1lEUFDvr68,39975
89
90
  pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=uAZkc57OUvDMjgX6F5f6hgDh3Hgg1NbHWRUFSiv0DEI,6745
90
- pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=ntNnhqo-lLvuQ6ntApDAtalZF6vmF8bK0PKUgmIye8c,38579
91
+ pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=l5S63mH6K5DOWk8LYtlbOz8wNbJQBcWd-DqCBUxKsik,38595
91
92
  pycontrails/models/humidity_scaling/__init__.py,sha256=nqsab_j9BCwMbTfCn4BjXMdhItlvNKkgUJ9-lb8RyIo,1119
92
93
  pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq,sha256=tfYhbafF9Z-gGCg6VQ1YBlOaK_01e65Dc6s9b-hQ6Zo,286375
93
94
  pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq,sha256=pShCvNUo0NYtAHhT9IBRuj38X9jejdlKfv-ZoOKmtKI,35943
94
95
  pycontrails/models/cocip/radiative_forcing.py,sha256=WleEc6hqrAlqJYtL3oZjRW7gJr_pPQNESJdOXi6oKqE,44686
95
96
  pycontrails/models/cocip/wind_shear.py,sha256=m6ZlWjORfI-lI-D74Z_dIMOHnK4FDYmkb0S6vSpKTO8,3868
96
97
  pycontrails/models/cocip/cocip.py,sha256=PgNuBzvTdkrANCjS_N9GscOkT9WXTaQUkI-IGxmMG9g,104847
97
- pycontrails/models/cocip/output_formats.py,sha256=dBT5-1yJsX_T_EoVhuja8ow4u-WlJRJ-7DihCgkyl7U,83980
98
+ pycontrails/models/cocip/output_formats.py,sha256=nnEfwBdWRE7InoL9f8YLVtqK3cN4izbKuRMYds_6qOU,83950
98
99
  pycontrails/models/cocip/__init__.py,sha256=CWrkNd6S3ZJq04pjTc2W22sVAJeJD3bJJRy_zLW8Kkc,962
99
100
  pycontrails/models/cocip/cocip_params.py,sha256=BWmTt6yE4m-LM7lyCtj05FK3wVvU9n7iVnuauGq3jtA,12808
100
101
  pycontrails/models/cocip/wake_vortex.py,sha256=F5S8n4eBrBM-7qNcVUtX3IrXD7Kt9pWnrKj6UK-HGeA,14555
101
- pycontrails/models/cocip/cocip_uncertainty.py,sha256=jjejXM6Cd3icJuiQ9_T_qU0B983t6_2sRwQJiZxQ36o,12249
102
+ pycontrails/models/cocip/cocip_uncertainty.py,sha256=TZ85xAbDc5zRgQKP7wb3AfHoUIvkfHycuX86dwZCqwM,12257
102
103
  pycontrails/models/cocip/radiative_heating.py,sha256=1U4SQWwogtyQ2u6J996kAHP0OfpZ3hH2_x4Cyt3Cy8U,18984
103
- pycontrails/models/cocip/contrail_properties.py,sha256=TpKzY7ZXLjbSKKGU6CVRLiFB_bp2O9YU6PXuLkAs1T0,55741
104
+ pycontrails/models/cocip/contrail_properties.py,sha256=V1ACeeYaD_a_piqarEnjzxOvYh7cP-1c-xaWv5Kgc8U,55703
104
105
  pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=bIRS-Z4MRMdkYtth2RaDe5h1ZN0HvCE_Sw96PXQEHKQ,18931
105
106
  pycontrails/models/ps_model/__init__.py,sha256=Fuum5Rq8ya8qkvbeq2wh6NDo-42RCRnK1Y-2syYy0Ck,553
106
107
  pycontrails/models/ps_model/ps_model.py,sha256=fgFekJpGuAu73KvpfLhlAbIwR7JJGwQpLILWmrONywc,31925
107
108
  pycontrails/models/ps_model/ps_aircraft_params.py,sha256=I2nBkdnRo9YGMn-0k35ooYpzPNJkHyEH5cU3K-Cz8b0,13350
108
109
  pycontrails/models/ps_model/ps_operational_limits.py,sha256=XwMHO8yu8EZUWtxRgjRKwxmCrmKGoHO7Ob6nlfkrthI,16441
109
- pycontrails/models/ps_model/ps_grid.py,sha256=rBsCEQkGY4cTf57spF0sqCfOo4oC4auE8ngS_mcl0VM,26207
110
+ pycontrails/models/ps_model/ps_grid.py,sha256=IvBkPAJI3bAv8xx4pRZ6x4Sv8Pei1gmp5utTWhY9wgI,26169
110
111
  pycontrails/models/ps_model/static/ps-aircraft-params-20250328.csv,sha256=LUYuWozE8fv4ZxuPhQIyVi0Kz4aYGyRjPcH5bSl4oNs,26185
111
112
  pycontrails/models/ps_model/static/ps-synonym-list-20250328.csv,sha256=phtrf0m-UYQ7gjoKtIIwINzftTSNd-Bwe9CPen_Gvc8,1048
112
113
  pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=l4vBPrOKCJDz5Y1uMjmOGVyUcSWgfZtFWbjW968OPz8,5875
113
114
  pycontrails/models/cocipgrid/__init__.py,sha256=ar6bF_8Pusbb-myujz_q5ntFylQTNH8yiM8fxP7Zk30,262
114
- pycontrails/models/cocipgrid/cocip_grid.py,sha256=k0IfdWJcCXdsuLZUEczPp3-QeKUPy7zpzk3nZnFG8Y8,92678
115
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=4BOmSMQEKxl4DYluq7q8bh1DWKlgNGw0N--0qaguomA,92633
115
116
  pycontrails/physics/geo.py,sha256=ITK23l1A2lzjNPTFC8ZKyQH59I5Cy_TvuvM_gbALo94,36297
116
117
  pycontrails/physics/units.py,sha256=p-6PzFLpVCMpvmfrhXVh3Hs-nMJw9Y1x-hvgnL9Lo9c,12281
117
118
  pycontrails/physics/constants.py,sha256=JHYL2IJY7del2BE_1QfKaEwtIwkbtyHvyxlm_JPHR90,3201
118
119
  pycontrails/physics/__init__.py,sha256=_1eWbEy6evEWdfJCEkwDiSdpiDNzNWEPVqaPekHyhwU,44
119
- pycontrails/physics/thermo.py,sha256=v7-66PE31SJXz45MXAB9Iq9XfPg1Sn5FpOsTngLaDDI,15406
120
+ pycontrails/physics/thermo.py,sha256=bKn1rlHHIoLvkrd42Vpox6pQVAu4OjonYSmxXXFvPug,15338
120
121
  pycontrails/physics/jet.py,sha256=Je1d3vgbBEaVIAL1WZ3C-4p2f9fy9dWOjP5vFVsGGh8,30358
121
122
  pycontrails/physics/static/iata-cargo-load-factors-20250221.csv,sha256=ixsnQk1DyGxHMo0pDy4aOoQIwgOyrGfhMRPumEwPMBc,3841
122
123
  pycontrails/physics/static/iata-passenger-load-factors-20250221.csv,sha256=Q2olRIqUpbOaavvM5ikG8m1v1YQAN3KLNHeFDPvM53Q,3835