anemoi-datasets 0.5.25__tar.gz → 0.5.27__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.25 → anemoi_datasets-0.5.27}/.github/pull_request_template.md +2 -0
- anemoi_datasets-0.5.27/.github/workflows/pr-label-ats.yml +66 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/python-pull-request.yml +1 -1
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.pre-commit-config.yaml +3 -3
- anemoi_datasets-0.5.27/.release-please-manifest.json +3 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/CHANGELOG.md +57 -0
- {anemoi_datasets-0.5.25/src/anemoi_datasets.egg-info → anemoi_datasets-0.5.27}/PKG-INFO +5 -4
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/introduction.rst +1 -0
- anemoi_datasets-0.5.27/docs/cli/validate.rst +45 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/conf.py +2 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/anemoi-dataset.rst +6 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/xarray-zarr.rst +6 -0
- anemoi_datasets-0.5.27/docs/datasets/building/sources/yaml/anemoi-zarr-dataset.yaml +3 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/combining.rst +3 -1
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/02-cf-data.rst +9 -0
- anemoi_datasets-0.5.27/docs/howtos/create/04-create-with-filter.rst +117 -0
- anemoi_datasets-0.5.27/docs/howtos/create/yaml/recipe-filter1.yaml +31 -0
- anemoi_datasets-0.5.27/docs/howtos/create/yaml/recipe-filter2.yaml +35 -0
- anemoi_datasets-0.5.27/docs/howtos/create/yaml/zarr2.yaml +8 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/introduction.rst +1 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/code/cutout-complement1.py +1 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/yaml/cutout-complement1.yaml +1 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/index.rst +1 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/pyproject.toml +12 -3
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/__init__.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/_version.py +16 -3
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/check.py +1 -1
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/copy.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/create.py +1 -1
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/grib-index.py +1 -1
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/inspect.py +27 -35
- anemoi_datasets-0.5.27/src/anemoi/datasets/commands/validate.py +59 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/compute/recentre.py +3 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/__init__.py +22 -25
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/check.py +10 -12
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/chunks.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/config.py +3 -6
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/transform.py → anemoi_datasets-0.5.27/src/anemoi/datasets/create/filter.py +3 -7
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/__init__.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/action.py +3 -5
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/concat.py +5 -8
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/context.py +3 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/data_sources.py +5 -8
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/empty.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/filter.py +2 -3
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/function.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/join.py +4 -5
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/misc.py +4 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/repeated_dates.py +13 -18
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/result.py +29 -33
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/step.py +6 -24
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/template.py +3 -4
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/trace.py +1 -1
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/patch.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/persistent.py +3 -5
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/size.py +1 -3
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/accumulations.py +47 -52
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/accumulations2.py +4 -8
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/constants.py +1 -3
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/empty.py +1 -2
- anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/fdb.py +133 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/forcings.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/grib.py +6 -10
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/grib_index.py +13 -15
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/hindcasts.py +2 -5
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/legacy.py +1 -1
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/mars.py +17 -21
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/netcdf.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/opendap.py +1 -3
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/patterns.py +4 -6
- anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/planetary_computer.py +44 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/recentre.py +8 -11
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/source.py +3 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/tendencies.py +2 -5
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray.py +4 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/__init__.py +15 -32
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/coordinates.py +16 -12
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/field.py +17 -16
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/fieldlist.py +11 -15
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/flavour.py +83 -45
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/grid.py +15 -9
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/metadata.py +19 -128
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/patch.py +47 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/time.py +10 -13
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/variable.py +27 -23
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_zarr.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/zenodo.py +3 -5
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/statistics/__init__.py +3 -6
- anemoi_datasets-0.5.27/src/anemoi/datasets/create/testing.py +4 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/typing.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/utils.py +1 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/zarr.py +7 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/__init__.py +15 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/complement.py +52 -23
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/concat.py +5 -8
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/dataset.py +42 -47
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/debug.py +7 -9
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/ensemble.py +4 -6
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/fill_missing.py +7 -10
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/forwards.py +30 -28
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/grids.py +12 -16
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/indexing.py +9 -12
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/interpolate.py +7 -15
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/join.py +8 -12
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/masked.py +6 -11
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/merge.py +5 -9
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/misc.py +41 -45
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/missing.py +11 -16
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/observations/__init__.py +8 -14
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/padded.py +3 -5
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/records/backends/__init__.py +2 -2
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/rescale.py +5 -12
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/select.py +13 -16
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/statistics.py +4 -7
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/stores.py +23 -77
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/subset.py +8 -11
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/unchecked.py +7 -11
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/xy.py +25 -21
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/dates/__init__.py +13 -18
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/dates/groups.py +7 -10
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/grids.py +11 -12
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/testing.py +93 -7
- anemoi_datasets-0.5.27/src/anemoi/datasets/validate.py +598 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27/src/anemoi_datasets.egg-info}/PKG-INFO +5 -4
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi_datasets.egg-info/SOURCES.txt +20 -39
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi_datasets.egg-info/requires.txt +3 -1
- anemoi_datasets-0.5.27/tests/conftest.py +1 -0
- anemoi_datasets-0.5.27/tests/create/__init__.py +0 -0
- anemoi_datasets-0.5.27/tests/create/run.sh +22 -0
- anemoi_datasets-0.5.27/tests/create/test_create.py +85 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/test_sources.py +51 -19
- anemoi_datasets-0.5.27/tests/create/utils/__init__.py +0 -0
- anemoi_datasets-0.5.27/tests/create/utils/compare.py +219 -0
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/testing.py → anemoi_datasets-0.5.27/tests/create/utils/create.py +4 -8
- anemoi_datasets-0.5.27/tests/create/utils/mock_sources.py +117 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/test_data.py +38 -81
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/test_data_gridded.py +9 -12
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/test_dates.py +1 -2
- anemoi_datasets-0.5.27/tests/test_validate.py +234 -0
- anemoi_datasets-0.5.27/tests/xarray/test_flavour.py +105 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/xarray/test_opendap.py +2 -2
- anemoi_datasets-0.5.27/tests/xarray/test_variable.py +83 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/xarray/test_zarr.py +6 -29
- anemoi_datasets-0.5.25/.release-please-manifest.json +0 -3
- anemoi_datasets-0.5.25/03-constant-fields.rst +0 -3
- anemoi_datasets-0.5.25/docs/datasets/building/filters/empty.rst +0 -6
- anemoi_datasets-0.5.25/docs/datasets/building/filters/noop.rst +0 -6
- anemoi_datasets-0.5.25/docs/datasets/building/filters/orog_to_z.rst +0 -17
- anemoi_datasets-0.5.25/docs/datasets/building/filters/regrid.rst +0 -27
- anemoi_datasets-0.5.25/docs/datasets/building/filters/rename.rst +0 -20
- anemoi_datasets-0.5.25/docs/datasets/building/filters/rotate_winds.rst +0 -3
- anemoi_datasets-0.5.25/docs/datasets/building/filters/select.rst +0 -3
- anemoi_datasets-0.5.25/docs/datasets/building/filters/sum.rst +0 -13
- anemoi_datasets-0.5.25/docs/datasets/building/filters/unrotate_winds.rst +0 -3
- anemoi_datasets-0.5.25/docs/datasets/building/filters/wz_to_w.rst +0 -12
- anemoi_datasets-0.5.25/docs/datasets/building/filters/yaml/orog_to_z.yaml +0 -11
- anemoi_datasets-0.5.25/docs/datasets/building/filters/yaml/regrid1.yaml +0 -11
- anemoi_datasets-0.5.25/docs/datasets/building/filters/yaml/regrid2.yaml +0 -9
- anemoi_datasets-0.5.25/docs/datasets/building/filters/yaml/rename.yaml +0 -13
- anemoi_datasets-0.5.25/docs/datasets/building/filters/yaml/sum.yaml +0 -15
- anemoi_datasets-0.5.25/docs/datasets/building/filters/yaml/wz_to_w.yaml +0 -11
- anemoi_datasets-0.5.25/docs/datasets/building/filters.rst +0 -26
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filter.py +0 -50
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/__init__.py +0 -33
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/empty.py +0 -37
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/legacy.py +0 -93
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/noop.py +0 -37
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/orog_to_z.py +0 -58
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/pressure_level_relative_humidity_to_specific_humidity.py +0 -83
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/pressure_level_specific_humidity_to_relative_humidity.py +0 -84
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/rename.py +0 -205
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/rotate_winds.py +0 -105
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/single_level_dewpoint_to_relative_humidity.py +0 -78
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/single_level_relative_humidity_to_dewpoint.py +0 -84
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/single_level_relative_humidity_to_specific_humidity.py +0 -163
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/single_level_specific_humidity_to_relative_humidity.py +0 -451
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/speeddir_to_uv.py +0 -95
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/sum.py +0 -68
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/unrotate_winds.py +0 -105
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/uv_to_speeddir.py +0 -94
- anemoi_datasets-0.5.25/src/anemoi/datasets/create/filters/wz_to_w.py +0 -98
- anemoi_datasets-0.5.25/src/anemoi/datasets/utils/__init__.py +0 -8
- anemoi_datasets-0.5.25/tests/create/run.sh +0 -20
- anemoi_datasets-0.5.25/tests/create/test_create.py +0 -414
- anemoi_datasets-0.5.25/tests/xarray/test_samples.py +0 -88
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.gitattributes +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/CODEOWNERS +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/ci-hpc-config.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/dependabot.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/labeler.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/downstream-ci-hpc.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/pr-conventional-commit.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/pr-label-conventional-commits.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/pr-label-file-based.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/pr-label-public.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/push-to-private.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/python-publish.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.github/workflows/release-please.yml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.gitignore +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.readthedocs.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.release-please-config.json +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/.vscode/spellright.dict +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/CONTRIBUTORS.md +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/LICENSE +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/README.md +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/Makefile +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/2t_map_example.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/area-1.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/concat.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/cutout-1.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/cutout-2.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/cutout-3.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/cutout-4.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/cutout-5.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/cutout-6.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/join.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/logo.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/overlay.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/schemas/matrix.excalidraw +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/schemas/matrix.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/schemas/overview.excalidraw +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/schemas/overview.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/schemas/recipe.excalidraw +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/schemas/recipe.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/skip-missing.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/style.css +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/thinning-after.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_static/thinning-before.png +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_templates/.gitkeep +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/_templates/apidoc/package.rst.jinja +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/adr/adr-1.md +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/apply-fmt.sh +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/check-index.sh +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/compare-lam.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/compare.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/copy.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/create.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/grib-index.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/inspect.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/patch.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/cli/scan.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/advanced-options.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/handling-missing-dates.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/handling-missing-values.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/incremental.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/introduction.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/naming-conventions.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/naming-variables.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/operations.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/accumulations.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/cds.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/eccc-fstd.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/forcings.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/grib-index.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/grib.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/hindcasts.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/mars.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/netcdf.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/opendap.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/recentre.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/repeated-dates.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/xarray-based.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/xarray-kerchunk.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/xarray-kerchunk.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/accumulations1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/accumulations2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/anemoi-dataset.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/eccc-fstd.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/forcings.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/grib1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/grib2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/grib3.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/grib4.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/mars-cds.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/mars1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/mars2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/netcdf.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/opendap.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/recentre.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/repeated-dates1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/repeated-dates2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/repeated-dates3.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/repeated-dates4.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/xarray-based.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/xarray-kerchunk.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/xarray-zarr.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/yaml/zenodo.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/zenodo.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/statistics.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/syntax.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/introduction.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/configuration.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/configuration.toml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/ensembles.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/grids.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/introduction.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/matching.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/methods.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/miscellaneous.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/missing.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/opening.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/other.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/selecting.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/statistics.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/subsetting.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/using/zip.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/Makefile +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/building1.txt +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/building1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/building2.txt +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/building2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/building3.txt +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/building3.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/concat.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/input.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/missing_dates.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/nan.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/yaml/pipe.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/dev/contributing.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/01-grib-data.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/03-constant-fields.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-flavour1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-flavour2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-flavour3.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-flavour4.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-recipe1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-recipe2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-recipe3.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-recipe4.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/grib-recipe5.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/netcdf1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/opendap1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/xarray-flavour1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/xarray-patch1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/xarray-patch2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/create/yaml/zarr1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/01-interpolate-step-dataset-combination.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/02-coutout-complement-combination.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/code/interpolate1.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/code/interpolate2.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/yaml/interpolate1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/howtos/usage/yaml/interpolate2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/installing.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/modules/dataset.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/modules/filters.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/modules/sources.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/overview.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/pptx/images.pptx +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/scripts/api_build.sh +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/usage/getting_started.rst +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/usage/yaml/aifs-ea-an-oper-0001-mars-o48-2020-2021-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/using/code/trimedge1_.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/setup.cfg +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/__main__.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/check.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/__init__.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/cleanup.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/compare-lam.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/compare.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/finalise.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/init-additions.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/init.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/load-additions.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/load.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/patch.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/publish.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/commands/scan.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/compute/__init__.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/input/pipe.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/source.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/__init__.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/anemoi_dataset.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/eccc_fstd.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_kerchunk.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/sources/xarray_support/README.md +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/statistics/summary.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/create/writer.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/debug.css +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/observations/legacy_obs_dataset.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/observations/multi.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi/datasets/data/records/__init__.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/accumulation.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/concat.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/join.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/missing.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/nan.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/pipe.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/recentre.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create/regrid.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create-perturbations-full.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/create-shift.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/test_chunks.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/test_indexing.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/test_records.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tests/xarray/test_netcdf.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/.gitignore +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/build-obs.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/check-obs.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/examples/Makefile +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/Makefile +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids.ipynb +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids1.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids2.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids3.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids4.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids5.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids6.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids7.yaml +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/grids/grids_multilam.ipynb +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/make-sample-dataset.py +0 -0
- {anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/tools/upload-sample-dataset.py +0 -0
|
@@ -11,3 +11,5 @@
|
|
|
11
11
|
<!-- Include any additional information, caveats, or considerations that the reviewer should be aware of. -->
|
|
12
12
|
|
|
13
13
|
***As a contributor to the Anemoi framework, please ensure that your changes include unit tests, updates to any affected dependencies and documentation, and have been tested in a parallel setting (i.e., with multiple GPUs). As a reviewer, you are also responsible for verifying these aspects and requesting changes if they are not adequately addressed. For guidelines about those please refer to https://anemoi.readthedocs.io/en/latest/***
|
|
14
|
+
|
|
15
|
+
By opening this pull request, I affirm that all authors agree to the [Contributor License Agreement.](https://github.com/ecmwf/codex/blob/main/Legal/contributor_license_agreement.md)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# This workflow checks that the appropriate ATS labels are applied to a pull request:
|
|
2
|
+
# - "ATS Approval Not Needed": pass
|
|
3
|
+
# - "ATS Approved": pass
|
|
4
|
+
# - "ATS Approval Needed": fail
|
|
5
|
+
# - Missing ATS label: fail
|
|
6
|
+
|
|
7
|
+
name: "[PR] ATS labels"
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
pull_request:
|
|
11
|
+
types:
|
|
12
|
+
- opened
|
|
13
|
+
- edited
|
|
14
|
+
- reopened
|
|
15
|
+
- labeled
|
|
16
|
+
- unlabeled
|
|
17
|
+
- synchronize
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
pull-requests: read
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
check:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- name: Get PR details
|
|
27
|
+
uses: actions/github-script@v7
|
|
28
|
+
id: check-pr
|
|
29
|
+
with:
|
|
30
|
+
script: |
|
|
31
|
+
const pr = await github.rest.pulls.get({
|
|
32
|
+
owner: context.repo.owner,
|
|
33
|
+
repo: context.repo.repo,
|
|
34
|
+
pull_number: context.payload.pull_request.number,
|
|
35
|
+
});
|
|
36
|
+
const labels = pr.data.labels.map(label => label.name);
|
|
37
|
+
core.setOutput('labels', JSON.stringify(labels));
|
|
38
|
+
core.setOutput('author', context.payload.pull_request.user.login);
|
|
39
|
+
|
|
40
|
+
- name: Evaluate ATS labels
|
|
41
|
+
run: |
|
|
42
|
+
AUTHOR='${{ steps.check-pr.outputs.author }}'
|
|
43
|
+
if [ "$AUTHOR" == "DeployDuck" ] || [ "$AUTHOR" == "pre-commit-ci[bot]" ]; then
|
|
44
|
+
echo "Bot PR, skipping."
|
|
45
|
+
exit 0
|
|
46
|
+
fi
|
|
47
|
+
LABELS=$(echo '${{ steps.check-pr.outputs.labels }}' | jq -r '.[]')
|
|
48
|
+
echo "Labels found:"
|
|
49
|
+
echo -e "$LABELS\n"
|
|
50
|
+
echo "Result:"
|
|
51
|
+
if echo "$LABELS" | grep -qi "ATS approval not needed"; then
|
|
52
|
+
echo "ATS approval not needed. Passing."
|
|
53
|
+
EXIT_CODE=0
|
|
54
|
+
elif echo "$LABELS" | grep -qi "ATS approved"; then
|
|
55
|
+
echo "ATS Approved. Passing."
|
|
56
|
+
EXIT_CODE=0
|
|
57
|
+
elif echo "$LABELS" | grep -qi "ATS approval needed"; then
|
|
58
|
+
echo "ATS Approval Needed. Failing."
|
|
59
|
+
EXIT_CODE=1
|
|
60
|
+
else
|
|
61
|
+
echo "No ATS approval labels found. Please assign the appropriate ATS label. Failing."
|
|
62
|
+
EXIT_CODE=1
|
|
63
|
+
fi
|
|
64
|
+
echo -e "\nFor more information on ATS labels, see:"
|
|
65
|
+
echo "https://anemoi.readthedocs.io/en/latest/contributing/guidelines.html#labelling-guidelines"
|
|
66
|
+
exit $EXIT_CODE
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
checks:
|
|
20
20
|
strategy:
|
|
21
21
|
matrix:
|
|
22
|
-
python-version: ["3.
|
|
22
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
23
23
|
uses: ecmwf/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ matrix.python-version }}
|
|
@@ -10,7 +10,7 @@ repos:
|
|
|
10
10
|
entry: jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace
|
|
11
11
|
additional_dependencies: [jupyter]
|
|
12
12
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
13
|
-
rev:
|
|
13
|
+
rev: v6.0.0
|
|
14
14
|
hooks:
|
|
15
15
|
- id: check-yaml # Check YAML files for syntax errors only
|
|
16
16
|
args: [--unsafe, --allow-multiple-documents]
|
|
@@ -41,7 +41,7 @@ repos:
|
|
|
41
41
|
- --profile black
|
|
42
42
|
- --project anemoi
|
|
43
43
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
44
|
-
rev: v0.11
|
|
44
|
+
rev: v0.12.11
|
|
45
45
|
hooks:
|
|
46
46
|
- id: ruff
|
|
47
47
|
args:
|
|
@@ -69,7 +69,7 @@ repos:
|
|
|
69
69
|
hooks:
|
|
70
70
|
- id: pyproject-fmt
|
|
71
71
|
- repo: https://github.com/jshwi/docsig # Check docstrings against function sig
|
|
72
|
-
rev: v0.
|
|
72
|
+
rev: v0.71.0
|
|
73
73
|
hooks:
|
|
74
74
|
- id: docsig
|
|
75
75
|
args:
|
|
@@ -8,6 +8,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
8
8
|
Please add your functional changes to the appropriate section in the PR.
|
|
9
9
|
Keep it human-readable, your future self will thank you!
|
|
10
10
|
|
|
11
|
+
## [0.5.27](https://github.com/ecmwf/anemoi-datasets/compare/0.5.26...0.5.27) (2025-10-06)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* Add 'model_level_number' to coordinate guesser (ecmwf/anemoi-datasets[#402](https://github.com/ecmwf/anemoi-datasets/issues/402)) ([#403](https://github.com/ecmwf/anemoi-datasets/issues/403)) ([fa0b7e8](https://github.com/ecmwf/anemoi-datasets/commit/fa0b7e809740d918cddb98596a9178181fe900d2))
|
|
17
|
+
* Extend xarray Variable.sel to handle scalar variables ([#381](https://github.com/ecmwf/anemoi-datasets/issues/381)) ([1306d62](https://github.com/ecmwf/anemoi-datasets/commit/1306d62d0c7e2be627460e35ba8a6780b0b26db7))
|
|
18
|
+
* Improve conftest types ([#395](https://github.com/ecmwf/anemoi-datasets/issues/395)) ([bd8143d](https://github.com/ecmwf/anemoi-datasets/commit/bd8143d4baf94a5243c023632e62838226ae8fd4))
|
|
19
|
+
* Remove python 3.9 from pyproject.toml. ([#392](https://github.com/ecmwf/anemoi-datasets/issues/392)) ([7f3a250](https://github.com/ecmwf/anemoi-datasets/commit/7f3a250cddf35bba7c83867933236587a1b48572))
|
|
20
|
+
* **sources:** Add FDB source ([#405](https://github.com/ecmwf/anemoi-datasets/issues/405)) ([9222d59](https://github.com/ecmwf/anemoi-datasets/commit/9222d59280cafaf99f1471a028069fd6043522c9))
|
|
21
|
+
* Validate dataset ([#330](https://github.com/ecmwf/anemoi-datasets/issues/330)) ([34d06df](https://github.com/ecmwf/anemoi-datasets/commit/34d06df5b8ea40568f1a413b30904a103d26acb9))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
* Allow multiple options to be provided to anemoi-datasets inspect ([#372](https://github.com/ecmwf/anemoi-datasets/issues/372)) ([dea680e](https://github.com/ecmwf/anemoi-datasets/commit/dea680e54a4daa43ce15400ff49adb2a29c39380))
|
|
27
|
+
* Anemoi inspect wrong message ([#429](https://github.com/ecmwf/anemoi-datasets/issues/429)) ([984ccef](https://github.com/ecmwf/anemoi-datasets/commit/984ccef5561245a2a64b6e9b3c0543764b817664))
|
|
28
|
+
* Better handling of xarray metadata ([#322](https://github.com/ecmwf/anemoi-datasets/issues/322)) ([4304cb4](https://github.com/ecmwf/anemoi-datasets/commit/4304cb40a6d6956492b5246a56f4af1a914d7cab))
|
|
29
|
+
* Cleaning _build when building datasets ([#413](https://github.com/ecmwf/anemoi-datasets/issues/413)) ([046a7eb](https://github.com/ecmwf/anemoi-datasets/commit/046a7eb992653df34ba1c7550e38489e3df4d227))
|
|
30
|
+
* Define the missing forwards_subclass_metadata_specific method in the ZipBase class ([#377](https://github.com/ecmwf/anemoi-datasets/issues/377)) ([2816314](https://github.com/ecmwf/anemoi-datasets/commit/28163143a76cec618e74a2b85d86a7d0d31168f5))
|
|
31
|
+
* Remove config_path in Config ([#431](https://github.com/ecmwf/anemoi-datasets/issues/431)) ([2bf674f](https://github.com/ecmwf/anemoi-datasets/commit/2bf674fd966ce2a0c19cb72185173c999ae1c6af))
|
|
32
|
+
* Remove-obsolete-code-and-rename ([#423](https://github.com/ecmwf/anemoi-datasets/issues/423)) ([ab3da59](https://github.com/ecmwf/anemoi-datasets/commit/ab3da591c9d7f809e21da8e354afff07b97cc490))
|
|
33
|
+
* Save_dataset ([#383](https://github.com/ecmwf/anemoi-datasets/issues/383)) ([05b8f51](https://github.com/ecmwf/anemoi-datasets/commit/05b8f51f1b7c60cc3bc2695ccc274c149af2b9cf))
|
|
34
|
+
* Support for sources with already opened datasets ([#417](https://github.com/ecmwf/anemoi-datasets/issues/417)) ([9bc2d17](https://github.com/ecmwf/anemoi-datasets/commit/9bc2d1736d457c09c042e8db45ac587c94e75218))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Documentation
|
|
38
|
+
|
|
39
|
+
* Reference filters transform ([#389](https://github.com/ecmwf/anemoi-datasets/issues/389)) ([4e5d278](https://github.com/ecmwf/anemoi-datasets/commit/4e5d2785db5bb644d20a90e6cb1d3aa17e412718))
|
|
40
|
+
|
|
41
|
+
## [0.5.26](https://github.com/ecmwf/anemoi-datasets/compare/0.5.25...0.5.26) (2025-07-11)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Features
|
|
45
|
+
|
|
46
|
+
* Add planetary planetary source ([#368](https://github.com/ecmwf/anemoi-datasets/issues/368)) ([c85337f](https://github.com/ecmwf/anemoi-datasets/commit/c85337f4b08381dc1e2e8ba71134c998c6258c2d))
|
|
47
|
+
* Extend xarray coordinate guesser to include pressure as a long_name ([#335](https://github.com/ecmwf/anemoi-datasets/issues/335)) ([bcbffaa](https://github.com/ecmwf/anemoi-datasets/commit/bcbffaa0b0ad011db5b1fd5879f9829f0d2e68af))
|
|
48
|
+
* Extented complement nearest functionality to support k>1 ([#371](https://github.com/ecmwf/anemoi-datasets/issues/371)) ([a2c5f92](https://github.com/ecmwf/anemoi-datasets/commit/a2c5f921f57fce60bd3fe728c21dc5e5b7d3a4a1))
|
|
49
|
+
* Point data ([#358](https://github.com/ecmwf/anemoi-datasets/issues/358)) ([78c4f85](https://github.com/ecmwf/anemoi-datasets/commit/78c4f85bf9cd4d6cc7f17268c8c526da32158220))
|
|
50
|
+
* Relaxed compatibility check for horizontal grid. ([#339](https://github.com/ecmwf/anemoi-datasets/issues/339)) ([a7dc859](https://github.com/ecmwf/anemoi-datasets/commit/a7dc859b6ec2fb0bad2ed7b7b8ee3c76034a258b))
|
|
51
|
+
* Sort xarray coordinate with patch ([#356](https://github.com/ecmwf/anemoi-datasets/issues/356)) ([638cbdb](https://github.com/ecmwf/anemoi-datasets/commit/638cbdb013b94b87748654ae338e0d02e69c1900))
|
|
52
|
+
* Use pytest-xdist to run tests in parallel. ([#346](https://github.com/ecmwf/anemoi-datasets/issues/346)) ([1d656ee](https://github.com/ecmwf/anemoi-datasets/commit/1d656ee62c51ee0cbe043943581cef16b2f7d7db))
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
### Bug Fixes
|
|
56
|
+
|
|
57
|
+
* Deprecated filters in anemoi datasets ([#350](https://github.com/ecmwf/anemoi-datasets/issues/350)) ([d08c6f5](https://github.com/ecmwf/anemoi-datasets/commit/d08c6f55c3d983c930480bd777e74fd5a5bea6eb))
|
|
58
|
+
* **grib-index:** Match against filename, not full path ([#374](https://github.com/ecmwf/anemoi-datasets/issues/374)) ([e71a952](https://github.com/ecmwf/anemoi-datasets/commit/e71a95221493a703515d7a14a17f3dead06c8430))
|
|
59
|
+
* Missing method in xarray flavour ([#369](https://github.com/ecmwf/anemoi-datasets/issues/369)) ([d0b9588](https://github.com/ecmwf/anemoi-datasets/commit/d0b9588f0bff626ae751a74cf4cbbc373a2f67f4))
|
|
60
|
+
* Remove trailing slash from zarr paths. ([#362](https://github.com/ecmwf/anemoi-datasets/issues/362)) ([9a9bfe5](https://github.com/ecmwf/anemoi-datasets/commit/9a9bfe50406d299f44f7cce7e3befcabef6fefaf))
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
### Documentation
|
|
64
|
+
|
|
65
|
+
* Fix pre-commit ([#367](https://github.com/ecmwf/anemoi-datasets/issues/367)) ([6e6ebe2](https://github.com/ecmwf/anemoi-datasets/commit/6e6ebe2e81fc735a2af422b8c222b0a2f229d8dc))
|
|
66
|
+
* Zarr dataset creation ([#365](https://github.com/ecmwf/anemoi-datasets/issues/365)) ([622c261](https://github.com/ecmwf/anemoi-datasets/commit/622c26156de44ae4eaa3359fef836741b1d81d67))
|
|
67
|
+
|
|
11
68
|
## [0.5.25](https://github.com/ecmwf/anemoi-datasets/compare/0.5.24...0.5.25) (2025-06-11)
|
|
12
69
|
|
|
13
70
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.27
|
|
4
4
|
Summary: A package to hold various functions to support training of ML models on ECMWF data.
|
|
5
5
|
Author-email: "European Centre for Medium-Range Weather Forecasts (ECMWF)" <software.support@ecmwf.int>
|
|
6
6
|
License: Apache License
|
|
@@ -216,17 +216,16 @@ Classifier: Intended Audience :: Developers
|
|
|
216
216
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
217
217
|
Classifier: Operating System :: OS Independent
|
|
218
218
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
219
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
220
219
|
Classifier: Programming Language :: Python :: 3.10
|
|
221
220
|
Classifier: Programming Language :: Python :: 3.11
|
|
222
221
|
Classifier: Programming Language :: Python :: 3.12
|
|
223
222
|
Classifier: Programming Language :: Python :: 3.13
|
|
224
223
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
225
224
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
226
|
-
Requires-Python: >=3.
|
|
225
|
+
Requires-Python: >=3.10
|
|
227
226
|
License-File: LICENSE
|
|
228
227
|
Requires-Dist: anemoi-transform>=0.1.10
|
|
229
|
-
Requires-Dist: anemoi-utils[provenance]>=0.4.
|
|
228
|
+
Requires-Dist: anemoi-utils[provenance]>=0.4.32
|
|
230
229
|
Requires-Dist: cfunits
|
|
231
230
|
Requires-Dist: numcodecs<0.16
|
|
232
231
|
Requires-Dist: numpy
|
|
@@ -262,6 +261,8 @@ Requires-Dist: requests; extra == "remote"
|
|
|
262
261
|
Provides-Extra: tests
|
|
263
262
|
Requires-Dist: anemoi-datasets[xarray]; extra == "tests"
|
|
264
263
|
Requires-Dist: pytest; extra == "tests"
|
|
264
|
+
Requires-Dist: pytest-skip-slow; extra == "tests"
|
|
265
|
+
Requires-Dist: pytest-xdist; extra == "tests"
|
|
265
266
|
Provides-Extra: xarray
|
|
266
267
|
Requires-Dist: adlfs; extra == "xarray"
|
|
267
268
|
Requires-Dist: gcsfs; extra == "xarray"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
.. _validate_command:
|
|
2
|
+
|
|
3
|
+
Validate Command
|
|
4
|
+
============
|
|
5
|
+
|
|
6
|
+
Use this command to validate a zarr dataset, or a class that implements the
|
|
7
|
+
:class:`anemoi.datasets.Dataset` interface.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
This command has two modes of operation:
|
|
11
|
+
|
|
12
|
+
1. Validate a local zarr dataset by specifying its path.
|
|
13
|
+
2. Validate a dataset class by providing its fully qualified class name.
|
|
14
|
+
|
|
15
|
+
Example usage
|
|
16
|
+
-------------
|
|
17
|
+
|
|
18
|
+
To validate a local zarr dataset:
|
|
19
|
+
|
|
20
|
+
.. code-block:: bash
|
|
21
|
+
|
|
22
|
+
anemoi-datasets validate /path/to/dataset.zarr
|
|
23
|
+
|
|
24
|
+
To validate a dataset class:
|
|
25
|
+
|
|
26
|
+
.. code-block:: bash
|
|
27
|
+
|
|
28
|
+
anemoi-datasets validate --callable my_package.MyDatasetClass some-args-relevant-to-the-class
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
In the first case, the command will check the compatibility of the zarr dataset using anemoi-datasets own class, in the second case, it will use the class provided by the user.
|
|
32
|
+
|
|
33
|
+
When running the command, emojis are used to categorise the different validation results:
|
|
34
|
+
|
|
35
|
+
* ✅: validation succeeded
|
|
36
|
+
* ⚠️: validation for the attribute/method is not implemented
|
|
37
|
+
* 💣: validation failed because the test does not pass
|
|
38
|
+
* 💥: validation failed because the validation tool is out of date
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
.. argparse::
|
|
42
|
+
:module: anemoi.datasets.__main__
|
|
43
|
+
:func: create_parser
|
|
44
|
+
:prog: anemoi-datasets
|
|
45
|
+
:path: validate
|
|
@@ -40,9 +40,9 @@ year = datetime.datetime.now().year
|
|
|
40
40
|
if year == 2024:
|
|
41
41
|
years = "2024"
|
|
42
42
|
else:
|
|
43
|
-
years = "2024
|
|
43
|
+
years = f"2024-{year}"
|
|
44
44
|
|
|
45
|
-
copyright = "
|
|
45
|
+
copyright = f"{years}, Anemoi contributors"
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
try:
|
{anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/anemoi-dataset.rst
RENAMED
|
@@ -17,3 +17,9 @@ An anemoi-dataset can be a source for a dataset:
|
|
|
17
17
|
The parameters are the same as those used in the ``open_dataset``
|
|
18
18
|
function, which allows you to subset and combine datasets. See
|
|
19
19
|
:ref:`opening-datasets` for more information.
|
|
20
|
+
|
|
21
|
+
In particular, this is how local zarr datasets created with anemoi in a
|
|
22
|
+
can be used as a source, contrary to :ref:`xarray-zarr` :
|
|
23
|
+
|
|
24
|
+
.. literalinclude:: yaml/anemoi-zarr-dataset.yaml
|
|
25
|
+
:language: yaml
|
{anemoi_datasets-0.5.25 → anemoi_datasets-0.5.27}/docs/datasets/building/sources/xarray-zarr.rst
RENAMED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
.. _xarray-zarr:
|
|
2
|
+
|
|
1
3
|
#############
|
|
2
4
|
xarray-zarr
|
|
3
5
|
#############
|
|
@@ -17,4 +19,8 @@ it is necessary to use the :ref:`join <building-join>` operation to join
|
|
|
17
19
|
separate lists containing 2D variables and 3D variables. If all vertical
|
|
18
20
|
levels are desired, then it is acceptable to specify a single source.
|
|
19
21
|
|
|
22
|
+
Also, an ``xarray-zarr`` source uses the ``url`` keyword, and cannot be
|
|
23
|
+
used for accessing local datasets. For using local zarr datasets as
|
|
24
|
+
sources, use instead :ref:`anemoi-dataset_source`.
|
|
25
|
+
|
|
20
26
|
See :ref:`create-cf-data` for more information.
|
|
@@ -235,13 +235,15 @@ variables of `dataset1` and return the result.
|
|
|
235
235
|
source=dataset2,
|
|
236
236
|
what="variables",
|
|
237
237
|
interpolate="nearest",
|
|
238
|
+
k=1,
|
|
238
239
|
)
|
|
239
240
|
|
|
240
241
|
Currently ``what`` can only be ``variables`` and can be omitted.
|
|
241
242
|
|
|
242
243
|
The value for ``interpolate`` can be one of ``none`` (default) or
|
|
243
244
|
``nearest``. In the case of ``none``, the grids of the two datasets must
|
|
244
|
-
match.
|
|
245
|
+
match. In case of ``interpolate``, an additional parameter ``k`` can be
|
|
246
|
+
set to specify the number of nearest neighbors to use.
|
|
245
247
|
|
|
246
248
|
This feature was originally designed to be used in conjunction with
|
|
247
249
|
``cutout``, where `dataset1` is the lam, and `dataset2` is the global
|
|
@@ -46,9 +46,18 @@ can contain patterns. See :ref:`file-pattern` for more information.
|
|
|
46
46
|
Zarr
|
|
47
47
|
******
|
|
48
48
|
|
|
49
|
+
For using remote hosted zarr datasets as sources, use
|
|
50
|
+
:ref:`xarray-zarr`.
|
|
51
|
+
|
|
49
52
|
.. literalinclude:: yaml/zarr1.yaml
|
|
50
53
|
:language: yaml
|
|
51
54
|
|
|
55
|
+
For using local zarr datasets (such as anemoi-generated datasets), use
|
|
56
|
+
:ref:`anemoi-dataset_source`.
|
|
57
|
+
|
|
58
|
+
.. literalinclude:: yaml/zarr2.yaml
|
|
59
|
+
:language: yaml
|
|
60
|
+
|
|
52
61
|
*********************************************
|
|
53
62
|
Handling data that is not 100% CF-compliant
|
|
54
63
|
*********************************************
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
.. _create-with-filter:
|
|
2
|
+
|
|
3
|
+
#################################
|
|
4
|
+
Create a dataset using a filter
|
|
5
|
+
#################################
|
|
6
|
+
|
|
7
|
+
A ``filter`` is a software component that takes as input the output of a
|
|
8
|
+
source or another filter and can modify the fields and/or their
|
|
9
|
+
metadata. For example, typical filters are interpolations, renaming of
|
|
10
|
+
variables, etc. Filters are available as part of ``anemoi-transform``.
|
|
11
|
+
|
|
12
|
+
****************
|
|
13
|
+
Using a filter
|
|
14
|
+
****************
|
|
15
|
+
|
|
16
|
+
In the example below we see a recipe to create a dataset from MARS data
|
|
17
|
+
in which we perform a rename transform to update ``tp`` to be named
|
|
18
|
+
``tp_era5``. To be able to use the transform we just define it as a
|
|
19
|
+
second step of the pipe, after gathering the data.
|
|
20
|
+
|
|
21
|
+
.. literalinclude:: yaml/recipe-filter1.yaml
|
|
22
|
+
|
|
23
|
+
That recipe will generate the following dataset:
|
|
24
|
+
|
|
25
|
+
.. code:: bash
|
|
26
|
+
|
|
27
|
+
Dataset Summary
|
|
28
|
+
===============
|
|
29
|
+
|
|
30
|
+
📦 Path : recipe1.zarr
|
|
31
|
+
🔢 Format version: 0.30.0
|
|
32
|
+
|
|
33
|
+
📅 Start : 2020-12-12 00:00
|
|
34
|
+
📅 End : 2020-12-13 12:00
|
|
35
|
+
⏰ Frequency : 12h
|
|
36
|
+
🚫 Missing : 0
|
|
37
|
+
🌎 Resolution : 20.0
|
|
38
|
+
🌎 Field shape: [9, 18]
|
|
39
|
+
|
|
40
|
+
📐 Shape : 4 × 9 × 1 × 162 (22.8 KiB)
|
|
41
|
+
💽 Size : 40.7 KiB (40.7 KiB)
|
|
42
|
+
📁 Files : 48
|
|
43
|
+
|
|
44
|
+
Index │ Variable │ Min │ Max │ Mean │ Stdev
|
|
45
|
+
──────┼──────────┼─────────────┼─────────────┼──────────────┼────────────
|
|
46
|
+
0 │ 2t │ 226.496 │ 309.946 │ 278.03 │ 19.2561
|
|
47
|
+
1 │ cp │ 0 │ 0.00739765 │ 0.00014582 │ 0.000527194
|
|
48
|
+
2 │ q_100 │ 1.38935e-06 │ 4.20381e-06 │ 2.68779e-06 │ 5.59043e-07
|
|
49
|
+
3 │ q_50 │ 1.26881e-06 │ 3.20919e-06 │ 2.74525e-06 │ 4.35595e-07
|
|
50
|
+
4 │ t_100 │ 189.787 │ 226.929 │ 207.052 │ 9.26841
|
|
51
|
+
5 │ t_50 │ 189.14 │ 236.51 │ 212.79 │ 9.5502
|
|
52
|
+
6 │ tp_era5 │ 0 │ 0.00823116 │ 0.000326814 │ 0.00078008
|
|
53
|
+
7 │ w_100 │ -0.0114685 │ 0.0129402 │ -0.000355278 │ 0.00448272
|
|
54
|
+
8 │ w_50 │ -0.00815806 │ 0.0126816 │ -0.000267674 │ 0.00331866
|
|
55
|
+
──────┴──────────┴─────────────┴─────────────┴──────────────┴────────────
|
|
56
|
+
🔋 Dataset ready, last update 1 minute ago.
|
|
57
|
+
📊 Statistics ready.
|
|
58
|
+
|
|
59
|
+
***********************
|
|
60
|
+
Creating a new filter
|
|
61
|
+
***********************
|
|
62
|
+
|
|
63
|
+
In order to create a new filter the recommendation is to define it under
|
|
64
|
+
the package ``anemoi-transform``. Available filters can be found in
|
|
65
|
+
``anemoi/transform/filters`` or running the command ``anemoi-transform
|
|
66
|
+
filters list``. For details about how to create a filter please refer to
|
|
67
|
+
the `anemoi-transform
|
|
68
|
+
<https://anemoi.readthedocs.io/projects/transform/en/latest/>`_
|
|
69
|
+
documentation.
|
|
70
|
+
|
|
71
|
+
************************
|
|
72
|
+
Using multiple filters
|
|
73
|
+
************************
|
|
74
|
+
|
|
75
|
+
It's possible to stack multiple filters one after the other. Below you
|
|
76
|
+
can see an updated version of the dataset creation we had where we now
|
|
77
|
+
create a dataset and apply a rename filter and our newly defined
|
|
78
|
+
``VerticalVelocity`` filter.
|
|
79
|
+
|
|
80
|
+
.. literalinclude:: yaml/recipe-filter2.yaml
|
|
81
|
+
|
|
82
|
+
That recipe will generate the following dataset:
|
|
83
|
+
|
|
84
|
+
.. code:: bash
|
|
85
|
+
|
|
86
|
+
Dataset Summary
|
|
87
|
+
===============
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
📦 Path : recipe2.zarr
|
|
91
|
+
🔢 Format version: 0.30.0
|
|
92
|
+
|
|
93
|
+
📅 Start : 2020-12-12 00:00
|
|
94
|
+
📅 End : 2020-12-13 12:00
|
|
95
|
+
⏰ Frequency : 12h
|
|
96
|
+
🚫 Missing : 0
|
|
97
|
+
🌎 Resolution : 20.0
|
|
98
|
+
🌎 Field shape: [9, 18]
|
|
99
|
+
|
|
100
|
+
📐 Shape : 4 × 9 × 1 × 162 (22.8 KiB)
|
|
101
|
+
💽 Size : 41.1 KiB (41.1 KiB)
|
|
102
|
+
📁 Files : 48
|
|
103
|
+
|
|
104
|
+
Index │ Variable │ Min │ Max │ Mean │ Stdev
|
|
105
|
+
──────┼──────────┼─────────────┼─────────────┼─────────────┼────────────
|
|
106
|
+
0 │ 2t │ 226.496 │ 309.946 │ 278.03 │ 19.2561
|
|
107
|
+
1 │ cp │ 0 │ 0.00739765 │ 0.00014582 │ 0.000527194
|
|
108
|
+
2 │ q_100 │ 1.38935e-06 │ 4.20381e-06 │ 2.68779e-06 │ 5.59043e-07
|
|
109
|
+
3 │ q_50 │ 1.26881e-06 │ 3.20919e-06 │ 2.74525e-06 │ 4.35595e-07
|
|
110
|
+
4 │ t_100 │ 189.787 │ 226.929 │ 207.052 │ 9.26841
|
|
111
|
+
5 │ t_50 │ 189.14 │ 236.51 │ 212.79 │ 9.5502
|
|
112
|
+
6 │ tp_era5 │ 0 │ 0.00823116 │ 0.000326814 │ 0.00078008
|
|
113
|
+
7 │ wz_100 │ -0.00798191 │ 0.00721723 │ 0.000224189 │ 0.00277693
|
|
114
|
+
8 │ wz_50 │ -0.01549 │ 0.0103844 │ 0.000341309 │ 0.00417065
|
|
115
|
+
──────┴──────────┴─────────────┴─────────────┴─────────────┴────────────
|
|
116
|
+
🔋 Dataset ready, last update 11 seconds ago.
|
|
117
|
+
📊 Statistics ready.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
dates:
|
|
2
|
+
start: 2020-12-12 00:00:00
|
|
3
|
+
end: 2020-12-14 12:00:00
|
|
4
|
+
frequency: 12h
|
|
5
|
+
|
|
6
|
+
input:
|
|
7
|
+
pipe:
|
|
8
|
+
- join:
|
|
9
|
+
- mars:
|
|
10
|
+
expver: "0001"
|
|
11
|
+
class: ea
|
|
12
|
+
grid: 20./20.
|
|
13
|
+
param: [2t]
|
|
14
|
+
levtype: sfc
|
|
15
|
+
- mars:
|
|
16
|
+
expver: "0001"
|
|
17
|
+
class: ea
|
|
18
|
+
grid: 20./20.
|
|
19
|
+
param: [q, t,w]
|
|
20
|
+
levtype: pl
|
|
21
|
+
level: [50, 100]
|
|
22
|
+
stream: oper
|
|
23
|
+
type: an
|
|
24
|
+
- accumulations:
|
|
25
|
+
expver: "0001"
|
|
26
|
+
class: ea
|
|
27
|
+
grid: 20./20.
|
|
28
|
+
param: [cp, tp]
|
|
29
|
+
- rename:
|
|
30
|
+
param:
|
|
31
|
+
tp: tp_era5
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
dates:
|
|
2
|
+
start: 2020-12-12 00:00:00
|
|
3
|
+
end: 2020-12-14 12:00:00
|
|
4
|
+
frequency: 12h
|
|
5
|
+
|
|
6
|
+
input:
|
|
7
|
+
pipe:
|
|
8
|
+
- join:
|
|
9
|
+
- mars:
|
|
10
|
+
expver: "0001"
|
|
11
|
+
class: ea
|
|
12
|
+
grid: 20./20.
|
|
13
|
+
param: [2t]
|
|
14
|
+
levtype: sfc
|
|
15
|
+
- mars:
|
|
16
|
+
expver: "0001"
|
|
17
|
+
class: ea
|
|
18
|
+
grid: 20./20.
|
|
19
|
+
param: [q, t,w]
|
|
20
|
+
levtype: pl
|
|
21
|
+
level: [50, 100]
|
|
22
|
+
stream: oper
|
|
23
|
+
type: an
|
|
24
|
+
- accumulations:
|
|
25
|
+
expver: "0001"
|
|
26
|
+
class: ea
|
|
27
|
+
grid: 20./20.
|
|
28
|
+
param: [cp, tp]
|
|
29
|
+
- rename:
|
|
30
|
+
param:
|
|
31
|
+
tp: tp_era5
|
|
32
|
+
- w_to_wz:
|
|
33
|
+
w_component: w
|
|
34
|
+
temperature: t
|
|
35
|
+
humidity: q
|
|
@@ -28,7 +28,7 @@ authors = [
|
|
|
28
28
|
{ name = "European Centre for Medium-Range Weather Forecasts (ECMWF)", email = "software.support@ecmwf.int" },
|
|
29
29
|
]
|
|
30
30
|
|
|
31
|
-
requires-python = ">=3.
|
|
31
|
+
requires-python = ">=3.10"
|
|
32
32
|
|
|
33
33
|
classifiers = [
|
|
34
34
|
"Development Status :: 4 - Beta",
|
|
@@ -36,7 +36,6 @@ classifiers = [
|
|
|
36
36
|
"License :: OSI Approved :: Apache Software License",
|
|
37
37
|
"Operating System :: OS Independent",
|
|
38
38
|
"Programming Language :: Python :: 3 :: Only",
|
|
39
|
-
"Programming Language :: Python :: 3.9",
|
|
40
39
|
"Programming Language :: Python :: 3.10",
|
|
41
40
|
"Programming Language :: Python :: 3.11",
|
|
42
41
|
"Programming Language :: Python :: 3.12",
|
|
@@ -50,7 +49,7 @@ dynamic = [
|
|
|
50
49
|
]
|
|
51
50
|
dependencies = [
|
|
52
51
|
"anemoi-transform>=0.1.10",
|
|
53
|
-
"anemoi-utils[provenance]>=0.4.
|
|
52
|
+
"anemoi-utils[provenance]>=0.4.32",
|
|
54
53
|
"cfunits",
|
|
55
54
|
"numcodecs<0.16", # Until we move to zarr3
|
|
56
55
|
"numpy",
|
|
@@ -100,6 +99,8 @@ optional-dependencies.remote = [
|
|
|
100
99
|
optional-dependencies.tests = [
|
|
101
100
|
"anemoi-datasets[xarray]",
|
|
102
101
|
"pytest",
|
|
102
|
+
"pytest-skip-slow",
|
|
103
|
+
"pytest-xdist",
|
|
103
104
|
]
|
|
104
105
|
|
|
105
106
|
optional-dependencies.xarray = [
|
|
@@ -131,6 +132,14 @@ version_file = "src/anemoi/datasets/_version.py"
|
|
|
131
132
|
[tool.isort]
|
|
132
133
|
profile = "black"
|
|
133
134
|
|
|
135
|
+
[tool.pytest.ini_options]
|
|
136
|
+
testpaths = "tests"
|
|
137
|
+
addopts = [
|
|
138
|
+
"--numprocesses=auto",
|
|
139
|
+
"--maxprocesses=16",
|
|
140
|
+
"--strict-config",
|
|
141
|
+
]
|
|
142
|
+
|
|
134
143
|
[tool.mypy]
|
|
135
144
|
strict = false
|
|
136
145
|
exclude = [
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
# granted to it by virtue of its status as an intergovernmental organisation
|
|
8
8
|
# nor does it submit to any jurisdiction.
|
|
9
9
|
|
|
10
|
-
from typing import List
|
|
11
10
|
|
|
12
11
|
from .data import MissingDateError
|
|
13
12
|
from .data import add_dataset_path
|
|
@@ -23,7 +22,7 @@ except ImportError: # pragma: no cover
|
|
|
23
22
|
# Local copy or not installed with setuptools
|
|
24
23
|
__version__ = "999"
|
|
25
24
|
|
|
26
|
-
__all__:
|
|
25
|
+
__all__: list[str] = [
|
|
27
26
|
"add_dataset_path",
|
|
28
27
|
"add_named_dataset",
|
|
29
28
|
"list_dataset_names",
|