pycontrails 0.51.1__cp310-cp310-win_amd64.whl → 0.52.0__cp310-cp310-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 (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.cp310-win_amd64.pyd +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,66 +1,75 @@
1
- pycontrails/__init__.py,sha256=8WUs6hZAAIH1yKfwYJ8UEqNsk5voRyLmmD3Dje9DZaE,2055
2
- pycontrails/_version.py,sha256=gmP4X4NUxYBWytULG1EUTGL8LNF16D8DZ1omSI-P98c,429
1
+ pycontrails/__init__.py,sha256=EpPulx2dBYpqZNsyh6HTwGGnFsvBVHBXabG5VInwSg4,2071
2
+ pycontrails/_version.py,sha256=4ifLhkKoDFiaXL1n-ptlNl4WrJFDK9SUsh55U37ctSc,429
3
3
  pycontrails/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- pycontrails/core/__init__.py,sha256=eNypVTz1kHBSKAJX3CgfKw-VKrMRRkKTutmjSlrfeUs,870
4
+ pycontrails/core/__init__.py,sha256=X0DX2FGboPN_svwN2xiBzoPpHhDtg0oKFjXQfmCqMWU,886
5
5
  pycontrails/core/aircraft_performance.py,sha256=ikeJmdvFRDa1RdfR-JKfhQbiiIzL0c2vzcBmobmoxMs,22511
6
6
  pycontrails/core/airports.py,sha256=nGKXN3jOtzsDCaJZVFNO3e3w-U3lqMTz5Ww5jALiRJY,6984
7
- pycontrails/core/cache.py,sha256=NNrFNUvmDEkeS0d1VpDNWmF225a8u2d-TGcpRgQd9Qs,28838
7
+ pycontrails/core/cache.py,sha256=5B8h6gqhn5Sy_pQR0wGn7QX-Cou8GdjwDUM59SRuDns,28852
8
8
  pycontrails/core/coordinates.py,sha256=cb8RprpoSgRTFbAXTPNfuUHVnOxyV3zZ0Ac88P5YbBw,5465
9
- pycontrails/core/datalib.py,sha256=j7fGMAIdvcg4caq_t2SHvHphgk_yfVM2lQVjBrdnhuA,24716
10
9
  pycontrails/core/fleet.py,sha256=WKF_s_gRXHmB9b1OW7RUkM1TzfvVD8Ab0Md-qKRwkzs,16544
11
- pycontrails/core/flight.py,sha256=yIucQGaiZ_F_DeSlLsp5Vz7u9uVbUWlLggmZP1X4uqU,85407
10
+ pycontrails/core/flight.py,sha256=V0SrkhXzBSnDydP4s4AJQMkNpPz1R90Vbtan4rxNFJ8,85867
12
11
  pycontrails/core/flightplan.py,sha256=cpMZ6VCYbfwh3vnew2XgVEHnqBx1NzeAhrTVCvlbbss,7569
13
12
  pycontrails/core/fuel.py,sha256=06YUDhvC8Rx6KbUXRB9qLTsJX2V7tLbzjwAfDH0R6l8,4472
14
13
  pycontrails/core/interpolation.py,sha256=Sp9s17i1QQx3jZwnwvt3vo6enWwlkYwTVKCE27N2Wdk,26214
15
14
  pycontrails/core/met.py,sha256=l0A1MEFrOUtYWO_ZHoHzYgqa1rmIh7fxA8PiwE26yT8,96251
16
15
  pycontrails/core/met_var.py,sha256=JzB7UhBLQyU4TuKZqemhpBHA6Dbt89BPYO2sYBLMkL4,9504
17
16
  pycontrails/core/models.py,sha256=VS-ct4xkojJIuqdPpT1ke1ZetNzv10nNx_Z_XalZyeo,40175
18
- pycontrails/core/polygon.py,sha256=iliIQv-EUpstP3nOEqgpqLhztW4UI_A4NeCGQuj0Ku8,18542
19
- pycontrails/core/rgi_cython.cp310-win_amd64.pyd,sha256=C1D6sJDUTS2OAgFUKKpu2DDLp3pfnLd4TAGqoMtNEWQ,257536
17
+ pycontrails/core/polygon.py,sha256=IwKnTRfKCgcOqbvKSsm-iJwd1HheS8sgsxAb6ufJy7c,18565
18
+ pycontrails/core/rgi_cython.cp310-win_amd64.pyd,sha256=koBXycJziUYTyKca1QZlHL_Z-f827qDS7Bqc9GSEAjY,259584
20
19
  pycontrails/core/vector.py,sha256=MF0oWX0Ghp_G41A712VbU1GEKRNU_Pj9PtzMREPG5Z8,73916
21
- pycontrails/datalib/__init__.py,sha256=WnXqgv20SrHZLjFZ9qpQEwRnf0QvfZU-YvMqh7PAUwg,246
22
- pycontrails/datalib/goes.py,sha256=NVk6QFfHbGpOINlKlG6PR1Hn_LCmzP7k20VJQZXpVG8,27124
20
+ pycontrails/datalib/__init__.py,sha256=Q2RrnjwtFzfsmJ2tEojDCzDMkd8R0MYw4mQz3YwUsqI,381
21
+ pycontrails/datalib/goes.py,sha256=xURMK5tJaJXas0lHQxdr1OC5VX7l-Ahsxl_dZDyQX8s,27122
22
+ pycontrails/datalib/landsat.py,sha256=ptcI5d7Hk7KM-LUuZUaUxnQMwb_8z70ezTx1ErKfBhU,20212
23
+ pycontrails/datalib/sentinel.py,sha256=I8-NzxJenESosMUeGTt8ESiJ_kFEUSLsKdA6pZGNrEM,17734
24
+ pycontrails/datalib/spire.py,sha256=aW0wh5GDrszFb20ZMzmWKQ4uHbOCmHvVt9Sf4U3AyTI,26070
25
+ pycontrails/datalib/_leo_utils/search.py,sha256=8JzT56ps3SH1W-5rwL8BWuxLLljwxa_5fjLAuZdL_Vg,8937
26
+ pycontrails/datalib/_leo_utils/vis.py,sha256=qViw9OxwMN2hqG8Qpm4SV7ShyI5nTjaYkNWSptAD9Lo,1819
27
+ pycontrails/datalib/_leo_utils/static/bq_roi_query.sql,sha256=r_gVjpoEvCcAJP56QlXaXzgfWPZdf-kYo3D316glJLU,266
28
+ pycontrails/datalib/_met_utils/metsource.py,sha256=HZ9bIaaCYDCBwzKW_1zUbItpP5If7HNBl7GX--_fDV8,24736
23
29
  pycontrails/datalib/ecmwf/__init__.py,sha256=a3prI136k2NCxCicLMWznvr52cTx6JjHpmV6ts4OGxI,1508
24
- pycontrails/datalib/ecmwf/arco_era5.py,sha256=kFNmci84-tx7AJDKF3Kv0BQja6L-QJ4M1RAsuErraHQ,19094
25
- pycontrails/datalib/ecmwf/common.py,sha256=_MQkB0qvrqMhLlGj4F4MXXi2YC_kuijeQHIX365jaYY,3940
26
- pycontrails/datalib/ecmwf/era5.py,sha256=D-AjF1f8nusL1NN5bfMgDWkbyZiNAfTtYWw8nlsEryA,18715
27
- pycontrails/datalib/ecmwf/era5_model_level.py,sha256=Ve2enkyoARQkG5CSD9o8CYw1ageJiU31aVAeoDojwW0,19362
28
- pycontrails/datalib/ecmwf/hres.py,sha256=agGc9Oope2yd0u_7nH4RuxOHkiU6dc_JvxAxdSIAoCY,28953
29
- pycontrails/datalib/ecmwf/hres_model_level.py,sha256=_A2QMEWOj8BairM30EpkuW_p0NMlWm93pxC8X6abnPk,19559
30
- pycontrails/datalib/ecmwf/ifs.py,sha256=PTdP-sRUYPAxDmAhxMDffdfUH4H3qMpTWahu4mn87GA,10877
30
+ pycontrails/datalib/ecmwf/arco_era5.py,sha256=gBQTK-pCQkwp0nsiewbnsnWjcpziekBvl1Lon27N43A,19151
31
+ pycontrails/datalib/ecmwf/common.py,sha256=OMCfeujF4sRxCpZl2q9ykgyg64AOBREJyU-sCO01V7g,3987
32
+ pycontrails/datalib/ecmwf/era5.py,sha256=fqnxfFYtLBGlln7zGNrrTWrrMb9jxMCMk1ZqS18xYsY,18780
33
+ pycontrails/datalib/ecmwf/era5_model_level.py,sha256=Qmt3dWyWlPu5pgS43IslMMlZTYTqgi28McnYhxbq8fk,19427
34
+ pycontrails/datalib/ecmwf/hres.py,sha256=NnpwQartFGxd6n3wIkSzZQiqHtimq5d9zUYxf7SDhiQ,29022
35
+ pycontrails/datalib/ecmwf/hres_model_level.py,sha256=CWNcu19Leybg-WTf6FPOIMDbEAebWrA07we9kn01rpk,19630
36
+ pycontrails/datalib/ecmwf/ifs.py,sha256=XzRZFutdf8TaHCAq1H7dmlC-hym8X-p8uluOwN1ToCw,10946
31
37
  pycontrails/datalib/ecmwf/model_levels.py,sha256=ZqgGmCDp_vcYNsTqPqUmYz6pPtILBEglWU7lMfynlO8,2791
32
38
  pycontrails/datalib/ecmwf/variables.py,sha256=vJIaxDM1Yg0-2hCR9BbD3NcJENk-Mh81NCnkzCh58tA,9861
33
39
  pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv,sha256=9u7CVA3QnPUmNLIWUkF5b9wFunczkvx1zSudwGmtOv8,9927
34
40
  pycontrails/datalib/gfs/__init__.py,sha256=VcE2j62ITbY7F3tEtgaLrfyjHWci-4mvLtnVg3SVgtE,712
35
- pycontrails/datalib/gfs/gfs.py,sha256=u8IJTXiA8Gx1CTKYPzHkopVi_BBSuUqLItTBpzmC0E8,22213
41
+ pycontrails/datalib/gfs/gfs.py,sha256=NWNgnI_t5cFjWE3bO9qQl4FE-RL4IkbOnBr7aBYefPU,22284
36
42
  pycontrails/datalib/gfs/variables.py,sha256=u2rAsjCJTehB6MhQj9YhlZYovdwoscqAH33T5aBDzSw,2961
37
- pycontrails/datalib/spire/__init__.py,sha256=YiS2SMSNU0bLHfbh41nQuKB8MnQNU8o3MldreM1nrM0,362
38
- pycontrails/datalib/spire/spire.py,sha256=aW0wh5GDrszFb20ZMzmWKQ4uHbOCmHvVt9Sf4U3AyTI,26070
39
43
  pycontrails/ext/bada.py,sha256=S0qfNYsp1cGqkHGPu-IkAwk66lD79yikRlrq9uwgPpI,1104
40
44
  pycontrails/ext/cirium.py,sha256=zRPVBBWwocZKkX3XhonSBf54x7P_xnjRcA7psI0Kqnw,429
41
45
  pycontrails/ext/empirical_grid.py,sha256=1WHyt1VOWEr7bMlnXo1tEKJgePvLKjKsCCee2w22gf8,4502
42
46
  pycontrails/ext/synthetic_flight.py,sha256=CxKDAX8Jao9VXuy_eRksS8zqIaMYgiv9az5DWBwRWJw,17105
43
47
  pycontrails/models/__init__.py,sha256=TKhrXe1Pu1-mV1gctx8cUAMrVxCCAtBkbZi9olfWq8s,34
44
48
  pycontrails/models/accf.py,sha256=72-2oRCSM98cwHxmKmO5ECaRPbiRE010jX5nTQDfHCs,12965
45
- pycontrails/models/dry_advection.py,sha256=z4XbEa0ihmcKyCrdaYbWEOYQ4yt9KfmpJ7jYhZ6g5lU,16622
49
+ pycontrails/models/dry_advection.py,sha256=ES4NBxmnStxkz2hmCRVGaQj77cnvmg5H-yiZppaSxsg,17042
46
50
  pycontrails/models/issr.py,sha256=mqRKm106kz8um1cbRblxLRZDJanvqa5Q1BI2sqK5pkQ,7561
47
51
  pycontrails/models/pcc.py,sha256=M5KhtRgdCP9pfDFgui7ibbijtRBTjx3QOJL_m1tQYfs,11443
48
52
  pycontrails/models/pcr.py,sha256=G_0yR5PsCMeJBP6tZFi3M7A6Wcq8s71UvosdA7ozUkI,5502
49
53
  pycontrails/models/sac.py,sha256=Cj4Hi3324wjqLQ7I2CPVkrIh2Fq5W5pKpGrwhYADoHI,16420
50
54
  pycontrails/models/tau_cirrus.py,sha256=eXt3yRrcFBaZNNeH6ZOuU4XEZU2rOfrLKEOC7f0_Ywo,5194
51
- pycontrails/models/cocip/__init__.py,sha256=X_MlkJzQ-henQ0xGq-1bfCMajH6s9tlK5QLnN7yfQ68,929
55
+ pycontrails/models/apcemm/__init__.py,sha256=dDsRW3V6jjzKDd43Yoyc74m_Om1fccvftZgp3OFdAYE,183
56
+ pycontrails/models/apcemm/apcemm.py,sha256=ijk04YApZf4EAPPLH-RLEZJRfDt2E6SfgPYKyrroaj4,40877
57
+ pycontrails/models/apcemm/inputs.py,sha256=zHRSWVVlwYw6ms7PpC0p0I-xFsRDUVY9eDZ1g95Uf8U,6811
58
+ pycontrails/models/apcemm/utils.py,sha256=6pKQbS5EAzTnI_edVtUvGrzM0xwNq1t9MBGgCRJtg_0,17531
59
+ pycontrails/models/apcemm/static/apcemm_yaml_template.yaml,sha256=A3H_FWVOtqkZhG91TWLdblMKaLWIcjRMsKqkfTN6mB4,6928
60
+ pycontrails/models/cocip/__init__.py,sha256=miDxSFxN9PzL_ieSJb3BYeHmbKqZwGicCz1scNB5eW0,991
52
61
  pycontrails/models/cocip/cocip.py,sha256=s9j5UhPCaaxiJZDXUvQ2KnEgvQz2pMrRHlWKZijwRIw,100140
53
62
  pycontrails/models/cocip/cocip_params.py,sha256=T4IseK6KtY4hG3BuGZBtFgM90HCYecUXsb_QVEK6uGo,11670
54
63
  pycontrails/models/cocip/cocip_uncertainty.py,sha256=lksROIRLt-jxEdjJTiLP9Da-FYt1GjZKaIxwDaH2Ytg,12069
55
64
  pycontrails/models/cocip/contrail_properties.py,sha256=u6SvucHC6VtF2kujfSVFTfv0263t5uYpNOUJZAroEzc,57111
56
- pycontrails/models/cocip/output_formats.py,sha256=sYGYosAL6BQvntKXdeomAph-K6EKOgsI2VQynLEHxnM,79228
65
+ pycontrails/models/cocip/output_formats.py,sha256=VFWXGIDcWg98aQhMdstOhWlfhmHEUP582eHtyfcaFvw,85473
57
66
  pycontrails/models/cocip/radiative_forcing.py,sha256=SYmQ8lL8gpWbf6he2C9mKSjODtytbFcdnMdBM-LtBKE,46206
58
67
  pycontrails/models/cocip/radiative_heating.py,sha256=N7FTR20luERmokprdqMOl-d8-cTYZZ2ZSsTdxZnLHfs,19368
59
68
  pycontrails/models/cocip/unterstrasser_wake_vortex.py,sha256=Ymz-uO9vVhLIFwT9yuF5g1g3hcT-XWdryLsebSBqoVU,14976
60
69
  pycontrails/models/cocip/wake_vortex.py,sha256=r3FM4egyGohRF0qGD3pFWBJppUQ_3GhtO_g7L74HmjU,14817
61
70
  pycontrails/models/cocip/wind_shear.py,sha256=Dm181EsiCBJWTnRTZ3ZI3YXscBRnhA6ANnKer004b2Q,3980
62
71
  pycontrails/models/cocipgrid/__init__.py,sha256=OYSdZ1Htbr_IP7N_HuOAj1Pa_KLHtdEeJfXP-cN-gnU,271
63
- pycontrails/models/cocipgrid/cocip_grid.py,sha256=0KWf3Wm8GZOOIy-D86Y8bC-2MIjKbVkhevXMG-eF85s,96680
72
+ pycontrails/models/cocipgrid/cocip_grid.py,sha256=GKBXMGcUXB_I8ssXHOQEQQzlrAec2TTVaWewzVlbhIM,96906
64
73
  pycontrails/models/cocipgrid/cocip_grid_params.py,sha256=ZpN00VEmeRYaeZhvSfVjnEjrgn6XdClf1eqJC8Ytcuw,6013
65
74
  pycontrails/models/emissions/__init__.py,sha256=BXzV2pBps8j3xbaF1n9uPdVVLI5MBIGYx8xqDJezYIE,499
66
75
  pycontrails/models/emissions/black_carbon.py,sha256=9DRqB487pH8Iq83FXggA5mPLYEAA8NpsKx24f8uTEF4,20828
@@ -92,9 +101,9 @@ pycontrails/utils/iteration.py,sha256=En2YY4NiNwCNtAVO8HL6tv9byBGKs8MKSI7R8P-gZy
92
101
  pycontrails/utils/json.py,sha256=xCv71CKVZNHk4MyoYC-hl7dXObXXbI7P8gcNCn3AUoU,6172
93
102
  pycontrails/utils/temp.py,sha256=5XXqQoEfWjz1OrhoOBZD5vkkCFeuq9LpZkyhc38gIeY,1159
94
103
  pycontrails/utils/types.py,sha256=gNG9cSZ3djW7jufg0h1fXM3kD24sBY6ENE6wsxY_Q6o,4937
95
- pycontrails-0.51.1.dist-info/LICENSE,sha256=HVr8JnZfTaA-12BfKUQZi5hdrB3awOwLWs5X_ga5QzA,10353
96
- pycontrails-0.51.1.dist-info/METADATA,sha256=DV-S88nuFZuvdNYedTdFfpc7A9_kQirr1jZqn5pmDsE,8527
97
- pycontrails-0.51.1.dist-info/NOTICE,sha256=qYeNEp8OjDK5jSW3hTlr9LQRjZeEhXQm0zDei5UFaYs,1969
98
- pycontrails-0.51.1.dist-info/WHEEL,sha256=lO6CqtLHCAi38X3Es1a4R1lAjZFvN010IMRCFo2S7Mc,102
99
- pycontrails-0.51.1.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
100
- pycontrails-0.51.1.dist-info/RECORD,,
104
+ pycontrails-0.52.0.dist-info/LICENSE,sha256=HVr8JnZfTaA-12BfKUQZi5hdrB3awOwLWs5X_ga5QzA,10353
105
+ pycontrails-0.52.0.dist-info/METADATA,sha256=H3dxmqQMQaqGUUx0vLTP0ffLxKf1kVyYj0wM2sKbzck,9001
106
+ pycontrails-0.52.0.dist-info/NOTICE,sha256=qYeNEp8OjDK5jSW3hTlr9LQRjZeEhXQm0zDei5UFaYs,1969
107
+ pycontrails-0.52.0.dist-info/WHEEL,sha256=lO6CqtLHCAi38X3Es1a4R1lAjZFvN010IMRCFo2S7Mc,102
108
+ pycontrails-0.52.0.dist-info/top_level.txt,sha256=Z8J1R_AiBAyCVjNw6jYLdrA68PrQqTg0t3_Yek_IZ0Q,29
109
+ pycontrails-0.52.0.dist-info/RECORD,,
@@ -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