anemoi-datasets 0.5.23__tar.gz → 0.5.24__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.23 → anemoi_datasets-0.5.24}/.github/CODEOWNERS +0 -1
- anemoi_datasets-0.5.24/.github/pull_request_template.md +13 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/downstream-ci-hpc.yml +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-conventional-commit.yml +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-label-conventional-commits.yml +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-label-file-based.yml +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-label-public.yml +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/python-pull-request.yml +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/readthedocs-pr-update.yml +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.gitignore +7 -6
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.pre-commit-config.yaml +2 -1
- anemoi_datasets-0.5.24/.release-please-manifest.json +3 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/CHANGELOG.md +12 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/PKG-INFO +3 -3
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/pyproject.toml +2 -2
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/_version.py +2 -2
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/grib.py +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/patterns.py +1 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/PKG-INFO +3 -3
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/SOURCES.txt +0 -1
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/requires.txt +2 -2
- anemoi_datasets-0.5.24/tests/create/test_sources.py +255 -0
- anemoi_datasets-0.5.23/.github/pull_request_template.md +0 -46
- anemoi_datasets-0.5.23/.github/release.yml +0 -23
- anemoi_datasets-0.5.23/.release-please-manifest.json +0 -3
- anemoi_datasets-0.5.23/tests/create/test_sources.py +0 -139
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.gitattributes +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/ci-hpc-config.yml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/dependabot.yml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/labeler.yml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/push-to-private.yml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/python-publish.yml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/release-please.yml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.readthedocs.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.release-please-config.json +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.vscode/spellright.dict +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/03-constant-fields.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/CONTRIBUTORS.md +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/LICENSE +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/README.md +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/Makefile +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/2t_map_example.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/area-1.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/concat.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-1.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-2.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-3.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-4.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-5.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-6.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/join.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/logo.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/overlay.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/matrix.excalidraw +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/matrix.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/overview.excalidraw +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/overview.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/recipe.excalidraw +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/recipe.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/skip-missing.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/style.css +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/thinning-after.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/thinning-before.png +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_templates/.gitkeep +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_templates/apidoc/package.rst.jinja +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/apply-fmt.sh +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/check-index.sh +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/compare-lam.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/compare.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/copy.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/create.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/grib-index.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/inspect.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/introduction.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/patch.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/scan.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/conf.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/advanced-options.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/empty.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/noop.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/orog_to_z.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/regrid.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/rename.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/rotate_winds.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/select.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/sum.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/unrotate_winds.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/wz_to_w.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/orog_to_z.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/regrid1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/regrid2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/rename.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/sum.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/wz_to_w.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/handling-missing-dates.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/handling-missing-values.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/incremental.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/introduction.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/naming-conventions.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/naming-variables.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/operations.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/accumulations.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/anemoi-dataset.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/cds.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/eccc-fstd.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/forcings.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/grib-index.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/grib.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/hindcasts.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/mars.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/netcdf.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/opendap.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/recentre.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/repeated-dates.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-based.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-kerchunk.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-kerchunk.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-zarr.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/accumulations1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/accumulations2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/anemoi-dataset.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/eccc-fstd.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/forcings.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib3.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib4.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/mars-cds.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/mars1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/mars2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/netcdf.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/opendap.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/recentre.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates3.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates4.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/xarray-based.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/xarray-kerchunk.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/xarray-zarr.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/zenodo.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/zenodo.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/statistics.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/syntax.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/introduction.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/combining.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/configuration.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/configuration.toml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/ensembles.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/grids.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/introduction.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/matching.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/methods.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/miscellaneous.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/missing.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/opening.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/other.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/selecting.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/statistics.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/subsetting.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/zip.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/Makefile +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building1.txt +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building2.txt +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building3.txt +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building3.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/concat.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/input.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/missing_dates.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/nan.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/pipe.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/dev/contributing.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/01-grib-data.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/02-cf-data.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/03-constant-fields.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour3.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour4.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe3.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe4.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe5.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/netcdf1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/opendap1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/xarray-flavour1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/xarray-patch1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/xarray-patch2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/zarr1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/introduction.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/01-interpolate-step-dataset-combination.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/02-coutout-complement-combination.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/code/cutout-complement1.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/code/interpolate1.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/code/interpolate2.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/yaml/cutout-complement1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/yaml/interpolate1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/yaml/interpolate2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/index.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/installing.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/modules/dataset.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/modules/filters.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/modules/sources.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/overview.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/pptx/images.pptx +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/scripts/api_build.sh +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/usage/getting_started.rst +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/usage/yaml/aifs-ea-an-oper-0001-mars-o48-2020-2021-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/using/code/trimedge1_.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/setup.cfg +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/__main__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/check.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/check.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/cleanup.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/compare-lam.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/compare.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/copy.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/create.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/finalise.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/grib-index.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/init-additions.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/init.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/inspect.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/load-additions.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/load.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/patch.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/publish.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/scan.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/compute/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/compute/recentre.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/check.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/chunks.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/config.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filter.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/empty.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/legacy.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/noop.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/orog_to_z.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/pressure_level_relative_humidity_to_specific_humidity.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/pressure_level_specific_humidity_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/rename.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/rotate_winds.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_dewpoint_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_relative_humidity_to_dewpoint.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_relative_humidity_to_specific_humidity.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_specific_humidity_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/speeddir_to_uv.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/sum.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/transform.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/unrotate_winds.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/uv_to_speeddir.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/wz_to_w.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/action.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/concat.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/context.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/data_sources.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/empty.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/filter.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/function.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/join.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/misc.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/pipe.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/repeated_dates.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/result.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/step.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/template.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/trace.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/patch.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/persistent.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/size.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/source.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/accumulations.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/accumulations2.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/anemoi_dataset.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/constants.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/eccc_fstd.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/empty.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/forcings.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/grib_index.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/hindcasts.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/legacy.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/mars.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/netcdf.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/opendap.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/recentre.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/source.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/tendencies.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_kerchunk.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/README.md +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/coordinates.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/field.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/fieldlist.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/flavour.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/grid.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/metadata.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/patch.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/time.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/variable.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_zarr.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/zenodo.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/statistics/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/statistics/summary.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/testing.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/typing.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/utils.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/writer.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/zarr.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/complement.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/concat.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/dataset.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/debug.css +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/debug.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/ensemble.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/fill_missing.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/forwards.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/grids.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/indexing.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/interpolate.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/join.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/masked.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/merge.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/misc.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/missing.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/rescale.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/select.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/statistics.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/stores.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/subset.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/unchecked.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/xy.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/dates/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/dates/groups.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/grids.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/testing.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/utils/__init__.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/accumulation.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/concat.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/join.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/missing.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/nan.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/pipe.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/recentre.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/regrid.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/run.sh +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/test_create.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create-perturbations-full.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create-shift.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_chunks.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_data.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_data_gridded.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_dates.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_indexing.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_netcdf.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_opendap.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_samples.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_zarr.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/.gitignore +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/examples/Makefile +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/Makefile +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids.ipynb +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids1.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids2.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids3.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids4.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids5.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids6.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids7.yaml +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids_multilam.ipynb +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/make-sample-dataset.py +0 -0
- {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/upload-sample-dataset.py +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
## Description
|
|
2
|
+
<!-- What issue or task does this change relate to? -->
|
|
3
|
+
|
|
4
|
+
## What problem does this change solve?
|
|
5
|
+
<!-- Describe if it's a bugfix, new feature, doc update, or breaking change -->
|
|
6
|
+
|
|
7
|
+
## What issue or task does this change relate to?
|
|
8
|
+
<!-- link to Issue Number -->
|
|
9
|
+
|
|
10
|
+
## Additional notes ##
|
|
11
|
+
<!-- Include any additional information, caveats, or considerations that the reviewer should be aware of. -->
|
|
12
|
+
|
|
13
|
+
***As a contributor to the Anemoi framework, please ensure that your changes include unit tests, updates to any affected dependencies and documentation, and have been tested in a parallel setting (i.e., with multiple GPUs). As a reviewer, you are also responsible for verifying these aspects and requesting changes if they are not adequately addressed. For guidelines about those please refer to https://anemoi.readthedocs.io/en/latest/***
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This workflow triggers tests on dependent packages.
|
|
2
2
|
# The dependency tree itself is defined in ecmwf/downstream-ci/
|
|
3
|
-
name: Test downstream dependent packages
|
|
3
|
+
name: Test downstream dependent packages
|
|
4
4
|
|
|
5
5
|
on:
|
|
6
6
|
# Trigger the workflow on push to main or develop, except tag creation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This workflow assigns labels to a pull request based on the files changed in the PR.
|
|
2
2
|
# The labels are defined in the `.github/labels.yml` file.
|
|
3
|
-
name: "[
|
|
3
|
+
name: "[PR] Label File-based"
|
|
4
4
|
on:
|
|
5
5
|
pull_request_target:
|
|
6
6
|
types: [opened, synchronize]
|
{anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/readthedocs-pr-update.yml
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This workflow adds a link to the experimental documentation build to the PR.
|
|
2
2
|
# This does NOT trigger a build of the documentation, this is handled through webhooks.
|
|
3
|
-
name: Read the Docs
|
|
3
|
+
name: "[PR] Read the Docs Preview"
|
|
4
4
|
on:
|
|
5
5
|
pull_request_target:
|
|
6
6
|
types:
|
|
@@ -94,6 +94,11 @@ dmypy.json
|
|
|
94
94
|
*.csv
|
|
95
95
|
*.xlsx
|
|
96
96
|
*.xls
|
|
97
|
+
*.json
|
|
98
|
+
*.txt
|
|
99
|
+
*.zip
|
|
100
|
+
*.db
|
|
101
|
+
*.tgz
|
|
97
102
|
|
|
98
103
|
# ML artifacts
|
|
99
104
|
wandb/
|
|
@@ -120,7 +125,8 @@ tmp/
|
|
|
120
125
|
temp/
|
|
121
126
|
logs/
|
|
122
127
|
_dev/
|
|
123
|
-
|
|
128
|
+
_api/
|
|
129
|
+
./outputs
|
|
124
130
|
*tmp_data/
|
|
125
131
|
|
|
126
132
|
# Project specific
|
|
@@ -135,8 +141,3 @@ _version.py
|
|
|
135
141
|
*.to_upload
|
|
136
142
|
tempCodeRunnerFile.python
|
|
137
143
|
Untitled-*.py
|
|
138
|
-
*.zip
|
|
139
|
-
*.json
|
|
140
|
-
*.db
|
|
141
|
-
*.tgz
|
|
142
|
-
_api/
|
|
@@ -8,6 +8,18 @@ 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.24](https://github.com/ecmwf/anemoi-datasets/compare/0.5.23...0.5.24) (2025-05-23)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* verify command ([#279](https://github.com/ecmwf/anemoi-datasets/issues/279)) ([aed36d2](https://github.com/ecmwf/anemoi-datasets/commit/aed36d2ea7a39ea1ae6bbd5f8d01ef0ce7523cde))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* adapt to earthkit 0.14 (ignore_keys issue) ([#331](https://github.com/ecmwf/anemoi-datasets/issues/331)) ([fb3ab8d](https://github.com/ecmwf/anemoi-datasets/commit/fb3ab8d46b8e00c62d8d7cbb1d1afae0efea2054))
|
|
22
|
+
|
|
11
23
|
## [0.5.23](https://github.com/ecmwf/anemoi-datasets/compare/0.5.22...0.5.23) (2025-05-07)
|
|
12
24
|
|
|
13
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.24
|
|
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
|
|
@@ -225,7 +225,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
225
225
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
226
226
|
Requires-Python: >=3.9
|
|
227
227
|
License-File: LICENSE
|
|
228
|
-
Requires-Dist: anemoi-transform>=0.1.
|
|
228
|
+
Requires-Dist: anemoi-transform>=0.1.10
|
|
229
229
|
Requires-Dist: anemoi-utils[provenance]>=0.4.21
|
|
230
230
|
Requires-Dist: cfunits
|
|
231
231
|
Requires-Dist: numcodecs<0.16
|
|
@@ -241,7 +241,7 @@ Requires-Dist: prettytable; extra == "comparelam"
|
|
|
241
241
|
Requires-Dist: termcolor; extra == "comparelam"
|
|
242
242
|
Provides-Extra: create
|
|
243
243
|
Requires-Dist: cachetools; extra == "create"
|
|
244
|
-
Requires-Dist: earthkit-data[mars]
|
|
244
|
+
Requires-Dist: earthkit-data[mars]>=0.14; extra == "create"
|
|
245
245
|
Requires-Dist: earthkit-geo>=0.3; extra == "create"
|
|
246
246
|
Requires-Dist: earthkit-meteo>=0.3; extra == "create"
|
|
247
247
|
Requires-Dist: eccodes>=2.39.1; extra == "create"
|
|
@@ -49,7 +49,7 @@ dynamic = [
|
|
|
49
49
|
"version",
|
|
50
50
|
]
|
|
51
51
|
dependencies = [
|
|
52
|
-
"anemoi-transform>=0.1.
|
|
52
|
+
"anemoi-transform>=0.1.10",
|
|
53
53
|
"anemoi-utils[provenance]>=0.4.21",
|
|
54
54
|
"cfunits",
|
|
55
55
|
"numcodecs<0.16", # Until we move to zarr3
|
|
@@ -71,7 +71,7 @@ optional-dependencies.comparelam = [
|
|
|
71
71
|
|
|
72
72
|
optional-dependencies.create = [
|
|
73
73
|
"cachetools",
|
|
74
|
-
"earthkit-data[mars]>=0.
|
|
74
|
+
"earthkit-data[mars]>=0.14",
|
|
75
75
|
"earthkit-geo>=0.3",
|
|
76
76
|
"earthkit-meteo>=0.3",
|
|
77
77
|
"eccodes>=2.39.1",
|
{anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/grib.py
RENAMED
|
@@ -124,7 +124,7 @@ def execute(
|
|
|
124
124
|
dates = [d.isoformat() for d in dates]
|
|
125
125
|
|
|
126
126
|
for path in given_paths:
|
|
127
|
-
paths = Pattern(path
|
|
127
|
+
paths = Pattern(path).substitute(*args, date=dates, allow_extra=True, **kwargs)
|
|
128
128
|
|
|
129
129
|
for name in ("grid", "area", "rotation", "frame", "resol", "bitmap"):
|
|
130
130
|
if name in kwargs:
|
{anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/patterns.py
RENAMED
|
@@ -79,6 +79,6 @@ def iterate_patterns(
|
|
|
79
79
|
kwargs["date"] = dates
|
|
80
80
|
|
|
81
81
|
for path in given_paths:
|
|
82
|
-
paths = Pattern(path
|
|
82
|
+
paths = Pattern(path).substitute(allow_extra=True, **kwargs)
|
|
83
83
|
for path in _expand(paths):
|
|
84
84
|
yield path, dates
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.24
|
|
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
|
|
@@ -225,7 +225,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
225
225
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
226
226
|
Requires-Python: >=3.9
|
|
227
227
|
License-File: LICENSE
|
|
228
|
-
Requires-Dist: anemoi-transform>=0.1.
|
|
228
|
+
Requires-Dist: anemoi-transform>=0.1.10
|
|
229
229
|
Requires-Dist: anemoi-utils[provenance]>=0.4.21
|
|
230
230
|
Requires-Dist: cfunits
|
|
231
231
|
Requires-Dist: numcodecs<0.16
|
|
@@ -241,7 +241,7 @@ Requires-Dist: prettytable; extra == "comparelam"
|
|
|
241
241
|
Requires-Dist: termcolor; extra == "comparelam"
|
|
242
242
|
Provides-Extra: create
|
|
243
243
|
Requires-Dist: cachetools; extra == "create"
|
|
244
|
-
Requires-Dist: earthkit-data[mars]
|
|
244
|
+
Requires-Dist: earthkit-data[mars]>=0.14; extra == "create"
|
|
245
245
|
Requires-Dist: earthkit-geo>=0.3; extra == "create"
|
|
246
246
|
Requires-Dist: earthkit-meteo>=0.3; extra == "create"
|
|
247
247
|
Requires-Dist: eccodes>=2.39.1; extra == "create"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
anemoi-transform>=0.1.
|
|
1
|
+
anemoi-transform>=0.1.10
|
|
2
2
|
anemoi-utils[provenance]>=0.4.21
|
|
3
3
|
cfunits
|
|
4
4
|
numcodecs<0.16
|
|
@@ -17,7 +17,7 @@ termcolor
|
|
|
17
17
|
|
|
18
18
|
[create]
|
|
19
19
|
cachetools
|
|
20
|
-
earthkit-data[mars]
|
|
20
|
+
earthkit-data[mars]>=0.14
|
|
21
21
|
earthkit-geo>=0.3
|
|
22
22
|
earthkit-meteo>=0.3
|
|
23
23
|
eccodes>=2.39.1
|
|
@@ -0,0 +1,255 @@
|
|
|
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
|
+
import logging
|
|
11
|
+
import os
|
|
12
|
+
import sys
|
|
13
|
+
|
|
14
|
+
import numpy as np
|
|
15
|
+
import pytest
|
|
16
|
+
from anemoi.utils.testing import get_test_data
|
|
17
|
+
from anemoi.utils.testing import skip_if_offline
|
|
18
|
+
from anemoi.utils.testing import skip_missing_packages
|
|
19
|
+
from anemoi.utils.testing import skip_slow_tests
|
|
20
|
+
|
|
21
|
+
from anemoi.datasets import open_dataset
|
|
22
|
+
from anemoi.datasets.create.testing import create_dataset
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@skip_if_offline
|
|
26
|
+
def test_grib() -> None:
|
|
27
|
+
"""Test the creation of a dataset from GRIB files.
|
|
28
|
+
|
|
29
|
+
This function tests the creation of a dataset using GRIB files from
|
|
30
|
+
specific dates and verifies the shape of the resulting dataset.
|
|
31
|
+
"""
|
|
32
|
+
data1 = get_test_data("anemoi-datasets/create/grib-20100101.grib")
|
|
33
|
+
data2 = get_test_data("anemoi-datasets/create/grib-20100102.grib")
|
|
34
|
+
assert os.path.dirname(data1) == os.path.dirname(data2)
|
|
35
|
+
|
|
36
|
+
path = os.path.dirname(data1)
|
|
37
|
+
|
|
38
|
+
config = {
|
|
39
|
+
"dates": {
|
|
40
|
+
"start": "2010-01-01T00:00:00",
|
|
41
|
+
"end": "2010-01-02T18:00:00",
|
|
42
|
+
"frequency": "6h",
|
|
43
|
+
},
|
|
44
|
+
"input": {
|
|
45
|
+
"grib": {
|
|
46
|
+
"path": os.path.join(path, "grib-{date:strftime(%Y%m%d)}.grib"),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
created = create_dataset(config=config, output=None)
|
|
52
|
+
ds = open_dataset(created)
|
|
53
|
+
assert ds.shape == (8, 12, 1, 162)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@pytest.mark.skipif(
|
|
57
|
+
sys.version_info < (3, 10), reason="Type hints from anemoi-transform are not compatible with Python < 3.10"
|
|
58
|
+
)
|
|
59
|
+
@skip_if_offline
|
|
60
|
+
def test_grib_gridfile() -> None:
|
|
61
|
+
"""Test the creation of a dataset from GRIB files with an unstructured grid.
|
|
62
|
+
|
|
63
|
+
This function tests the creation of a dataset using GRIB files from
|
|
64
|
+
specific dates and verifies the shape of the resulting dataset.
|
|
65
|
+
This GRIB data is defined on an unstructured grid and therefore requires
|
|
66
|
+
specifying a grid file.
|
|
67
|
+
"""
|
|
68
|
+
data1 = get_test_data("anemoi-datasets/create/grib-iconch1-20250101.grib")
|
|
69
|
+
data2 = get_test_data("anemoi-datasets/create/grib-iconch1-20250102.grib")
|
|
70
|
+
gridfile = get_test_data("anemoi-datasets/create/icon_grid_0001_R19B08_mch.nc")
|
|
71
|
+
assert os.path.dirname(data1) == os.path.dirname(data2)
|
|
72
|
+
|
|
73
|
+
path = os.path.dirname(data1)
|
|
74
|
+
|
|
75
|
+
config = {
|
|
76
|
+
"dates": {
|
|
77
|
+
"start": "2025-01-01T00:00:00",
|
|
78
|
+
"end": "2025-01-02T18:00:00",
|
|
79
|
+
"frequency": "6h",
|
|
80
|
+
},
|
|
81
|
+
"input": {
|
|
82
|
+
"grib": {
|
|
83
|
+
"path": os.path.join(path, "grib-iconch1-{date:strftime(%Y%m%d)}.grib"),
|
|
84
|
+
"grid_definition": {"icon": {"path": gridfile}},
|
|
85
|
+
"flavour": [[{"levtype": "sfc"}, {"levelist": None}]],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
created = create_dataset(config=config, output=None)
|
|
91
|
+
ds = open_dataset(created)
|
|
92
|
+
assert ds.shape == (8, 1, 1, 1147980)
|
|
93
|
+
assert ds.variables == ["2t"]
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@pytest.mark.skipif(
|
|
97
|
+
sys.version_info < (3, 10), reason="Type hints from anemoi-transform are not compatible with Python < 3.10"
|
|
98
|
+
)
|
|
99
|
+
@skip_if_offline
|
|
100
|
+
@pytest.mark.parametrize(
|
|
101
|
+
"refinement_level_c,shape",
|
|
102
|
+
(
|
|
103
|
+
(2, (2, 13, 1, 2880)),
|
|
104
|
+
(7, (2, 13, 1, 2949120)),
|
|
105
|
+
),
|
|
106
|
+
)
|
|
107
|
+
def test_grib_gridfile_with_refinement_level(refinement_level_c: str, shape: tuple[int, int, int, int, int]) -> None:
|
|
108
|
+
"""Test the creation of a dataset from GRIB files with an unstructured grid.
|
|
109
|
+
|
|
110
|
+
This function tests the creation of a dataset using GRIB files from
|
|
111
|
+
specific dates and verifies the shape of the resulting dataset.
|
|
112
|
+
This GRIB data is defined on an unstructured grid and therefore requires
|
|
113
|
+
specifying a grid file. The `refinement_level_c` selection key and
|
|
114
|
+
strftimedelta are used.
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
p = "anemoi-datasets/create/test_grib_gridfile_with_refinement_level/"
|
|
118
|
+
data1 = get_test_data(p + "2023010103+fc_R03B07_rea_ml.2023010100")
|
|
119
|
+
data2 = get_test_data(p + "2023010106+fc_R03B07_rea_ml.2023010103")
|
|
120
|
+
gridfile = get_test_data("dwd/2024-12-11_00/icon_grid_0026_R03B07_subsetAICON.nc")
|
|
121
|
+
assert os.path.dirname(data1) == os.path.dirname(data2)
|
|
122
|
+
|
|
123
|
+
path = os.path.dirname(data1)
|
|
124
|
+
|
|
125
|
+
param = ["pres", "t", "u", "v", "q"]
|
|
126
|
+
level = [101, 119]
|
|
127
|
+
forcings = ["cos_latitude", "sin_latitude", "cos_julian_day"]
|
|
128
|
+
assert len(param) * len(level) + len(forcings) == shape[1]
|
|
129
|
+
|
|
130
|
+
grib = {
|
|
131
|
+
"path": os.path.join(path, "{date:strftimedelta(+3h;%Y%m%d%H)}+fc_R03B07_rea_ml.{date:strftime(%Y%m%d%H)}"),
|
|
132
|
+
"grid_definition": {"icon": {"path": gridfile, "refinement_level_c": refinement_level_c}},
|
|
133
|
+
"param": param,
|
|
134
|
+
"level": level,
|
|
135
|
+
}
|
|
136
|
+
refinement_filter = {"icon_refinement_level": {"grid": gridfile, "refinement_level_c": refinement_level_c}}
|
|
137
|
+
|
|
138
|
+
config = {
|
|
139
|
+
"dates": {
|
|
140
|
+
"start": "2023-01-01T00:00:00",
|
|
141
|
+
"end": "2023-01-01T03:00:00",
|
|
142
|
+
"frequency": "3h",
|
|
143
|
+
},
|
|
144
|
+
"input": {
|
|
145
|
+
"pipe": [
|
|
146
|
+
{
|
|
147
|
+
"join": [
|
|
148
|
+
{"grib": grib},
|
|
149
|
+
{"forcings": {"param": forcings, "template": "${input.pipe.0.join.0.grib}"}},
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
refinement_filter,
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
created = create_dataset(config=config, output=None)
|
|
158
|
+
ds = open_dataset(created)
|
|
159
|
+
assert ds.shape == shape
|
|
160
|
+
assert np.all(ds.data[ds.to_index(date=0, variable="cos_julian_day", member=0)] == 1.0), "cos(julian_day = 0) == 1"
|
|
161
|
+
assert np.all(ds.data[ds.to_index(date=0, variable="u_101", member=0)] == 42.0), "artificially constant data day 0"
|
|
162
|
+
assert np.all(ds.data[ds.to_index(date=1, variable="v_119", member=0)] == 21.0), "artificially constant data day 1"
|
|
163
|
+
assert ds.data[ds.to_index(date=0, variable="cos_latitude", member=0)].max() > 0.9
|
|
164
|
+
assert ds.data[ds.to_index(date=0, variable="cos_latitude", member=0)].min() >= 0
|
|
165
|
+
assert ds.data[ds.to_index(date=0, variable="sin_latitude", member=0)].max() > 0.9
|
|
166
|
+
assert ds.data[ds.to_index(date=0, variable="sin_latitude", member=0)].min() < -0.9
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
@skip_if_offline
|
|
170
|
+
def test_netcdf() -> None:
|
|
171
|
+
"""Test for NetCDF files.
|
|
172
|
+
|
|
173
|
+
This function tests the creation of a dataset from a NetCDF file.
|
|
174
|
+
"""
|
|
175
|
+
data = get_test_data("anemoi-datasets/create/netcdf.nc")
|
|
176
|
+
config = {
|
|
177
|
+
"dates": {
|
|
178
|
+
"start": "2023-01-01",
|
|
179
|
+
"end": "2023-01-02",
|
|
180
|
+
"frequency": "1d",
|
|
181
|
+
},
|
|
182
|
+
"input": {
|
|
183
|
+
"netcdf": {"path": data},
|
|
184
|
+
},
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
created = create_dataset(config=config, output=None)
|
|
188
|
+
ds = open_dataset(created)
|
|
189
|
+
assert ds.shape == (2, 2, 1, 162)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
@skip_missing_packages("fstd", "rpnpy.librmn")
|
|
193
|
+
def test_eccs_fstd() -> None:
|
|
194
|
+
"""Test for 'fstd' files from ECCC."""
|
|
195
|
+
# See https://github.com/neishm/fstd2nc
|
|
196
|
+
|
|
197
|
+
data = get_test_data("anemoi-datasets/create/2025031000_000_TT.fstd", gzipped=True)
|
|
198
|
+
config = {
|
|
199
|
+
"dates": {
|
|
200
|
+
"start": "2023-01-01",
|
|
201
|
+
"end": "2023-01-02",
|
|
202
|
+
"frequency": "1d",
|
|
203
|
+
},
|
|
204
|
+
"input": {
|
|
205
|
+
"eccc_fstd": {"path": data},
|
|
206
|
+
},
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
created = create_dataset(config=config, output=None)
|
|
210
|
+
ds = open_dataset(created)
|
|
211
|
+
assert ds.shape == (2, 2, 1, 162)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
@skip_slow_tests
|
|
215
|
+
@skip_if_offline
|
|
216
|
+
@skip_missing_packages("kerchunk", "s3fs")
|
|
217
|
+
def test_kerchunk() -> None:
|
|
218
|
+
"""Test for Kerchunk JSON files.
|
|
219
|
+
|
|
220
|
+
This function tests the creation of a dataset from a Kerchunk JSON file.
|
|
221
|
+
|
|
222
|
+
"""
|
|
223
|
+
# Note: last version of kerchunk compatible with zarr 2 is 0.2.7
|
|
224
|
+
|
|
225
|
+
data = get_test_data("anemoi-datasets/create/kerchunck.json", gzipped=True)
|
|
226
|
+
|
|
227
|
+
config = {
|
|
228
|
+
"dates": {
|
|
229
|
+
"start": "2024-03-01T00:00:00",
|
|
230
|
+
"end": "2024-03-01T18:00:00",
|
|
231
|
+
"frequency": "6h",
|
|
232
|
+
},
|
|
233
|
+
"input": {
|
|
234
|
+
"xarray-kerchunk": {
|
|
235
|
+
"json": data,
|
|
236
|
+
"param": ["T"],
|
|
237
|
+
"level": [1000],
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
created = create_dataset(config=config, output=None)
|
|
243
|
+
ds = open_dataset(created)
|
|
244
|
+
assert ds.shape == (4, 1, 1, 1038240)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
if __name__ == "__main__":
|
|
248
|
+
logging.basicConfig(level=logging.INFO)
|
|
249
|
+
test_kerchunk()
|
|
250
|
+
exit()
|
|
251
|
+
"""Run all test functions that start with 'test_'."""
|
|
252
|
+
for name, obj in list(globals().items()):
|
|
253
|
+
if name.startswith("test_") and callable(obj):
|
|
254
|
+
print(f"Running {name}...")
|
|
255
|
+
obj()
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
## Description
|
|
2
|
-
|
|
3
|
-
<!-- Provide a brief summary of the changes introduced in this pull request. -->
|
|
4
|
-
|
|
5
|
-
## Type of Change
|
|
6
|
-
|
|
7
|
-
- [ ] Bug fix (non-breaking change which fixes an issue)
|
|
8
|
-
- [ ] New feature (non-breaking change which adds functionality)
|
|
9
|
-
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
10
|
-
- [ ] Documentation update
|
|
11
|
-
|
|
12
|
-
## Issue Number
|
|
13
|
-
|
|
14
|
-
<!-- Link the Issue number this change addresses, ideally in one of the "magic format" such as Closes #XYZ -->
|
|
15
|
-
|
|
16
|
-
<!-- Alternatively, explain the motivation behind the changes and the context in which they are being made. -->
|
|
17
|
-
|
|
18
|
-
## Code Compatibility
|
|
19
|
-
|
|
20
|
-
- [ ] I have performed a self-review of my code
|
|
21
|
-
|
|
22
|
-
### Code Performance and Testing
|
|
23
|
-
|
|
24
|
-
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
25
|
-
- [ ] I ran the [complete Pytest test](https://anemoi.readthedocs.io/projects/training/en/latest/dev/testing.html) suite locally, and they pass
|
|
26
|
-
|
|
27
|
-
<!-- In case this affects the model sharding or other specific components please describe these here. -->
|
|
28
|
-
|
|
29
|
-
### Dependencies
|
|
30
|
-
|
|
31
|
-
- [ ] I have ensured that the code is still pip-installable after the changes and runs
|
|
32
|
-
- [ ] I have tested that new dependencies themselves are pip-installable.
|
|
33
|
-
|
|
34
|
-
<!-- List any new dependencies that are required for this change and the justification to add them. -->
|
|
35
|
-
|
|
36
|
-
### Documentation
|
|
37
|
-
|
|
38
|
-
- [ ] My code follows the style guidelines of this project
|
|
39
|
-
- [ ] I have updated the documentation and docstrings to reflect the changes
|
|
40
|
-
- [ ] I have added comments to my code, particularly in hard-to-understand areas
|
|
41
|
-
|
|
42
|
-
<!-- Describe any major updates to the documentation -->
|
|
43
|
-
|
|
44
|
-
## Additional Notes
|
|
45
|
-
|
|
46
|
-
<!-- Include any additional information, caveats, or considerations that the reviewer should be aware of. -->
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# .github/release.yml
|
|
2
|
-
# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
|
|
3
|
-
|
|
4
|
-
changelog:
|
|
5
|
-
exclude:
|
|
6
|
-
labels:
|
|
7
|
-
- ignore-for-release
|
|
8
|
-
- no-changelog
|
|
9
|
-
authors:
|
|
10
|
-
- pre-commit-ci
|
|
11
|
-
categories:
|
|
12
|
-
- title: Breaking Changes 🛠
|
|
13
|
-
labels:
|
|
14
|
-
- "breaking change"
|
|
15
|
-
- title: Exciting New Features 🎉
|
|
16
|
-
labels:
|
|
17
|
-
- enhancement
|
|
18
|
-
- title: Config Changes 📑
|
|
19
|
-
labels:
|
|
20
|
-
- config
|
|
21
|
-
- title: Other Changes 🔗
|
|
22
|
-
labels:
|
|
23
|
-
- "*"
|