anemoi-datasets 0.5.26__tar.gz → 0.5.28__tar.gz
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-0.5.28/.github/workflows/pr-label-ats.yml +66 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/python-pull-request.yml +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.gitignore +10 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.pre-commit-config.yaml +7 -6
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.readthedocs.yaml +3 -3
- anemoi_datasets-0.5.28/.release-please-manifest.json +3 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/CHANGELOG.md +53 -0
- {anemoi_datasets-0.5.26/src/anemoi_datasets.egg-info → anemoi_datasets-0.5.28}/PKG-INFO +7 -4
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/Makefile +1 -1
- anemoi_datasets-0.5.28/docs/building/filters.rst +10 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/introduction.rst +1 -1
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/repeated-dates.rst +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/create.rst +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/grib-index.rst +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/inspect.rst +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/introduction.rst +4 -3
- anemoi_datasets-0.5.28/docs/cli/validate.rst +45 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/conf.py +2 -2
- anemoi_datasets-0.5.26/docs/usage/getting_started.rst → anemoi_datasets-0.5.28/docs/howtos/create/00-redo-sample-dataset.rst +4 -4
- anemoi_datasets-0.5.28/docs/howtos/create/04-create-with-filter.rst +117 -0
- anemoi_datasets-0.5.28/docs/howtos/create/yaml/recipe-filter1.yaml +31 -0
- anemoi_datasets-0.5.28/docs/howtos/create/yaml/recipe-filter2.yaml +35 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/introduction.rst +2 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/index.rst +5 -17
- anemoi_datasets-0.5.28/docs/installing.rst +18 -0
- anemoi_datasets-0.5.28/docs/modules/dataset.rst +8 -0
- anemoi_datasets-0.5.28/docs/scripts/Makefile +8 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/scripts/api_build.sh +1 -1
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/combining.rst +9 -9
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/grids.rst +3 -3
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/missing.rst +1 -1
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/opening.rst +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/pyproject.toml +8 -4
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/__init__.py +1 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/_version.py +16 -3
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/check.py +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/copy.py +1 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/create.py +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/inspect.py +27 -35
- anemoi_datasets-0.5.28/src/anemoi/datasets/commands/recipe/__init__.py +93 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/commands/recipe/format.py +55 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/commands/recipe/migrate.py +555 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/commands/validate.py +59 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/compute/recentre.py +3 -6
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/__init__.py +64 -26
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/check.py +10 -12
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/chunks.py +1 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/config.py +5 -6
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/input/__init__.py +85 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/input/action.py +317 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/input/context/__init__.py +71 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/input/context/field.py +54 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/input/data_sources.py +7 -9
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/input/misc.py +57 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/input/repeated_dates.py +11 -130
- {anemoi_datasets-0.5.26/src/anemoi/datasets/utils → anemoi_datasets-0.5.28/src/anemoi/datasets/create/input/result}/__init__.py +10 -1
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/result.py → anemoi_datasets-0.5.28/src/anemoi/datasets/create/input/result/field.py +36 -120
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/input/trace.py +1 -1
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/patch.py +1 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/persistent.py +3 -5
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/size.py +1 -3
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/accumulations.py +120 -145
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/accumulations2.py +20 -53
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/anemoi_dataset.py +77 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/constants.py +52 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/empty.py +40 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/fdb.py +133 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/forcings.py +42 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/grib.py +166 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/grib_index.py +57 -55
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/hindcasts.py +94 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/legacy.py +46 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/mars.py +121 -149
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/netcdf.py +45 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/opendap.py +45 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/patterns.py +4 -6
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/recentre.py +46 -48
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/repeated_dates.py +44 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/source.py +47 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/tendencies.py +171 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray.py +4 -6
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/__init__.py +40 -36
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/coordinates.py +8 -12
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/field.py +20 -16
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/fieldlist.py +11 -15
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/flavour.py +42 -42
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/grid.py +15 -9
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/metadata.py +19 -128
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/patch.py +4 -6
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/time.py +10 -13
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/variable.py +21 -21
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/xarray_zarr.py +44 -0
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/sources/zenodo.py +71 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/statistics/__init__.py +3 -6
- anemoi_datasets-0.5.28/src/anemoi/datasets/create/testing.py +4 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/typing.py +1 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/utils.py +0 -43
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/zarr.py +7 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/__init__.py +15 -6
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/complement.py +7 -12
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/concat.py +5 -8
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/dataset.py +48 -47
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/debug.py +7 -9
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/ensemble.py +4 -6
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/fill_missing.py +7 -10
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/forwards.py +22 -26
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/grids.py +12 -168
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/indexing.py +9 -12
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/interpolate.py +7 -15
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/join.py +8 -12
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/masked.py +6 -11
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/merge.py +5 -9
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/misc.py +41 -45
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/missing.py +11 -16
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/observations/__init__.py +8 -14
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/padded.py +3 -5
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/records/backends/__init__.py +2 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/rescale.py +5 -12
- anemoi_datasets-0.5.28/src/anemoi/datasets/data/rolling_average.py +141 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/select.py +13 -16
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/statistics.py +4 -7
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/stores.py +22 -29
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/subset.py +8 -11
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/unchecked.py +7 -11
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/xy.py +25 -21
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/dates/__init__.py +15 -18
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/dates/groups.py +7 -10
- anemoi_datasets-0.5.28/src/anemoi/datasets/dumper.py +76 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/grids.py +4 -185
- anemoi_datasets-0.5.28/src/anemoi/datasets/schemas/recipe.json +131 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/testing.py +93 -7
- anemoi_datasets-0.5.28/src/anemoi/datasets/validate.py +598 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28/src/anemoi_datasets.egg-info}/PKG-INFO +7 -4
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi_datasets.egg-info/SOURCES.txt +117 -110
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi_datasets.egg-info/requires.txt +5 -1
- anemoi_datasets-0.5.28/tests/create/run.sh +22 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/test_create.py +18 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/test_sources.py +1 -2
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/utils/compare.py +9 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/utils/create.py +4 -8
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/test_data.py +52 -81
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/test_data_gridded.py +9 -12
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/test_dates.py +1 -2
- anemoi_datasets-0.5.28/tests/test_validate.py +234 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/xarray/test_flavour.py +1 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/xarray/test_opendap.py +2 -2
- anemoi_datasets-0.5.28/tests/xarray/test_variable.py +83 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/xarray/test_zarr.py +6 -1
- anemoi_datasets-0.5.26/.release-please-manifest.json +0 -3
- anemoi_datasets-0.5.26/03-constant-fields.rst +0 -3
- anemoi_datasets-0.5.26/docs/datasets/introduction.rst +0 -21
- anemoi_datasets-0.5.26/docs/installing.rst +0 -85
- anemoi_datasets-0.5.26/docs/modules/dataset.rst +0 -10
- anemoi_datasets-0.5.26/docs/modules/filters.rst +0 -5
- anemoi_datasets-0.5.26/docs/modules/sources.rst +0 -5
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/filter.py +0 -48
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/__init__.py +0 -106
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/action.py +0 -259
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/concat.py +0 -164
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/context.py +0 -89
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/empty.py +0 -54
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/filter.py +0 -118
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/function.py +0 -233
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/join.py +0 -130
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/misc.py +0 -130
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/pipe.py +0 -66
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/step.py +0 -177
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/input/template.py +0 -162
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/anemoi_dataset.py +0 -73
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/constants.py +0 -53
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/empty.py +0 -37
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/forcings.py +0 -42
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/grib.py +0 -150
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/hindcasts.py +0 -96
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/legacy.py +0 -98
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/netcdf.py +0 -42
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/opendap.py +0 -43
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/source.py +0 -72
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/tendencies.py +0 -201
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/xarray_zarr.py +0 -41
- anemoi_datasets-0.5.26/src/anemoi/datasets/create/sources/zenodo.py +0 -69
- anemoi_datasets-0.5.26/tests/create/run.sh +0 -20
- anemoi_datasets-0.5.26/tests/xarray/test_samples.py +0 -88
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.gitattributes +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/CODEOWNERS +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/ci-hpc-config.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/dependabot.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/labeler.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/pull_request_template.md +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/downstream-ci-hpc.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/pr-conventional-commit.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/pr-label-conventional-commits.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/pr-label-file-based.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/pr-label-public.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/push-to-private.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/python-publish.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.github/workflows/release-please.yml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.release-please-config.json +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/.vscode/spellright.dict +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/CONTRIBUTORS.md +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/LICENSE +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/README.md +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/2t_map_example.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/area-1.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/concat.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/cutout-1.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/cutout-2.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/cutout-3.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/cutout-4.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/cutout-5.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/cutout-6.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/join.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/logo.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/overlay.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/schemas/matrix.excalidraw +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/schemas/matrix.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/schemas/overview.excalidraw +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/schemas/overview.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/schemas/recipe.excalidraw +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/schemas/recipe.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/skip-missing.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/style.css +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/thinning-after.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_static/thinning-before.png +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_templates/.gitkeep +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/_templates/apidoc/package.rst.jinja +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/adr/adr-1.md +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/apply-fmt.sh +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/advanced-options.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/handling-missing-dates.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/handling-missing-values.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/incremental.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/naming-conventions.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/naming-variables.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/operations.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/accumulations.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/anemoi-dataset.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/cds.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/eccc-fstd.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/forcings.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/grib-index.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/grib.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/hindcasts.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/mars.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/netcdf.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/opendap.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/recentre.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/xarray-based.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/xarray-kerchunk.py +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/xarray-kerchunk.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/xarray-zarr.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/accumulations1.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/accumulations2.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/anemoi-dataset.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/anemoi-zarr-dataset.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/eccc-fstd.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/forcings.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/grib1.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/grib2.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/grib3.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/grib4.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/mars-cds.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/mars1.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/mars2.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/netcdf.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/opendap.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/recentre.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/repeated-dates1.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/repeated-dates2.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/repeated-dates3.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/repeated-dates4.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/xarray-based.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/xarray-kerchunk.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/xarray-zarr.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/yaml/zenodo.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources/zenodo.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/sources.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/statistics.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/syntax.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/check-index.sh +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/compare-lam.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/compare.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/copy.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/patch.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/cli/scan.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/dev/contributing.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/01-grib-data.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/02-cf-data.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/03-constant-fields.rst +0 -0
- {anemoi_datasets-0.5.26/docs/usage → anemoi_datasets-0.5.28/docs/howtos/create}/yaml/aifs-ea-an-oper-0001-mars-o48-2020-2021-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-flavour1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-flavour2.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-flavour3.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-flavour4.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-recipe1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-recipe2.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-recipe3.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-recipe4.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/grib-recipe5.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/netcdf1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/opendap1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/xarray-flavour1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/xarray-patch1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/xarray-patch2.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/zarr1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/howtos/create/yaml/zarr2.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/01-interpolate-step-dataset-combination.rst +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/02-coutout-complement-combination.rst +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/code/cutout-complement1.py +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/code/interpolate1.py +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/code/interpolate2.py +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/yaml/cutout-complement1.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/yaml/interpolate1.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/howtos/usage → anemoi_datasets-0.5.28/docs/howtos/using}/yaml/interpolate2.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/overview.rst +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/pptx/images.pptx +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/docs/using/code/trimedge1_.py +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/configuration.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/configuration.toml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/ensembles.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/introduction.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/matching.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/methods.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/miscellaneous.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/other.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/selecting.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/statistics.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/subsetting.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/using/zip.rst +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/Makefile +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/building1.txt +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/building1.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/building2.txt +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/building2.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/building3.txt +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/building3.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/concat.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/input.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/missing_dates.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/nan.yaml +0 -0
- {anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/yaml/pipe.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/setup.cfg +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/__main__.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/check.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/__init__.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/cleanup.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/compare-lam.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/compare.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/finalise.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/grib-index.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/init-additions.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/init.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/load-additions.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/load.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/patch.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/publish.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/commands/scan.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/compute/__init__.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/source.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/__init__.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/eccc_fstd.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/planetary_computer.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_kerchunk.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/sources/xarray_support/README.md +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/statistics/summary.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/create/writer.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/debug.css +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/observations/legacy_obs_dataset.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/observations/multi.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi/datasets/data/records/__init__.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/conftest.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/__init__.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/accumulation.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/concat.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/join.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/missing.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/nan.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/pipe.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/recentre.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/regrid.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/utils/__init__.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create/utils/mock_sources.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create-perturbations-full.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/create-shift.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/test_chunks.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/test_indexing.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/test_records.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tests/xarray/test_netcdf.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/.gitignore +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/build-obs.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/check-obs.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/examples/Makefile +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/Makefile +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids.ipynb +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids1.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids2.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids3.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids4.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids5.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids6.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids7.yaml +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/grids/grids_multilam.ipynb +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/make-sample-dataset.py +0 -0
- {anemoi_datasets-0.5.26 → anemoi_datasets-0.5.28}/tools/upload-sample-dataset.py +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# This workflow checks that the appropriate ATS labels are applied to a pull request:
|
|
2
|
+
# - "ATS Approval Not Needed": pass
|
|
3
|
+
# - "ATS Approved": pass
|
|
4
|
+
# - "ATS Approval Needed": fail
|
|
5
|
+
# - Missing ATS label: fail
|
|
6
|
+
|
|
7
|
+
name: "[PR] ATS labels"
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
pull_request:
|
|
11
|
+
types:
|
|
12
|
+
- opened
|
|
13
|
+
- edited
|
|
14
|
+
- reopened
|
|
15
|
+
- labeled
|
|
16
|
+
- unlabeled
|
|
17
|
+
- synchronize
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
pull-requests: read
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
check:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- name: Get PR details
|
|
27
|
+
uses: actions/github-script@v7
|
|
28
|
+
id: check-pr
|
|
29
|
+
with:
|
|
30
|
+
script: |
|
|
31
|
+
const pr = await github.rest.pulls.get({
|
|
32
|
+
owner: context.repo.owner,
|
|
33
|
+
repo: context.repo.repo,
|
|
34
|
+
pull_number: context.payload.pull_request.number,
|
|
35
|
+
});
|
|
36
|
+
const labels = pr.data.labels.map(label => label.name);
|
|
37
|
+
core.setOutput('labels', JSON.stringify(labels));
|
|
38
|
+
core.setOutput('author', context.payload.pull_request.user.login);
|
|
39
|
+
|
|
40
|
+
- name: Evaluate ATS labels
|
|
41
|
+
run: |
|
|
42
|
+
AUTHOR='${{ steps.check-pr.outputs.author }}'
|
|
43
|
+
if [ "$AUTHOR" == "DeployDuck" ] || [ "$AUTHOR" == "pre-commit-ci[bot]" ]; then
|
|
44
|
+
echo "Bot PR, skipping."
|
|
45
|
+
exit 0
|
|
46
|
+
fi
|
|
47
|
+
LABELS=$(echo '${{ steps.check-pr.outputs.labels }}' | jq -r '.[]')
|
|
48
|
+
echo "Labels found:"
|
|
49
|
+
echo -e "$LABELS\n"
|
|
50
|
+
echo "Result:"
|
|
51
|
+
if echo "$LABELS" | grep -qi "ATS approval not needed"; then
|
|
52
|
+
echo "ATS approval not needed. Passing."
|
|
53
|
+
EXIT_CODE=0
|
|
54
|
+
elif echo "$LABELS" | grep -qi "ATS approved"; then
|
|
55
|
+
echo "ATS Approved. Passing."
|
|
56
|
+
EXIT_CODE=0
|
|
57
|
+
elif echo "$LABELS" | grep -qi "ATS approval needed"; then
|
|
58
|
+
echo "ATS Approval Needed. Failing."
|
|
59
|
+
EXIT_CODE=1
|
|
60
|
+
else
|
|
61
|
+
echo "No ATS approval labels found. Please assign the appropriate ATS label. Failing."
|
|
62
|
+
EXIT_CODE=1
|
|
63
|
+
fi
|
|
64
|
+
echo -e "\nFor more information on ATS labels, see:"
|
|
65
|
+
echo "https://anemoi.readthedocs.io/en/latest/contributing/guidelines.html#labelling-guidelines"
|
|
66
|
+
exit $EXIT_CODE
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
checks:
|
|
20
20
|
strategy:
|
|
21
21
|
matrix:
|
|
22
|
-
python-version: ["3.
|
|
22
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
23
23
|
uses: ecmwf/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ matrix.python-version }}
|
|
@@ -10,7 +10,7 @@ repos:
|
|
|
10
10
|
entry: jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace
|
|
11
11
|
additional_dependencies: [jupyter]
|
|
12
12
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
13
|
-
rev:
|
|
13
|
+
rev: v6.0.0
|
|
14
14
|
hooks:
|
|
15
15
|
- id: check-yaml # Check YAML files for syntax errors only
|
|
16
16
|
args: [--unsafe, --allow-multiple-documents]
|
|
@@ -27,12 +27,12 @@ repos:
|
|
|
27
27
|
- id: python-check-blanket-noqa # Check for # noqa: all
|
|
28
28
|
- id: python-no-log-warn # Check for log.warn
|
|
29
29
|
- repo: https://github.com/psf/black-pre-commit-mirror
|
|
30
|
-
rev: 25.
|
|
30
|
+
rev: 25.9.0
|
|
31
31
|
hooks:
|
|
32
32
|
- id: black
|
|
33
33
|
args: [--line-length=120]
|
|
34
34
|
- repo: https://github.com/pycqa/isort
|
|
35
|
-
rev: 6.0
|
|
35
|
+
rev: 6.1.0
|
|
36
36
|
hooks:
|
|
37
37
|
- id: isort
|
|
38
38
|
args:
|
|
@@ -41,7 +41,7 @@ repos:
|
|
|
41
41
|
- --profile black
|
|
42
42
|
- --project anemoi
|
|
43
43
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
44
|
-
rev: v0.
|
|
44
|
+
rev: v0.13.3
|
|
45
45
|
hooks:
|
|
46
46
|
- id: ruff
|
|
47
47
|
args:
|
|
@@ -65,11 +65,11 @@ repos:
|
|
|
65
65
|
- id: docconvert
|
|
66
66
|
args: ["numpy"]
|
|
67
67
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
68
|
-
rev: "v2.
|
|
68
|
+
rev: "v2.7.0"
|
|
69
69
|
hooks:
|
|
70
70
|
- id: pyproject-fmt
|
|
71
71
|
- repo: https://github.com/jshwi/docsig # Check docstrings against function sig
|
|
72
|
-
rev: v0.
|
|
72
|
+
rev: v0.71.0
|
|
73
73
|
hooks:
|
|
74
74
|
- id: docsig
|
|
75
75
|
args:
|
|
@@ -79,6 +79,7 @@ repos:
|
|
|
79
79
|
- --check-protected # Check protected methods
|
|
80
80
|
- --check-class # Check class docstrings
|
|
81
81
|
- --disable=SIG101,SIG102 # Disable empty docstrings
|
|
82
|
+
|
|
82
83
|
ci:
|
|
83
84
|
autoupdate_schedule: monthly
|
|
84
85
|
autoupdate_commit_msg: "chore(deps): pre-commit.ci autoupdate"
|
|
@@ -8,6 +8,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
8
8
|
Please add your functional changes to the appropriate section in the PR.
|
|
9
9
|
Keep it human-readable, your future self will thank you!
|
|
10
10
|
|
|
11
|
+
## [0.5.28](https://github.com/ecmwf/anemoi-datasets/compare/0.5.27...0.5.28) (2025-10-30)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* Added rolling average on read ([#448](https://github.com/ecmwf/anemoi-datasets/issues/448)) ([5cef720](https://github.com/ecmwf/anemoi-datasets/commit/5cef7207b7900190272d970bf44f35a7011e3708))
|
|
17
|
+
* Fix repeat dates ([#458](https://github.com/ecmwf/anemoi-datasets/issues/458)) ([16b5c83](https://github.com/ecmwf/anemoi-datasets/commit/16b5c836172a37c13b210b35baee1a5e97731e5d))
|
|
18
|
+
* Refactor dataset create ([#379](https://github.com/ecmwf/anemoi-datasets/issues/379)) ([c5408da](https://github.com/ecmwf/anemoi-datasets/commit/c5408dafd34c80bcb4b0cd9623dbebfe00959151))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* Allow grib source to be used for constant data ([#428](https://github.com/ecmwf/anemoi-datasets/issues/428)) ([c1d7ff1](https://github.com/ecmwf/anemoi-datasets/commit/c1d7ff1035848e26d3034903577c267973985c07))
|
|
24
|
+
* Broken source imports ([#450](https://github.com/ecmwf/anemoi-datasets/issues/450)) ([#454](https://github.com/ecmwf/anemoi-datasets/issues/454)) ([d6ed174](https://github.com/ecmwf/anemoi-datasets/commit/d6ed174cf4f6da22464c050d3304b026fc0ae4a3))
|
|
25
|
+
* Ensure missing value indicator in not a valid value in accumulat… ([#316](https://github.com/ecmwf/anemoi-datasets/issues/316)) ([3541a1f](https://github.com/ecmwf/anemoi-datasets/commit/3541a1f7068b54ceeb35dff93c3f94b4b138cb9d))
|
|
26
|
+
* S3 access [#453](https://github.com/ecmwf/anemoi-datasets/issues/453) ([#459](https://github.com/ecmwf/anemoi-datasets/issues/459)) ([2d810e3](https://github.com/ecmwf/anemoi-datasets/commit/2d810e3775ace78ffe2c43cc9bac66d704c0754d))
|
|
27
|
+
* Xarray-zarr filters ([#457](https://github.com/ecmwf/anemoi-datasets/issues/457)) ([5f2973f](https://github.com/ecmwf/anemoi-datasets/commit/5f2973fb7d128a3f6de5ed538e39cc7421eeb5dc))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Documentation
|
|
31
|
+
|
|
32
|
+
* Documentation updates ([#419](https://github.com/ecmwf/anemoi-datasets/issues/419)) ([4588175](https://github.com/ecmwf/anemoi-datasets/commit/458817533e805652527945eef4de781c62d3abf9))
|
|
33
|
+
|
|
34
|
+
## [0.5.27](https://github.com/ecmwf/anemoi-datasets/compare/0.5.26...0.5.27) (2025-10-06)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Features
|
|
38
|
+
|
|
39
|
+
* Add 'model_level_number' to coordinate guesser (ecmwf/anemoi-datasets[#402](https://github.com/ecmwf/anemoi-datasets/issues/402)) ([#403](https://github.com/ecmwf/anemoi-datasets/issues/403)) ([fa0b7e8](https://github.com/ecmwf/anemoi-datasets/commit/fa0b7e809740d918cddb98596a9178181fe900d2))
|
|
40
|
+
* Extend xarray Variable.sel to handle scalar variables ([#381](https://github.com/ecmwf/anemoi-datasets/issues/381)) ([1306d62](https://github.com/ecmwf/anemoi-datasets/commit/1306d62d0c7e2be627460e35ba8a6780b0b26db7))
|
|
41
|
+
* Improve conftest types ([#395](https://github.com/ecmwf/anemoi-datasets/issues/395)) ([bd8143d](https://github.com/ecmwf/anemoi-datasets/commit/bd8143d4baf94a5243c023632e62838226ae8fd4))
|
|
42
|
+
* Remove python 3.9 from pyproject.toml. ([#392](https://github.com/ecmwf/anemoi-datasets/issues/392)) ([7f3a250](https://github.com/ecmwf/anemoi-datasets/commit/7f3a250cddf35bba7c83867933236587a1b48572))
|
|
43
|
+
* **sources:** Add FDB source ([#405](https://github.com/ecmwf/anemoi-datasets/issues/405)) ([9222d59](https://github.com/ecmwf/anemoi-datasets/commit/9222d59280cafaf99f1471a028069fd6043522c9))
|
|
44
|
+
* Validate dataset ([#330](https://github.com/ecmwf/anemoi-datasets/issues/330)) ([34d06df](https://github.com/ecmwf/anemoi-datasets/commit/34d06df5b8ea40568f1a413b30904a103d26acb9))
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Bug Fixes
|
|
48
|
+
|
|
49
|
+
* Allow multiple options to be provided to anemoi-datasets inspect ([#372](https://github.com/ecmwf/anemoi-datasets/issues/372)) ([dea680e](https://github.com/ecmwf/anemoi-datasets/commit/dea680e54a4daa43ce15400ff49adb2a29c39380))
|
|
50
|
+
* Anemoi inspect wrong message ([#429](https://github.com/ecmwf/anemoi-datasets/issues/429)) ([984ccef](https://github.com/ecmwf/anemoi-datasets/commit/984ccef5561245a2a64b6e9b3c0543764b817664))
|
|
51
|
+
* Better handling of xarray metadata ([#322](https://github.com/ecmwf/anemoi-datasets/issues/322)) ([4304cb4](https://github.com/ecmwf/anemoi-datasets/commit/4304cb40a6d6956492b5246a56f4af1a914d7cab))
|
|
52
|
+
* Cleaning _build when building datasets ([#413](https://github.com/ecmwf/anemoi-datasets/issues/413)) ([046a7eb](https://github.com/ecmwf/anemoi-datasets/commit/046a7eb992653df34ba1c7550e38489e3df4d227))
|
|
53
|
+
* Define the missing forwards_subclass_metadata_specific method in the ZipBase class ([#377](https://github.com/ecmwf/anemoi-datasets/issues/377)) ([2816314](https://github.com/ecmwf/anemoi-datasets/commit/28163143a76cec618e74a2b85d86a7d0d31168f5))
|
|
54
|
+
* Remove config_path in Config ([#431](https://github.com/ecmwf/anemoi-datasets/issues/431)) ([2bf674f](https://github.com/ecmwf/anemoi-datasets/commit/2bf674fd966ce2a0c19cb72185173c999ae1c6af))
|
|
55
|
+
* Remove-obsolete-code-and-rename ([#423](https://github.com/ecmwf/anemoi-datasets/issues/423)) ([ab3da59](https://github.com/ecmwf/anemoi-datasets/commit/ab3da591c9d7f809e21da8e354afff07b97cc490))
|
|
56
|
+
* Save_dataset ([#383](https://github.com/ecmwf/anemoi-datasets/issues/383)) ([05b8f51](https://github.com/ecmwf/anemoi-datasets/commit/05b8f51f1b7c60cc3bc2695ccc274c149af2b9cf))
|
|
57
|
+
* Support for sources with already opened datasets ([#417](https://github.com/ecmwf/anemoi-datasets/issues/417)) ([9bc2d17](https://github.com/ecmwf/anemoi-datasets/commit/9bc2d1736d457c09c042e8db45ac587c94e75218))
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Documentation
|
|
61
|
+
|
|
62
|
+
* Reference filters transform ([#389](https://github.com/ecmwf/anemoi-datasets/issues/389)) ([4e5d278](https://github.com/ecmwf/anemoi-datasets/commit/4e5d2785db5bb644d20a90e6cb1d3aa17e412718))
|
|
63
|
+
|
|
11
64
|
## [0.5.26](https://github.com/ecmwf/anemoi-datasets/compare/0.5.25...0.5.26) (2025-07-11)
|
|
12
65
|
|
|
13
66
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.28
|
|
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,21 +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.9
|
|
220
219
|
Classifier: Programming Language :: Python :: 3.10
|
|
221
220
|
Classifier: Programming Language :: Python :: 3.11
|
|
222
221
|
Classifier: Programming Language :: Python :: 3.12
|
|
223
222
|
Classifier: Programming Language :: Python :: 3.13
|
|
224
223
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
225
224
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
226
|
-
Requires-Python: >=3.
|
|
225
|
+
Requires-Python: >=3.10
|
|
227
226
|
License-File: LICENSE
|
|
228
227
|
Requires-Dist: anemoi-transform>=0.1.10
|
|
229
|
-
Requires-Dist: anemoi-utils[provenance]>=0.4.
|
|
228
|
+
Requires-Dist: anemoi-utils[provenance]>=0.4.38
|
|
230
229
|
Requires-Dist: cfunits
|
|
230
|
+
Requires-Dist: glom
|
|
231
|
+
Requires-Dist: jsonschema
|
|
231
232
|
Requires-Dist: numcodecs<0.16
|
|
232
233
|
Requires-Dist: numpy
|
|
233
234
|
Requires-Dist: pyyaml
|
|
235
|
+
Requires-Dist: ruamel-yaml
|
|
234
236
|
Requires-Dist: semantic-version
|
|
235
237
|
Requires-Dist: tqdm
|
|
236
238
|
Requires-Dist: zarr<=2.18.4
|
|
@@ -262,6 +264,7 @@ Requires-Dist: requests; extra == "remote"
|
|
|
262
264
|
Provides-Extra: tests
|
|
263
265
|
Requires-Dist: anemoi-datasets[xarray]; extra == "tests"
|
|
264
266
|
Requires-Dist: pytest; extra == "tests"
|
|
267
|
+
Requires-Dist: pytest-skip-slow; extra == "tests"
|
|
265
268
|
Requires-Dist: pytest-xdist; extra == "tests"
|
|
266
269
|
Provides-Extra: xarray
|
|
267
270
|
Requires-Dist: adlfs; extra == "xarray"
|
|
@@ -19,5 +19,5 @@ help:
|
|
|
19
19
|
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
20
20
|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
21
21
|
%: Makefile
|
|
22
|
-
|
|
22
|
+
@cd scripts && $(MAKE) $@
|
|
23
23
|
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
.. _filters:
|
|
2
|
+
|
|
3
|
+
#########
|
|
4
|
+
Filters
|
|
5
|
+
#########
|
|
6
|
+
|
|
7
|
+
Filters can be used to perform data transformations when creating a
|
|
8
|
+
dataset. See the :ref:`anemoi-transform
|
|
9
|
+
<anemoi-transform:list-of-filters>` documentation for a list of filters
|
|
10
|
+
and example configurations.
|
{anemoi_datasets-0.5.26/docs/datasets → anemoi_datasets-0.5.28/docs}/building/introduction.rst
RENAMED
|
@@ -14,7 +14,7 @@ computed as the dataset is built, and stored in the metadata, with other
|
|
|
14
14
|
information such as the locations of the grid points, the list of
|
|
15
15
|
variables, etc.
|
|
16
16
|
|
|
17
|
-
.. figure::
|
|
17
|
+
.. figure:: ../_static/schemas/recipe.png
|
|
18
18
|
:alt: Building datasets
|
|
19
19
|
:align: center
|
|
20
20
|
|
|
@@ -10,7 +10,7 @@ dates of the dataset.
|
|
|
10
10
|
|
|
11
11
|
The general format of the `repeated-dates` source is:
|
|
12
12
|
|
|
13
|
-
.. literalinclude:: yaml/
|
|
13
|
+
.. literalinclude:: yaml/repeated-dates1.yaml
|
|
14
14
|
:language: yaml
|
|
15
15
|
|
|
16
16
|
where ``source`` is any of the :ref:`operations <operations>` or
|
|
@@ -4,7 +4,7 @@ Create Command
|
|
|
4
4
|
==============
|
|
5
5
|
|
|
6
6
|
Use this command to create a dataset from a recipe file.
|
|
7
|
-
The syntax of the recipe file is described in :
|
|
7
|
+
The syntax of the recipe file is described in :ref:`building-introduction`.
|
|
8
8
|
|
|
9
9
|
.. argparse::
|
|
10
10
|
:module: anemoi.datasets.__main__
|
|
@@ -15,7 +15,7 @@ This command will output the metadata of the dataset, including the variables, d
|
|
|
15
15
|
|
|
16
16
|
which will output something like the following. The output should be self-explanatory.
|
|
17
17
|
|
|
18
|
-
.. literalinclude:: ../
|
|
18
|
+
.. literalinclude:: ../yaml/building1.txt
|
|
19
19
|
:language: console
|
|
20
20
|
|
|
21
21
|
.. argparse::
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
.. _cli-introduction:
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
############
|
|
4
|
+
Introduction
|
|
5
|
+
############
|
|
6
6
|
|
|
7
7
|
When you install the `anemoi-datasets` package, this will also install command line tool
|
|
8
8
|
called ``anemoi-datasets`` which can be used to manage the zarr datasets.
|
|
@@ -20,4 +20,5 @@ The commands are:
|
|
|
20
20
|
- :ref:`Inspect Command <Inspect_command>`
|
|
21
21
|
- :ref:`Compare Command <compare_command>`
|
|
22
22
|
- :ref:`Scan Command <scan_command>`
|
|
23
|
+
- :ref:`Validate Command <validate_command>`
|
|
23
24
|
- :ref:`Compare LAM Command <compare_lam_command>`
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
.. _validate_command:
|
|
2
|
+
|
|
3
|
+
Validate Command
|
|
4
|
+
============
|
|
5
|
+
|
|
6
|
+
Use this command to validate a zarr dataset, or a class that implements the
|
|
7
|
+
:class:`anemoi.datasets.Dataset` interface.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
This command has two modes of operation:
|
|
11
|
+
|
|
12
|
+
1. Validate a local zarr dataset by specifying its path.
|
|
13
|
+
2. Validate a dataset class by providing its fully qualified class name.
|
|
14
|
+
|
|
15
|
+
Example usage
|
|
16
|
+
-------------
|
|
17
|
+
|
|
18
|
+
To validate a local zarr dataset:
|
|
19
|
+
|
|
20
|
+
.. code-block:: bash
|
|
21
|
+
|
|
22
|
+
anemoi-datasets validate /path/to/dataset.zarr
|
|
23
|
+
|
|
24
|
+
To validate a dataset class:
|
|
25
|
+
|
|
26
|
+
.. code-block:: bash
|
|
27
|
+
|
|
28
|
+
anemoi-datasets validate --callable my_package.MyDatasetClass some-args-relevant-to-the-class
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
In the first case, the command will check the compatibility of the zarr dataset using anemoi-datasets own class, in the second case, it will use the class provided by the user.
|
|
32
|
+
|
|
33
|
+
When running the command, emojis are used to categorise the different validation results:
|
|
34
|
+
|
|
35
|
+
* ✅: validation succeeded
|
|
36
|
+
* ⚠️: validation for the attribute/method is not implemented
|
|
37
|
+
* 💣: validation failed because the test does not pass
|
|
38
|
+
* 💥: validation failed because the validation tool is out of date
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
.. argparse::
|
|
42
|
+
:module: anemoi.datasets.__main__
|
|
43
|
+
:func: create_parser
|
|
44
|
+
:prog: anemoi-datasets
|
|
45
|
+
:path: validate
|
|
@@ -40,9 +40,9 @@ year = datetime.datetime.now().year
|
|
|
40
40
|
if year == 2024:
|
|
41
41
|
years = "2024"
|
|
42
42
|
else:
|
|
43
|
-
years = "2024
|
|
43
|
+
years = f"2024-{year}"
|
|
44
44
|
|
|
45
|
-
copyright = "
|
|
45
|
+
copyright = f"{years}, Anemoi contributors"
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
try:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
..
|
|
1
|
+
.. _redo-sample-dataset:
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
##############################
|
|
4
|
+
Re-create the sample dataset
|
|
5
|
+
##############################
|
|
6
6
|
|
|
7
7
|
The following example presents a simple but comprehensive recipe to
|
|
8
8
|
create an Anemoi dataset based on the atmospheric reanalysis ERA5. Once
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
.. _create-with-filter:
|
|
2
|
+
|
|
3
|
+
#################################
|
|
4
|
+
Create a dataset using a filter
|
|
5
|
+
#################################
|
|
6
|
+
|
|
7
|
+
A ``filter`` is a software component that takes as input the output of a
|
|
8
|
+
source or another filter and can modify the fields and/or their
|
|
9
|
+
metadata. For example, typical filters are interpolations, renaming of
|
|
10
|
+
variables, etc. Filters are available as part of ``anemoi-transform``.
|
|
11
|
+
|
|
12
|
+
****************
|
|
13
|
+
Using a filter
|
|
14
|
+
****************
|
|
15
|
+
|
|
16
|
+
In the example below we see a recipe to create a dataset from MARS data
|
|
17
|
+
in which we perform a rename transform to update ``tp`` to be named
|
|
18
|
+
``tp_era5``. To be able to use the transform we just define it as a
|
|
19
|
+
second step of the pipe, after gathering the data.
|
|
20
|
+
|
|
21
|
+
.. literalinclude:: yaml/recipe-filter1.yaml
|
|
22
|
+
|
|
23
|
+
That recipe will generate the following dataset:
|
|
24
|
+
|
|
25
|
+
.. code:: bash
|
|
26
|
+
|
|
27
|
+
Dataset Summary
|
|
28
|
+
===============
|
|
29
|
+
|
|
30
|
+
📦 Path : recipe1.zarr
|
|
31
|
+
🔢 Format version: 0.30.0
|
|
32
|
+
|
|
33
|
+
📅 Start : 2020-12-12 00:00
|
|
34
|
+
📅 End : 2020-12-13 12:00
|
|
35
|
+
⏰ Frequency : 12h
|
|
36
|
+
🚫 Missing : 0
|
|
37
|
+
🌎 Resolution : 20.0
|
|
38
|
+
🌎 Field shape: [9, 18]
|
|
39
|
+
|
|
40
|
+
📐 Shape : 4 × 9 × 1 × 162 (22.8 KiB)
|
|
41
|
+
💽 Size : 40.7 KiB (40.7 KiB)
|
|
42
|
+
📁 Files : 48
|
|
43
|
+
|
|
44
|
+
Index │ Variable │ Min │ Max │ Mean │ Stdev
|
|
45
|
+
──────┼──────────┼─────────────┼─────────────┼──────────────┼────────────
|
|
46
|
+
0 │ 2t │ 226.496 │ 309.946 │ 278.03 │ 19.2561
|
|
47
|
+
1 │ cp │ 0 │ 0.00739765 │ 0.00014582 │ 0.000527194
|
|
48
|
+
2 │ q_100 │ 1.38935e-06 │ 4.20381e-06 │ 2.68779e-06 │ 5.59043e-07
|
|
49
|
+
3 │ q_50 │ 1.26881e-06 │ 3.20919e-06 │ 2.74525e-06 │ 4.35595e-07
|
|
50
|
+
4 │ t_100 │ 189.787 │ 226.929 │ 207.052 │ 9.26841
|
|
51
|
+
5 │ t_50 │ 189.14 │ 236.51 │ 212.79 │ 9.5502
|
|
52
|
+
6 │ tp_era5 │ 0 │ 0.00823116 │ 0.000326814 │ 0.00078008
|
|
53
|
+
7 │ w_100 │ -0.0114685 │ 0.0129402 │ -0.000355278 │ 0.00448272
|
|
54
|
+
8 │ w_50 │ -0.00815806 │ 0.0126816 │ -0.000267674 │ 0.00331866
|
|
55
|
+
──────┴──────────┴─────────────┴─────────────┴──────────────┴────────────
|
|
56
|
+
🔋 Dataset ready, last update 1 minute ago.
|
|
57
|
+
📊 Statistics ready.
|
|
58
|
+
|
|
59
|
+
***********************
|
|
60
|
+
Creating a new filter
|
|
61
|
+
***********************
|
|
62
|
+
|
|
63
|
+
In order to create a new filter the recommendation is to define it under
|
|
64
|
+
the package ``anemoi-transform``. Available filters can be found in
|
|
65
|
+
``anemoi/transform/filters`` or running the command ``anemoi-transform
|
|
66
|
+
filters list``. For details about how to create a filter please refer to
|
|
67
|
+
the `anemoi-transform
|
|
68
|
+
<https://anemoi.readthedocs.io/projects/transform/en/latest/>`_
|
|
69
|
+
documentation.
|
|
70
|
+
|
|
71
|
+
************************
|
|
72
|
+
Using multiple filters
|
|
73
|
+
************************
|
|
74
|
+
|
|
75
|
+
It's possible to stack multiple filters one after the other. Below you
|
|
76
|
+
can see an updated version of the dataset creation we had where we now
|
|
77
|
+
create a dataset and apply a rename filter and our newly defined
|
|
78
|
+
``VerticalVelocity`` filter.
|
|
79
|
+
|
|
80
|
+
.. literalinclude:: yaml/recipe-filter2.yaml
|
|
81
|
+
|
|
82
|
+
That recipe will generate the following dataset:
|
|
83
|
+
|
|
84
|
+
.. code:: bash
|
|
85
|
+
|
|
86
|
+
Dataset Summary
|
|
87
|
+
===============
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
📦 Path : recipe2.zarr
|
|
91
|
+
🔢 Format version: 0.30.0
|
|
92
|
+
|
|
93
|
+
📅 Start : 2020-12-12 00:00
|
|
94
|
+
📅 End : 2020-12-13 12:00
|
|
95
|
+
⏰ Frequency : 12h
|
|
96
|
+
🚫 Missing : 0
|
|
97
|
+
🌎 Resolution : 20.0
|
|
98
|
+
🌎 Field shape: [9, 18]
|
|
99
|
+
|
|
100
|
+
📐 Shape : 4 × 9 × 1 × 162 (22.8 KiB)
|
|
101
|
+
💽 Size : 41.1 KiB (41.1 KiB)
|
|
102
|
+
📁 Files : 48
|
|
103
|
+
|
|
104
|
+
Index │ Variable │ Min │ Max │ Mean │ Stdev
|
|
105
|
+
──────┼──────────┼─────────────┼─────────────┼─────────────┼────────────
|
|
106
|
+
0 │ 2t │ 226.496 │ 309.946 │ 278.03 │ 19.2561
|
|
107
|
+
1 │ cp │ 0 │ 0.00739765 │ 0.00014582 │ 0.000527194
|
|
108
|
+
2 │ q_100 │ 1.38935e-06 │ 4.20381e-06 │ 2.68779e-06 │ 5.59043e-07
|
|
109
|
+
3 │ q_50 │ 1.26881e-06 │ 3.20919e-06 │ 2.74525e-06 │ 4.35595e-07
|
|
110
|
+
4 │ t_100 │ 189.787 │ 226.929 │ 207.052 │ 9.26841
|
|
111
|
+
5 │ t_50 │ 189.14 │ 236.51 │ 212.79 │ 9.5502
|
|
112
|
+
6 │ tp_era5 │ 0 │ 0.00823116 │ 0.000326814 │ 0.00078008
|
|
113
|
+
7 │ wz_100 │ -0.00798191 │ 0.00721723 │ 0.000224189 │ 0.00277693
|
|
114
|
+
8 │ wz_50 │ -0.01549 │ 0.0103844 │ 0.000341309 │ 0.00417065
|
|
115
|
+
──────┴──────────┴─────────────┴─────────────┴─────────────┴────────────
|
|
116
|
+
🔋 Dataset ready, last update 11 seconds ago.
|
|
117
|
+
📊 Statistics ready.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
dates:
|
|
2
|
+
start: 2020-12-12 00:00:00
|
|
3
|
+
end: 2020-12-14 12:00:00
|
|
4
|
+
frequency: 12h
|
|
5
|
+
|
|
6
|
+
input:
|
|
7
|
+
pipe:
|
|
8
|
+
- join:
|
|
9
|
+
- mars:
|
|
10
|
+
expver: "0001"
|
|
11
|
+
class: ea
|
|
12
|
+
grid: 20./20.
|
|
13
|
+
param: [2t]
|
|
14
|
+
levtype: sfc
|
|
15
|
+
- mars:
|
|
16
|
+
expver: "0001"
|
|
17
|
+
class: ea
|
|
18
|
+
grid: 20./20.
|
|
19
|
+
param: [q, t,w]
|
|
20
|
+
levtype: pl
|
|
21
|
+
level: [50, 100]
|
|
22
|
+
stream: oper
|
|
23
|
+
type: an
|
|
24
|
+
- accumulations:
|
|
25
|
+
expver: "0001"
|
|
26
|
+
class: ea
|
|
27
|
+
grid: 20./20.
|
|
28
|
+
param: [cp, tp]
|
|
29
|
+
- rename:
|
|
30
|
+
param:
|
|
31
|
+
tp: tp_era5
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
dates:
|
|
2
|
+
start: 2020-12-12 00:00:00
|
|
3
|
+
end: 2020-12-14 12:00:00
|
|
4
|
+
frequency: 12h
|
|
5
|
+
|
|
6
|
+
input:
|
|
7
|
+
pipe:
|
|
8
|
+
- join:
|
|
9
|
+
- mars:
|
|
10
|
+
expver: "0001"
|
|
11
|
+
class: ea
|
|
12
|
+
grid: 20./20.
|
|
13
|
+
param: [2t]
|
|
14
|
+
levtype: sfc
|
|
15
|
+
- mars:
|
|
16
|
+
expver: "0001"
|
|
17
|
+
class: ea
|
|
18
|
+
grid: 20./20.
|
|
19
|
+
param: [q, t,w]
|
|
20
|
+
levtype: pl
|
|
21
|
+
level: [50, 100]
|
|
22
|
+
stream: oper
|
|
23
|
+
type: an
|
|
24
|
+
- accumulations:
|
|
25
|
+
expver: "0001"
|
|
26
|
+
class: ea
|
|
27
|
+
grid: 20./20.
|
|
28
|
+
param: [cp, tp]
|
|
29
|
+
- rename:
|
|
30
|
+
param:
|
|
31
|
+
tp: tp_era5
|
|
32
|
+
- w_to_wz:
|
|
33
|
+
w_component: w
|
|
34
|
+
temperature: t
|
|
35
|
+
humidity: q
|
|
@@ -13,6 +13,7 @@ good starting point.
|
|
|
13
13
|
- :ref:`create-grib-data`
|
|
14
14
|
- :ref:`create-cf-data`
|
|
15
15
|
- :ref:`constant-data`
|
|
16
|
+
- :ref:`create-with-filter`
|
|
16
17
|
|
|
17
18
|
.. toctree::
|
|
18
19
|
:maxdepth: 1
|
|
@@ -34,4 +35,4 @@ good starting point.
|
|
|
34
35
|
:hidden:
|
|
35
36
|
:caption: Using anemoi-datasets
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
using/*
|