anemoi-datasets 0.5.21__py3-none-any.whl → 0.5.22__py3-none-any.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.
- anemoi/datasets/_version.py +2 -2
- anemoi/datasets/check.py +93 -0
- anemoi/datasets/commands/check.py +101 -0
- anemoi/datasets/commands/copy.py +43 -3
- anemoi/datasets/commands/create.py +2 -3
- anemoi/datasets/commands/scan.py +17 -5
- anemoi/datasets/create/__init__.py +18 -7
- anemoi/datasets/create/check.py +19 -1
- anemoi/datasets/create/input/action.py +2 -0
- anemoi/datasets/create/input/result.py +6 -2
- anemoi/datasets/create/sources/accumulations.py +400 -34
- anemoi/datasets/create/sources/grib.py +18 -10
- anemoi/datasets/create/sources/xarray_support/metadata.py +6 -0
- anemoi/datasets/create/sources/xarray_zarr.py +1 -1
- anemoi/datasets/data/complement.py +28 -11
- anemoi/datasets/data/forwards.py +4 -0
- anemoi/datasets/data/grids.py +3 -3
- anemoi/datasets/data/stores.py +36 -4
- {anemoi_datasets-0.5.21.dist-info → anemoi_datasets-0.5.22.dist-info}/METADATA +3 -2
- {anemoi_datasets-0.5.21.dist-info → anemoi_datasets-0.5.22.dist-info}/RECORD +24 -22
- {anemoi_datasets-0.5.21.dist-info → anemoi_datasets-0.5.22.dist-info}/WHEEL +1 -1
- {anemoi_datasets-0.5.21.dist-info → anemoi_datasets-0.5.22.dist-info}/entry_points.txt +0 -0
- {anemoi_datasets-0.5.21.dist-info → anemoi_datasets-0.5.22.dist-info}/licenses/LICENSE +0 -0
- {anemoi_datasets-0.5.21.dist-info → anemoi_datasets-0.5.22.dist-info}/top_level.txt +0 -0
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
# nor does it submit to any jurisdiction.
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
import datetime
|
|
11
12
|
import logging
|
|
12
13
|
from abc import abstractmethod
|
|
13
14
|
from functools import cached_property
|
|
14
15
|
from typing import Any
|
|
15
16
|
from typing import Dict
|
|
16
17
|
from typing import List
|
|
18
|
+
from typing import Optional
|
|
17
19
|
from typing import Set
|
|
18
20
|
from typing import Tuple
|
|
19
21
|
|
|
@@ -30,7 +32,7 @@ from .indexing import apply_index_to_slices_changes
|
|
|
30
32
|
from .indexing import index_to_slices
|
|
31
33
|
from .indexing import update_tuple
|
|
32
34
|
from .misc import _auto_adjust
|
|
33
|
-
from .misc import
|
|
35
|
+
from .misc import _open_dataset
|
|
34
36
|
|
|
35
37
|
LOG = logging.getLogger(__name__)
|
|
36
38
|
|
|
@@ -92,6 +94,18 @@ class Complement(Combined):
|
|
|
92
94
|
"""Returns the list of variables to be added to the target dataset."""
|
|
93
95
|
return self._variables
|
|
94
96
|
|
|
97
|
+
@property
|
|
98
|
+
def statistics(self) -> Dict[str, NDArray[Any]]:
|
|
99
|
+
"""Returns the statistics of the complemented dataset."""
|
|
100
|
+
index = [self._source.name_to_index[v] for v in self._variables]
|
|
101
|
+
return {k: v[index] for k, v in self._source.statistics.items()}
|
|
102
|
+
|
|
103
|
+
def statistics_tendencies(self, delta: Optional[datetime.timedelta] = None) -> Dict[str, NDArray[Any]]:
|
|
104
|
+
index = [self._source.name_to_index[v] for v in self._variables]
|
|
105
|
+
if delta is None:
|
|
106
|
+
delta = self.frequency
|
|
107
|
+
return {k: v[index] for k, v in self._source.statistics_tendencies(delta).items()}
|
|
108
|
+
|
|
95
109
|
@property
|
|
96
110
|
def name_to_index(self) -> Dict[str, int]:
|
|
97
111
|
"""Returns a dictionary mapping variable names to their indices."""
|
|
@@ -170,6 +184,16 @@ class Complement(Combined):
|
|
|
170
184
|
"""
|
|
171
185
|
pass
|
|
172
186
|
|
|
187
|
+
def forwards_subclass_metadata_specific(self) -> dict[str, Any]:
|
|
188
|
+
"""Get the metadata specific to the forwards subclass.
|
|
189
|
+
|
|
190
|
+
Returns
|
|
191
|
+
-------
|
|
192
|
+
dict[str, Any]
|
|
193
|
+
The metadata specific to the forwards subclass.
|
|
194
|
+
"""
|
|
195
|
+
return dict(complement=self._source.dataset_metadata())
|
|
196
|
+
|
|
173
197
|
|
|
174
198
|
class ComplementNone(Complement):
|
|
175
199
|
"""A class to complement a target dataset with variables from a source dataset without interpolation."""
|
|
@@ -281,7 +305,6 @@ def complement_factory(args: Tuple, kwargs: dict) -> Dataset:
|
|
|
281
305
|
Dataset
|
|
282
306
|
The complemented dataset.
|
|
283
307
|
"""
|
|
284
|
-
from .select import Select
|
|
285
308
|
|
|
286
309
|
assert len(args) == 0, args
|
|
287
310
|
|
|
@@ -296,8 +319,8 @@ def complement_factory(args: Tuple, kwargs: dict) -> Dataset:
|
|
|
296
319
|
if interpolation not in ("none", "nearest"):
|
|
297
320
|
raise NotImplementedError(f"Complement method={interpolation} not implemented")
|
|
298
321
|
|
|
299
|
-
source =
|
|
300
|
-
target =
|
|
322
|
+
source = _open_dataset(source)
|
|
323
|
+
target = _open_dataset(target)
|
|
301
324
|
# `select` is the same as `variables`
|
|
302
325
|
(source, target), kwargs = _auto_adjust([source, target], kwargs, exclude=["select"])
|
|
303
326
|
|
|
@@ -309,10 +332,4 @@ def complement_factory(args: Tuple, kwargs: dict) -> Dataset:
|
|
|
309
332
|
|
|
310
333
|
complement = Class(target=target, source=source)._subset(**kwargs)
|
|
311
334
|
|
|
312
|
-
|
|
313
|
-
reorder = source.variables
|
|
314
|
-
complemented = _open([target, complement])
|
|
315
|
-
ordered = (
|
|
316
|
-
Select(complemented, complemented._reorder_to_columns(reorder), {"reoder": reorder})._subset(**kwargs).mutate(),
|
|
317
|
-
)
|
|
318
|
-
return ordered
|
|
335
|
+
return _open_dataset([target, complement], reorder=source.variables)
|
anemoi/datasets/data/forwards.py
CHANGED
|
@@ -290,6 +290,10 @@ class Combined(Forwards):
|
|
|
290
290
|
ValueError
|
|
291
291
|
If the resolutions are not the same.
|
|
292
292
|
"""
|
|
293
|
+
if d1.resolution is None or d2.resolution is None:
|
|
294
|
+
LOG.warning("One of the datasets has no resolution, cannot check compatibility")
|
|
295
|
+
return
|
|
296
|
+
|
|
293
297
|
if d1.resolution != d2.resolution:
|
|
294
298
|
raise ValueError(f"Incompatible resolutions: {d1.resolution} and {d2.resolution} ({d1} {d2})")
|
|
295
299
|
|
anemoi/datasets/data/grids.py
CHANGED
|
@@ -344,7 +344,7 @@ class Cutout(GridsBase):
|
|
|
344
344
|
self.cropping_distance = cropping_distance
|
|
345
345
|
self.neighbours = neighbours
|
|
346
346
|
self.min_distance_km = min_distance_km
|
|
347
|
-
self.
|
|
347
|
+
self._plot = plot
|
|
348
348
|
self.masks = [] # To store the masks for each LAM dataset
|
|
349
349
|
self.global_mask = np.ones(self.globe.shape[-1], dtype=bool)
|
|
350
350
|
|
|
@@ -373,7 +373,7 @@ class Cutout(GridsBase):
|
|
|
373
373
|
lam.longitudes,
|
|
374
374
|
self.globe.latitudes,
|
|
375
375
|
self.globe.longitudes,
|
|
376
|
-
plot=
|
|
376
|
+
plot=self._plot,
|
|
377
377
|
min_distance_km=self.min_distance_km,
|
|
378
378
|
cropping_distance=self.cropping_distance,
|
|
379
379
|
neighbours=self.neighbours,
|
|
@@ -399,7 +399,7 @@ class Cutout(GridsBase):
|
|
|
399
399
|
prev_lam_lons,
|
|
400
400
|
lam_lats,
|
|
401
401
|
lam_lons,
|
|
402
|
-
plot=
|
|
402
|
+
plot=self._plot,
|
|
403
403
|
min_distance_km=self.min_distance_km,
|
|
404
404
|
cropping_distance=self.cropping_distance,
|
|
405
405
|
neighbours=self.neighbours,
|
anemoi/datasets/data/stores.py
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import datetime
|
|
12
12
|
import logging
|
|
13
13
|
import os
|
|
14
|
+
import tempfile
|
|
14
15
|
import warnings
|
|
15
16
|
from functools import cached_property
|
|
16
17
|
from typing import Any
|
|
@@ -185,10 +186,30 @@ def name_to_zarr_store(path_or_url: str) -> ReadOnlyStore:
|
|
|
185
186
|
store = path_or_url
|
|
186
187
|
|
|
187
188
|
if store.startswith("s3://"):
|
|
188
|
-
|
|
189
|
+
return S3Store(store)
|
|
190
|
+
|
|
191
|
+
if store.startswith("http://") or store.startswith("https://"):
|
|
189
192
|
|
|
190
|
-
elif store.startswith("http://") or store.startswith("https://"):
|
|
191
193
|
parsed = urlparse(store)
|
|
194
|
+
|
|
195
|
+
if store.endswith(".zip"):
|
|
196
|
+
import multiurl
|
|
197
|
+
|
|
198
|
+
# Zarr cannot handle zip files over HTTP
|
|
199
|
+
tmpdir = tempfile.gettempdir()
|
|
200
|
+
name = os.path.basename(parsed.path)
|
|
201
|
+
path = os.path.join(tmpdir, name)
|
|
202
|
+
LOG.warning("Zarr does not support zip files over HTTP, downloading to %s", path)
|
|
203
|
+
if os.path.exists(path):
|
|
204
|
+
LOG.warning("File %s already exists, reusing it", path)
|
|
205
|
+
return name_to_zarr_store(path)
|
|
206
|
+
|
|
207
|
+
LOG.warning("Downloading %s", store)
|
|
208
|
+
|
|
209
|
+
multiurl.download(store, path + ".tmp")
|
|
210
|
+
os.rename(path + ".tmp", path)
|
|
211
|
+
return name_to_zarr_store(path)
|
|
212
|
+
|
|
192
213
|
bits = parsed.netloc.split(".")
|
|
193
214
|
if len(bits) == 5 and (bits[1], bits[3], bits[4]) == ("s3", "amazonaws", "com"):
|
|
194
215
|
s3_url = f"s3://{bits[0]}{parsed.path}"
|
|
@@ -540,10 +561,21 @@ QUIET = set()
|
|
|
540
561
|
|
|
541
562
|
def zarr_lookup(name: str, fail: bool = True) -> Optional[str]:
|
|
542
563
|
"""Look up a zarr dataset by name."""
|
|
543
|
-
if name.endswith(".zarr") or name.endswith(".zip"):
|
|
544
|
-
return name
|
|
545
564
|
|
|
546
565
|
config = load_config()["datasets"]
|
|
566
|
+
use_search_path_not_found = config.get("use_search_path_not_found", False)
|
|
567
|
+
|
|
568
|
+
if name.endswith(".zarr") or name.endswith(".zip"):
|
|
569
|
+
|
|
570
|
+
if os.path.exists(name):
|
|
571
|
+
return name
|
|
572
|
+
|
|
573
|
+
if not use_search_path_not_found:
|
|
574
|
+
# There will be an error triggered by the open_zarr
|
|
575
|
+
return name
|
|
576
|
+
|
|
577
|
+
LOG.warning("File %s not found, trying to search in the search path", name)
|
|
578
|
+
name = os.path.splitext(os.path.basename(name))[0]
|
|
547
579
|
|
|
548
580
|
if name in config["named"]:
|
|
549
581
|
if name not in QUIET:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.22
|
|
4
4
|
Summary: A package to hold various functions to support training of ML models on ECMWF data.
|
|
5
5
|
Author-email: "European Centre for Medium-Range Weather Forecasts (ECMWF)" <software.support@ecmwf.int>
|
|
6
6
|
License: Apache License
|
|
@@ -226,7 +226,7 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
|
226
226
|
Requires-Python: >=3.9
|
|
227
227
|
License-File: LICENSE
|
|
228
228
|
Requires-Dist: anemoi-transform>=0.1.9
|
|
229
|
-
Requires-Dist: anemoi-utils[provenance]>=0.4.
|
|
229
|
+
Requires-Dist: anemoi-utils[provenance]>=0.4.21
|
|
230
230
|
Requires-Dist: cfunits
|
|
231
231
|
Requires-Dist: numcodecs<0.16
|
|
232
232
|
Requires-Dist: numpy
|
|
@@ -269,4 +269,5 @@ Requires-Dist: kerchunk; extra == "xarray"
|
|
|
269
269
|
Requires-Dist: pandas; extra == "xarray"
|
|
270
270
|
Requires-Dist: planetary-computer; extra == "xarray"
|
|
271
271
|
Requires-Dist: pystac-client; extra == "xarray"
|
|
272
|
+
Requires-Dist: s3fs>=0.5; extra == "xarray"
|
|
272
273
|
Dynamic: license-file
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
anemoi/datasets/__init__.py,sha256=i_wsAT3ezEYF7o5dpqGrpoG4wmLS-QIBug18uJbSYMs,1065
|
|
2
2
|
anemoi/datasets/__main__.py,sha256=ErwAqE3rBc7OaNO2JRsEOhWpB8ldjAt7BFSuRhbnlqQ,936
|
|
3
|
-
anemoi/datasets/_version.py,sha256=
|
|
3
|
+
anemoi/datasets/_version.py,sha256=KERiCy5SlogIpKH0HhOSfNJ6Gz_dzHHWww2moJQR1BQ,513
|
|
4
|
+
anemoi/datasets/check.py,sha256=hbEMUurl2IjZbp56dBgOfAEsAmmgymgRM5ySaMJSTdk,2755
|
|
4
5
|
anemoi/datasets/grids.py,sha256=Hhj1aOXHvDjmI46M_UlLSjCs1qYqxH-uqd_kapDSdbU,18134
|
|
5
6
|
anemoi/datasets/testing.py,sha256=fy_JzavUwLlK_2rtXAT-UGUyo5gjyQW2y826zf334Wg,2645
|
|
6
7
|
anemoi/datasets/commands/__init__.py,sha256=O5W3yHZywRoAqmRUioAr3zMCh0hGVV18wZYGvc00ioM,698
|
|
8
|
+
anemoi/datasets/commands/check.py,sha256=zEJqE5XkNLsebemg5XIvvZTv2bA6R49zVaka9HRySKU,2655
|
|
7
9
|
anemoi/datasets/commands/cleanup.py,sha256=FX082xkHKCSd8d-FUN5zDBSiKA-QYQEeUZ6dCUD-Ob8,1816
|
|
8
10
|
anemoi/datasets/commands/compare-lam.py,sha256=F5GYRsKOtdhDePhifgf1TCj5L2T8EVIA2N8AdO-AKKY,14857
|
|
9
11
|
anemoi/datasets/commands/compare.py,sha256=jzhjbbt1U-YANTVRBhrwSh2CcYgk4qX2IiTMJtcn82s,3678
|
|
10
|
-
anemoi/datasets/commands/copy.py,sha256=
|
|
11
|
-
anemoi/datasets/commands/create.py,sha256=
|
|
12
|
+
anemoi/datasets/commands/copy.py,sha256=hP7BSqkGzK8-n3BA2vlpFcbO3INHmShPZ75Aw_K_g4Y,17302
|
|
13
|
+
anemoi/datasets/commands/create.py,sha256=3myohTCLsM6oUuZHIfLaTlDaq-DOcJZRM4Vks007fZg,6543
|
|
12
14
|
anemoi/datasets/commands/finalise-additions.py,sha256=2LqU7ke3i-yRQbjkgldX6e2QlyE-tKqp0b6QOhJF19g,1985
|
|
13
15
|
anemoi/datasets/commands/finalise.py,sha256=-YtN9wFFDrM_i_V9YHoXZsajF3eAax-73Zsi4uHAFCI,1709
|
|
14
16
|
anemoi/datasets/commands/grib-index.py,sha256=H9snsk1w2tL6ObBhlHVxFXxCm5sB-eUGrX772G8Nb2s,3057
|
|
@@ -19,11 +21,11 @@ anemoi/datasets/commands/load-additions.py,sha256=zqmRherIHXb5WIB4cnAuCBEsxFJmUp
|
|
|
19
21
|
anemoi/datasets/commands/load.py,sha256=U1Y8qByjreu7H9WeX4G8-tyKsz48va10fkW1L4U4wWg,2034
|
|
20
22
|
anemoi/datasets/commands/patch.py,sha256=Q9FDabWxlvK1QaeH4D9zhNpoSGB4h7EliWgcV76iFBs,1599
|
|
21
23
|
anemoi/datasets/commands/publish.py,sha256=7YusLCWYdVLuexZzvyh8ztYoBOBzVmve3uJs-XKeMAE,1469
|
|
22
|
-
anemoi/datasets/commands/scan.py,sha256=
|
|
24
|
+
anemoi/datasets/commands/scan.py,sha256=6Uoyd7WkM4ypoqmZargXIG50uRKzHE3AlvkAr7sCBy4,4262
|
|
23
25
|
anemoi/datasets/compute/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
|
|
24
26
|
anemoi/datasets/compute/recentre.py,sha256=kwxDB8qpgOCFZSQJvjAmVcpH5zWsfk5FSoIureqNHd4,5915
|
|
25
|
-
anemoi/datasets/create/__init__.py,sha256=
|
|
26
|
-
anemoi/datasets/create/check.py,sha256=
|
|
27
|
+
anemoi/datasets/create/__init__.py,sha256=8TJwN_t7Epg6yBSbbRW2L039Xh_aqUsUgZBNR3U2yl0,51165
|
|
28
|
+
anemoi/datasets/create/check.py,sha256=xqobSfh3655ZoKs-CjHWBiEpIfrHU_vkqwiIsAOrqvs,10795
|
|
27
29
|
anemoi/datasets/create/chunks.py,sha256=kZV3dWoCuv3Bttc0wysJB7OPbXsD99exKyrrj4HGFwQ,4025
|
|
28
30
|
anemoi/datasets/create/config.py,sha256=xrSlaY2p5zssfLIt8A1CP9WwJReSXVWBMQM7bT1aFbU,13448
|
|
29
31
|
anemoi/datasets/create/filter.py,sha256=Hu4o3Z2omIdcu5ycJqmBkY_ZSKTG5JkjbIuxXM8ADfs,1254
|
|
@@ -56,7 +58,7 @@ anemoi/datasets/create/filters/unrotate_winds.py,sha256=3AJf0crnVVySLlXLIdfEUxRR
|
|
|
56
58
|
anemoi/datasets/create/filters/uv_to_speeddir.py,sha256=Zdc34AG5Bsz-Z7JGuznyRJr6F-BnWKXPiI3mjmOpbek,2883
|
|
57
59
|
anemoi/datasets/create/filters/wz_to_w.py,sha256=slOiX5RibG48Zrkss8Qjpb-8ZTnvSvmKlk1Hy45_wzU,2812
|
|
58
60
|
anemoi/datasets/create/input/__init__.py,sha256=XeURpmbReQvpELltGFKzg3oZFXWRdUxW9SK3K662SBQ,3364
|
|
59
|
-
anemoi/datasets/create/input/action.py,sha256=
|
|
61
|
+
anemoi/datasets/create/input/action.py,sha256=pc_2RPbs3laF8vBhNkbFdib40kTcF5QW6QL0p8VLNzA,7778
|
|
60
62
|
anemoi/datasets/create/input/concat.py,sha256=bU8SWfBVfK8bRAmmN4UO9zpIGxwQvRUk9_vwrKPOTE4,5355
|
|
61
63
|
anemoi/datasets/create/input/context.py,sha256=qrLccxMe9UkyQxsNuR6JSK7oLzZq21dt38AxZ9kYzsY,2714
|
|
62
64
|
anemoi/datasets/create/input/data_sources.py,sha256=4xUUShM0pCXIZVPJW_cSNMUwCO_wLx996MLFpTLChm0,4385
|
|
@@ -67,19 +69,19 @@ anemoi/datasets/create/input/join.py,sha256=RAdgE4lVcC71_J47dNa1weJuWdTXSQIvo06G
|
|
|
67
69
|
anemoi/datasets/create/input/misc.py,sha256=FVaH_ym52RZI_fnLSMM_dKTQmWTrInucP780E3gGqvw,3357
|
|
68
70
|
anemoi/datasets/create/input/pipe.py,sha256=-tCz161IwXoI8pl1hilA9T_j5eHSr-sgbijFLp9HHNc,2083
|
|
69
71
|
anemoi/datasets/create/input/repeated_dates.py,sha256=HaPzDCNHQBY1VVp6gvd3drwjWjYpSBh-GLgHqBRJTz0,12012
|
|
70
|
-
anemoi/datasets/create/input/result.py,sha256=
|
|
72
|
+
anemoi/datasets/create/input/result.py,sha256=BmeZVN63ZnUkiOwT0mkE4DdB06OmVwdRZkiV4ACPNrI,24309
|
|
71
73
|
anemoi/datasets/create/input/step.py,sha256=WcR9NgRvUKF60Fo5veLvRCAQMrOd55x1gOEAmd2t2r4,5948
|
|
72
74
|
anemoi/datasets/create/input/template.py,sha256=Iycw9VmfA0WEIDP_Of8bp-8HsV0EUfwbnm0WjxiO4GA,4092
|
|
73
75
|
anemoi/datasets/create/input/trace.py,sha256=dakPYMmwKq6s17Scww1CN-xYBD3btJTGeDknOhAcnEM,3320
|
|
74
76
|
anemoi/datasets/create/sources/__init__.py,sha256=XNiiGaC6NbxnGfl6glPw-gTJASi3vsGKwVlfkMqYGk4,950
|
|
75
|
-
anemoi/datasets/create/sources/accumulations.py,sha256=
|
|
77
|
+
anemoi/datasets/create/sources/accumulations.py,sha256=ifnUtbvmA8s7KOEL7ZOgbkiPxL3pa0FclGsZWZN3eyE,32782
|
|
76
78
|
anemoi/datasets/create/sources/accumulations2.py,sha256=iBORRrH0N7r3gMWm3mCkJ6XmB-dO_lEckHPwvmk9fu0,20673
|
|
77
79
|
anemoi/datasets/create/sources/anemoi_dataset.py,sha256=2xJJTmKlv87F_2ECMKeehaeW7_oWLlDcLt8C_Prp1RI,2017
|
|
78
80
|
anemoi/datasets/create/sources/constants.py,sha256=5O6d9tEuAmVjl5vNkNfmkaAjKXFlw1UjeueTsF1GZCI,1528
|
|
79
81
|
anemoi/datasets/create/sources/eccc_fstd.py,sha256=8HK38f444HcWMvBhooP0XqTfMXYoCbN_8G9RI_Ne5rc,659
|
|
80
82
|
anemoi/datasets/create/sources/empty.py,sha256=5mVIVRUwnBfE3zp-bvNA_imXCSpyds-4mewcI8HXAiY,1020
|
|
81
83
|
anemoi/datasets/create/sources/forcings.py,sha256=PmcAd-nFZzILRxfvrptb45VLD9Nd2vjy0xeToeoKl1Y,1222
|
|
82
|
-
anemoi/datasets/create/sources/grib.py,sha256=
|
|
84
|
+
anemoi/datasets/create/sources/grib.py,sha256=wh1kx2IbzeHDzqSEKB-gaM3Cs3Z_oVa7pyHZiOzF3-s,4278
|
|
83
85
|
anemoi/datasets/create/sources/grib_index.py,sha256=Pnm0RLga9lpD4MqVaZr7IqXMBlw1DtTIWZRfz7fq30Q,19026
|
|
84
86
|
anemoi/datasets/create/sources/hindcasts.py,sha256=_4880rgd4AsRxlDXVi6dkh8mlKXrz2i27btVlmlMFjY,2611
|
|
85
87
|
anemoi/datasets/create/sources/legacy.py,sha256=RJce-9TwmUUCFbgC8A3Dp61nSBfB8_lWti8WNoOMIcU,2652
|
|
@@ -92,7 +94,7 @@ anemoi/datasets/create/sources/source.py,sha256=x8k---A2_3AglYqNsXLlv1ti4f9n_gVK
|
|
|
92
94
|
anemoi/datasets/create/sources/tendencies.py,sha256=saHGYl-MnvBEeZX-n1zgT8lehA7LC2G5dMNnxklI9-U,5590
|
|
93
95
|
anemoi/datasets/create/sources/xarray.py,sha256=zBuWCmBidEY3Wz6DDRZStBcrkw646AXpIM8B1nHV55c,2555
|
|
94
96
|
anemoi/datasets/create/sources/xarray_kerchunk.py,sha256=vdFaFzze8VLjYUgIX8Lc39ELvwmgfT3ioyxBHAt4nrs,1136
|
|
95
|
-
anemoi/datasets/create/sources/xarray_zarr.py,sha256=
|
|
97
|
+
anemoi/datasets/create/sources/xarray_zarr.py,sha256=5eQOpB3sBD49RarTME81s0ynIVkha2pP0ymA4TNnLYY,1201
|
|
96
98
|
anemoi/datasets/create/sources/zenodo.py,sha256=KEetFEk5GzGFpoos8rbBQBTa2XElWG7oTYjfZXgbu0Q,2065
|
|
97
99
|
anemoi/datasets/create/sources/xarray_support/README.md,sha256=56olM9Jh0vI0_bU9GI-IqbBcz4DZXWONqvdzN_VeAFE,78
|
|
98
100
|
anemoi/datasets/create/sources/xarray_support/__init__.py,sha256=8Dv7KQW8O3VvHOsSbqYdjaaomYIhXIKgSGatnNEweNU,5564
|
|
@@ -101,22 +103,22 @@ anemoi/datasets/create/sources/xarray_support/field.py,sha256=YRxx6kh1qO2qQ6I_Vy
|
|
|
101
103
|
anemoi/datasets/create/sources/xarray_support/fieldlist.py,sha256=UyUljq2Ax-PpQ-bvG4Dsi_lkZucuPgCy120EadDeUMU,8271
|
|
102
104
|
anemoi/datasets/create/sources/xarray_support/flavour.py,sha256=UyfzBjYMNfugMCq-r5Ie3qDuorLwaalPi_0oZHckZcg,32073
|
|
103
105
|
anemoi/datasets/create/sources/xarray_support/grid.py,sha256=lsE8bQwBH9pflzvsJ89Z6ExYPdHJd54xorMNzL2gTd0,6181
|
|
104
|
-
anemoi/datasets/create/sources/xarray_support/metadata.py,sha256=
|
|
106
|
+
anemoi/datasets/create/sources/xarray_support/metadata.py,sha256=OJ35Y4m9BpPmnrabD9qiuHUEfejc6YfTIWPm8prHokk,10876
|
|
105
107
|
anemoi/datasets/create/sources/xarray_support/patch.py,sha256=Snk8bz7gp0HrG0MrY5hrXu7VC0tKgtoiWXByi2sBYJc,2037
|
|
106
108
|
anemoi/datasets/create/sources/xarray_support/time.py,sha256=Y_lZTUOXWJH4jcSgyL4WTDwrtPXi7MUiumaXfRoqqAY,12486
|
|
107
109
|
anemoi/datasets/create/sources/xarray_support/variable.py,sha256=fcazws9vuizmx55JCXwbkwffg4WxJllPrEg2US1VysE,9163
|
|
108
110
|
anemoi/datasets/create/statistics/__init__.py,sha256=_BuPcuUrwQAEcMQVds93EV9M5ys2ao8jCWKV4OVoSSA,18291
|
|
109
111
|
anemoi/datasets/create/statistics/summary.py,sha256=JdtChTmsr1Y958_nka36HltTbeZkawuGbprbfZD7Ux8,4790
|
|
110
112
|
anemoi/datasets/data/__init__.py,sha256=wzhk_7VQImge12Xkg99xuiFOC7DAjBW1mu446y0Iq60,3057
|
|
111
|
-
anemoi/datasets/data/complement.py,sha256=
|
|
113
|
+
anemoi/datasets/data/complement.py,sha256=N1vJAO2bijrWAxXQi9AFAPVEBe4vikSIKEXcX1EqQHI,10590
|
|
112
114
|
anemoi/datasets/data/concat.py,sha256=eY5rujcdal00BJCv00mKSlxp0FKVvPQd7uqrBnL9fj4,8996
|
|
113
115
|
anemoi/datasets/data/dataset.py,sha256=d-LZPCczG2-ZAua29FGP3_QWzwdnWPHhKpG1dHFQKio,31290
|
|
114
116
|
anemoi/datasets/data/debug.css,sha256=z2X_ZDSnZ9C3pyZPWnQiEyAxuMxUaxJxET4oaCImTAQ,211
|
|
115
117
|
anemoi/datasets/data/debug.py,sha256=hVa1jAQ-TK7CoKJNyyUC0eZPobFG-FpkVXEaO_3B-MA,10796
|
|
116
118
|
anemoi/datasets/data/ensemble.py,sha256=-36kMjuT2y5jUeSnjCRTCyE4um6DLAADBVSKSTkHZZg,5352
|
|
117
119
|
anemoi/datasets/data/fill_missing.py,sha256=ceONpzD-PWLMTtG4WOw6USw-Cd1O55VYzfpAiEsROK8,8797
|
|
118
|
-
anemoi/datasets/data/forwards.py,sha256=
|
|
119
|
-
anemoi/datasets/data/grids.py,sha256=
|
|
120
|
+
anemoi/datasets/data/forwards.py,sha256=3DHmjed5lDG-4tUIafvbAE5z7bJ-odVT6yG68EdQzoY,19904
|
|
121
|
+
anemoi/datasets/data/grids.py,sha256=8fZSitKTStBT-fsQWwTXiTgyrmYjh_jQ5dJi1U3lRz0,22056
|
|
120
122
|
anemoi/datasets/data/indexing.py,sha256=DasVd1j0FB0iTw6eqvhiLka4ztf2zJcI5NgWxmtxzCw,7526
|
|
121
123
|
anemoi/datasets/data/interpolate.py,sha256=-kSYwdjKH7zJtfITdbqdH6KyOFGVZDyHg4TaFk9shEI,9279
|
|
122
124
|
anemoi/datasets/data/join.py,sha256=ZEHOsCecKBkKKH-vki404Sm7r7cV368ECO7PXPpay3s,9212
|
|
@@ -127,16 +129,16 @@ anemoi/datasets/data/missing.py,sha256=ogfVDponbs0bGHMxps32Fj_fq4gT26R70yEMco5gd
|
|
|
127
129
|
anemoi/datasets/data/rescale.py,sha256=nGfJ5tWCncMJ7NMXkLbmt6z0ELrD6FxpbjJreQ3W91g,7004
|
|
128
130
|
anemoi/datasets/data/select.py,sha256=Xs6uOzJL0CoOGeWA_E5_ukr8Jav2kXbZ41vhk7Vr8PE,8277
|
|
129
131
|
anemoi/datasets/data/statistics.py,sha256=Hi9tPtNPBFaD0jcBa5vxoZp1radEMS-1RXwA3RbWrK8,3173
|
|
130
|
-
anemoi/datasets/data/stores.py,sha256
|
|
132
|
+
anemoi/datasets/data/stores.py,sha256=9RuNKbBv3SeEKRME63GZKzlJonMlvvyQk6F4xhSheL4,20023
|
|
131
133
|
anemoi/datasets/data/subset.py,sha256=3h3Y7Mcw-fxs9-S0z8WNk6TcV5Hk5u9ZWfpJCTAZt4g,8804
|
|
132
134
|
anemoi/datasets/data/unchecked.py,sha256=c7YIa9gFxOOjqyyOqrhGaFWQ1pN7_0W1Q8ABUTkI8e8,7311
|
|
133
135
|
anemoi/datasets/data/xy.py,sha256=-jWzYismrK3eI3YCKIBpU1BCmraRncmVn0_2IUY--lk,7579
|
|
134
136
|
anemoi/datasets/dates/__init__.py,sha256=pEArHDQ7w5E0WC8Vvf9ypyKSdm6gnhoN9TmooITB7C4,13617
|
|
135
137
|
anemoi/datasets/dates/groups.py,sha256=IOveL6IyTXZwEdXZEnRAnpu9pINY95VN7LzcpLfJ09E,10105
|
|
136
138
|
anemoi/datasets/utils/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
|
|
137
|
-
anemoi_datasets-0.5.
|
|
138
|
-
anemoi_datasets-0.5.
|
|
139
|
-
anemoi_datasets-0.5.
|
|
140
|
-
anemoi_datasets-0.5.
|
|
141
|
-
anemoi_datasets-0.5.
|
|
142
|
-
anemoi_datasets-0.5.
|
|
139
|
+
anemoi_datasets-0.5.22.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
|
|
140
|
+
anemoi_datasets-0.5.22.dist-info/METADATA,sha256=69SMdVpJ30oSexpKZRQnt8wh1-Y_SqG2blHvW0XByVY,16113
|
|
141
|
+
anemoi_datasets-0.5.22.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
|
|
142
|
+
anemoi_datasets-0.5.22.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
|
|
143
|
+
anemoi_datasets-0.5.22.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
|
|
144
|
+
anemoi_datasets-0.5.22.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|