pycontrails 0.49.5__cp312-cp312-macosx_11_0_arm64.whl → 0.50.1__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 (32) hide show
  1. pycontrails/_version.py +2 -2
  2. pycontrails/core/datalib.py +60 -38
  3. pycontrails/core/flight.py +11 -6
  4. pycontrails/core/interpolation.py +39 -1
  5. pycontrails/core/met.py +14 -16
  6. pycontrails/core/met_var.py +2 -2
  7. pycontrails/core/models.py +7 -3
  8. pycontrails/core/rgi_cython.cpython-312-darwin.so +0 -0
  9. pycontrails/core/vector.py +15 -13
  10. pycontrails/datalib/ecmwf/__init__.py +4 -0
  11. pycontrails/datalib/ecmwf/arco_era5.py +577 -0
  12. pycontrails/datalib/ecmwf/common.py +1 -1
  13. pycontrails/datalib/ecmwf/era5.py +2 -5
  14. pycontrails/datalib/ecmwf/variables.py +18 -0
  15. pycontrails/datalib/gfs/gfs.py +2 -2
  16. pycontrails/datalib/goes.py +14 -12
  17. pycontrails/models/cocip/cocip.py +48 -8
  18. pycontrails/models/cocip/cocip_params.py +20 -1
  19. pycontrails/models/cocip/contrail_properties.py +4 -9
  20. pycontrails/models/cocip/unterstrasser_wake_vortex.py +403 -0
  21. pycontrails/models/cocip/wake_vortex.py +22 -1
  22. pycontrails/models/cocipgrid/cocip_grid.py +103 -6
  23. pycontrails/models/cocipgrid/cocip_grid_params.py +25 -19
  24. pycontrails/models/issr.py +1 -1
  25. pycontrails/physics/constants.py +6 -0
  26. pycontrails/utils/dependencies.py +13 -11
  27. {pycontrails-0.49.5.dist-info → pycontrails-0.50.1.dist-info}/METADATA +4 -2
  28. {pycontrails-0.49.5.dist-info → pycontrails-0.50.1.dist-info}/RECORD +32 -30
  29. {pycontrails-0.49.5.dist-info → pycontrails-0.50.1.dist-info}/WHEEL +1 -1
  30. {pycontrails-0.49.5.dist-info → pycontrails-0.50.1.dist-info}/LICENSE +0 -0
  31. {pycontrails-0.49.5.dist-info → pycontrails-0.50.1.dist-info}/NOTICE +0 -0
  32. {pycontrails-0.49.5.dist-info → pycontrails-0.50.1.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- """Default CocipGrid parameters."""
1
+ """Default :class:`CocipGrid` parameters."""
2
2
 
3
3
  from __future__ import annotations
4
4
 
@@ -17,7 +17,7 @@ class CocipGridParams(CocipParams):
17
17
  # Algorithm
18
18
  # ---------
19
19
 
20
- #: Approximate size of a typical `np.array` used with in CoCiP calculations.
20
+ #: Approximate size of a typical :class:`numpy.ndarray` used with in CoCiP calculations.
21
21
  #: The 4-dimensional array defining the waypoint is raveled and split into
22
22
  #: batches of this size.
23
23
  #: A smaller number for this parameter will reduce memory footprint at the
@@ -26,25 +26,27 @@ class CocipGridParams(CocipParams):
26
26
 
27
27
  #: Additional boost to target split size before SAC is computed. For typical meshes, only
28
28
  #: 10% of waypoints will survive SAC and initial downwash filtering. Accordingly, this parameter
29
- #: magnifies mesh split size before SAC is computed.
29
+ #: magnifies mesh split size before SAC is computed. See :attr:`target_split_size`.
30
30
  target_split_size_pre_SAC_boost: float = 3.0
31
31
 
32
- #: Display `tqdm` progress bar showing batch evaluation progress.
32
+ #: Display ``tqdm`` progress bar showing batch evaluation progress.
33
33
  show_progress: bool = True
34
34
 
35
35
  # ------------------
36
36
  # Simulated Aircraft
37
37
  # ------------------
38
38
 
39
- #: Nominal segment length to place at each grid point [unit `m`]. Round-off error
39
+ #: Nominal segment length to place at each grid point [:math:`m`]. Round-off error
40
40
  #: can be problematic with a small nominal segment length and a large
41
- #: `dt_integration` parameter. On the other hand, too large of a nominal segment
42
- #: length diminishes the "locality" of the grid point.
41
+ #: :attr:`dt_integration` parameter. On the other hand,
42
+ #: too large of a nominal segment length diminishes the "locality" of the grid point.
43
43
  #:
44
- #: .. versionadded 0.32.2:: EXPERIMENTAL: If None, run CoCiP in "segment-free"
45
- #: mode. This mode does not include any terms involving segments (wind shear,
46
- #: segment_length, any derived terms). See :attr:`CocipGridParams.azimuth`
47
- #: and :attr:`CocipGridParams.dsn_dz_factor` for more details.
44
+ #: .. versionadded:: 0.32.2
45
+ #:
46
+ #: EXPERIMENTAL: If None, run CoCiP in "segment-free"
47
+ #: mode. This mode does not include any terms involving segments (wind shear,
48
+ #: segment length, any derived terms). See :attr:`azimuth`
49
+ #: and :attr:`dsn_dz_factor` for more details.
48
50
  segment_length: float | None = 1000.0
49
51
 
50
52
  #: Fuel type
@@ -60,10 +62,13 @@ class CocipGridParams(CocipParams):
60
62
 
61
63
  #: Navigation bearing [:math:`\deg`] measured in clockwise direction from
62
64
  #: true north, by default 0.0.
63
- #: .. versionadded 0.32.2:: EXPERIMENTAL: If None, run CoCiP in "segment-free"
64
- #: mode. This mode does not include any terms involving segments (wind shear,
65
- #: segment_length, any derived terms), unless :attr:`CocipGridParams.dsn_dz_factor`
66
- #: is non-zero.
65
+ #:
66
+ #: .. versionadded:: 0.32.2
67
+ #:
68
+ #: EXPERIMENTAL: If None, run CoCiP in "segment-free"
69
+ #: mode. This mode does not include any terms involving segments (wind shear,
70
+ #: segment_length, any derived terms), unless :attr:`dsn_dz_factor`
71
+ #: is non-zero.
67
72
  azimuth: float | None = 0.0
68
73
 
69
74
  #: Experimental parameter used to approximate ``dsn_dz`` from ``ds_dz`` via
@@ -73,7 +78,7 @@ class CocipGridParams(CocipParams):
73
78
  #: ``dsn_dz_factor = 0.665`` adequately approximates the mean EF predictions
74
79
  #: of :class:`CocipGrid` over all azimuths.
75
80
  #:
76
- #: .. versionadded:: 0.32.2.
81
+ #: .. versionadded:: 0.32.2
77
82
  dsn_dz_factor: float = 0.0
78
83
 
79
84
  #: --------------------
@@ -90,7 +95,7 @@ class CocipGridParams(CocipParams):
90
95
  #: :attr:`aircraft_performance` model is used to estimate the aircraft mass.
91
96
  aircraft_mass: float | None = None
92
97
 
93
- #: Cruising true airspeed, [:math:`m * s^{-1}`]. If included in :attr:`CocipGrid.source`,
98
+ #: Cruising true airspeed, [:math:`m \ s^{-1}`]. If included in :attr:`CocipGrid.source`,
94
99
  #: this parameter is unused. Otherwise, if this parameter is None, the
95
100
  #: :attr:`aircraft_performance` model is used to estimate the true airspeed.
96
101
  true_airspeed: float | None = None
@@ -100,13 +105,14 @@ class CocipGridParams(CocipParams):
100
105
  #: :attr:`aircraft_performance` model is used to estimate the engine efficiency.
101
106
  engine_efficiency: float | None = None
102
107
 
103
- #: Nominal fuel flow, [:math:`kg s^{-1}`]. If included in :attr:`CocipGrid.source`,
108
+ #: Nominal fuel flow, [:math:`kg \ s^{-1}`]. If included in :attr:`CocipGrid.source`,
104
109
  #: this parameter is unused. Otherwise, if this parameter is None, the
105
110
  #: :attr:`aircraft_performance` model is used to estimate the fuel flow.
106
111
  fuel_flow: float | None = None
107
112
 
108
113
  #: Aircraft performance model. Required unless ``source`` or ``params``
109
114
  #: provide all of the following variables:
115
+ #:
110
116
  #: - wingspan
111
117
  #: - true_airspeed (or mach_number)
112
118
  #: - fuel_flow
@@ -123,7 +129,7 @@ class CocipGridParams(CocipParams):
123
129
  # ------------
124
130
 
125
131
  #: Attach additional formation specific data to the output. If True, attach
126
- #: all possible formation data. See :ref:pycontrails.models.cocipgrid.cocip_grid`
132
+ #: all possible formation data. See :mod:`pycontrails.models.cocipgrid.cocip_grid`
127
133
  #: for a list of supported formation data.
128
134
  verbose_outputs_formation: bool | set[str] = False
129
135
 
@@ -59,7 +59,7 @@ class ISSR(Model):
59
59
  >>> out1 = model.eval()
60
60
  >>> issr1 = out1["issr"]
61
61
  >>> issr1.proportion # Get proportion of values with ice supersaturation
62
- 0.114140
62
+ 0.11414134603859523
63
63
 
64
64
  >>> # Run with a lower threshold
65
65
  >>> out2 = model.eval(rhi_threshold=0.95)
@@ -18,10 +18,16 @@ g: float = 9.80665
18
18
  #: Radius of Earth :math:`[m]`
19
19
  radius_earth: float = 6371229.0
20
20
 
21
+ #: Surface area of Earth :math:`[m^2]`
22
+ surface_area_earth: float = 5.10072e14
23
+
21
24
  #: ISA height of the tropopause :math:`[m]`
22
25
  #: :cite:`wikipediacontributorsInternationalStandardAtmosphere2023`
23
26
  h_tropopause: float = 11000.0
24
27
 
28
+ #: Seconds in a Julian year :math:`[s]`
29
+ seconds_per_year: float = 3.15576e7
30
+
25
31
  # -------------
26
32
  # Thermodynamic
27
33
  # -------------
@@ -1,4 +1,4 @@
1
- """Raise ``ModuleNotFoundError`` when dependencies are not met."""
1
+ """Raise ``ImportError`` when dependencies are not met."""
2
2
 
3
3
  from __future__ import annotations
4
4
 
@@ -8,30 +8,32 @@ from typing import NoReturn
8
8
  def raise_module_not_found_error(
9
9
  name: str,
10
10
  package_name: str,
11
- module_not_found_error: ModuleNotFoundError,
11
+ module_not_found_error: ImportError,
12
12
  pycontrails_optional_package: str | None = None,
13
13
  extra: str | None = None,
14
14
  ) -> NoReturn:
15
- """Raise ``ModuleNotFoundError`` with a helpful message.
15
+ """Raise ``ImportError`` with a helpful message.
16
16
 
17
17
  Parameters
18
18
  ----------
19
19
  name : str
20
- The name describing the context of the ``ModuleNotFoundError``. For example,
20
+ The name describing the context of the ``ImportError``. For example,
21
21
  if the module is required for a specific function, the name could be
22
22
  "my_function function". If the module is required for a specific method,
23
23
  the name could be "MyClass.my_method method". If the module is required
24
- for an entire pycontrails module, the name could be "my_module module".
24
+ for an entire ``pycontrails`` module, the name could be "my_module module".
25
25
  package_name : str
26
26
  The name of the package that is required. This should be the full name of
27
27
  the python package, which may be different from the name of the module
28
28
  that is actually imported. For example, if ``import sklearn`` triggers
29
- the ``ModuleNotFoundError``, the ``package_name`` should be "scikit-learn".
30
- module_not_found_error : ModuleNotFoundError
31
- The ``ModuleNotFoundError`` that was raised. This is simply passed to the
32
- ``from`` clause of the ``raise`` statement below.
29
+ the ``ImportError``, the ``package_name`` should be "scikit-learn".
30
+ module_not_found_error : ImportError
31
+ The ``ImportError`` that was raised. This is passed to the
32
+ ``from`` clause of the ``raise`` statement below. The subclass of the
33
+ ``ImportError`` is preserved (e.g., ``ModuleNotFoundError`` or
34
+ ``ImportError``).
33
35
  pycontrails_optional_package : str, optional
34
- The name of the optional pycontrails package that can be used to
36
+ The name of the optional ``pycontrails`` package that can be used to
35
37
  install the required package. See the ``pyproject.toml`` file.
36
38
  extra : str, optional
37
39
  Any extra information that should be included in the error message.
@@ -61,4 +63,4 @@ def raise_module_not_found_error(
61
63
  if extra:
62
64
  msg = f"{msg} {extra}"
63
65
 
64
- raise ModuleNotFoundError(msg) from module_not_found_error
66
+ raise type(module_not_found_error)(msg) from module_not_found_error
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycontrails
3
- Version: 0.49.5
3
+ Version: 0.50.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
@@ -47,7 +47,7 @@ Requires-Dist: platformdirs >=3.0 ; extra == 'dev'
47
47
  Requires-Dist: pre-commit >=2.10 ; extra == 'dev'
48
48
  Requires-Dist: psutil ; extra == 'dev'
49
49
  Requires-Dist: pyarrow >=5.0 ; extra == 'dev'
50
- Requires-Dist: pytest >=6.1 ; extra == 'dev'
50
+ Requires-Dist: pytest >=8.1 ; extra == 'dev'
51
51
  Requires-Dist: pytest-cov >=2.11 ; extra == 'dev'
52
52
  Requires-Dist: requests >=2.25 ; extra == 'dev'
53
53
  Requires-Dist: ruff ==0.1.15 ; extra == 'dev'
@@ -72,6 +72,7 @@ Requires-Dist: ecmwf-api-client >=1.6 ; extra == 'ecmwf'
72
72
  Requires-Dist: netcdf4 >=1.6.1 ; extra == 'ecmwf'
73
73
  Requires-Dist: platformdirs >=3.0 ; extra == 'ecmwf'
74
74
  Requires-Dist: requests >=2.25 ; extra == 'ecmwf'
75
+ Requires-Dist: lxml >=5.1.0 ; extra == 'ecmwf'
75
76
  Provides-Extra: gcp
76
77
  Requires-Dist: google-cloud-storage >=2.1 ; extra == 'gcp'
77
78
  Requires-Dist: platformdirs >=3.0 ; extra == 'gcp'
@@ -102,6 +103,7 @@ Requires-Dist: seaborn >=0.11 ; extra == 'vis'
102
103
  Requires-Dist: shapely >=2.0 ; extra == 'vis'
103
104
  Provides-Extra: zarr
104
105
  Requires-Dist: fsspec >=2022.7.1 ; extra == 'zarr'
106
+ Requires-Dist: gcsfs >=2022.7.1 ; extra == 'zarr'
105
107
  Requires-Dist: zarr >=2.12 ; extra == 'zarr'
106
108
 
107
109
  # pycontrails
@@ -1,38 +1,39 @@
1
- pycontrails-0.49.5.dist-info/RECORD,,
2
- pycontrails-0.49.5.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
- pycontrails-0.49.5.dist-info/WHEEL,sha256=VdDmD53Z5Im3s3DzMnDRXVcjZVnzMxiqEPFSmUQBX3s,110
4
- pycontrails-0.49.5.dist-info/NOTICE,sha256=gKI8DcN1WhiXB2SFRKDogcjONldGubTvBxiOYdC4CXU,1926
5
- pycontrails-0.49.5.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
- pycontrails-0.49.5.dist-info/METADATA,sha256=rDzd21VDquxdBt5vofTqKPe8mJyZi4xdAVMSnjBku18,8270
7
- pycontrails/_version.py,sha256=nH-3YHqHjzaEFGxsYlRP1yKzx4o1iBZGXleKwGLmKPg,413
1
+ pycontrails-0.50.1.dist-info/RECORD,,
2
+ pycontrails-0.50.1.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
+ pycontrails-0.50.1.dist-info/WHEEL,sha256=Vo9YTsjXxZ5SWdH4n69oS5jU3YTIi3eHk0n-aUcTtlw,110
4
+ pycontrails-0.50.1.dist-info/NOTICE,sha256=gKI8DcN1WhiXB2SFRKDogcjONldGubTvBxiOYdC4CXU,1926
5
+ pycontrails-0.50.1.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
+ pycontrails-0.50.1.dist-info/METADATA,sha256=1nCqWg9spKCx-KVQMf5MoR3P6UdQUZduyUkcSpNw0UA,8367
7
+ pycontrails/_version.py,sha256=K3H_dVBJVDHyT8uwW9bvlPeCpq530Wdl5b-toKl3Ogk,413
8
8
  pycontrails/__init__.py,sha256=c_Vtz7CvdiVAL8ggluash9-8tGcLO_5Vvu-3_Ie47CE,1985
9
9
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pycontrails/core/vector.py,sha256=oAuPxKo2okFgrWZaZuBRzxyKdJ8TtsyNJf1NWoSDKfc,71672
11
- pycontrails/core/models.py,sha256=OzzVGjEi0R7bWtr9hx4NboNePJLPwYwFeZOUm19EVJ8,38874
12
- pycontrails/core/interpolation.py,sha256=8M0eO2_fX8KOquxhgMkut8E2Yg73BFWYp9wVzECJC1U,24038
10
+ pycontrails/core/vector.py,sha256=P61Rv1M040A1SRHmdWVR_RfXcWa6faM330n-9499ilI,71722
11
+ pycontrails/core/models.py,sha256=sipUAH_r0A1TxQ0yBjaPj8WC33Piw34ABHyrmRePfhg,39003
12
+ pycontrails/core/interpolation.py,sha256=FFYdUnTzGnkjoGs-FKsK3Y3nSK5lQI-mpq5HPALZ-y4,25495
13
13
  pycontrails/core/fleet.py,sha256=84oTb8RJ3-bPVvZn3O2ljMEZLwJ9Q-E455ZzQJ4QaQU,16075
14
- pycontrails/core/flight.py,sha256=ovJzPShgM_i0_Gm5EOrvWTk3vNh8K8wu4raOxXxo36g,75892
14
+ pycontrails/core/flight.py,sha256=B5CrKxuRyOD7Er7LPph6txFiLjdpNXQAgtbKOqsEPmg,76295
15
15
  pycontrails/core/fuel.py,sha256=kJZ3P1lPm1L6rdPREM55XQ-VfJ_pt35cP4sO2Nnvmjs,4332
16
16
  pycontrails/core/polygon.py,sha256=eX0gLL6OA_3658hjT0uraoyQWn4WvKYS-uxh3YCkTZY,17685
17
- pycontrails/core/datalib.py,sha256=7Lco4y-1nA0Kf1ANG7N1fCe2fCLOLzO_5PQlfnnkxfo,22520
17
+ pycontrails/core/datalib.py,sha256=tqYR69vVeY6LsKgtOYkZU1sEJNrbrwjqRPC1eK8mQaU,23270
18
18
  pycontrails/core/cache.py,sha256=rCBZiRSVoFkRwf_ay7O-eba2PaYoXdlJSz1znZPuOQk,27957
19
19
  pycontrails/core/__init__.py,sha256=4ZE7x1gMa_Q7GcgcWpPP9fQ-sTulCXWmMjsCJ0odakY,840
20
20
  pycontrails/core/flightplan.py,sha256=s7tHbjMFbHAJkSWV6hPkghuW6jDb1n5UhWAo9XbJ9z0,7349
21
- pycontrails/core/met.py,sha256=V2iHV2NZftWU5hBSWJ3Da26j27IC4j-3WbydtPS_DdY,92497
21
+ pycontrails/core/met.py,sha256=1TGotmJK6Ks_hmC8QGNknFuAWoNLiSFQuNAveCLcPyk,92303
22
22
  pycontrails/core/aircraft_performance.py,sha256=4yNGfArt741HNFjxpWvEu86BTzie9LaPjC4KH3dXYts,21966
23
23
  pycontrails/core/airports.py,sha256=aeyAXVkioIRomrP79UtNrxindL4f1DJyXFaojZCuBBw,6758
24
- pycontrails/core/met_var.py,sha256=zyXWI_9dRS4FfH1Io_k0YcIxZIsp8y4YPiC_Oayi_gs,9195
25
- pycontrails/core/rgi_cython.cpython-312-darwin.so,sha256=FNLQfFwFi_CwTOzHcBOeMIkiH2woBFgn0Bqfn4htEAA,317789
24
+ pycontrails/core/met_var.py,sha256=EhrLGdrCAp8cKb-3Whd_ttLMZn4_zLMhE-QyFinESqo,9197
25
+ pycontrails/core/rgi_cython.cpython-312-darwin.so,sha256=8cI8oBYWV3eRgRHn-a9sOjt9Pdc3bWk53hZ2SKqowNo,317789
26
26
  pycontrails/core/coordinates.py,sha256=vVITA90x0Jx-UQG2XMm3JAKKsIrFUcU861xV-L9czTI,5291
27
- pycontrails/datalib/goes.py,sha256=kNBokaIvdTaeCnAyf9dnWAegkBDVuWW9_9Rzt2RvtxY,26169
27
+ pycontrails/datalib/goes.py,sha256=Myz53yENqopOOsVT7K-M16SLvoBPPnOg-14fq6DvzdQ,26359
28
28
  pycontrails/datalib/__init__.py,sha256=s5b8W6scXgespKZjPcaC-8jyLd3FqZqN0BZccLxaGuE,237
29
- pycontrails/datalib/ecmwf/era5.py,sha256=vjRRd9QbeDz3M7qNn3FwLjwgn7kzCiPtbWkpu2lj3E0,18347
29
+ pycontrails/datalib/ecmwf/arco_era5.py,sha256=wwBIXZxRRV98g42kNYalirsn9hmq3QBSD_4zdoIEwEg,20258
30
+ pycontrails/datalib/ecmwf/era5.py,sha256=dGEqXtjuE0OgWxOtkMmBtegeMmo1n6nb2cUrNkXx7HM,18285
30
31
  pycontrails/datalib/ecmwf/hres.py,sha256=yJapluaSaOrHw23iUc-OIIW2Jd7iVLlDcvMSQpd7ToU,28172
31
- pycontrails/datalib/ecmwf/variables.py,sha256=akqjUS3WKnSzV1Y0KkHLylH7QByvitc3wo8NBFeSNew,8714
32
- pycontrails/datalib/ecmwf/__init__.py,sha256=F9a-iRz27nmVuQpMUwx5hjSCW95KnRmsHsa7m1_T86Y,1108
33
- pycontrails/datalib/ecmwf/common.py,sha256=xyHDqlFynGi9y3gvMfSsYTVNCJxpCNQYUVnmNx2rM7o,3707
32
+ pycontrails/datalib/ecmwf/variables.py,sha256=gihPeicRzaaxinjjL_tWzaQqg2m0ixba8xplwagnGV8,9296
33
+ pycontrails/datalib/ecmwf/__init__.py,sha256=wQ2c-wEAQvOdAgHYAK0qj2FJkh1Jfj0J3kmcytvYtG4,1215
34
+ pycontrails/datalib/ecmwf/common.py,sha256=0D2dQBi9mBOQnxog_A95yjkQ2brG0z0__teFc1ghDMU,3702
34
35
  pycontrails/datalib/ecmwf/ifs.py,sha256=s__NOQcUfbvxVPyCE7qgO8cxYLJoh7PWj7zZS-nKR7g,10594
35
- pycontrails/datalib/gfs/gfs.py,sha256=2x16iOCBRzUEb_GeGPCWNPpeeTJ9wxYkvpYsgYR3OaM,21569
36
+ pycontrails/datalib/gfs/gfs.py,sha256=wOvOl1d-7B024uaaak9gnXg99Lbnv7yhE00ajSGRw6U,21569
36
37
  pycontrails/datalib/gfs/variables.py,sha256=KESzB1sTD3hsU8T-qZFD29oFM3l2ZcEtjAE_H7BHKIE,2861
37
38
  pycontrails/datalib/gfs/__init__.py,sha256=tWxgqmlW8Uo07J-3fBTXPrteatzTka9mSXomhWy3NVA,684
38
39
  pycontrails/datalib/spire/spire.py,sha256=66SnMdA8KOS69USjKmqrJmTKPK08Ehih9tnlsCt-AJw,25331
@@ -46,11 +47,11 @@ pycontrails/utils/__init__.py,sha256=Gt_57sBgfliFSxx9sDpuchykFDxmM11Wg9xAeSqPcnI
46
47
  pycontrails/utils/types.py,sha256=oKMJdZYugcU8YXoF2Pux6S4_aX5ymTbMEJrDJtEjY1E,4564
47
48
  pycontrails/utils/temp.py,sha256=lGU0b_R8ze4yKlsOusHIIBaoNFBrmrB3vBjgHRlfcXk,1109
48
49
  pycontrails/utils/json.py,sha256=4PL7xkt-O9VGvngHh8F1nfbSbgoxjNlDZDUQRxYfcCM,5982
49
- pycontrails/utils/dependencies.py,sha256=LBKnhlZHTKDOGFr3J17cnfbQbBtO3uGkKBVoOIhW01s,2488
50
+ pycontrails/utils/dependencies.py,sha256=ATP45xYdUbIyGFzgbOe5SbokMytvB84TcexUEFnEUZE,2559
50
51
  pycontrails/models/pcc.py,sha256=7hIlg_4-F6Ce7KVFyuIZBZY6uDr1h4KRMqBDlpGkzHE,11116
51
52
  pycontrails/models/tau_cirrus.py,sha256=yNYw4ukT68w2ATGFZr3p8AZxB6A2xufXQq7XP2U51y0,5026
52
53
  pycontrails/models/__init__.py,sha256=dQTOLQb7RdUdUwslt5se__5y_ymbInBexQmNrmAeOdE,33
53
- pycontrails/models/issr.py,sha256=nfNJHKGyVEwkBun3u1kjR0WVPLK2zrdPjLGBnK5MWMs,7340
54
+ pycontrails/models/issr.py,sha256=k8yCKCtKLW0ECC0QIs-ID1zbr6vHJfeBm9Shq3oaA3U,7351
54
55
  pycontrails/models/sac.py,sha256=B-0acGuYs2ajFYtSMGP4LO328OsAjQ7v2bnQ5HCw4Ak,15961
55
56
  pycontrails/models/accf.py,sha256=20XWID_6aoFLDOfanf5ncay_azPbZSA2NoowJSZbM20,12559
56
57
  pycontrails/models/dry_advection.py,sha256=_HJA02GPjlJH2OKhX3BAvQWJX0iV-bOu57hWPl2Ue60,16145
@@ -67,26 +68,27 @@ pycontrails/models/humidity_scaling/__init__.py,sha256=nqsab_j9BCwMbTfCn4BjXMdhI
67
68
  pycontrails/models/humidity_scaling/quantiles/era5-quantiles.pq,sha256=tfYhbafF9Z-gGCg6VQ1YBlOaK_01e65Dc6s9b-hQ6Zo,286375
68
69
  pycontrails/models/cocip/radiative_forcing.py,sha256=ERuFcYMo0_1iiOricnZ8D4ext23bMnTCeZwg9vd6Vzs,44944
69
70
  pycontrails/models/cocip/wind_shear.py,sha256=p8d3iaNzxPA3MoxFEM1ZDKt0aticoD6U9cv0QmbuBzs,3860
70
- pycontrails/models/cocip/cocip.py,sha256=X4b_samWXtG5jD83W6vrlrc4MR-8SyG_uhSdhz55pD4,95816
71
+ pycontrails/models/cocip/cocip.py,sha256=0ILMcjbgsM00rCXAeo9UkSnUsmvq1XvORhNPI-ReNcM,97591
71
72
  pycontrails/models/cocip/output_formats.py,sha256=d9naGliEEVuk2ER0KZEY5R2FHQZIY5NcP6PamlHcBM0,77149
72
73
  pycontrails/models/cocip/__init__.py,sha256=7Wy_CnmVqg_Gpg2UhIlisJOJ3naL6c5BBzTSJqdbiM4,902
73
- pycontrails/models/cocip/cocip_params.py,sha256=sc3j0nUHIdXXGEhnqRFGZEohEVPBu0UMSef1BMRiU1g,10302
74
- pycontrails/models/cocip/wake_vortex.py,sha256=Q5YMEK59jTYzAPt4x24ylugqThzhrN2BOTLBiD-KeC0,13408
74
+ pycontrails/models/cocip/cocip_params.py,sha256=R4bewge3xLgWYbBbGwd8e8r0NlaFx2IaQPZEfiqJZRI,11392
75
+ pycontrails/models/cocip/wake_vortex.py,sha256=i_OF193KK5BCMdVCgK0_4Aqn55f6rnL4WDWEac8um-w,14421
75
76
  pycontrails/models/cocip/cocip_uncertainty.py,sha256=4JtlCVFpLBnPRlvyEp9QFpRfHFK9joSTnxe0NJdONG4,11784
76
77
  pycontrails/models/cocip/radiative_heating.py,sha256=YRpwfXgFnf89iuJiIM96q-jbdcMAwlX8QLsADTKMABE,18848
77
- pycontrails/models/cocip/contrail_properties.py,sha256=FA6KOMGYxr6s_dks3AtK8X7anyjM6sVfr-EDJrxNjcA,55840
78
+ pycontrails/models/cocip/contrail_properties.py,sha256=tycCxKf8j9GvVYDQBPxjtp6xLll-r00C0XW-w1jGbMI,55594
79
+ pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=kDxFpAIkcqqhGmwXoxv3_cSESj1Ur45GbLJF56IACJs,14573
78
80
  pycontrails/models/ps_model/__init__.py,sha256=5L-HympF1gJaZ6xiNkIQJygJhkDxM3-ejS_T2z-83hQ,495
79
81
  pycontrails/models/ps_model/ps_model.py,sha256=t2NJu8ct5MSCQAqFinZOzpHKSmroOuiJFx0ornCAuEY,31496
80
82
  pycontrails/models/ps_model/ps_aircraft_params.py,sha256=7PlJtTo5EP7FLHKQ-EK4jFswYyA8t2dA0xcyMlPiqG8,12104
81
83
  pycontrails/models/ps_model/ps_operational_limits.py,sha256=bMIUKU5_K-H6ld_ZKoLle3hBW28o3RzVy1P5N4C8jg0,10371
82
84
  pycontrails/models/ps_model/ps_grid.py,sha256=PyuiGKvknx6x34FGeNoxJ47uVf90Bd-EgbAN3CKpOZQ,18667
83
85
  pycontrails/models/ps_model/static/ps-aircraft-params-20240209.csv,sha256=lZ_gzhOfB-Ul8VUnzyiffYyLTRJ3wab1rlOgh_N-byA,14679
84
- pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=Vnpzm-nc6TtSQexXychCg8Sp5o5ZGlvEU8-ZJ3DP87k,5779
86
+ pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=l4vBPrOKCJDz5Y1uMjmOGVyUcSWgfZtFWbjW968OPz8,5875
85
87
  pycontrails/models/cocipgrid/__init__.py,sha256=ar6bF_8Pusbb-myujz_q5ntFylQTNH8yiM8fxP7Zk30,262
86
- pycontrails/models/cocipgrid/cocip_grid.py,sha256=WKtFCJT6cDVI_QmAJ7jgWkgK5h3iSav1rOYsrlAPT1o,89803
88
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=wHhScJQNXI1Ax7gNFiXPU_lQiQNk4QLvq-TfnwBqAZU,94108
87
89
  pycontrails/physics/geo.py,sha256=lqEpTLhex2r-o-6EHSSEiPC8xqZ-NlwwCBob9-cJA_w,30240
88
90
  pycontrails/physics/units.py,sha256=W_pOCZ7abjQnUIFhrMEelPTrk18ihJQitPSpnTd2toI,12256
89
- pycontrails/physics/constants.py,sha256=fFDMpXMlldE6c5RbjaIn4UqGpXvX32mLuCG0RnxmtHE,2990
91
+ pycontrails/physics/constants.py,sha256=pHQQmccMUwuNnY4hFtm3L8G2rnUQcfJnroyQr8HAVeM,3146
90
92
  pycontrails/physics/__init__.py,sha256=_1eWbEy6evEWdfJCEkwDiSdpiDNzNWEPVqaPekHyhwU,44
91
93
  pycontrails/physics/thermo.py,sha256=x3IsnUkEIA1zrDTFkS4GbV5B-ZKe_sxLbkCwQJ5Ign4,12810
92
94
  pycontrails/physics/jet.py,sha256=JX-o5dDjyITMNUIOcD_7UBt_4ldc9v-5gI6bmwf0wQ4,25624
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_11_0_arm64
5
5