pycontrails 0.51.1__cp311-cp311-macosx_11_0_arm64.whl → 0.52.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/__init__.py +1 -1
  2. pycontrails/_version.py +2 -2
  3. pycontrails/core/__init__.py +1 -1
  4. pycontrails/core/cache.py +1 -1
  5. pycontrails/core/flight.py +32 -28
  6. pycontrails/core/polygon.py +1 -1
  7. pycontrails/core/rgi_cython.cpython-311-darwin.so +0 -0
  8. pycontrails/datalib/__init__.py +4 -1
  9. pycontrails/datalib/_leo_utils/search.py +250 -0
  10. pycontrails/datalib/_leo_utils/static/bq_roi_query.sql +6 -0
  11. pycontrails/datalib/_leo_utils/vis.py +60 -0
  12. pycontrails/{core/datalib.py → datalib/_met_utils/metsource.py} +1 -1
  13. pycontrails/datalib/ecmwf/arco_era5.py +8 -7
  14. pycontrails/datalib/ecmwf/common.py +3 -2
  15. pycontrails/datalib/ecmwf/era5.py +12 -11
  16. pycontrails/datalib/ecmwf/era5_model_level.py +12 -11
  17. pycontrails/datalib/ecmwf/hres.py +14 -13
  18. pycontrails/datalib/ecmwf/hres_model_level.py +15 -14
  19. pycontrails/datalib/ecmwf/ifs.py +14 -13
  20. pycontrails/datalib/gfs/gfs.py +15 -14
  21. pycontrails/datalib/goes.py +2 -2
  22. pycontrails/datalib/landsat.py +567 -0
  23. pycontrails/datalib/sentinel.py +512 -0
  24. pycontrails/models/apcemm/__init__.py +8 -0
  25. pycontrails/models/apcemm/apcemm.py +983 -0
  26. pycontrails/models/apcemm/inputs.py +226 -0
  27. pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +183 -0
  28. pycontrails/models/apcemm/utils.py +437 -0
  29. pycontrails/models/cocip/__init__.py +2 -0
  30. pycontrails/models/cocip/output_formats.py +165 -0
  31. pycontrails/models/cocipgrid/cocip_grid.py +7 -6
  32. pycontrails/models/dry_advection.py +14 -5
  33. {pycontrails-0.51.1.dist-info → pycontrails-0.52.0.dist-info}/METADATA +20 -11
  34. {pycontrails-0.51.1.dist-info → pycontrails-0.52.0.dist-info}/RECORD +39 -30
  35. pycontrails/datalib/spire/__init__.py +0 -19
  36. /pycontrails/datalib/{spire/spire.py → spire.py} +0 -0
  37. {pycontrails-0.51.1.dist-info → pycontrails-0.52.0.dist-info}/LICENSE +0 -0
  38. {pycontrails-0.51.1.dist-info → pycontrails-0.52.0.dist-info}/NOTICE +0 -0
  39. {pycontrails-0.51.1.dist-info → pycontrails-0.52.0.dist-info}/WHEEL +0 -0
  40. {pycontrails-0.51.1.dist-info → pycontrails-0.52.0.dist-info}/top_level.txt +0 -0
@@ -27,6 +27,9 @@ class DryAdvectionParams(models.ModelParams):
27
27
  #: Max age of plume evolution.
28
28
  max_age: np.timedelta64 = np.timedelta64(20, "h")
29
29
 
30
+ #: Rate of change of pressure due to sedimentation [:math:`Pa/s`]
31
+ sedimentation_rate: float = 0.0
32
+
30
33
  #: Difference in altitude between top and bottom layer for stratification calculations,
31
34
  #: [:math:`m`]. Used to approximate derivative of "lagrangian_tendency_of_air_pressure"
32
35
  #: (upward component of air velocity) with respect to altitude.
@@ -124,6 +127,7 @@ class DryAdvection(models.Model):
124
127
 
125
128
  dt_integration = self.params["dt_integration"]
126
129
  max_age = self.params["max_age"]
