anemoi-datasets 0.5.27__py3-none-any.whl → 0.5.29__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/commands/recipe/__init__.py +93 -0
- anemoi/datasets/commands/recipe/format.py +55 -0
- anemoi/datasets/commands/recipe/migrate.py +555 -0
- anemoi/datasets/create/__init__.py +46 -13
- anemoi/datasets/create/config.py +52 -53
- anemoi/datasets/create/input/__init__.py +43 -63
- anemoi/datasets/create/input/action.py +296 -236
- anemoi/datasets/create/input/context/__init__.py +71 -0
- anemoi/datasets/create/input/context/field.py +54 -0
- anemoi/datasets/create/input/data_sources.py +2 -1
- anemoi/datasets/create/input/misc.py +0 -71
- anemoi/datasets/create/input/repeated_dates.py +0 -114
- anemoi/datasets/create/input/result/__init__.py +17 -0
- anemoi/datasets/create/input/{result.py → result/field.py} +10 -92
- anemoi/datasets/create/sources/accumulate.py +517 -0
- anemoi/datasets/create/sources/accumulate_utils/__init__.py +8 -0
- anemoi/datasets/create/sources/accumulate_utils/covering_intervals.py +221 -0
- anemoi/datasets/create/sources/accumulate_utils/field_to_interval.py +149 -0
- anemoi/datasets/create/sources/accumulate_utils/interval_generators.py +321 -0
- anemoi/datasets/create/sources/anemoi_dataset.py +46 -42
- anemoi/datasets/create/sources/constants.py +39 -38
- anemoi/datasets/create/sources/empty.py +26 -22
- anemoi/datasets/create/sources/forcings.py +29 -28
- anemoi/datasets/create/sources/grib.py +92 -72
- anemoi/datasets/create/sources/grib_index.py +102 -54
- anemoi/datasets/create/sources/hindcasts.py +56 -55
- anemoi/datasets/create/sources/legacy.py +10 -62
- anemoi/datasets/create/sources/mars.py +159 -154
- anemoi/datasets/create/sources/netcdf.py +28 -24
- anemoi/datasets/create/sources/opendap.py +28 -24
- anemoi/datasets/create/sources/recentre.py +42 -41
- anemoi/datasets/create/sources/repeated_dates.py +44 -0
- anemoi/datasets/create/sources/source.py +26 -48
- anemoi/datasets/create/sources/xarray_support/__init__.py +30 -24
- anemoi/datasets/create/sources/xarray_support/coordinates.py +1 -4
- anemoi/datasets/create/sources/xarray_support/field.py +4 -4
- anemoi/datasets/create/sources/xarray_support/flavour.py +2 -2
- anemoi/datasets/create/sources/xarray_support/patch.py +178 -5
- anemoi/datasets/create/sources/xarray_zarr.py +28 -24
- anemoi/datasets/create/sources/zenodo.py +43 -39
- anemoi/datasets/create/utils.py +0 -42
- anemoi/datasets/data/complement.py +26 -17
- anemoi/datasets/data/dataset.py +12 -0
- anemoi/datasets/data/grids.py +0 -152
- anemoi/datasets/data/masked.py +74 -13
- anemoi/datasets/data/missing.py +5 -0
- anemoi/datasets/data/rolling_average.py +141 -0
- anemoi/datasets/data/stores.py +7 -9
- anemoi/datasets/dates/__init__.py +2 -0
- anemoi/datasets/dumper.py +76 -0
- anemoi/datasets/grids.py +1 -178
- anemoi/datasets/schemas/recipe.json +131 -0
- {anemoi_datasets-0.5.27.dist-info → anemoi_datasets-0.5.29.dist-info}/METADATA +9 -6
- {anemoi_datasets-0.5.27.dist-info → anemoi_datasets-0.5.29.dist-info}/RECORD +59 -57
- {anemoi_datasets-0.5.27.dist-info → anemoi_datasets-0.5.29.dist-info}/WHEEL +1 -1
- anemoi/datasets/create/filter.py +0 -47
- anemoi/datasets/create/input/concat.py +0 -161
- anemoi/datasets/create/input/context.py +0 -86
- anemoi/datasets/create/input/empty.py +0 -53
- anemoi/datasets/create/input/filter.py +0 -117
- anemoi/datasets/create/input/function.py +0 -232
- anemoi/datasets/create/input/join.py +0 -129
- anemoi/datasets/create/input/pipe.py +0 -66
- anemoi/datasets/create/input/step.py +0 -173
- anemoi/datasets/create/input/template.py +0 -161
- anemoi/datasets/create/sources/accumulations.py +0 -1062
- anemoi/datasets/create/sources/accumulations2.py +0 -647
- anemoi/datasets/create/sources/tendencies.py +0 -198
- {anemoi_datasets-0.5.27.dist-info → anemoi_datasets-0.5.29.dist-info}/entry_points.txt +0 -0
- {anemoi_datasets-0.5.27.dist-info → anemoi_datasets-0.5.29.dist-info}/licenses/LICENSE +0 -0
- {anemoi_datasets-0.5.27.dist-info → anemoi_datasets-0.5.29.dist-info}/top_level.txt +0 -0
anemoi/datasets/grids.py
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
# nor does it submit to any jurisdiction.
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
import base64
|
|
12
11
|
import logging
|
|
13
12
|
from typing import Any
|
|
14
13
|
|
|
15
14
|
import numpy as np
|
|
15
|
+
from anemoi.utils.grids import latlon_to_xyz
|
|
16
16
|
from numpy.typing import NDArray
|
|
17
17
|
|
|
18
18
|
LOG = logging.getLogger(__name__)
|
|
@@ -88,71 +88,6 @@ def plot_mask(
|
|
|
88
88
|
plt.savefig(path + "-global-zoomed.png")
|
|
89
89
|
|
|
90
90
|
|
|
91
|
-
# TODO: Use the one from anemoi.utils.grids instead
|
|
92
|
-
# from anemoi.utils.grids import ...
|
|
93
|
-
def xyz_to_latlon(x: NDArray[Any], y: NDArray[Any], z: NDArray[Any]) -> tuple[NDArray[Any], NDArray[Any]]:
|
|
94
|
-
"""Convert Cartesian coordinates to latitude and longitude.
|
|
95
|
-
|
|
96
|
-
Parameters
|
|
97
|
-
----------
|
|
98
|
-
x : NDArray[Any]
|
|
99
|
-
X coordinates.
|
|
100
|
-
y : NDArray[Any]
|
|
101
|
-
Y coordinates.
|
|
102
|
-
z : NDArray[Any]
|
|
103
|
-
Z coordinates.
|
|
104
|
-
|
|
105
|
-
Returns
|
|
106
|
-
-------
|
|
107
|
-
Tuple[NDArray[Any], NDArray[Any]]
|
|
108
|
-
Latitude and longitude coordinates.
|
|
109
|
-
"""
|
|
110
|
-
return (
|
|
111
|
-
np.rad2deg(np.arcsin(np.minimum(1.0, np.maximum(-1.0, z)))),
|
|
112
|
-
np.rad2deg(np.arctan2(y, x)),
|
|
113
|
-
)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
# TODO: Use the one from anemoi.utils.grids instead
|
|
117
|
-
# from anemoi.utils.grids import ...
|
|
118
|
-
def latlon_to_xyz(
|
|
119
|
-
lat: NDArray[Any], lon: NDArray[Any], radius: float = 1.0
|
|
120
|
-
) -> tuple[NDArray[Any], NDArray[Any], NDArray[Any]]:
|
|
121
|
-
"""Convert latitude and longitude to Cartesian coordinates.
|
|
122
|
-
|
|
123
|
-
Parameters
|
|
124
|
-
----------
|
|
125
|
-
lat : NDArray[Any]
|
|
126
|
-
Latitude coordinates.
|
|
127
|
-
lon : NDArray[Any]
|
|
128
|
-
Longitude coordinates.
|
|
129
|
-
radius : float, optional
|
|
130
|
-
Radius of the sphere. Defaults to 1.0.
|
|
131
|
-
|
|
132
|
-
Returns
|
|
133
|
-
-------
|
|
134
|
-
Tuple[NDArray[Any], NDArray[Any], NDArray[Any]]
|
|
135
|
-
X, Y, and Z coordinates.
|
|
136
|
-
"""
|
|
137
|
-
# https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates
|
|
138
|
-
# We assume that the Earth is a sphere of radius 1 so N(phi) = 1
|
|
139
|
-
# We assume h = 0
|
|
140
|
-
#
|
|
141
|
-
phi = np.deg2rad(lat)
|
|
142
|
-
lda = np.deg2rad(lon)
|
|
143
|
-
|
|
144
|
-
cos_phi = np.cos(phi)
|
|
145
|
-
cos_lda = np.cos(lda)
|
|
146
|
-
sin_phi = np.sin(phi)
|
|
147
|
-
sin_lda = np.sin(lda)
|
|
148
|
-
|
|
149
|
-
x = cos_phi * cos_lda * radius
|
|
150
|
-
y = cos_phi * sin_lda * radius
|
|
151
|
-
z = sin_phi * radius
|
|
152
|
-
|
|
153
|
-
return x, y, z
|
|
154
|
-
|
|
155
|
-
|
|
156
91
|
class Triangle3D:
|
|
157
92
|
"""A class to represent a 3D triangle and perform intersection tests with rays."""
|
|
158
93
|
|
|
@@ -509,92 +444,6 @@ def outline(lats: NDArray[Any], lons: NDArray[Any], neighbours: int = 5) -> list
|
|
|
509
444
|
return outside
|
|
510
445
|
|
|
511
446
|
|
|
512
|
-
def deserialise_mask(encoded: str) -> NDArray[Any]:
|
|
513
|
-
"""Deserialise a mask from a base64 encoded string.
|
|
514
|
-
|
|
515
|
-
Parameters
|
|
516
|
-
----------
|
|
517
|
-
encoded : str
|
|
518
|
-
Base64 encoded string.
|
|
519
|
-
|
|
520
|
-
Returns
|
|
521
|
-
-------
|
|
522
|
-
NDArray[Any]
|
|
523
|
-
Deserialised mask array.
|
|
524
|
-
"""
|
|
525
|
-
import pickle
|
|
526
|
-
import zlib
|
|
527
|
-
|
|
528
|
-
packed = pickle.loads(zlib.decompress(base64.b64decode(encoded)))
|
|
529
|
-
|
|
530
|
-
mask = []
|
|
531
|
-
value = False
|
|
532
|
-
for count in packed:
|
|
533
|
-
mask.extend([value] * count)
|
|
534
|
-
value = not value
|
|
535
|
-
return np.array(mask, dtype=bool)
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
def _serialise_mask(mask: NDArray[Any]) -> str:
|
|
539
|
-
"""Serialise a mask to a base64 encoded string.
|
|
540
|
-
|
|
541
|
-
Parameters
|
|
542
|
-
----------
|
|
543
|
-
mask : NDArray[Any]
|
|
544
|
-
Mask array.
|
|
545
|
-
|
|
546
|
-
Returns
|
|
547
|
-
-------
|
|
548
|
-
str
|
|
549
|
-
Base64 encoded string.
|
|
550
|
-
"""
|
|
551
|
-
import pickle
|
|
552
|
-
import zlib
|
|
553
|
-
|
|
554
|
-
assert len(mask.shape) == 1
|
|
555
|
-
assert len(mask)
|
|
556
|
-
|
|
557
|
-
packed = []
|
|
558
|
-
last = mask[0]
|
|
559
|
-
count = 1
|
|
560
|
-
|
|
561
|
-
for value in mask[1:]:
|
|
562
|
-
if value == last:
|
|
563
|
-
count += 1
|
|
564
|
-
else:
|
|
565
|
-
packed.append(count)
|
|
566
|
-
last = value
|
|
567
|
-
count = 1
|
|
568
|
-
|
|
569
|
-
packed.append(count)
|
|
570
|
-
|
|
571
|
-
# We always start with an 'off' value
|
|
572
|
-
# So if the first value is 'on', we need to add a zero
|
|
573
|
-
if mask[0]:
|
|
574
|
-
packed.insert(0, 0)
|
|
575
|
-
|
|
576
|
-
return base64.b64encode(zlib.compress(pickle.dumps(packed))).decode("utf-8")
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
def serialise_mask(mask: NDArray[Any]) -> str:
|
|
580
|
-
"""Serialise a mask and ensure it can be deserialised.
|
|
581
|
-
|
|
582
|
-
Parameters
|
|
583
|
-
----------
|
|
584
|
-
mask : NDArray[Any]
|
|
585
|
-
Mask array.
|
|
586
|
-
|
|
587
|
-
Returns
|
|
588
|
-
-------
|
|
589
|
-
str
|
|
590
|
-
Base64 encoded string.
|
|
591
|
-
"""
|
|
592
|
-
result = _serialise_mask(mask)
|
|
593
|
-
# Make sure we can deserialise it
|
|
594
|
-
assert np.all(mask == deserialise_mask(result))
|
|
595
|
-
return result
|
|
596
|
-
|
|
597
|
-
|
|
598
447
|
def nearest_grid_points(
|
|
599
448
|
source_latitudes: NDArray[Any],
|
|
600
449
|
source_longitudes: NDArray[Any],
|
|
@@ -640,29 +489,3 @@ def nearest_grid_points(
|
|
|
640
489
|
else:
|
|
641
490
|
distances, indices = cKDTree(source_points).query(target_points, k=k, distance_upper_bound=max_distance)
|
|
642
491
|
return distances, indices
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
if __name__ == "__main__":
|
|
646
|
-
global_lats, global_lons = np.meshgrid(
|
|
647
|
-
np.linspace(90, -90, 90),
|
|
648
|
-
np.linspace(-180, 180, 180),
|
|
649
|
-
)
|
|
650
|
-
global_lats = global_lats.flatten()
|
|
651
|
-
global_lons = global_lons.flatten()
|
|
652
|
-
|
|
653
|
-
lats, lons = np.meshgrid(
|
|
654
|
-
np.linspace(50, 40, 100),
|
|
655
|
-
np.linspace(-10, 15, 100),
|
|
656
|
-
)
|
|
657
|
-
lats = lats.flatten()
|
|
658
|
-
lons = lons.flatten()
|
|
659
|
-
|
|
660
|
-
mask = cutout_mask(lats, lons, global_lats, global_lons, cropping_distance=5.0)
|
|
661
|
-
|
|
662
|
-
import matplotlib.pyplot as plt
|
|
663
|
-
|
|
664
|
-
fig = plt.figure(figsize=(10, 5))
|
|
665
|
-
plt.scatter(global_lons, global_lats, s=0.01, marker="o", c="r")
|
|
666
|
-
plt.scatter(global_lons[mask], global_lats[mask], s=0.1, c="k")
|
|
667
|
-
# plt.scatter(lons, lats, s=0.01)
|
|
668
|
-
plt.savefig("cutout.png")
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"$id": "https://ecmwf.int/anemoi-datasets-recipe.schema.json",
|
|
5
|
+
"title": "Product",
|
|
6
|
+
"description": "Anemoi datasets recipe configuration",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"$defs": {
|
|
9
|
+
"source-or-filter": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"minProperties": 1,
|
|
12
|
+
"maxProperties": 1
|
|
13
|
+
},
|
|
14
|
+
"pipe": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": {
|
|
17
|
+
"$ref": "#/$defs/input-object"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"join": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"$ref": "#/$defs/input-object"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"concat": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"minProperties": 2,
|
|
31
|
+
"maxProperties": 2,
|
|
32
|
+
"required": [
|
|
33
|
+
"dates"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"input-object": {
|
|
38
|
+
"oneOf": [
|
|
39
|
+
{
|
|
40
|
+
"$ref": "#/$defs/pipe"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"$ref": "#/$defs/join"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"$ref": "#/$defs/concat"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"$ref": "#/$defs/source-or-filter"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"properties": {
|
|
55
|
+
"env": {
|
|
56
|
+
"type": "object"
|
|
57
|
+
},
|
|
58
|
+
"description": {
|
|
59
|
+
"type": "string"
|
|
60
|
+
},
|
|
61
|
+
"name": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"licence": {
|
|
65
|
+
"type": "string"
|
|
66
|
+
},
|
|
67
|
+
"attribution": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"dates": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"required": [
|
|
73
|
+
"start",
|
|
74
|
+
"end"
|
|
75
|
+
],
|
|
76
|
+
"properties": {
|
|
77
|
+
"start": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"format": "date"
|
|
80
|
+
},
|
|
81
|
+
"end": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"format": "date"
|
|
84
|
+
},
|
|
85
|
+
"frequency": {
|
|
86
|
+
"type": [
|
|
87
|
+
"integer",
|
|
88
|
+
"string"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"group_by": {
|
|
92
|
+
"type": [
|
|
93
|
+
"integer",
|
|
94
|
+
"string"
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"input": {
|
|
100
|
+
"$ref": "#/$defs/input-object"
|
|
101
|
+
},
|
|
102
|
+
"data_sources": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"patternProperties": {
|
|
105
|
+
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
|
|
106
|
+
"$ref": "#/$defs/input-object"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"additionalProperties": false
|
|
110
|
+
},
|
|
111
|
+
"output": {
|
|
112
|
+
"type": "object"
|
|
113
|
+
},
|
|
114
|
+
"statistics": {
|
|
115
|
+
"type": "object"
|
|
116
|
+
},
|
|
117
|
+
"build": {
|
|
118
|
+
"type": "object"
|
|
119
|
+
},
|
|
120
|
+
"common": {
|
|
121
|
+
"type": "object"
|
|
122
|
+
},
|
|
123
|
+
"platform": {
|
|
124
|
+
"type": "object"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"required": [
|
|
128
|
+
"dates",
|
|
129
|
+
"input"
|
|
130
|
+
]
|
|
131
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.29
|
|
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
|
|
@@ -216,20 +216,23 @@ Classifier: Intended Audience :: Developers
|
|
|
216
216
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
217
217
|
Classifier: Operating System :: OS Independent
|
|
218
218
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
219
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
220
219
|
Classifier: Programming Language :: Python :: 3.11
|
|
221
220
|
Classifier: Programming Language :: Python :: 3.12
|
|
222
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
223
221
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
224
222
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
225
|
-
Requires-Python: >=3.
|
|
223
|
+
Requires-Python: >=3.11
|
|
226
224
|
License-File: LICENSE
|
|
227
|
-
Requires-Dist: anemoi-transform>=0.1.
|
|
228
|
-
Requires-Dist: anemoi-utils
|
|
225
|
+
Requires-Dist: anemoi-transform>=0.1.12
|
|
226
|
+
Requires-Dist: anemoi-utils>=0.4.26
|
|
229
227
|
Requires-Dist: cfunits
|
|
228
|
+
Requires-Dist: glom
|
|
229
|
+
Requires-Dist: jsonschema
|
|
230
230
|
Requires-Dist: numcodecs<0.16
|
|
231
231
|
Requires-Dist: numpy
|
|
232
|
+
Requires-Dist: pytest>=8.4.1
|
|
233
|
+
Requires-Dist: pytest-xdist>=3.7
|
|
232
234
|
Requires-Dist: pyyaml
|
|
235
|
+
Requires-Dist: ruamel-yaml>=0.16
|
|
233
236
|
Requires-Dist: semantic-version
|
|
234
237
|
Requires-Dist: tqdm
|
|
235
238
|
Requires-Dist: zarr<=2.18.4
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
anemoi/datasets/__init__.py,sha256=SPozLbLUFiQ9rtFVRlgeOobFUiFzj-jGo85Tt4YMJp4,1041
|
|
2
2
|
anemoi/datasets/__main__.py,sha256=ErwAqE3rBc7OaNO2JRsEOhWpB8ldjAt7BFSuRhbnlqQ,936
|
|
3
|
-
anemoi/datasets/_version.py,sha256=
|
|
3
|
+
anemoi/datasets/_version.py,sha256=xSW5Ca_VuAUJfDmwl-rcc_fibXugpSpq_USIiH1ouFM,706
|
|
4
4
|
anemoi/datasets/check.py,sha256=hbEMUurl2IjZbp56dBgOfAEsAmmgymgRM5ySaMJSTdk,2755
|
|
5
|
-
anemoi/datasets/
|
|
5
|
+
anemoi/datasets/dumper.py,sha256=Jud4qGooSQjJcPHsJrrYiJ909nM-hvJGXEDK4kfZ0k4,2505
|
|
6
|
+
anemoi/datasets/grids.py,sha256=ugJZznQ4frWH2qlYzV5ds4QLbzsGHwI_q5erVxocFxE,13926
|
|
6
7
|
anemoi/datasets/testing.py,sha256=_vUNMjuWjAm5a7qqtEASHWi-OzpIa52_lHDbqvxnhMQ,4462
|
|
7
8
|
anemoi/datasets/validate.py,sha256=Fnshpn27YwaXoSdj8-fviAtxuvUc0maGSna8U5Z08bA,18300
|
|
8
9
|
anemoi/datasets/commands/__init__.py,sha256=O5W3yHZywRoAqmRUioAr3zMCh0hGVV18wZYGvc00ioM,698
|
|
@@ -24,98 +25,98 @@ anemoi/datasets/commands/patch.py,sha256=Q9FDabWxlvK1QaeH4D9zhNpoSGB4h7EliWgcV76
|
|
|
24
25
|
anemoi/datasets/commands/publish.py,sha256=7YusLCWYdVLuexZzvyh8ztYoBOBzVmve3uJs-XKeMAE,1469
|
|
25
26
|
anemoi/datasets/commands/scan.py,sha256=6Uoyd7WkM4ypoqmZargXIG50uRKzHE3AlvkAr7sCBy4,4262
|
|
26
27
|
anemoi/datasets/commands/validate.py,sha256=mNs29zmPV4glaOC1uPHZsSsv_SWyg1JciR76fmE1xr0,1871
|
|
28
|
+
anemoi/datasets/commands/recipe/__init__.py,sha256=BfA8dKkTQexsPETfi7Wd_Ly0J34g43AL2gxKYHjbD1s,2904
|
|
29
|
+
anemoi/datasets/commands/recipe/format.py,sha256=roq7cXu-7ymjcxQ3IwLOV7beQkJzXvxLXyzquLYxYGU,1244
|
|
30
|
+
anemoi/datasets/commands/recipe/migrate.py,sha256=tBEj9E2nltxrFsvmWeiddg630_YIHTR2E4xToXDqx4M,15547
|
|
27
31
|
anemoi/datasets/compute/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
|
|
28
32
|
anemoi/datasets/compute/recentre.py,sha256=XEyXZIIbSpmmSfuQWikLd562Ml48VdhWHAFK6xGtbeI,5835
|
|
29
|
-
anemoi/datasets/create/__init__.py,sha256=
|
|
33
|
+
anemoi/datasets/create/__init__.py,sha256=ZX7OStgc0ioSVnxdqjZW2EQfnpbgs8Bti8q0y98S-Is,51399
|
|
30
34
|
anemoi/datasets/create/check.py,sha256=w8_AhuWxqRjI1c0SdGgfFHcW5rYmBVQuyoS3ncsF9TI,10724
|
|
31
35
|
anemoi/datasets/create/chunks.py,sha256=MBEXTClQyOuYtl96ho8IqQr75hpnWbKe5Li5l6nx_48,3994
|
|
32
|
-
anemoi/datasets/create/config.py,sha256=
|
|
33
|
-
anemoi/datasets/create/filter.py,sha256=EaBp3AbGERY8aFs08fZ1eioAclkc0Gy2ucQawWTolBc,1356
|
|
36
|
+
anemoi/datasets/create/config.py,sha256=b2Efl7pNYXz3PyAWTSnGakeHTSbiA5BSDawQnpVU6sE,13276
|
|
34
37
|
anemoi/datasets/create/patch.py,sha256=4852mUbEfM1GCUxIUq56gr6RI_lk8kuWCkG8N80OOqc,5367
|
|
35
38
|
anemoi/datasets/create/persistent.py,sha256=L8Ttk8J4rMWRYgzkFGb5QN4h0tDSizYBXNflCWoEZow,7779
|
|
36
39
|
anemoi/datasets/create/size.py,sha256=2AaD8toBkGO_l8m8UaYX5LSTS4UkU5ULdZAREXZ1JbE,1399
|
|
37
40
|
anemoi/datasets/create/source.py,sha256=xoV8uH_y6aBSE4_PWuy5w7Q7cX-tGm8e-2xC9flSAT4,1336
|
|
38
41
|
anemoi/datasets/create/testing.py,sha256=gANTsosxkUoA44azuXQ2I4lYNopDfFz_ja2oUGUzfNk,73
|
|
39
42
|
anemoi/datasets/create/typing.py,sha256=sy10Tzq6F8zd9jBe4154X60VFAhuZEweOeSo3AgGuDw,460
|
|
40
|
-
anemoi/datasets/create/utils.py,sha256=
|
|
43
|
+
anemoi/datasets/create/utils.py,sha256=FZthJUbAQBo-uizcZPgDnTTKdzchfU7JtRuZIxesqN8,4233
|
|
41
44
|
anemoi/datasets/create/writer.py,sha256=nZBJvYZ63g_c9FfL65bAeG10Y6bX2R7CgtZvY0kW3fI,2203
|
|
42
45
|
anemoi/datasets/create/zarr.py,sha256=a_hqvvdiDvl3poEEic-F1LlcwCeo7SvcLLS0sGkiats,9549
|
|
43
|
-
anemoi/datasets/create/input/__init__.py,sha256=
|
|
44
|
-
anemoi/datasets/create/input/action.py,sha256=
|
|
45
|
-
anemoi/datasets/create/input/
|
|
46
|
-
anemoi/datasets/create/input/
|
|
47
|
-
anemoi/datasets/create/input/
|
|
48
|
-
anemoi/datasets/create/input/empty.py,sha256=E_ZbB1q_wVUY0yKPXEHUiVtL8U2cikqbaZgJv81pZnE,1510
|
|
49
|
-
anemoi/datasets/create/input/filter.py,sha256=v_pS8-xmXz1B5O4NbdUmxfAQWNNmqtNETw-L_nVIweE,3289
|
|
50
|
-
anemoi/datasets/create/input/function.py,sha256=T5r94FfE_JYxRExtDv1pkoWzuXqZIbKVzm2aIvqo45g,6892
|
|
51
|
-
anemoi/datasets/create/input/join.py,sha256=EGLljUKtMs6cGt17ICv8s-esmt7vnZyvs-sATYA6acQ,3992
|
|
52
|
-
anemoi/datasets/create/input/misc.py,sha256=_2Y2r3o0VgNSss01AsZUh-rfQCv1hCa1KDagC9gYHZI,3292
|
|
53
|
-
anemoi/datasets/create/input/pipe.py,sha256=-tCz161IwXoI8pl1hilA9T_j5eHSr-sgbijFLp9HHNc,2083
|
|
54
|
-
anemoi/datasets/create/input/repeated_dates.py,sha256=UZeRpI93tgJr13-I4BvhS2ECbkZSM0zic5s_MfYGACs,11885
|
|
55
|
-
anemoi/datasets/create/input/result.py,sha256=0OMf9O9190JgZ3IBIpY1qbfH5Fhzzi4Uq5c0SUTG2SU,24187
|
|
56
|
-
anemoi/datasets/create/input/step.py,sha256=ikfs4TQeuNV9qAotM85C57Lu6R1WVS4n40Lps3m9b_A,5273
|
|
57
|
-
anemoi/datasets/create/input/template.py,sha256=O3IjT_GIdGaqjwG8_R35tMKZ9d4Tn6brPLH-t9MG-HU,4077
|
|
46
|
+
anemoi/datasets/create/input/__init__.py,sha256=VIfTYSxZ2fu43J5srOP3Y7UUdBvlEnOrxbwimjIoi1w,2524
|
|
47
|
+
anemoi/datasets/create/input/action.py,sha256=W5arVY9KhbWltnC_D2r14HBArBSdb8ElmPwnIi3iB40,9363
|
|
48
|
+
anemoi/datasets/create/input/data_sources.py,sha256=o3_LmnDnVIFuA_raSKlIBFeRM35tPN-v9jIVMVwL7WM,4372
|
|
49
|
+
anemoi/datasets/create/input/misc.py,sha256=PLJZl_C2bG3BD0ZFwBTV7Je051zExALpLtHRfKZlYWg,1630
|
|
50
|
+
anemoi/datasets/create/input/repeated_dates.py,sha256=gNgY4paQeuVQtjuyYQm5-ELfiO47VXlf5nCYxopXz8I,8255
|
|
58
51
|
anemoi/datasets/create/input/trace.py,sha256=kVZI1eilg857sKRweGyyDZYb2IjT15a_KWpGCw-dtOU,3329
|
|
52
|
+
anemoi/datasets/create/input/context/__init__.py,sha256=WKdIJv6ywkw7EmSLMxD5k0R-7N9sYrAxL3MF6UieLps,2263
|
|
53
|
+
anemoi/datasets/create/input/context/field.py,sha256=0NWkDYqyDX90gVrBZwz7y2sbICxBp38OUmNdisMFg1U,1605
|
|
54
|
+
anemoi/datasets/create/input/result/__init__.py,sha256=rER6c5hoVxCwPgbrIef74h2DT-V2CqdetOzp5gGD7ww,494
|
|
55
|
+
anemoi/datasets/create/input/result/field.py,sha256=qcqqPEJBG7JmQFOHdFWM4RxGaEV75CWKVVols__T9zo,21607
|
|
59
56
|
anemoi/datasets/create/sources/__init__.py,sha256=XNiiGaC6NbxnGfl6glPw-gTJASi3vsGKwVlfkMqYGk4,950
|
|
60
|
-
anemoi/datasets/create/sources/
|
|
61
|
-
anemoi/datasets/create/sources/
|
|
62
|
-
anemoi/datasets/create/sources/
|
|
63
|
-
anemoi/datasets/create/sources/constants.py,sha256=O2E1a5KKpH7ossA0B8B5mLyqeIrnEtzMuPf2yEJAP0Y,1480
|
|
57
|
+
anemoi/datasets/create/sources/accumulate.py,sha256=VKQRTFmNaaHhqQ2PwKNgZExdr8F7LHnZ2Tkfm6Ft1ZU,20183
|
|
58
|
+
anemoi/datasets/create/sources/anemoi_dataset.py,sha256=mu9URoxLj3zOX9FwSCvWTezQr_AgigJ2BMG5LKTy8Eg,2286
|
|
59
|
+
anemoi/datasets/create/sources/constants.py,sha256=rZ7pGal4ein6ta0CeyWUitgODo9Jhudx2OejPiiqiBQ,1665
|
|
64
60
|
anemoi/datasets/create/sources/eccc_fstd.py,sha256=8HK38f444HcWMvBhooP0XqTfMXYoCbN_8G9RI_Ne5rc,659
|
|
65
|
-
anemoi/datasets/create/sources/empty.py,sha256=
|
|
61
|
+
anemoi/datasets/create/sources/empty.py,sha256=QQzbI2NJ0Z4X9DvECKJkqDiCO_SfzpBUpfWHj-GoXOk,1152
|
|
66
62
|
anemoi/datasets/create/sources/fdb.py,sha256=AkxvW7vZqJs2AbwYEzfkU5j3Udk4gTaGx2Pbwsa5qNk,4396
|
|
67
|
-
anemoi/datasets/create/sources/forcings.py,sha256=
|
|
68
|
-
anemoi/datasets/create/sources/grib.py,sha256
|
|
69
|
-
anemoi/datasets/create/sources/grib_index.py,sha256=
|
|
70
|
-
anemoi/datasets/create/sources/hindcasts.py,sha256=
|
|
71
|
-
anemoi/datasets/create/sources/legacy.py,sha256=
|
|
72
|
-
anemoi/datasets/create/sources/mars.py,sha256=
|
|
73
|
-
anemoi/datasets/create/sources/netcdf.py,sha256=
|
|
74
|
-
anemoi/datasets/create/sources/opendap.py,sha256=
|
|
63
|
+
anemoi/datasets/create/sources/forcings.py,sha256=hy1oyC1Zjg1uzO2UWfNiTJXfQRaM_B8vs8X7GXXO4Nc,1356
|
|
64
|
+
anemoi/datasets/create/sources/grib.py,sha256=G1qLyZYZxUFr54IIrRQbeKTnpkZ5zjFH16_f-m6gurY,5060
|
|
65
|
+
anemoi/datasets/create/sources/grib_index.py,sha256=QFdWZa50BxrXY4HMS3h-4mTJt-EyI9KvYxaP_N4Ilg4,20917
|
|
66
|
+
anemoi/datasets/create/sources/hindcasts.py,sha256=4QuTSbaP5SfGFOdRSqm4jf__r7tMFx0lgPOlOVC6BEg,2773
|
|
67
|
+
anemoi/datasets/create/sources/legacy.py,sha256=Lv8MgFvdpP6ygu6_wGI47dpq7nuvuSbaHJAiUGqC4z8,1254
|
|
68
|
+
anemoi/datasets/create/sources/mars.py,sha256=OQVgdikBP__CYEPc82ClKgm-dxC9Pqsd44w55Vz1VJo,14625
|
|
69
|
+
anemoi/datasets/create/sources/netcdf.py,sha256=6PlDpskth2xn_ad7rCzhH5GOqwps6bCRq7zFdkoGJsQ,1372
|
|
70
|
+
anemoi/datasets/create/sources/opendap.py,sha256=ZvMqTgcDl8k_CY8CLzxaW79cBxvVOo0e9Jd1bhLGBoA,1382
|
|
75
71
|
anemoi/datasets/create/sources/patterns.py,sha256=dLCWz7nJtqMI4v9Qytiun-iUs4Lkv-4i7pbA19hoQe8,2243
|
|
76
72
|
anemoi/datasets/create/sources/planetary_computer.py,sha256=Erk6fKJt63gj_pgbklBWhAKjzjtAfq_DRizMfWdqPPU,1578
|
|
77
|
-
anemoi/datasets/create/sources/recentre.py,sha256=
|
|
78
|
-
anemoi/datasets/create/sources/
|
|
79
|
-
anemoi/datasets/create/sources/
|
|
73
|
+
anemoi/datasets/create/sources/recentre.py,sha256=hgBQFbgDXvr0DfFejdnLYkU7Hqs9634F7Sg3VMxIPk0,4155
|
|
74
|
+
anemoi/datasets/create/sources/repeated_dates.py,sha256=IM3YFep2ClC8eTJk7GGkIpyUO_gM3UqwPO87oJTXhg4,1730
|
|
75
|
+
anemoi/datasets/create/sources/source.py,sha256=Srf_68kXrkk5N8lnWmrazcsKVUw5PAhv5Ry-5-OAxRM,1643
|
|
80
76
|
anemoi/datasets/create/sources/xarray.py,sha256=6c2Ss2I795Y3Xj9Qbr4Voiwcq7SaZFLaq1G_5lh_kAs,2491
|
|
81
77
|
anemoi/datasets/create/sources/xarray_kerchunk.py,sha256=vdFaFzze8VLjYUgIX8Lc39ELvwmgfT3ioyxBHAt4nrs,1136
|
|
82
|
-
anemoi/datasets/create/sources/xarray_zarr.py,sha256=
|
|
83
|
-
anemoi/datasets/create/sources/zenodo.py,sha256=
|
|
78
|
+
anemoi/datasets/create/sources/xarray_zarr.py,sha256=tOcA1rUam0rwAYSIXe2QB9cSNW--NCLlGK_Ou78FIec,1360
|
|
79
|
+
anemoi/datasets/create/sources/zenodo.py,sha256=6NvK5KLMtb39a-YBs44sgPyc2k9NZU6oeYNbU8Lh98g,2259
|
|
80
|
+
anemoi/datasets/create/sources/accumulate_utils/__init__.py,sha256=iLLlOculEHrloIO13MSrYGEMNBZ1vVwK9x9rxKXLK-M,393
|
|
81
|
+
anemoi/datasets/create/sources/accumulate_utils/covering_intervals.py,sha256=Hm0pIATDl9zK_tAjDkhxlRa9yUUbaHKpHH_0igSv3Tk,7642
|
|
82
|
+
anemoi/datasets/create/sources/accumulate_utils/field_to_interval.py,sha256=z-p2oDGJ0VPU5AXjgloLsL1ho5l_dmITCN7AVx9iGTU,5760
|
|
83
|
+
anemoi/datasets/create/sources/accumulate_utils/interval_generators.py,sha256=vqtHiKFUavnK26uUYdOOsPbUcyzgUnwxhQ_cydooNyU,13092
|
|
84
84
|
anemoi/datasets/create/sources/xarray_support/README.md,sha256=56olM9Jh0vI0_bU9GI-IqbBcz4DZXWONqvdzN_VeAFE,78
|
|
85
|
-
anemoi/datasets/create/sources/xarray_support/__init__.py,sha256=
|
|
86
|
-
anemoi/datasets/create/sources/xarray_support/coordinates.py,sha256=
|
|
87
|
-
anemoi/datasets/create/sources/xarray_support/field.py,sha256=
|
|
85
|
+
anemoi/datasets/create/sources/xarray_support/__init__.py,sha256=nYmNSwOX1g8JEEsnV9jnlK1jRbUqdGnvoL-AuqHNx7E,4943
|
|
86
|
+
anemoi/datasets/create/sources/xarray_support/coordinates.py,sha256=hi8sqmeRnCX2g_e_EcXQ55DjN-MkpdFjcWkOl-oGD4g,11042
|
|
87
|
+
anemoi/datasets/create/sources/xarray_support/field.py,sha256=lo5V7pMcVt3j_nbntt7mweGCXkUGNANq35stW69zrCo,6550
|
|
88
88
|
anemoi/datasets/create/sources/xarray_support/fieldlist.py,sha256=BqLeP8ObTd3Ze7O6jsFJqX9aXD7E352vIT8ZtySv9_0,8158
|
|
89
|
-
anemoi/datasets/create/sources/xarray_support/flavour.py,sha256=
|
|
89
|
+
anemoi/datasets/create/sources/xarray_support/flavour.py,sha256=ckYmUaenRLOb_e6EZFHw2bKQ3sMMW5g6BdHlzSWP858,33338
|
|
90
90
|
anemoi/datasets/create/sources/xarray_support/grid.py,sha256=4VLpWBCkFaRErFsjW8AzY4L-xeSoMYoQhxRor3hQqs8,6496
|
|
91
91
|
anemoi/datasets/create/sources/xarray_support/metadata.py,sha256=CR9MYneZH49kJw-G1Ie2Vhevs-fliPUzKohiMfO-sWs,7838
|
|
92
|
-
anemoi/datasets/create/sources/xarray_support/patch.py,sha256=
|
|
92
|
+
anemoi/datasets/create/sources/xarray_support/patch.py,sha256=M7YJQSzMc2KeBWYytGrcbVPDSSHLWGfydgfROwYPidI,8634
|
|
93
93
|
anemoi/datasets/create/sources/xarray_support/time.py,sha256=S-tvA5QZIMh0wQnQa51FotK9oxE8JTpUqfSYimF_Hwo,12401
|
|
94
94
|
anemoi/datasets/create/sources/xarray_support/variable.py,sha256=8Cekc5YOpZx_MNFEHMM2cE91ydjY-YBUhB7wX17wkVs,9288
|
|
95
95
|
anemoi/datasets/create/statistics/__init__.py,sha256=xe8WE7xezM6EDhRywOGRmK1c8mim1k6FhXnEw8yHnBQ,18199
|
|
96
96
|
anemoi/datasets/create/statistics/summary.py,sha256=JdtChTmsr1Y958_nka36HltTbeZkawuGbprbfZD7Ux8,4790
|
|
97
97
|
anemoi/datasets/data/__init__.py,sha256=WKWn_k4bKRUbzRO-5Mp89gV6DeuBuMb00WisD_M-ypI,3200
|
|
98
|
-
anemoi/datasets/data/complement.py,sha256=
|
|
98
|
+
anemoi/datasets/data/complement.py,sha256=Cx-mFoRPgNTEagrvawj7FcnNPM_VxKHkT8InCPZJoCQ,12533
|
|
99
99
|
anemoi/datasets/data/concat.py,sha256=ArOLD7mrZUw6yzaObSzNWlMKZWH74gaYBx0AvjSCFps,8921
|
|
100
|
-
anemoi/datasets/data/dataset.py,sha256=
|
|
100
|
+
anemoi/datasets/data/dataset.py,sha256=yeYckknSYYD6uz407Qe8OIPGv6CNqpw0Ea7qni6acmY,32578
|
|
101
101
|
anemoi/datasets/data/debug.css,sha256=z2X_ZDSnZ9C3pyZPWnQiEyAxuMxUaxJxET4oaCImTAQ,211
|
|
102
102
|
anemoi/datasets/data/debug.py,sha256=DUG_Rr5sYbXENSFMbtDZuG4IEwvDF-EoqF45z16tHso,10747
|
|
103
103
|
anemoi/datasets/data/ensemble.py,sha256=N_43HcgcvFmYnU3afyobjx9nZIGtb5WDTVSDXFQPwWE,5303
|
|
104
104
|
anemoi/datasets/data/fill_missing.py,sha256=Ic2icBvVnj34DpRperiyd8U_VjeI9ygIJdFzdmttK_I,8710
|
|
105
105
|
anemoi/datasets/data/forwards.py,sha256=dixet1sv_E5yUL6To2M-Z0BpzpF4-TwEw8acnb9XO4Y,20012
|
|
106
|
-
anemoi/datasets/data/grids.py,sha256=
|
|
106
|
+
anemoi/datasets/data/grids.py,sha256=HbahQBCS1MIH-lj2PEwtZlROAhWHMaxsUT9hGC4bvPE,17380
|
|
107
107
|
anemoi/datasets/data/indexing.py,sha256=5JhiRTBUrj2tOmhSmrFyugw_kOOIKOdtZnoq2Cfgj_k,7444
|
|
108
108
|
anemoi/datasets/data/interpolate.py,sha256=n1klwVIwIyBSnMtjOqPh09MkhVqO5CTCH6xYkaLVhlM,9099
|
|
109
109
|
anemoi/datasets/data/join.py,sha256=EjgnjXKNbEUVaQEMzoJ7sv63vApwhDtkcJutxhZ1H5g,9110
|
|
110
|
-
anemoi/datasets/data/masked.py,sha256=
|
|
110
|
+
anemoi/datasets/data/masked.py,sha256=epmbI-fgp3hMPSkCvfd4pKxLxoKY8yDlVQvCanWLwF4,11894
|
|
111
111
|
anemoi/datasets/data/merge.py,sha256=zdF7-OKouN-iE3-Km-g5MZfyARg85IepQWQrSeUsG7w,8637
|
|
112
112
|
anemoi/datasets/data/misc.py,sha256=iGbZg6EEheJlIH-AECTLnf-30lXaQXG-ngfbwFIt5CM,22862
|
|
113
|
-
anemoi/datasets/data/missing.py,sha256=
|
|
113
|
+
anemoi/datasets/data/missing.py,sha256=MGRhxw7XtB6o9a5-BJhno9sSDVGFz6pNPNBdzcXGpNA,12612
|
|
114
114
|
anemoi/datasets/data/padded.py,sha256=sunn3QRThlfUHJOGE04s008F-v7kT7gY_i2E6wulCdk,7834
|
|
115
115
|
anemoi/datasets/data/rescale.py,sha256=xTj2Vn8YuyB1KWW5y37B2HHilTVdCcuNCnYHoiQFRBg,6859
|
|
116
|
+
anemoi/datasets/data/rolling_average.py,sha256=Ng7Te_8bHp7wOH_ARnvqtLI0Weze-uXLO3FP60gaJlU,5107
|
|
116
117
|
anemoi/datasets/data/select.py,sha256=hScUbJya1Nsew4PCmwYdTix2CtngDXTNezH_cHUdaJs,8198
|
|
117
118
|
anemoi/datasets/data/statistics.py,sha256=Z4Kffb1uIDwueWHD8XpbiV5la_XXRCAHCHFI4HfHyZI,3095
|
|
118
|
-
anemoi/datasets/data/stores.py,sha256=
|
|
119
|
+
anemoi/datasets/data/stores.py,sha256=rifv6bJYGbAttNn6dqpR5ajyaVBlLLzj50B4zRwcRkE,17914
|
|
119
120
|
anemoi/datasets/data/subset.py,sha256=XTOf4xzbRLanefaewvSZH3okStsThusFsiyyQo0CMpc,8888
|
|
120
121
|
anemoi/datasets/data/unchecked.py,sha256=KxUrd_yilo4aZk99ALJSrmICEUbXhJP3iOhfac11Fb4,7218
|
|
121
122
|
anemoi/datasets/data/xy.py,sha256=raecf5OrsgUDE30rri80r7yIYkvhHd15Hb9vo_7bzCw,7675
|
|
@@ -124,11 +125,12 @@ anemoi/datasets/data/observations/legacy_obs_dataset.py,sha256=6Aj32XWmNmCsd0azh
|
|
|
124
125
|
anemoi/datasets/data/observations/multi.py,sha256=nDeN99LRNVyjUCNTFCL3R7iAQNsf1tSen-fSw9-VsiY,2184
|
|
125
126
|
anemoi/datasets/data/records/__init__.py,sha256=lWJBukNArbBBdcfG8bh5MzJoSOjk5Fi8zcwHWo5a0I8,12405
|
|
126
127
|
anemoi/datasets/data/records/backends/__init__.py,sha256=u894d7duXMiGTOQh5WfuxTsA4Fgj0KraBu2QqWRV3xA,5237
|
|
127
|
-
anemoi/datasets/dates/__init__.py,sha256=
|
|
128
|
+
anemoi/datasets/dates/__init__.py,sha256=4WFEG8tujrXOT6nbpy6BufBqcqGfECnvG42rmxgLh9w,13476
|
|
128
129
|
anemoi/datasets/dates/groups.py,sha256=bdA6YjFtNlgFAXiov5-zFHZ3C_QtUrdQiSFgb2zWxVM,10034
|
|
129
|
-
|
|
130
|
-
anemoi_datasets-0.5.
|
|
131
|
-
anemoi_datasets-0.5.
|
|
132
|
-
anemoi_datasets-0.5.
|
|
133
|
-
anemoi_datasets-0.5.
|
|
134
|
-
anemoi_datasets-0.5.
|
|
130
|
+
anemoi/datasets/schemas/recipe.json,sha256=UvfOQYKcTz-OrJv4is-qe-rhUNBrrmpcpXF32jB0Oz4,3208
|
|
131
|
+
anemoi_datasets-0.5.29.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
|
|
132
|
+
anemoi_datasets-0.5.29.dist-info/METADATA,sha256=k0V8RvM-V88rDBfd_Ew0e-NW9b5BzCIlgeIfLjvlxFY,16181
|
|
133
|
+
anemoi_datasets-0.5.29.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
134
|
+
anemoi_datasets-0.5.29.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
|
|
135
|
+
anemoi_datasets-0.5.29.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
|
|
136
|
+
anemoi_datasets-0.5.29.dist-info/RECORD,,
|
anemoi/datasets/create/filter.py
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# (C) Copyright 2025- Anemoi contributors.
|
|
2
|
-
#
|
|
3
|
-
# This software is licensed under the terms of the Apache Licence Version 2.0
|
|
4
|
-
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
|
5
|
-
#
|
|
6
|
-
# In applying this licence, ECMWF does not waive the privileges and immunities
|
|
7
|
-
# granted to it by virtue of its status as an intergovernmental organisation
|
|
8
|
-
# nor does it submit to any jurisdiction.
|
|
9
|
-
|
|
10
|
-
from typing import Any
|
|
11
|
-
|
|
12
|
-
import earthkit.data as ekd
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class TransformFilter:
|
|
16
|
-
"""Calls filters from anemoi.transform.filters
|
|
17
|
-
|
|
18
|
-
Parameters
|
|
19
|
-
----------
|
|
20
|
-
context : Any
|
|
21
|
-
The context in which the filter is created.
|
|
22
|
-
name : str
|
|
23
|
-
The name of the filter.
|
|
24
|
-
config : Dict[str, Any]
|
|
25
|
-
The configuration for the filter.
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
def __init__(self, context: Any, name: str, config: dict[str, Any]) -> None:
|
|
29
|
-
from anemoi.transform.filters import create_filter
|
|
30
|
-
|
|
31
|
-
self.name = name
|
|
32
|
-
self.transform_filter = create_filter(context, config)
|
|
33
|
-
|
|
34
|
-
def execute(self, input: ekd.FieldList) -> ekd.FieldList:
|
|
35
|
-
"""Execute the transformation filter.
|
|
36
|
-
|
|
37
|
-
Parameters
|
|
38
|
-
----------
|
|
39
|
-
input : ekd.FieldList
|
|
40
|
-
The input data to be transformed.
|
|
41
|
-
|
|
42
|
-
Returns
|
|
43
|
-
-------
|
|
44
|
-
ekd.FieldList
|
|
45
|
-
The transformed data.
|
|
46
|
-
"""
|
|
47
|
-
return self.transform_filter.forward(input)
|