anemoi-datasets 0.5.0__tar.gz → 0.5.6__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.6/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.gitignore +1 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.pre-commit-config.yaml +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/CHANGELOG.md +41 -14
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/PKG-INFO +1 -1
- anemoi_datasets-0.5.6/docs/building/filters/rename.rst +6 -0
- anemoi_datasets-0.5.6/docs/building/filters/yaml/rename.yaml +4 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/accumulations.rst +2 -2
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/forcings.rst +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/mars.rst +2 -2
- anemoi_datasets-0.5.6/docs/building/sources/netcdf.rst +8 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/opendap.rst +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/recentre.rst +1 -1
- anemoi_datasets-0.5.6/docs/building/sources/repeated_dates.rst +39 -0
- anemoi_datasets-0.5.6/docs/building/sources/xarray-based.rst +13 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/xarray-kerchunk.rst +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/xarray-zarr.rst +1 -1
- anemoi_datasets-0.5.6/docs/building/sources/yaml/hindcasts.yaml +3 -0
- anemoi_datasets-0.5.6/docs/building/sources/yaml/repeated_dates1.yaml +6 -0
- anemoi_datasets-0.5.6/docs/building/sources/yaml/repeated_dates2.yaml +6 -0
- anemoi_datasets-0.5.6/docs/building/sources/yaml/repeated_dates3.yaml +8 -0
- anemoi_datasets-0.5.6/docs/building/sources/yaml/repeated_dates4.yaml +9 -0
- anemoi_datasets-0.5.6/docs/building/sources/yaml/xarray-based.yaml +3 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/zenodo.rst +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources.rst +1 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/index.rst +3 -3
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/_version.py +2 -2
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/inspect.py +1 -1
- anemoi_datasets-0.5.6/src/anemoi/datasets/commands/publish.py +30 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/__init__.py +42 -3
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/check.py +6 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/rename.py +2 -3
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/__init__.py +7 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/accumulations.py +2 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/grib.py +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/__init__.py +7 -2
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/coordinates.py +12 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/field.py +13 -4
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/fieldlist.py +16 -16
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/flavour.py +130 -13
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/functions/sources/xarray/grid.py +135 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/metadata.py +3 -11
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/time.py +1 -5
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray/variable.py +10 -10
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/__init__.py +69 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/action.py +123 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/concat.py +92 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/context.py +59 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/data_sources.py +71 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/empty.py +42 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/filter.py +76 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/function.py +122 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/join.py +57 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/misc.py +85 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/pipe.py +33 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/repeated_dates.py +217 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/result.py +413 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/create/input/step.py +99 -0
- {anemoi_datasets-0.5.0/src/anemoi/datasets/create → anemoi_datasets-0.5.6/src/anemoi/datasets/create/input}/template.py +0 -42
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/statistics/__init__.py +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/zarr.py +4 -2
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/dates/__init__.py +1 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/dates/groups.py +12 -4
- anemoi_datasets-0.5.6/src/anemoi/datasets/fields.py +66 -0
- anemoi_datasets-0.5.6/src/anemoi/datasets/utils/fields.py +47 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi_datasets.egg-info/PKG-INFO +1 -1
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi_datasets.egg-info/SOURCES.txt +38 -14
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/xarray/test_zarr.py +44 -22
- anemoi_datasets-0.5.0/docs/building/filters/rename.rst +0 -3
- anemoi_datasets-0.5.0/docs/building/sources/hindcasts.yaml +0 -0
- anemoi_datasets-0.5.0/docs/building/sources/netcdf.rst +0 -6
- anemoi_datasets-0.5.0/docs/building/sources/yaml/hindcasts.yaml +0 -2
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/sources/xarray/grid.py +0 -46
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/input.py +0 -1087
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.gitattributes +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/CODEOWNERS +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/ci-config.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/ci-hpc-config.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/workflows/changelog-pr-update.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/workflows/changelog-release-update.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/workflows/ci.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/workflows/label-public-pr.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/workflows/python-publish.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/workflows/python-pull-request.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.readthedocs.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/.vscode/spellright.dict +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/LICENSE +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/README.md +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/Makefile +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/_static/logo.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/_static/style.css +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/_templates/.gitkeep +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/apply-fmt.sh +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/advanced-options.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/filters/empty.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/filters/noop.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/filters/rotate_winds.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/filters/select.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/filters/unrotate_winds.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/filters.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/handling-missing-dates.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/handling-missing-values.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/incremental.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/introduction.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/naming-variables.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/operations.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/grib.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/hindcasts.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/xarray-kerchunk.py +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/accumulations1.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/accumulations2.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/forcings.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/yaml/grib1.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/yaml/grib2.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/yaml/grib3.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/yaml/grib4.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/mars1.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/mars2.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/netcdf.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/opendap.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/sources/yaml/recentre.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/xarray-kerchunk.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/xarray-zarr.yaml +0 -0
- {anemoi_datasets-0.5.0/docs/building/sources → anemoi_datasets-0.5.6/docs/building/sources/yaml}/zenodo.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/statistics.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/syntax.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/Makefile +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/building1.txt +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/building1.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/building2.txt +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/building2.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/building3.txt +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/building3.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/concat.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/input.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/missing_dates.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/nan.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/building/yaml/pipe.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/check-index.sh +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/cli/compare.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/cli/copy.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/cli/create.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/cli/inspect.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/cli/introduction.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/cli/scan.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/conf.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/images.pptx +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/installing.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/overview.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/overview_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/schemas/matrix.excalidraw +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/schemas/matrix.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/schemas/overview.excalidraw +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/schemas/overview.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/schemas/recipe.excalidraw +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/schemas/recipe.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/area1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/area2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/chain_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/combine_example.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/concat1.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/cutout_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/drop_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/end_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/ensembles1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/fill_missing_gaps_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/frequency1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/frequency2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/grids1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/iterating_missing_dates1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/iterating_missing_dates2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/iterating_missing_dates3_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/join1.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/matching0_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/matching1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/matching2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/matching3_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/matching4_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/misc1.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/misc2.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/missing_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/missing_dates_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_cloud.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_combine1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_combine2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_complex.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_dict_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_first_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_list_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_name.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_other.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_path.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/open_yaml_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/rename_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/reorder1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/reorder2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/rescale_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/select1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/select2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/shuffle_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/some_attributes_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/start_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/statistics_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/subset_example.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/thinning_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/xy1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/xy2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/zip1_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/zip2_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/code/zip_xy_.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/combining.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/configuration.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/configuration.toml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/grids.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/area-1.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/concat.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/cutout-1.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/cutout-2.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/cutout-3.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/cutout-4.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/cutout-5.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/cutout-6.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/join.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/overlay.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/skip-missing.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/thinning-after.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/images/thinning-before.png +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/introduction.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/matching.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/methods.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/miscellaneous.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/missing.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/opening.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/other.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/selecting.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/statistics.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/subsetting.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/docs/using/zip.rst +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/pyproject.toml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/setup.cfg +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/__init__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/__main__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/__init__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/cleanup.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/compare.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/copy.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/create.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/finalise.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/init-additions.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/init.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/load-additions.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/load.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/patch.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/commands/scan.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/compute/__init__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/compute/recentre.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/chunks.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/config.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/__init__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/__init__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/empty.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/noop.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/pressure_level_relative_humidity_to_specific_humidity.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/pressure_level_specific_humidity_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/rotate_winds.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/single_level_dewpoint_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/single_level_relative_humidity_to_dewpoint.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/single_level_relative_humidity_to_specific_humidity.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/single_level_specific_humidity_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/speeddir_to_uv.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/unrotate_winds.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/filters/uv_to_speeddir.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/constants.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/empty.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/forcings.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/hindcasts.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/mars.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/netcdf.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/opendap.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/recentre.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/source.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/tendencies.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray_kerchunk.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/xarray_zarr.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/zenodo.py +0 -0
- {anemoi_datasets-0.5.0/src/anemoi/datasets/create → anemoi_datasets-0.5.6/src/anemoi/datasets/create/input}/trace.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/patch.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/persistent.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/size.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/statistics/summary.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/utils.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/writer.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/__init__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/concat.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/dataset.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/debug.css +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/debug.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/ensemble.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/forwards.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/grids.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/indexing.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/interpolate.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/join.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/masked.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/misc.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/missing.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/rescale.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/select.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/statistics.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/stores.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/subset.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/unchecked.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/data/xy.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/grids.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/utils/__init__.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi_datasets.egg-info/requires.txt +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/concat.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/data_sources.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/join.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/missing.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/nan.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/pipe.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/recentre.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/run.sh +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create/test_create.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create-perturbations-full.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/create-shift.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/test_chunks.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/test_data.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/test_dates.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/test_indexing.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/xarray/test_kerchunk.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/xarray/test_netcdf.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tests/xarray/test_opendap.py +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/.gitignore +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/examples/Makefile +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/grids/Makefile +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/grids/grids.ipynb +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/grids/grids1.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/grids/grids2.yaml +0 -0
- {anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/tools/upload-sample-dataset.py +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve. **❗ IMPORTANT:** If you have difficulties creating a dataset from any source, please provide us with a sample data file or a URL to the source data.
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
**Describe the bug**
|
|
10
|
+
A clear and concise description of what the bug is.
|
|
11
|
+
|
|
12
|
+
**To Reproduce**
|
|
13
|
+
Steps to reproduce the behavior:
|
|
14
|
+
1. Go to '...'
|
|
15
|
+
2. Click on '....'
|
|
16
|
+
3. Scroll down to '....'
|
|
17
|
+
4. See error
|
|
18
|
+
|
|
19
|
+
**URL to sample input data**
|
|
20
|
+
Provide a URL to a sample input data, or attach a file to that report if it is small enough.
|
|
21
|
+
|
|
22
|
+
**Expected behavior**
|
|
23
|
+
A clear and concise description of what you expected to happen.
|
|
24
|
+
|
|
25
|
+
**Screenshots**
|
|
26
|
+
If applicable, add screenshots to help explain your problem.
|
|
27
|
+
|
|
28
|
+
**Desktop (please complete the following information):**
|
|
29
|
+
- OS: [e.g. iOS]
|
|
30
|
+
- Browser [e.g. chrome, safari]
|
|
31
|
+
- Version [e.g. 22]
|
|
32
|
+
|
|
33
|
+
**Smartphone (please complete the following information):**
|
|
34
|
+
- Device: [e.g. iPhone6]
|
|
35
|
+
- OS: [e.g. iOS8.1]
|
|
36
|
+
- Browser [e.g. stock browser, safari]
|
|
37
|
+
- Version [e.g. 22]
|
|
38
|
+
|
|
39
|
+
**Additional context**
|
|
40
|
+
Add any other context about the problem here.
|
|
@@ -8,11 +8,37 @@ 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
|
-
## [Unreleased]
|
|
11
|
+
## [Unreleased](https://github.com/ecmwf/anemoi-datasets/compare/0.5.5...HEAD)
|
|
12
|
+
|
|
13
|
+
## [0.5.5](https://github.com/ecmwf/anemoi-datasets/compare/0.5.4...0.5.5) - 2024-10-04
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Allow for unknown coordinates when parsing CF input
|
|
18
|
+
|
|
19
|
+
## [Add support for (semi-)constant fields](https://github.com/ecmwf/anemoi-datasets/compare/0.5.1...0.5.2) - 2024-10-03
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Fix failing zarr lat/lon tests
|
|
24
|
+
|
|
25
|
+
## [Bug fixes](https://github.com/ecmwf/anemoi-datasets/compare/0.5.0...0.5.1) - 2024-10-01
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Adding the user recipe in the dataset PR #59.
|
|
30
|
+
- Add `repeated_dates` action in create.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- Bug fix in create/rename
|
|
35
|
+
|
|
36
|
+
## [0.5.0 - Incremental builds and Rescaling](https://github.com/ecmwf/anemoi-datasets/compare/0.4.5...0.5.0) - 2024-09-25
|
|
12
37
|
|
|
13
38
|
### Added
|
|
14
39
|
|
|
15
40
|
- New `rescale` keyword in `open_dataset` to change units of variables #36
|
|
41
|
+
- Add support for constant fields when creating datasets
|
|
16
42
|
- Simplify imports
|
|
17
43
|
|
|
18
44
|
### Changed
|
|
@@ -25,9 +51,10 @@ Keep it human-readable, your future self will thank you!
|
|
|
25
51
|
- add paths-ignore to ci workflow
|
|
26
52
|
|
|
27
53
|
### Removed
|
|
54
|
+
|
|
28
55
|
- pytest for notebooks
|
|
29
56
|
|
|
30
|
-
## [0.4.5]
|
|
57
|
+
## [0.4.5](https://github.com/ecmwf/anemoi-datasets/compare/0.4.4...0.4.5)
|
|
31
58
|
|
|
32
59
|
### Added
|
|
33
60
|
|
|
@@ -47,48 +74,48 @@ Keep it human-readable, your future self will thank you!
|
|
|
47
74
|
|
|
48
75
|
### Removed
|
|
49
76
|
|
|
50
|
-
## [0.4.4] Bug fixes
|
|
77
|
+
## [0.4.4](https://github.com/ecmwf/anemoi-datasets/compare/0.4.0...0.4.4) Bug fixes
|
|
51
78
|
|
|
52
79
|
- Bug fix in accumulations() that did not work with webmars
|
|
53
80
|
- Bug fix when using hindcasts input (missing dates on leap years)
|
|
54
81
|
|
|
55
|
-
## [0.4.0] Minor Release
|
|
82
|
+
## [0.4.0](https://github.com/ecmwf/anemoi-datasets/compare/0.3.0...0.4.0) Minor Release
|
|
56
83
|
|
|
57
84
|
### Added
|
|
85
|
+
|
|
58
86
|
- earthkit-data replaces climetlab
|
|
59
87
|
|
|
60
88
|
### Removed
|
|
89
|
+
|
|
61
90
|
- climetlab
|
|
62
91
|
|
|
63
|
-
## [0.3.0] Minor Release
|
|
92
|
+
## [0.3.0](https://github.com/ecmwf/anemoi-datasets/compare/0.2.0...0.3.0) Minor Release
|
|
64
93
|
|
|
65
94
|
### Added
|
|
95
|
+
|
|
66
96
|
- hindcast source
|
|
67
97
|
|
|
68
98
|
### Changed
|
|
99
|
+
|
|
69
100
|
- updated documentation
|
|
70
101
|
|
|
71
|
-
## [0.2.0] Minor Release
|
|
102
|
+
## [0.2.0](https://github.com/ecmwf/anemoi-datasets/compare/0.1.0...0.2.0) Minor Release
|
|
72
103
|
|
|
73
104
|
### Added
|
|
105
|
+
|
|
74
106
|
- statistics tendencies
|
|
75
107
|
|
|
76
108
|
### Removed
|
|
109
|
+
|
|
77
110
|
- CubesFilter
|
|
78
111
|
|
|
79
|
-
## [0.1.0] Initial Release
|
|
112
|
+
## [0.1.0](https://github.com/ecmwf/anemoi-models/releases/tag/0.1.0) Initial Release
|
|
80
113
|
|
|
81
114
|
### Added
|
|
115
|
+
|
|
82
116
|
- Documentation
|
|
83
117
|
- Initial code release for anemoi-datasets: create datasets for data-driven weather-models
|
|
84
118
|
- open datasets
|
|
85
119
|
- combine datasets
|
|
86
120
|
|
|
87
121
|
## Git Diffs:
|
|
88
|
-
[Unreleased]: https://github.com/ecmwf/anemoi-datasets/compare/0.4.5...HEAD
|
|
89
|
-
[0.4.5]: https://github.com/ecmwf/anemoi-datasets/compare/0.4.4...0.4.5
|
|
90
|
-
[0.4.4]: https://github.com/ecmwf/anemoi-datasets/compare/0.4.0...0.4.4
|
|
91
|
-
[0.4.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.3.0...0.4.0
|
|
92
|
-
[0.3.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.2.0...0.3.0
|
|
93
|
-
[0.2.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.1.0...0.2.0
|
|
94
|
-
[0.1.0]: https://github.com/ecmwf/anemoi-models/releases/tag/0.1.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.6
|
|
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
|
|
@@ -54,12 +54,12 @@ accumulation between step 1h and step 7h if it is the most appropriate
|
|
|
54
54
|
data available, while in the second case, the source will always return
|
|
55
55
|
the accumulation between step 0h and step 6h, if available.
|
|
56
56
|
|
|
57
|
-
.. literalinclude:: accumulations1.yaml
|
|
57
|
+
.. literalinclude:: yaml/accumulations1.yaml
|
|
58
58
|
:language: yaml
|
|
59
59
|
|
|
60
60
|
or:
|
|
61
61
|
|
|
62
|
-
.. literalinclude:: accumulations2.yaml
|
|
62
|
+
.. literalinclude:: yaml/accumulations2.yaml
|
|
63
63
|
:language: yaml
|
|
64
64
|
|
|
65
65
|
.. [1]
|
|
@@ -11,7 +11,7 @@ Because the source needs to generate fields on the same grids as the
|
|
|
11
11
|
other, it requires a template field. This is provided in the recipe with
|
|
12
12
|
the ``template`` keyword:
|
|
13
13
|
|
|
14
|
-
.. literalinclude:: forcings.yaml
|
|
14
|
+
.. literalinclude:: yaml/forcings.yaml
|
|
15
15
|
:language: yaml
|
|
16
16
|
|
|
17
17
|
.. _yaml-reference:
|
|
@@ -13,13 +13,13 @@ specification`_, with the exception of the ``date``, ``time``` and
|
|
|
13
13
|
The missing keys will be filled with the default values, as defined in
|
|
14
14
|
the MARS language specification.
|
|
15
15
|
|
|
16
|
-
.. literalinclude:: mars1.yaml
|
|
16
|
+
.. literalinclude:: yaml/mars1.yaml
|
|
17
17
|
:language: yaml
|
|
18
18
|
|
|
19
19
|
Data from several levels types must be requested in separate requests,
|
|
20
20
|
with the ``join`` command.
|
|
21
21
|
|
|
22
|
-
.. literalinclude:: mars2.yaml
|
|
22
|
+
.. literalinclude:: yaml/mars2.yaml
|
|
23
23
|
:language: yaml
|
|
24
24
|
|
|
25
25
|
See :ref:`naming-variables` for information on how to name the variables
|
|
@@ -19,7 +19,7 @@ formula:
|
|
|
19
19
|
|
|
20
20
|
Additionally, some variables must be non-negative to have a physical
|
|
21
21
|
meaning (e.g. accumulated variables or `specific humidity`). To ensure
|
|
22
|
-
this, positive clipping is performed using the alternative
|
|
22
|
+
this, positive clipping is performed using the alternative formula:
|
|
23
23
|
|
|
24
24
|
.. math::
|
|
25
25
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
################
|
|
2
|
+
repeated_dates
|
|
3
|
+
################
|
|
4
|
+
|
|
5
|
+
The `repeated_dates` source is used to repeat a single source multiple
|
|
6
|
+
times, so that its data is present at multiple dates. A simple example
|
|
7
|
+
of this is when you have source that contains a constant field, such as
|
|
8
|
+
orography or bathymetry, that you want to have repeated at all the dates
|
|
9
|
+
of the dataset.
|
|
10
|
+
|
|
11
|
+
The generale format of the `repeated_dates` source is:
|
|
12
|
+
|
|
13
|
+
.. literalinclude:: yaml/repeated_dates1.yaml
|
|
14
|
+
:language: yaml
|
|
15
|
+
|
|
16
|
+
where ``source`` is any of the :ref:`operations <operations>` or
|
|
17
|
+
:ref:`sources <sources>` described in the previous sections. The
|
|
18
|
+
``mode`` parameter can be one of the following:
|
|
19
|
+
|
|
20
|
+
**********
|
|
21
|
+
constant
|
|
22
|
+
**********
|
|
23
|
+
|
|
24
|
+
.. literalinclude:: yaml/repeated_dates2.yaml
|
|
25
|
+
:language: yaml
|
|
26
|
+
|
|
27
|
+
*************
|
|
28
|
+
climatology
|
|
29
|
+
*************
|
|
30
|
+
|
|
31
|
+
.. literalinclude:: yaml/repeated_dates3.yaml
|
|
32
|
+
:language: yaml
|
|
33
|
+
|
|
34
|
+
*********
|
|
35
|
+
closest
|
|
36
|
+
*********
|
|
37
|
+
|
|
38
|
+
.. literalinclude:: yaml/repeated_dates4.yaml
|
|
39
|
+
:language: yaml
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
This source uses Xarray_ internally to access the data, and assumes that
|
|
2
|
+
it follows the `CF conventions`_.
|
|
3
|
+
|
|
4
|
+
You specify any valid xarray.open_dataset_ arguments in the source.
|
|
5
|
+
|
|
6
|
+
.. literalinclude:: yaml/xarray-based.yaml
|
|
7
|
+
:language: yaml
|
|
8
|
+
|
|
9
|
+
.. _cf conventions: http://cfconventions.org/
|
|
10
|
+
|
|
11
|
+
.. _xarray: https://docs.xarray.dev/en/stable/index.html
|
|
12
|
+
|
|
13
|
+
.. _xarray.open_dataset: https://docs.xarray.dev/en/stable/generated/xarray.open_dataset.html
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
.. _index-page:
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Welcome to
|
|
5
|
-
|
|
3
|
+
#############################################
|
|
4
|
+
Welcome to `anemoi-datasets` documentation!
|
|
5
|
+
#############################################
|
|
6
6
|
|
|
7
7
|
.. warning::
|
|
8
8
|
|
|
@@ -311,7 +311,7 @@ class Version:
|
|
|
311
311
|
print(f"🕰️ Dataset initialized {when(start)}.")
|
|
312
312
|
if built and latest:
|
|
313
313
|
speed = (latest - start) / built
|
|
314
|
-
eta = datetime.datetime.
|
|
314
|
+
eta = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None) + speed * (total - built)
|
|
315
315
|
print(f"🏁 ETA {when(eta)}.")
|
|
316
316
|
else:
|
|
317
317
|
if latest:
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from . import Command
|
|
4
|
+
|
|
5
|
+
LOG = logging.getLogger(__name__)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Publish(Command):
|
|
9
|
+
"""Publish a dataset."""
|
|
10
|
+
|
|
11
|
+
# This is a command that is used to publish a dataset.
|
|
12
|
+
# it is a class, inheriting from Command.
|
|
13
|
+
|
|
14
|
+
internal = True
|
|
15
|
+
timestamp = True
|
|
16
|
+
|
|
17
|
+
def add_arguments(self, parser):
|
|
18
|
+
parser.add_argument("path", help="Path of the dataset to publish.")
|
|
19
|
+
|
|
20
|
+
def run(self, args):
|
|
21
|
+
try:
|
|
22
|
+
from anemoi.registry import publish_dataset
|
|
23
|
+
except ImportError:
|
|
24
|
+
LOG.error("anemoi-registry is not installed. Please install it to use this command.")
|
|
25
|
+
return
|
|
26
|
+
|
|
27
|
+
publish_dataset(args.path)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
command = Publish
|
|
@@ -14,6 +14,7 @@ import os
|
|
|
14
14
|
import time
|
|
15
15
|
import uuid
|
|
16
16
|
import warnings
|
|
17
|
+
from copy import deepcopy
|
|
17
18
|
from functools import cached_property
|
|
18
19
|
|
|
19
20
|
import numpy as np
|
|
@@ -24,9 +25,11 @@ from anemoi.utils.dates import frequency_to_string
|
|
|
24
25
|
from anemoi.utils.dates import frequency_to_timedelta
|
|
25
26
|
from anemoi.utils.humanize import compress_dates
|
|
26
27
|
from anemoi.utils.humanize import seconds_to_human
|
|
28
|
+
from earthkit.data.core.order import build_remapping
|
|
27
29
|
|
|
28
30
|
from anemoi.datasets import MissingDateError
|
|
29
31
|
from anemoi.datasets import open_dataset
|
|
32
|
+
from anemoi.datasets.create.input.trace import enable_trace
|
|
30
33
|
from anemoi.datasets.create.persistent import build_storage
|
|
31
34
|
from anemoi.datasets.data.misc import as_first_date
|
|
32
35
|
from anemoi.datasets.data.misc import as_last_date
|
|
@@ -308,7 +311,6 @@ class HasElementForDataMixin:
|
|
|
308
311
|
|
|
309
312
|
|
|
310
313
|
def build_input_(main_config, output_config):
|
|
311
|
-
from earthkit.data.core.order import build_remapping
|
|
312
314
|
|
|
313
315
|
builder = build_input(
|
|
314
316
|
main_config.input,
|
|
@@ -323,6 +325,43 @@ def build_input_(main_config, output_config):
|
|
|
323
325
|
return builder
|
|
324
326
|
|
|
325
327
|
|
|
328
|
+
def tidy_recipe(config: object):
|
|
329
|
+
"""Remove potentially private information in the config"""
|
|
330
|
+
config = deepcopy(config)
|
|
331
|
+
if isinstance(config, (tuple, list)):
|
|
332
|
+
return [tidy_recipe(_) for _ in config]
|
|
333
|
+
if isinstance(config, (dict, DotDict)):
|
|
334
|
+
for k, v in config.items():
|
|
335
|
+
if k.startswith("_"):
|
|
336
|
+
config[k] = "*** REMOVED FOR SECURITY ***"
|
|
337
|
+
else:
|
|
338
|
+
config[k] = tidy_recipe(v)
|
|
339
|
+
if isinstance(config, str):
|
|
340
|
+
if config.startswith("_"):
|
|
341
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
342
|
+
if config.startswith("s3://"):
|
|
343
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
344
|
+
if config.startswith("gs://"):
|
|
345
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
346
|
+
if config.startswith("http"):
|
|
347
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
348
|
+
if config.startswith("ftp"):
|
|
349
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
350
|
+
if config.startswith("file"):
|
|
351
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
352
|
+
if config.startswith("ssh"):
|
|
353
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
354
|
+
if config.startswith("scp"):
|
|
355
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
356
|
+
if config.startswith("rsync"):
|
|
357
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
358
|
+
if config.startswith("/"):
|
|
359
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
360
|
+
if "@" in config:
|
|
361
|
+
return "*** REMOVED FOR SECURITY ***"
|
|
362
|
+
return config
|
|
363
|
+
|
|
364
|
+
|
|
326
365
|
class Init(Actor, HasRegistryMixin, HasStatisticTempMixin, HasElementForDataMixin):
|
|
327
366
|
dataset_class = NewDataset
|
|
328
367
|
def __init__(self, path, config, check_name=False, overwrite=False, use_threads=False, statistics_temp_dir=None, progress=None, test=False, cache=None, **kwargs): # fmt: skip
|
|
@@ -409,6 +448,7 @@ class Init(Actor, HasRegistryMixin, HasStatisticTempMixin, HasElementForDataMixi
|
|
|
409
448
|
metadata.update(self.main_config.get("add_metadata", {}))
|
|
410
449
|
|
|
411
450
|
metadata["_create_yaml_config"] = self.main_config.get_serialisable_dict()
|
|
451
|
+
metadata["recipe"] = tidy_recipe(self.main_config.get_serialisable_dict())
|
|
412
452
|
|
|
413
453
|
metadata["description"] = self.main_config.description
|
|
414
454
|
metadata["licence"] = self.main_config["licence"]
|
|
@@ -524,7 +564,7 @@ class Load(Actor, HasRegistryMixin, HasStatisticTempMixin, HasElementForDataMixi
|
|
|
524
564
|
# assert isinstance(group[0], datetime.datetime), type(group[0])
|
|
525
565
|
LOG.debug(f"Building data for group {igroup}/{self.n_groups}")
|
|
526
566
|
|
|
527
|
-
result = self.input.select(
|
|
567
|
+
result = self.input.select(group_of_dates=group)
|
|
528
568
|
assert result.group_of_dates == group, (len(result.group_of_dates), len(group), group)
|
|
529
569
|
|
|
530
570
|
# There are several groups.
|
|
@@ -992,7 +1032,6 @@ def chain(tasks):
|
|
|
992
1032
|
|
|
993
1033
|
def creator_factory(name, trace=None, **kwargs):
|
|
994
1034
|
if trace:
|
|
995
|
-
from anemoi.datasets.create.trace import enable_trace
|
|
996
1035
|
|
|
997
1036
|
enable_trace(trace)
|
|
998
1037
|
|
|
@@ -140,9 +140,15 @@ class StatisticsValueError(ValueError):
|
|
|
140
140
|
|
|
141
141
|
def check_data_values(arr, *, name: str, log=[], allow_nans=False):
|
|
142
142
|
|
|
143
|
+
shape = arr.shape
|
|
144
|
+
|
|
143
145
|
if (isinstance(allow_nans, (set, list, tuple, dict)) and name in allow_nans) or allow_nans:
|
|
144
146
|
arr = arr[~np.isnan(arr)]
|
|
145
147
|
|
|
148
|
+
if arr.size == 0:
|
|
149
|
+
warnings.warn(f"Empty array for {name} ({shape})")
|
|
150
|
+
return
|
|
151
|
+
|
|
146
152
|
assert arr.size > 0, (name, *log)
|
|
147
153
|
|
|
148
154
|
min, max = arr.min(), arr.max()
|
|
@@ -32,7 +32,7 @@ class RenamedFieldMapping:
|
|
|
32
32
|
|
|
33
33
|
value = self.field.metadata(key, **kwargs)
|
|
34
34
|
if key == self.what:
|
|
35
|
-
return self.renaming.get(value, value)
|
|
35
|
+
return self.renaming.get(self.what, {}).get(value, value)
|
|
36
36
|
|
|
37
37
|
return value
|
|
38
38
|
|
|
@@ -68,8 +68,7 @@ class RenamedFieldFormat:
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
def execute(context, input, what="param", **kwargs):
|
|
71
|
-
|
|
72
|
-
if what in kwargs:
|
|
71
|
+
if what in kwargs and isinstance(kwargs[what], str):
|
|
73
72
|
return FieldArray([RenamedFieldFormat(fs, kwargs[what]) for fs in input])
|
|
74
73
|
|
|
75
74
|
return FieldArray([RenamedFieldMapping(fs, what, kwargs) for fs in input])
|
|
@@ -16,6 +16,10 @@ LOG = logging.getLogger(__name__)
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def _expand(paths):
|
|
19
|
+
|
|
20
|
+
if not isinstance(paths, list):
|
|
21
|
+
paths = [paths]
|
|
22
|
+
|
|
19
23
|
for path in paths:
|
|
20
24
|
if path.startswith("file://"):
|
|
21
25
|
path = path[7:]
|
|
@@ -40,8 +44,10 @@ def iterate_patterns(path, dates, **kwargs):
|
|
|
40
44
|
given_paths = path if isinstance(path, list) else [path]
|
|
41
45
|
|
|
42
46
|
dates = [d.isoformat() for d in dates]
|
|
47
|
+
if len(dates) > 0:
|
|
48
|
+
kwargs["date"] = dates
|
|
43
49
|
|
|
44
50
|
for path in given_paths:
|
|
45
|
-
paths = Pattern(path, ignore_missing_keys=True).substitute(
|
|
51
|
+
paths = Pattern(path, ignore_missing_keys=True).substitute(**kwargs)
|
|
46
52
|
for path in _expand(paths):
|
|
47
53
|
yield path, dates
|
|
@@ -375,6 +375,8 @@ def accumulations(context, dates, **request):
|
|
|
375
375
|
("od", "elda"): dict(base_times=(6, 18)),
|
|
376
376
|
("ea", "oper"): dict(data_accumulation_period=1, base_times=(6, 18)),
|
|
377
377
|
("ea", "enda"): dict(data_accumulation_period=3, base_times=(6, 18)),
|
|
378
|
+
("rr", "oper"): dict(data_accumulation_period=3, base_times=(0, 3, 6, 9, 12, 15, 18, 21)),
|
|
379
|
+
("l5", "oper"): dict(data_accumulation_period=1, base_times=(0,)),
|
|
378
380
|
}
|
|
379
381
|
|
|
380
382
|
kwargs = KWARGS.get((class_, stream), {})
|
{anemoi_datasets-0.5.0 → anemoi_datasets-0.5.6}/src/anemoi/datasets/create/functions/sources/grib.py
RENAMED
|
@@ -135,7 +135,7 @@ def execute(context, dates, path, latitudes=None, longitudes=None, *args, **kwar
|
|
|
135
135
|
s = s.sel(valid_datetime=dates, **kwargs)
|
|
136
136
|
ds = ds + s
|
|
137
137
|
|
|
138
|
-
if kwargs:
|
|
138
|
+
if kwargs and not context.partial_ok:
|
|
139
139
|
check(ds, given_paths, valid_datetime=dates, **kwargs)
|
|
140
140
|
|
|
141
141
|
if geography is not None:
|