130
+ sedimentation_rate = self.params["sedimentation_rate"]
127
131
  dz_m = self.params["dz_m"]
128
132
  max_depth = self.params["max_depth"]
129
133
 
@@ -142,6 +146,7 @@ class DryAdvection(models.Model):
142
146
  self.met,
143
147
  vector,
144
148
  t,
149
+ sedimentation_rate=sedimentation_rate,
145
150
  dz_m=dz_m,
146
151
  max_depth=max_depth,
147
152
  **interp_kwargs,
@@ -171,9 +176,11 @@ class DryAdvection(models.Model):
171
176
  """
172
177
 
173
178
  self.source.setdefault("level", self.source.level)
174
- self.source = GeoVectorDataset(
175
- self.source.select(("longitude", "latitude", "level", "time"), copy=False)
176
- )
179
+
180
+ columns: tuple[str, ...] = ("longitude", "latitude", "level", "time")
181
+ if "azimuth" in self.source:
182
+ columns += ("azimuth",)
183
+ self.source = GeoVectorDataset(self.source.select(columns, copy=False))
177
184
 
178
185
  # Get waypoint index if not already set
179
186
  self.source.setdefault("waypoint", np.arange(self.source.size))
@@ -212,7 +219,8 @@ class DryAdvection(models.Model):
212
219
  if val is not None and pointwise_only:
213
220
  raise ValueError(f"Cannot specify '{key}' without specifying 'azimuth'.")
214
221
 
215
- self.source[key] = np.full_like(self.source["longitude"], val)
222
+ if not pointwise_only:
223
+ self.source[key] = np.full_like(self.source["longitude"], val)
216
224
 
217
225
  if pointwise_only:
218
226
  return
@@ -428,6 +436,7 @@ def _evolve_one_step(
428
436
  vector: GeoVectorDataset,
429
437
  t: np.datetime64,
430
438
  *,
439
+ sedimentation_rate: float,
431
440
  dz_m: float,
432
441
  max_depth: float | None,
433
442
  **interp_kwargs: Any,
@@ -437,7 +446,7 @@ def _evolve_one_step(
437
446
  _perform_interp_for_step(met, vector, dz_m, **interp_kwargs)
438
447
  u_wind = vector["u_wind"]
439
448
  v_wind = vector["v_wind"]
440
- vertical_velocity = vector["vertical_velocity"]
449
+ vertical_velocity = vector["vertical_velocity"] + sedimentation_rate
441
450
 
442
451
  latitude = vector["latitude"]
443
452
  longitude = vector["longitude"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycontrails
3
- Version: 0.51.1
3
+ Version: 0.52.0
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
@@ -28,21 +28,21 @@ Description-Content-Type: text/markdown
28
28
  License-File: LICENSE
29
29
  License-File: NOTICE
30
30
  Requires-Dist: dask >=2022.3
31
- Requires-Dist: numpy >=1.22
31
+ Requires-Dist: numpy <2.0.0,>=1.22
32
32
  Requires-Dist: overrides >=6.1
33
- Requires-Dist: pandas >=1.4
33
+ Requires-Dist: pandas >=2.2
34
34
  Requires-Dist: scipy >=1.10
35
35
  Requires-Dist: xarray >=2022.3
36
36
  Provides-Extra: complete
37
- Requires-Dist: pycontrails[ecmwf,gcp,gfs,goes,jupyter,pyproj,vis,zarr] ; extra == 'complete'
37
+ Requires-Dist: pycontrails[ecmwf,gcp,gfs,jupyter,pyproj,sat,vis,zarr] ; extra == 'complete'
38
38
  Provides-Extra: dev
39
39
  Requires-Dist: black[jupyter] ==24.4.1 ; extra == 'dev'
40
40
  Requires-Dist: dep-license ; extra == 'dev'
41
41
  Requires-Dist: fastparquet >=0.8 ; extra == 'dev'
42
42
  Requires-Dist: ipdb >=0.13 ; extra == 'dev'
43
43
  Requires-Dist: memory-profiler ; extra == 'dev'
44
- Requires-Dist: mypy >=0.99 ; extra == 'dev'
45
- Requires-Dist: mypy-extensions >=0.4 ; extra == 'dev'
44
+ Requires-Dist: mypy >=1.8 ; extra == 'dev'
45
+ Requires-Dist: mypy-extensions >=1.0 ; extra == 'dev'
46
46
  Requires-Dist: platformdirs >=3.0 ; extra == 'dev'
47
47
  Requires-Dist: pre-commit >=2.10 ; extra == 'dev'
48
48
  Requires-Dist: psutil ; extra == 'dev'
@@ -51,6 +51,7 @@ Requires-Dist: pytest >=8.2 ; 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.4.1 ; extra == 'dev'
54
+ Requires-Dist: setuptools ; extra == 'dev'
54
55
  Provides-Extra: docs
55
56
  Requires-Dist: doc8 >=1.1 ; extra == 'docs'
56
57
  Requires-Dist: furo >=2023.3 ; extra == 'docs'
@@ -69,7 +70,7 @@ Requires-Dist: cdsapi >=0.4 ; extra == 'ecmwf'
69
70
  Requires-Dist: cfgrib >=0.9 ; extra == 'ecmwf'
70
71
  Requires-Dist: eccodes >=1.4 ; extra == 'ecmwf'
71
72
  Requires-Dist: ecmwf-api-client >=1.6 ; extra == 'ecmwf'
72
- Requires-Dist: netcdf4 >=1.6.1 ; extra == 'ecmwf'
73
+ Requires-Dist: netcdf4 <1.7.0,>=1.6.1 ; extra == 'ecmwf'
73
74
  Requires-Dist: platformdirs >=3.0 ; extra == 'ecmwf'
74
75
  Requires-Dist: requests >=2.25 ; extra == 'ecmwf'
75
76
  Requires-Dist: lxml >=5.1.0 ; extra == 'ecmwf'
@@ -83,10 +84,6 @@ Requires-Dist: cfgrib >=0.9 ; extra == 'gfs'
83
84
  Requires-Dist: eccodes >=1.4 ; extra == 'gfs'
84
85
  Requires-Dist: platformdirs >=3.0 ; extra == 'gfs'
85
86
  Requires-Dist: tqdm >=4.61 ; extra == 'gfs'
86
- Provides-Extra: goes
87
- Requires-Dist: cartopy >=0.22 ; extra == 'goes'
88
- Requires-Dist: gcsfs >=2022.3 ; extra == 'goes'
89
- Requires-Dist: h5netcdf >=1.2 ; extra == 'goes'
90
87
  Provides-Extra: jupyter
91
88
  Requires-Dist: ipywidgets >=7.6 ; extra == 'jupyter'
92
89
  Requires-Dist: jupyterlab >=2.2 ; extra == 'jupyter'
@@ -94,6 +91,18 @@ Provides-Extra: open3d
94
91
  Requires-Dist: open3d >=0.14 ; extra == 'open3d'
95
92
  Provides-Extra: pyproj
96
93
  Requires-Dist: pyproj >=3.5 ; extra == 'pyproj'
94
+ Provides-Extra: sat
95
+ Requires-Dist: cartopy >=0.22 ; extra == 'sat'
96
+ Requires-Dist: db-dtypes >=1.2 ; extra == 'sat'
97
+ Requires-Dist: gcsfs >=2022.3 ; extra == 'sat'
98
+ Requires-Dist: geojson >=3.1 ; extra == 'sat'
99
+ Requires-Dist: google-cloud-bigquery >=3.23 ; extra == 'sat'
100
+ Requires-Dist: google-cloud-bigquery-storage >=2.25 ; extra == 'sat'
101
+ Requires-Dist: h5netcdf >=1.2 ; extra == 'sat'
102
+ Requires-Dist: pillow >=10.3 ; extra == 'sat'
103
+ Requires-Dist: pyproj >=3.5 ; extra == 'sat'
104
+ Requires-Dist: rasterio >=1.3 ; extra == 'sat'
105
+ Requires-Dist: scikit-image >=0.18 ; extra == 'sat'
97
106
  Provides-Extra: vis
98
107
  Requires-Dist: matplotlib >=3.3 ; extra == 'vis'
99
108
  Requires-Dist: opencv-python-headless >=4.5 ; extra == 'vis'
@@ -1,47 +1,51 @@
1
- pycontrails-0.51.1.dist-info/RECORD,,
2
- pycontrails-0.51.1.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
- pycontrails-0.51.1.dist-info/WHEEL,sha256=sieEctgmsyAnWfDYOiunmkigyyjGmYuUaApm_YItwoI,110
4
- pycontrails-0.51.1.dist-info/NOTICE,sha256=gKI8DcN1WhiXB2SFRKDogcjONldGubTvBxiOYdC4CXU,1926
5
- pycontrails-0.51.1.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
- pycontrails-0.51.1.dist-info/METADATA,sha256=lhvTJXjoe4RWXxzCepstWZr3jUl5KSbY1cksSS4yu-Q,8366
7
- pycontrails/_version.py,sha256=VFAdktfJQ1HGHeBX5jprHcVJQgl3ZamLz76UBdxPqNE,413
8
- pycontrails/__init__.py,sha256=c_Vtz7CvdiVAL8ggluash9-8tGcLO_5Vvu-3_Ie47CE,1985
1
+ pycontrails-0.52.0.dist-info/RECORD,,
2
+ pycontrails-0.52.0.dist-info/LICENSE,sha256=gJ-h7SFFD1mCfR6a7HILvEtodDT6Iig8bLXdgqR6ucA,10175
3
+ pycontrails-0.52.0.dist-info/WHEEL,sha256=sieEctgmsyAnWfDYOiunmkigyyjGmYuUaApm_YItwoI,110
4
+ pycontrails-0.52.0.dist-info/NOTICE,sha256=gKI8DcN1WhiXB2SFRKDogcjONldGubTvBxiOYdC4CXU,1926
5
+ pycontrails-0.52.0.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
6
+ pycontrails-0.52.0.dist-info/METADATA,sha256=q757wdU7ow-WkMWeLtjLZ3Mo8h28yfWfx0F-EtfLfbI,8831
7
+ pycontrails/_version.py,sha256=HchZIBAQcFK44NnsWNeG0x1TGXt4xcgLicOAT4yevSE,413
8
+ pycontrails/__init__.py,sha256=O2T9kXCMhcELcMZz7HEnwiBhh4Gfcj-yG1HtrotOKHQ,2001
9
9
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pycontrails/core/rgi_cython.cpython-311-darwin.so,sha256=y1TLkF0MBjkL34XrdjuJQ0xxdUbXiR8kWg_MR8_Fy3k,310896
10
+ pycontrails/core/rgi_cython.cpython-311-darwin.so,sha256=LOdSwXzgakC16307T_ShB6Pdcnw5ccBr9278AUsJy7k,311088
11
11
  pycontrails/core/vector.py,sha256=P61Rv1M040A1SRHmdWVR_RfXcWa6faM330n-9499ilI,71722
12
12
  pycontrails/core/models.py,sha256=sipUAH_r0A1TxQ0yBjaPj8WC33Piw34ABHyrmRePfhg,39003
13
13
  pycontrails/core/interpolation.py,sha256=FFYdUnTzGnkjoGs-FKsK3Y3nSK5lQI-mpq5HPALZ-y4,25495
14
14
  pycontrails/core/fleet.py,sha256=84oTb8RJ3-bPVvZn3O2ljMEZLwJ9Q-E455ZzQJ4QaQU,16075
15
- pycontrails/core/flight.py,sha256=jpd1bfdzUzNuuE-7pDraRC5I9kYetSwFUAMRYwMVxzw,83143
15
+ pycontrails/core/flight.py,sha256=BOnbGZuYNpHO0zJu75u27djoVbttnEPMTtNZjagAd4Q,83599
16
16
  pycontrails/core/fuel.py,sha256=kJZ3P1lPm1L6rdPREM55XQ-VfJ_pt35cP4sO2Nnvmjs,4332
17
- pycontrails/core/polygon.py,sha256=bLddqnsaA7XVXFcEVXR3V1tVIu5qQ8sxPUjFbwt0lO8,17993
18
- pycontrails/core/datalib.py,sha256=m39gKxdhy9KSBhwWlrzEc5z-tTqPfcs7bPcqSxbU0k0,23971
19
- pycontrails/core/cache.py,sha256=rCBZiRSVoFkRwf_ay7O-eba2PaYoXdlJSz1znZPuOQk,27957
20
- pycontrails/core/__init__.py,sha256=4ZE7x1gMa_Q7GcgcWpPP9fQ-sTulCXWmMjsCJ0odakY,840
17
+ pycontrails/core/polygon.py,sha256=NhoK91oVE2pse1kw2mkkhxxQpJrvBld8ofTMCwNH_h8,18016
18
+ pycontrails/core/cache.py,sha256=9TaHyLtCpDazgN5zEt0aa4xNgvNcMc4oO_6nEz0XhYE,27971
19
+ pycontrails/core/__init__.py,sha256=x1z6x8w3sYmEqYcNWyWHuNkS9lPUPbHUoYJZs1K0q98,856
21
20
  pycontrails/core/flightplan.py,sha256=s7tHbjMFbHAJkSWV6hPkghuW6jDb1n5UhWAo9XbJ9z0,7349
22
21
  pycontrails/core/met.py,sha256=HORTWNre9rSyOgNnVnVaW0A6jDjU5W5A5s2L89KIZyM,93602
23
22
  pycontrails/core/aircraft_performance.py,sha256=4yNGfArt741HNFjxpWvEu86BTzie9LaPjC4KH3dXYts,21966
24
23
  pycontrails/core/airports.py,sha256=aeyAXVkioIRomrP79UtNrxindL4f1DJyXFaojZCuBBw,6758
25
24
  pycontrails/core/met_var.py,sha256=EhrLGdrCAp8cKb-3Whd_ttLMZn4_zLMhE-QyFinESqo,9197
26
25
  pycontrails/core/coordinates.py,sha256=vVITA90x0Jx-UQG2XMm3JAKKsIrFUcU861xV-L9czTI,5291
27
- pycontrails/datalib/goes.py,sha256=Myz53yENqopOOsVT7K-M16SLvoBPPnOg-14fq6DvzdQ,26359
28
- pycontrails/datalib/__init__.py,sha256=s5b8W6scXgespKZjPcaC-8jyLd3FqZqN0BZccLxaGuE,237
29
- pycontrails/datalib/ecmwf/arco_era5.py,sha256=6UCy75rPTJZokzQK6jccxLy6nOPBbAP8Z-6QbN_eMsY,18568
30
- pycontrails/datalib/ecmwf/era5.py,sha256=_TV0g24HVmU93fNO8ykvhWaaHSwnc2QT3cFHhhmsSjU,18178
31
- pycontrails/datalib/ecmwf/era5_model_level.py,sha256=R_Z30DvJU7i7_sPgYV5GDhHBPIKd2ChoePYfWP0rTYw,18881
32
- pycontrails/datalib/ecmwf/hres.py,sha256=yJapluaSaOrHw23iUc-OIIW2Jd7iVLlDcvMSQpd7ToU,28172
26
+ pycontrails/datalib/goes.py,sha256=CDCwNWv35MGm20s0AS5Xxy0hGyiUhtX9S9cc8cI_bKI,26357
27
+ pycontrails/datalib/landsat.py,sha256=jV6E9TMmo3x_EEb-4BnD3L7nB5C3NCLT7FaXoMxXP64,19645
28
+ pycontrails/datalib/spire.py,sha256=66SnMdA8KOS69USjKmqrJmTKPK08Ehih9tnlsCt-AJw,25331
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=lAMkvbwix1ziqWGZuHvsu69p3etwOjmAtYiriaEz7Hg,23991
32
+ pycontrails/datalib/ecmwf/arco_era5.py,sha256=YuoPmPlP9TpZ6qhUPLbb30y3D3dTNDasTLZqP5MAWtw,18624
33
+ pycontrails/datalib/ecmwf/era5.py,sha256=TMX9bJHvALvSbxFI0BpwI9l3yMoxI1ecc2ROfvPaNIE,18242
34
+ pycontrails/datalib/ecmwf/era5_model_level.py,sha256=0R96ATNVp1UB63M_ER6aEqdY60dfkj_0SNVjyD6a8fE,18945
35
+ pycontrails/datalib/ecmwf/hres.py,sha256=p_l0ytCEEWGam7G7aVynpLmH4H4LQNeVe0Ay7Tw6fp8,28240
33
36
  pycontrails/datalib/ecmwf/variables.py,sha256=S5SV_kPrWRhwOpOYcWw3V5VRUB_HOVCTw3Sf7UClJEk,9605
34
- pycontrails/datalib/ecmwf/hres_model_level.py,sha256=CBrtZnX9Hbu1xBk8ALypLDUycg_7o30wJS-G3VELo2Q,19065
37
+ pycontrails/datalib/ecmwf/hres_model_level.py,sha256=XomrGw7FdjmXRWLAgYSqvB3Nd00dz9HyZt0fH5ZyA6I,19135
35
38
  pycontrails/datalib/ecmwf/__init__.py,sha256=kwgk9P4RYdLgOYcBLXX5rWz1T_yL7aO8nt2Eb1PB-eE,1455
36
- pycontrails/datalib/ecmwf/common.py,sha256=veOzDmAjLJcfSRQrQNl4hz8g4rusOEl8Ph9GBwoQOok,3832
39
+ pycontrails/datalib/ecmwf/common.py,sha256=p6zTQcojmTNF2FYGztxhX7cYEg9d29JH6_v2mrKteW0,3878
37
40
  pycontrails/datalib/ecmwf/model_levels.py,sha256=x83WJtjC6OnHcUsiNgvYIrVX4lY-pkXR-YlvUo9vYis,2712
38
- pycontrails/datalib/ecmwf/ifs.py,sha256=s__NOQcUfbvxVPyCE7qgO8cxYLJoh7PWj7zZS-nKR7g,10594
41
+ pycontrails/datalib/ecmwf/ifs.py,sha256=2heema398PoEVCfiTZSBawN25PXAa_CpWm_pGLZ1GuY,10662
39
42
  pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv,sha256=PmvGLRzn6uuCKSwiasSuVcehvvmSaqP7cnLuN6hhCQQ,9788
40
- pycontrails/datalib/gfs/gfs.py,sha256=wOvOl1d-7B024uaaak9gnXg99Lbnv7yhE00ajSGRw6U,21569
43
+ pycontrails/datalib/_leo_utils/vis.py,sha256=5DgfRFZGqLm-lm72UlSobWbYk6stJ96o804kRG5S2cI,1759
44
+ pycontrails/datalib/_leo_utils/search.py,sha256=r87T2OV4qH1pYI2YznvsBL042f4RKxD3OA2snd3-kDI,8687
45
+ pycontrails/datalib/_leo_utils/static/bq_roi_query.sql,sha256=xq6-tJyz0-bUwW0KjQymqygjH3WlQBmyBtP7Ci7SBe8,260
46
+ pycontrails/datalib/gfs/gfs.py,sha256=yektP3gDKpjdmh1FnCOw5D8fq4kQDg4Yti4zqM4wYlo,21639
41
47
  pycontrails/datalib/gfs/variables.py,sha256=KESzB1sTD3hsU8T-qZFD29oFM3l2ZcEtjAE_H7BHKIE,2861
42
48
  pycontrails/datalib/gfs/__init__.py,sha256=tWxgqmlW8Uo07J-3fBTXPrteatzTka9mSXomhWy3NVA,684
43
- pycontrails/datalib/spire/spire.py,sha256=66SnMdA8KOS69USjKmqrJmTKPK08Ehih9tnlsCt-AJw,25331
44
- pycontrails/datalib/spire/__init__.py,sha256=4EZPJUmNnF8v2n6QhBvSi_3rYXRBX2zGcPE-WEA-dP8,343
45
49
  pycontrails/ext/synthetic_flight.py,sha256=65LxC1ZZNJrd8YcSgg6739ouPNf0VgVCOfEhK4W4YkI,16679
46
50
  pycontrails/ext/cirium.py,sha256=DFPfRwLDwddpucAPRQhyT4bDGh0VvvoViMUd3pidam8,415
47
51
  pycontrails/ext/empirical_grid.py,sha256=WSC266aKsQLzCmtrZJCpLdDBykZ9rlFE9xEXmZjbgHo,4362
@@ -58,7 +62,7 @@ pycontrails/models/__init__.py,sha256=dQTOLQb7RdUdUwslt5se__5y_ymbInBexQmNrmAeOd
58
62
  pycontrails/models/issr.py,sha256=k8yCKCtKLW0ECC0QIs-ID1zbr6vHJfeBm9Shq3oaA3U,7351
59
63
  pycontrails/models/sac.py,sha256=B-0acGuYs2ajFYtSMGP4LO328OsAjQ7v2bnQ5HCw4Ak,15961
60
64
  pycontrails/models/accf.py,sha256=20XWID_6aoFLDOfanf5ncay_azPbZSA2NoowJSZbM20,12559
61
- pycontrails/models/dry_advection.py,sha256=_HJA02GPjlJH2OKhX3BAvQWJX0iV-bOu57hWPl2Ue60,16145
65
+ pycontrails/models/dry_advection.py,sha256=jToOXFwv0V-ZbgpJBvUgTq-AiKP4El_uq1SWS6Oi6YY,16556
62
66
  pycontrails/models/pcr.py,sha256=ZzbEuTOuDdUmmL5T3Wk3HL-O8XzX3HMnn98WcPbASaU,5348
63
67
  pycontrails/models/emissions/__init__.py,sha256=N_EE768TNRDbdmXaxly2Pwun7UmVBTVPc4k89VBz5ys,478
64
68
  pycontrails/models/emissions/ffm2.py,sha256=h_bmB4pxxvC1ptqz5jB_rpf9QgaAv9J7Lu-6QpMiFtk,12032
@@ -67,6 +71,11 @@ pycontrails/models/emissions/black_carbon.py,sha256=F2SCUiV39zg2mUxbWsct6vvr_JgH
67
71
  pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv,sha256=NatpVI1D2tTDLK7uVvlanm9DhfFB44nmFA4aocUcXco,77318
68
72
  pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv,sha256=Oub-FkyR4cPlTEPo9wDPAn4i4CpGpKH2tet30MNitI0,127518
69
73
  pycontrails/models/emissions/static/default-engine-uids.csv,sha256=3blb0aqtM8YRsyT1WDo0UYTBtv1h4BwXRIC_Ll9fhnI,6217
74
+ pycontrails/models/apcemm/__init__.py,sha256=M-hrJklbSgBckclm526MiBAhpKPLHgJbB58ArbJuGIk,175
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=E6Ov1akN7SCa_Y2Atgw85eaoV9uML6tRZ5cKHztphqs,39894
78
+ pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=uAZkc57OUvDMjgX6F5f6hgDh3Hgg1NbHWRUFSiv0DEI,6745
70
79
  pycontrails/models/humidity_scaling/humidity_scaling.py,sha256=9619kSgNIBjkM8vFWcwny7t4mhg00pX0aKabrDGPn7I,36658
71
80
  pycontrails/models/humidity_scaling/__init__.py,sha256=nqsab_j9BCwMbTfCn4BjXMdhItlvNKkgUJ9-lb8RyIo,1119
72
81
  pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq,sha256=tfYhbafF9Z-gGCg6VQ1YBlOaK_01e65Dc6s9b-hQ6Zo,286375
@@ -74,8 +83,8 @@ pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq,sha2
74
83
  pycontrails/models/cocip/radiative_forcing.py,sha256=ERuFcYMo0_1iiOricnZ8D4ext23bMnTCeZwg9vd6Vzs,44944
75
84
  pycontrails/models/cocip/wind_shear.py,sha256=p8d3iaNzxPA3MoxFEM1ZDKt0aticoD6U9cv0QmbuBzs,3860
76
85
  pycontrails/models/cocip/cocip.py,sha256=0ILMcjbgsM00rCXAeo9UkSnUsmvq1XvORhNPI-ReNcM,97591
77
- pycontrails/models/cocip/output_formats.py,sha256=d9naGliEEVuk2ER0KZEY5R2FHQZIY5NcP6PamlHcBM0,77149
78
- pycontrails/models/cocip/__init__.py,sha256=7Wy_CnmVqg_Gpg2UhIlisJOJ3naL6c5BBzTSJqdbiM4,902
86
+ pycontrails/models/cocip/output_formats.py,sha256=e3K-23EvEE2z9PuHNr2OQhwvN8_PYmNmR7Li-dsYZq8,83229
87
+ pycontrails/models/cocip/__init__.py,sha256=jd-9Tq20s1kwQBlxsYfZLi3hlT5MnWOY2XsPazq1fgE,962
79
88
  pycontrails/models/cocip/cocip_params.py,sha256=R4bewge3xLgWYbBbGwd8e8r0NlaFx2IaQPZEfiqJZRI,11392
80
89
  pycontrails/models/cocip/wake_vortex.py,sha256=i_OF193KK5BCMdVCgK0_4Aqn55f6rnL4WDWEac8um-w,14421
81
90
  pycontrails/models/cocip/cocip_uncertainty.py,sha256=4JtlCVFpLBnPRlvyEp9QFpRfHFK9joSTnxe0NJdONG4,11784
@@ -91,7 +100,7 @@ pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv,sha256=ksrpQTHkx
91
100
  pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv,sha256=3eNhSwzut0gon04k2EYKKaXRvQSUlau3yBAbHS0EBao,25784
92
101
  pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=l4vBPrOKCJDz5Y1uMjmOGVyUcSWgfZtFWbjW968OPz8,5875
93
102
  pycontrails/models/cocipgrid/__init__.py,sha256=ar6bF_8Pusbb-myujz_q5ntFylQTNH8yiM8fxP7Zk30,262
94
- pycontrails/models/cocipgrid/cocip_grid.py,sha256=wHhScJQNXI1Ax7gNFiXPU_lQiQNk4QLvq-TfnwBqAZU,94108
103
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=MLsh3rZb-6Q7vnad6YYTfZs83-kSJEbhjfWTS9oooXI,94333
95
104
  pycontrails/physics/geo.py,sha256=lqEpTLhex2r-o-6EHSSEiPC8xqZ-NlwwCBob9-cJA_w,30240
96
105
  pycontrails/physics/units.py,sha256=j-G5AC9eWIvv2MTOq9lUOoOQKFNJJuHzWLanHRji2tE,12272
97
106
  pycontrails/physics/constants.py,sha256=pHQQmccMUwuNnY4hFtm3L8G2rnUQcfJnroyQr8HAVeM,3146
@@ -1,19 +0,0 @@
1
- """ECMWF Data Access."""
2
-
3
- from __future__ import annotations
4
-
5
- from pycontrails.datalib.spire.spire import (
6
- clean,
7
- generate_flight_id,
8
- identify_flights,
9
- is_valid_trajectory,
10
- validate_flights,
11
- )
12
-
13
- __all__ = [
14
- "clean",
15
- "generate_flight_id",
16
- "identify_flights",
17
- "is_valid_trajectory",
18
- "validate_flights",
19
- ]
File without changes