anemoi-datasets 0.4.5__tar.gz → 0.5.0__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.0/.github/CODEOWNERS +6 -0
- anemoi_datasets-0.5.0/.github/ci-hpc-config.yml +18 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/workflows/changelog-pr-update.yml +3 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/workflows/changelog-release-update.yml +1 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/workflows/ci.yml +15 -2
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/workflows/python-publish.yml +2 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/workflows/python-pull-request.yml +1 -1
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.gitignore +1 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.pre-commit-config.yaml +12 -8
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/CHANGELOG.md +14 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/PKG-INFO +10 -19
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/incremental.rst +3 -3
- anemoi_datasets-0.5.0/docs/using/code/rescale_.py +30 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/selecting.rst +25 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/pyproject.toml +14 -20
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/_version.py +2 -2
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/create.py +3 -2
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/__init__.py +30 -32
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/config.py +4 -3
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/pressure_level_relative_humidity_to_specific_humidity.py +57 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/pressure_level_specific_humidity_to_relative_humidity.py +57 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/single_level_dewpoint_to_relative_humidity.py +54 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/single_level_relative_humidity_to_dewpoint.py +59 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/single_level_relative_humidity_to_specific_humidity.py +115 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/single_level_specific_humidity_to_relative_humidity.py +390 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/speeddir_to_uv.py +77 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/filters/uv_to_speeddir.py +55 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/sources/grib.py +144 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/sources/hindcasts.py +61 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/mars.py +9 -3
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/field.py +7 -1
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/metadata.py +13 -11
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/input.py +39 -17
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/persistent.py +1 -1
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/utils.py +3 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/dataset.py +11 -1
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/debug.py +5 -1
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/masked.py +2 -2
- anemoi_datasets-0.5.0/src/anemoi/datasets/data/rescale.py +147 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/stores.py +20 -7
- anemoi_datasets-0.5.0/src/anemoi/datasets/dates/__init__.py +242 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/dates/groups.py +84 -19
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/PKG-INFO +10 -19
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/SOURCES.txt +12 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/requires.txt +10 -19
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/test_create.py +7 -2
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/xarray/test_netcdf.py +2 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/xarray/test_opendap.py +2 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/xarray/test_zarr.py +26 -1
- anemoi_datasets-0.4.5/src/anemoi/datasets/create/functions/sources/grib.py +0 -59
- anemoi_datasets-0.4.5/src/anemoi/datasets/create/functions/sources/hindcasts.py +0 -120
- anemoi_datasets-0.4.5/src/anemoi/datasets/dates/__init__.py +0 -160
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.gitattributes +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/ci-config.yml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/workflows/label-public-pr.yml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.readthedocs.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/.vscode/spellright.dict +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/LICENSE +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/README.md +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/Makefile +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/_static/logo.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/_static/style.css +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/_templates/.gitkeep +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/apply-fmt.sh +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/advanced-options.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/filters/empty.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/filters/noop.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/filters/rename.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/filters/rotate_winds.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/filters/select.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/filters/unrotate_winds.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/filters.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/handling-missing-dates.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/handling-missing-values.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/introduction.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/naming-variables.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/operations.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/accumulations.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/accumulations1.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/accumulations2.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/forcings.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/forcings.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/grib.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/hindcasts.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/hindcasts.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/mars.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/mars1.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/mars2.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/netcdf.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/netcdf.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/opendap.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/opendap.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/recentre.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-kerchunk.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-kerchunk.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-kerchunk.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-zarr.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-zarr.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib1.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib2.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib3.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib4.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/recentre.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/zenodo.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources/zenodo.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/sources.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/statistics.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/syntax.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/Makefile +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/building1.txt +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/building1.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/building2.txt +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/building2.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/building3.txt +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/building3.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/concat.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/input.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/missing_dates.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/nan.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/building/yaml/pipe.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/check-index.sh +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/cli/compare.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/cli/copy.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/cli/create.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/cli/inspect.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/cli/introduction.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/cli/scan.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/conf.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/images.pptx +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/index.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/installing.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/overview.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/overview_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/schemas/matrix.excalidraw +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/schemas/matrix.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/schemas/overview.excalidraw +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/schemas/overview.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/schemas/recipe.excalidraw +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/schemas/recipe.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/area1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/area2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/chain_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/combine_example.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/concat1.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/cutout_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/drop_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/end_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/ensembles1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/fill_missing_gaps_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/frequency1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/frequency2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/grids1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/iterating_missing_dates1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/iterating_missing_dates2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/iterating_missing_dates3_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/join1.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/matching0_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/matching1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/matching2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/matching3_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/matching4_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/misc1.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/misc2.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/missing_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/missing_dates_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_cloud.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_combine1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_combine2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_complex.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_dict_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_first_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_list_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_name.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_other.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_path.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/open_yaml_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/rename_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/reorder1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/reorder2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/select1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/select2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/shuffle_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/some_attributes_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/start_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/statistics_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/subset_example.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/thinning_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/xy1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/xy2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/zip1_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/zip2_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/code/zip_xy_.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/combining.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/configuration.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/configuration.toml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/grids.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/area-1.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/concat.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/cutout-1.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/cutout-2.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/cutout-3.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/cutout-4.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/cutout-5.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/cutout-6.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/join.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/overlay.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/skip-missing.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/thinning-after.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/images/thinning-before.png +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/introduction.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/matching.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/methods.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/miscellaneous.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/missing.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/opening.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/other.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/statistics.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/subsetting.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/docs/using/zip.rst +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/setup.cfg +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/__main__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/cleanup.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/compare.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/copy.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/finalise.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/init-additions.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/init.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/inspect.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/load-additions.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/load.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/patch.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/scan.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/compute/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/compute/recentre.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/check.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/chunks.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/empty.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/noop.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/rename.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/rotate_winds.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/unrotate_winds.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/accumulations.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/constants.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/empty.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/forcings.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/netcdf.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/opendap.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/recentre.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/source.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/tendencies.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/coordinates.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/fieldlist.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/flavour.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/grid.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/time.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/variable.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray_kerchunk.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray_zarr.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/zenodo.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/patch.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/size.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/statistics/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/statistics/summary.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/template.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/trace.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/writer.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/zarr.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/concat.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/debug.css +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/ensemble.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/forwards.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/grids.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/indexing.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/interpolate.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/join.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/misc.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/missing.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/select.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/statistics.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/subset.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/unchecked.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/xy.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/grids.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi/datasets/utils/__init__.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/concat.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/data_sources.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/join.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/missing.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/nan.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/pipe.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/recentre.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create/run.sh +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create-perturbations-full.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/create-shift.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/test_chunks.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/test_data.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/test_dates.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/test_indexing.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tests/xarray/test_kerchunk.py +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/.gitignore +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/examples/Makefile +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/grids/Makefile +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/grids/grids.ipynb +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/grids/grids1.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/grids/grids2.yaml +0 -0
- {anemoi_datasets-0.4.5 → anemoi_datasets-0.5.0}/tools/upload-sample-dataset.py +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# CODEOWNERS file
|
|
2
|
+
|
|
3
|
+
# Protect workflow files
|
|
4
|
+
/.github/ @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb
|
|
5
|
+
/.pre-commit-config.yaml @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb
|
|
6
|
+
/pyproject.toml @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
build:
|
|
2
|
+
python: '3.10'
|
|
3
|
+
modules:
|
|
4
|
+
- ninja
|
|
5
|
+
dependencies:
|
|
6
|
+
- ecmwf/ecbuild@develop
|
|
7
|
+
- ecmwf/eccodes@develop
|
|
8
|
+
- ecmwf/eckit@develop
|
|
9
|
+
- ecmwf/odc@develop
|
|
10
|
+
python_dependencies:
|
|
11
|
+
- ecmwf/anemoi-utils@develop
|
|
12
|
+
- ecmwf/earthkit-data@develop
|
|
13
|
+
- ecmwf/earthkit-meteo@develop
|
|
14
|
+
- ecmwf/earthkit-geo@develop
|
|
15
|
+
parallel: 64
|
|
16
|
+
|
|
17
|
+
pytest_cmd: |
|
|
18
|
+
python -m pytest -vv -m 'not notebook and not no_cache_init' --cov=. --cov-report=xml
|
|
@@ -8,9 +8,17 @@ on:
|
|
|
8
8
|
- 'develop'
|
|
9
9
|
tags-ignore:
|
|
10
10
|
- '**'
|
|
11
|
+
paths-ignore:
|
|
12
|
+
- "docs/**"
|
|
13
|
+
- "CHANGELOG.md"
|
|
14
|
+
- "README.md"
|
|
11
15
|
|
|
12
16
|
# Trigger the workflow on pull request
|
|
13
|
-
pull_request:
|
|
17
|
+
pull_request:
|
|
18
|
+
paths-ignore:
|
|
19
|
+
- "docs/**"
|
|
20
|
+
- "CHANGELOG.md"
|
|
21
|
+
- "README.md"
|
|
14
22
|
|
|
15
23
|
# Trigger the workflow manually
|
|
16
24
|
workflow_dispatch: ~
|
|
@@ -18,6 +26,11 @@ on:
|
|
|
18
26
|
# Trigger after public PR approved for CI
|
|
19
27
|
pull_request_target:
|
|
20
28
|
types: [labeled]
|
|
29
|
+
paths-ignore:
|
|
30
|
+
- "docs/**"
|
|
31
|
+
- "CHANGELOG.md"
|
|
32
|
+
- "README.md"
|
|
33
|
+
|
|
21
34
|
|
|
22
35
|
jobs:
|
|
23
36
|
# Run CI including downstream packages on self-hosted runners
|
|
@@ -34,7 +47,7 @@ jobs:
|
|
|
34
47
|
downstream-ci-hpc:
|
|
35
48
|
name: downstream-ci-hpc
|
|
36
49
|
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
|
|
37
|
-
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main
|
|
50
|
+
uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci-hpc.yml@main
|
|
38
51
|
with:
|
|
39
52
|
anemoi-datasets: ecmwf/anemoi-datasets@${{ github.event.pull_request.head.sha || github.sha }}
|
|
40
53
|
secrets: inherit
|
|
@@ -20,6 +20,12 @@ repos:
|
|
|
20
20
|
- id: no-commit-to-branch # Prevent committing to main / master
|
|
21
21
|
- id: check-added-large-files # Check for large files added to git
|
|
22
22
|
- id: check-merge-conflict # Check for files that contain merge conflict
|
|
23
|
+
- repo: https://github.com/pre-commit/pygrep-hooks
|
|
24
|
+
rev: v1.10.0 # Use the ref you want to point at
|
|
25
|
+
hooks:
|
|
26
|
+
- id: python-use-type-annotations # Check for missing type annotations
|
|
27
|
+
- id: python-check-blanket-noqa # Check for # noqa: all
|
|
28
|
+
- id: python-no-log-warn # Check for log.warn
|
|
23
29
|
- repo: https://github.com/psf/black-pre-commit-mirror
|
|
24
30
|
rev: 24.8.0
|
|
25
31
|
hooks:
|
|
@@ -37,15 +43,15 @@ repos:
|
|
|
37
43
|
rev: v0.6.4
|
|
38
44
|
hooks:
|
|
39
45
|
- id: ruff
|
|
40
|
-
# Next line
|
|
41
|
-
exclude: '
|
|
46
|
+
# Next line if for documenation cod snippets
|
|
47
|
+
exclude: '^[^_].*_\.py$'
|
|
42
48
|
args:
|
|
43
49
|
- --line-length=120
|
|
44
50
|
- --fix
|
|
45
51
|
- --exit-non-zero-on-fix
|
|
46
52
|
- --preview
|
|
47
53
|
- repo: https://github.com/sphinx-contrib/sphinx-lint
|
|
48
|
-
rev:
|
|
54
|
+
rev: v1.0.0
|
|
49
55
|
hooks:
|
|
50
56
|
- id: sphinx-lint
|
|
51
57
|
# For now, we use it. But it does not support a lot of sphinx features
|
|
@@ -59,12 +65,10 @@ repos:
|
|
|
59
65
|
hooks:
|
|
60
66
|
- id: docconvert
|
|
61
67
|
args: ["numpy"]
|
|
62
|
-
- repo: https://github.com/b8raoult/optional-dependencies-all
|
|
63
|
-
rev: "0.0.6"
|
|
64
|
-
hooks:
|
|
65
|
-
- id: optional-dependencies-all
|
|
66
|
-
args: ["--inplace", "--exclude-keys=dev,docs,tests", "--group=dev=all,docs,tests"]
|
|
67
68
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
68
69
|
rev: "2.2.3"
|
|
69
70
|
hooks:
|
|
70
71
|
- id: pyproject-fmt
|
|
72
|
+
|
|
73
|
+
ci:
|
|
74
|
+
autoupdate_schedule: monthly
|
|
@@ -11,11 +11,21 @@ Keep it human-readable, your future self will thank you!
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
13
|
### Added
|
|
14
|
+
|
|
15
|
+
- New `rescale` keyword in `open_dataset` to change units of variables #36
|
|
16
|
+
- Simplify imports
|
|
17
|
+
|
|
14
18
|
### Changed
|
|
15
19
|
|
|
16
20
|
- Added incremental building of datasets
|
|
21
|
+
- Add missing dependency for documentation building
|
|
22
|
+
- Fix failing test due to previous merge
|
|
23
|
+
- Bug fix when creating dataset from zarr
|
|
24
|
+
- Bug fix with area selection in cutout operation
|
|
25
|
+
- add paths-ignore to ci workflow
|
|
17
26
|
|
|
18
27
|
### Removed
|
|
28
|
+
- pytest for notebooks
|
|
19
29
|
|
|
20
30
|
## [0.4.5]
|
|
21
31
|
|
|
@@ -25,6 +35,7 @@ Keep it human-readable, your future self will thank you!
|
|
|
25
35
|
- CI workflow to update the changelog on release
|
|
26
36
|
- adds the reusable cd pypi workflow
|
|
27
37
|
- merge strategy for changelog in .gitattributes #25
|
|
38
|
+
- adds ci hpc config (#43)
|
|
28
39
|
|
|
29
40
|
### Changed
|
|
30
41
|
|
|
@@ -74,6 +85,9 @@ Keep it human-readable, your future self will thank you!
|
|
|
74
85
|
- combine datasets
|
|
75
86
|
|
|
76
87
|
## 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
|
|
77
91
|
[0.4.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.3.0...0.4.0
|
|
78
92
|
[0.3.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.2.0...0.3.0
|
|
79
93
|
[0.2.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.1.0...0.2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
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
|
|
@@ -224,38 +224,36 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
|
224
224
|
Requires-Python: >=3.9
|
|
225
225
|
License-File: LICENSE
|
|
226
226
|
Requires-Dist: anemoi-utils[provenance]>=0.3.15
|
|
227
|
+
Requires-Dist: cfunits
|
|
227
228
|
Requires-Dist: numpy
|
|
228
229
|
Requires-Dist: pyyaml
|
|
229
230
|
Requires-Dist: semantic-version
|
|
230
231
|
Requires-Dist: tqdm
|
|
231
|
-
Requires-Dist: zarr
|
|
232
|
+
Requires-Dist: zarr<=2.17
|
|
232
233
|
Provides-Extra: all
|
|
233
|
-
Requires-Dist: aiohttp; extra == "all"
|
|
234
234
|
Requires-Dist: boto3; extra == "all"
|
|
235
235
|
Requires-Dist: earthkit-data[mars]>=0.9; extra == "all"
|
|
236
236
|
Requires-Dist: earthkit-geo>=0.2; extra == "all"
|
|
237
237
|
Requires-Dist: earthkit-meteo; extra == "all"
|
|
238
|
-
Requires-Dist:
|
|
238
|
+
Requires-Dist: ecmwflibs>=0.6.3; extra == "all"
|
|
239
239
|
Requires-Dist: entrypoints; extra == "all"
|
|
240
240
|
Requires-Dist: gcsfs; extra == "all"
|
|
241
241
|
Requires-Dist: kerchunk; extra == "all"
|
|
242
242
|
Requires-Dist: pyproj; extra == "all"
|
|
243
243
|
Requires-Dist: requests; extra == "all"
|
|
244
|
-
Requires-Dist: s3fs; extra == "all"
|
|
245
244
|
Provides-Extra: create
|
|
246
245
|
Requires-Dist: earthkit-data[mars]>=0.9; extra == "create"
|
|
247
246
|
Requires-Dist: earthkit-geo>=0.2; extra == "create"
|
|
248
247
|
Requires-Dist: earthkit-meteo; extra == "create"
|
|
249
|
-
Requires-Dist:
|
|
248
|
+
Requires-Dist: ecmwflibs>=0.6.3; extra == "create"
|
|
250
249
|
Requires-Dist: entrypoints; extra == "create"
|
|
251
250
|
Requires-Dist: pyproj; extra == "create"
|
|
252
251
|
Provides-Extra: dev
|
|
253
|
-
Requires-Dist: aiohttp; extra == "dev"
|
|
254
252
|
Requires-Dist: boto3; extra == "dev"
|
|
255
253
|
Requires-Dist: earthkit-data[mars]>=0.9; extra == "dev"
|
|
256
254
|
Requires-Dist: earthkit-geo>=0.2; extra == "dev"
|
|
257
255
|
Requires-Dist: earthkit-meteo; extra == "dev"
|
|
258
|
-
Requires-Dist:
|
|
256
|
+
Requires-Dist: ecmwflibs>=0.6.3; extra == "dev"
|
|
259
257
|
Requires-Dist: entrypoints; extra == "dev"
|
|
260
258
|
Requires-Dist: gcsfs; extra == "dev"
|
|
261
259
|
Requires-Dist: kerchunk; extra == "dev"
|
|
@@ -264,26 +262,19 @@ Requires-Dist: pandoc; extra == "dev"
|
|
|
264
262
|
Requires-Dist: pyproj; extra == "dev"
|
|
265
263
|
Requires-Dist: pytest; extra == "dev"
|
|
266
264
|
Requires-Dist: requests; extra == "dev"
|
|
267
|
-
Requires-Dist: rstfmt; extra == "dev"
|
|
268
|
-
Requires-Dist: s3fs; extra == "dev"
|
|
269
265
|
Requires-Dist: sphinx; extra == "dev"
|
|
270
|
-
Requires-Dist: sphinx-argparse<0.5; extra == "dev"
|
|
271
266
|
Requires-Dist: sphinx-rtd-theme; extra == "dev"
|
|
272
267
|
Provides-Extra: docs
|
|
273
268
|
Requires-Dist: nbsphinx; extra == "docs"
|
|
274
269
|
Requires-Dist: pandoc; extra == "docs"
|
|
275
|
-
Requires-Dist: rstfmt; extra == "docs"
|
|
276
270
|
Requires-Dist: sphinx; extra == "docs"
|
|
277
|
-
Requires-Dist: sphinx-argparse
|
|
271
|
+
Requires-Dist: sphinx-argparse; extra == "docs"
|
|
278
272
|
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
279
|
-
Provides-Extra: kerchunk
|
|
280
|
-
Requires-Dist: gcsfs; extra == "kerchunk"
|
|
281
|
-
Requires-Dist: kerchunk; extra == "kerchunk"
|
|
282
|
-
Requires-Dist: s3fs; extra == "kerchunk"
|
|
283
273
|
Provides-Extra: remote
|
|
284
|
-
Requires-Dist: aiohttp; extra == "remote"
|
|
285
274
|
Requires-Dist: boto3; extra == "remote"
|
|
286
275
|
Requires-Dist: requests; extra == "remote"
|
|
287
|
-
Requires-Dist: s3fs; extra == "remote"
|
|
288
276
|
Provides-Extra: tests
|
|
289
277
|
Requires-Dist: pytest; extra == "tests"
|
|
278
|
+
Provides-Extra: xarray
|
|
279
|
+
Requires-Dist: gcsfs; extra == "xarray"
|
|
280
|
+
Requires-Dist: kerchunk; extra == "xarray"
|
|
@@ -86,8 +86,8 @@ To add statistics for 6h increments:
|
|
|
86
86
|
|
|
87
87
|
.. code:: bash
|
|
88
88
|
|
|
89
|
-
anemoi-datasets init-additions dataset.zarr --delta 6h
|
|
90
|
-
anemoi-datasets load-additions dataset.zarr --part 1/2 --delta 6h
|
|
89
|
+
anemoi-datasets init-additions dataset.zarr --delta 6h
|
|
90
|
+
anemoi-datasets load-additions dataset.zarr --part 1/2 --delta 6h
|
|
91
91
|
anemoi-datasets load-additions dataset.zarr --part 2/2 --delta 6h
|
|
92
92
|
anemoi-datasets finalise-additions dataset.zarr --delta 6h
|
|
93
93
|
|
|
@@ -96,7 +96,7 @@ To add statistics for 12h increments:
|
|
|
96
96
|
.. code:: bash
|
|
97
97
|
|
|
98
98
|
anemoi-datasets init-additions dataset.zarr --delta 12h
|
|
99
|
-
anemoi-datasets load-additions dataset.zarr --part 1/2 --delta 12h
|
|
99
|
+
anemoi-datasets load-additions dataset.zarr --part 1/2 --delta 12h
|
|
100
100
|
anemoi-datasets load-additions dataset.zarr --part 2/2 --delta 12h
|
|
101
101
|
anemoi-datasets finalise-additions dataset.zarr --delta 12h
|
|
102
102
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Scale and offset can be passed as a dictionnary...
|
|
2
|
+
|
|
3
|
+
ds = open_dataset(
|
|
4
|
+
dataset,
|
|
5
|
+
rescale={"2t": {"scale": 1.0, "offset": -273.15}},
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
# ... a tuple of floating points ....
|
|
9
|
+
|
|
10
|
+
ds = open_dataset(
|
|
11
|
+
dataset,
|
|
12
|
+
rescale={"2t": (1.0, -273.15)},
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
# ... or a tuple of strings representing units.
|
|
16
|
+
|
|
17
|
+
ds = open_dataset(
|
|
18
|
+
dataset,
|
|
19
|
+
rescale={"2t": ("K", "degC")},
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
# Several variables can be rescaled at once.
|
|
23
|
+
|
|
24
|
+
ds = open_dataset(
|
|
25
|
+
dataset,
|
|
26
|
+
rescale={
|
|
27
|
+
"2t": ("K", "degC"),
|
|
28
|
+
"tp": ("m", "mm"),
|
|
29
|
+
},
|
|
30
|
+
)
|
|
@@ -66,3 +66,28 @@ You can also rename variables:
|
|
|
66
66
|
|
|
67
67
|
This will be useful when you join datasets and do not want variables
|
|
68
68
|
from one dataset to override the ones from the other.
|
|
69
|
+
|
|
70
|
+
*********
|
|
71
|
+
rescale
|
|
72
|
+
*********
|
|
73
|
+
|
|
74
|
+
When combining datasets, you may want to rescale the variables so that
|
|
75
|
+
their have matching units. This can be done with the `rescale` option:
|
|
76
|
+
|
|
77
|
+
.. literalinclude:: code/rescale_.py
|
|
78
|
+
:language: python
|
|
79
|
+
|
|
80
|
+
The `rescale` option will also rescale the statistics. The rescaling is
|
|
81
|
+
currently limited to simple linear conversions.
|
|
82
|
+
|
|
83
|
+
When provided with units, the `rescale` option uses the cfunits_ package
|
|
84
|
+
find the `scale` and `offset` attributes of the units and uses these to
|
|
85
|
+
rescale the data.
|
|
86
|
+
|
|
87
|
+
.. warning::
|
|
88
|
+
|
|
89
|
+
When providing units, the library assumes that the mapping between
|
|
90
|
+
them is a linear transformation. No check is does to ensure this is
|
|
91
|
+
the case.
|
|
92
|
+
|
|
93
|
+
.. _cfunits: https://github.com/NCAS-CMS/cfunits
|
|
@@ -51,44 +51,42 @@ dynamic = [
|
|
|
51
51
|
]
|
|
52
52
|
dependencies = [
|
|
53
53
|
"anemoi-utils[provenance]>=0.3.15",
|
|
54
|
+
"cfunits",
|
|
54
55
|
"numpy",
|
|
55
56
|
"pyyaml",
|
|
56
57
|
"semantic-version",
|
|
57
58
|
"tqdm",
|
|
58
|
-
"zarr",
|
|
59
|
+
"zarr<=2.17",
|
|
59
60
|
]
|
|
60
61
|
|
|
61
62
|
optional-dependencies.all = [
|
|
62
|
-
"aiohttp",
|
|
63
63
|
"boto3",
|
|
64
64
|
"earthkit-data[mars]>=0.9",
|
|
65
65
|
"earthkit-geo>=0.2",
|
|
66
66
|
"earthkit-meteo",
|
|
67
|
-
"
|
|
67
|
+
"ecmwflibs>=0.6.3",
|
|
68
68
|
"entrypoints",
|
|
69
69
|
"gcsfs",
|
|
70
70
|
"kerchunk",
|
|
71
71
|
"pyproj",
|
|
72
72
|
"requests",
|
|
73
|
-
"s3fs",
|
|
74
73
|
]
|
|
75
74
|
|
|
76
75
|
optional-dependencies.create = [
|
|
77
76
|
"earthkit-data[mars]>=0.9",
|
|
78
77
|
"earthkit-geo>=0.2",
|
|
79
78
|
"earthkit-meteo",
|
|
80
|
-
"
|
|
79
|
+
"ecmwflibs>=0.6.3",
|
|
81
80
|
"entrypoints",
|
|
82
81
|
"pyproj",
|
|
83
82
|
]
|
|
84
83
|
|
|
85
84
|
optional-dependencies.dev = [
|
|
86
|
-
"aiohttp",
|
|
87
85
|
"boto3",
|
|
88
86
|
"earthkit-data[mars]>=0.9",
|
|
89
87
|
"earthkit-geo>=0.2",
|
|
90
88
|
"earthkit-meteo",
|
|
91
|
-
"
|
|
89
|
+
"ecmwflibs>=0.6.3",
|
|
92
90
|
"entrypoints",
|
|
93
91
|
"gcsfs",
|
|
94
92
|
"kerchunk",
|
|
@@ -97,39 +95,32 @@ optional-dependencies.dev = [
|
|
|
97
95
|
"pyproj",
|
|
98
96
|
"pytest",
|
|
99
97
|
"requests",
|
|
100
|
-
"rstfmt",
|
|
101
|
-
"s3fs",
|
|
102
98
|
"sphinx",
|
|
103
|
-
"sphinx-argparse<0.5",
|
|
104
99
|
"sphinx-rtd-theme",
|
|
105
100
|
]
|
|
106
101
|
|
|
107
102
|
optional-dependencies.docs = [
|
|
108
103
|
"nbsphinx",
|
|
109
104
|
"pandoc",
|
|
110
|
-
"rstfmt",
|
|
111
105
|
"sphinx",
|
|
112
|
-
"sphinx-argparse
|
|
106
|
+
"sphinx-argparse",
|
|
113
107
|
"sphinx-rtd-theme",
|
|
114
108
|
]
|
|
115
109
|
|
|
116
|
-
optional-dependencies.kerchunk = [
|
|
117
|
-
"gcsfs",
|
|
118
|
-
"kerchunk",
|
|
119
|
-
"s3fs",
|
|
120
|
-
]
|
|
121
|
-
|
|
122
110
|
optional-dependencies.remote = [
|
|
123
|
-
"aiohttp",
|
|
124
111
|
"boto3",
|
|
125
112
|
"requests",
|
|
126
|
-
"s3fs",
|
|
127
113
|
]
|
|
128
114
|
|
|
129
115
|
optional-dependencies.tests = [
|
|
130
116
|
"pytest",
|
|
131
117
|
]
|
|
132
118
|
|
|
119
|
+
optional-dependencies.xarray = [
|
|
120
|
+
"gcsfs",
|
|
121
|
+
"kerchunk",
|
|
122
|
+
]
|
|
123
|
+
|
|
133
124
|
urls.Documentation = "https://anemoi-datasets.readthedocs.io/"
|
|
134
125
|
urls.Homepage = "https://github.com/ecmwf/anemoi-datasets/"
|
|
135
126
|
urls.Issues = "https://github.com/ecmwf/anemoi-datasets/issues"
|
|
@@ -145,3 +136,6 @@ scripts.anemoi-datasets = "anemoi.datasets.__main__:main"
|
|
|
145
136
|
|
|
146
137
|
[tool.setuptools_scm]
|
|
147
138
|
version_file = "src/anemoi/datasets/_version.py"
|
|
139
|
+
|
|
140
|
+
[tool.isort]
|
|
141
|
+
profile = "black"
|
|
@@ -19,7 +19,7 @@ def task(what, options, *args, **kwargs):
|
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
21
|
now = datetime.datetime.now()
|
|
22
|
-
LOG.info(f"Task {what}({args},{kwargs}) starting")
|
|
22
|
+
LOG.info(f"🎬 Task {what}({args},{kwargs}) starting")
|
|
23
23
|
|
|
24
24
|
from anemoi.datasets.create import creator_factory
|
|
25
25
|
|
|
@@ -28,7 +28,7 @@ def task(what, options, *args, **kwargs):
|
|
|
28
28
|
c = creator_factory(what.replace("-", "_"), **options)
|
|
29
29
|
result = c.run()
|
|
30
30
|
|
|
31
|
-
LOG.
|
|
31
|
+
LOG.info(f"🏁 Task {what}({args},{kwargs}) completed ({datetime.datetime.now()-now})")
|
|
32
32
|
return result
|
|
33
33
|
|
|
34
34
|
|
|
@@ -57,6 +57,7 @@ class Create(Command):
|
|
|
57
57
|
command_parser.add_argument("--trace", action="store_true")
|
|
58
58
|
|
|
59
59
|
def run(self, args):
|
|
60
|
+
|
|
60
61
|
now = time.time()
|
|
61
62
|
if args.threads + args.processes:
|
|
62
63
|
self.parallel_create(args)
|