anemoi-datasets 0.4.4__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/.gitattributes +1 -0
- 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.4 → anemoi_datasets-0.5.0}/.github/workflows/changelog-pr-update.yml +3 -0
- anemoi_datasets-0.5.0/.github/workflows/changelog-release-update.yml +35 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.github/workflows/ci.yml +15 -2
- anemoi_datasets-0.5.0/.github/workflows/python-publish.yml +24 -0
- anemoi_datasets-0.5.0/.github/workflows/python-pull-request.yml +23 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.gitignore +6 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.pre-commit-config.yaml +15 -11
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/CHANGELOG.md +34 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/PKG-INFO +8 -17
- anemoi_datasets-0.5.0/docs/building/incremental.rst +120 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/images.pptx +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/index.rst +6 -0
- anemoi_datasets-0.5.0/docs/using/code/fill_missing_gaps_.py +1 -0
- anemoi_datasets-0.5.0/docs/using/code/frequency2_.py +1 -0
- anemoi_datasets-0.5.0/docs/using/code/iterating_missing_dates1_.py +4 -0
- anemoi_datasets-0.5.0/docs/using/code/iterating_missing_dates2_.py +9 -0
- anemoi_datasets-0.5.0/docs/using/code/iterating_missing_dates3_.py +2 -0
- anemoi_datasets-0.5.0/docs/using/code/missing_dates_.py +1 -0
- anemoi_datasets-0.5.0/docs/using/code/rescale_.py +30 -0
- anemoi_datasets-0.5.0/docs/using/code/xy1_.py +5 -0
- anemoi_datasets-0.5.0/docs/using/code/xy2_.py +4 -0
- anemoi_datasets-0.5.0/docs/using/code/zip_xy_.py +9 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/combining.rst +28 -1
- anemoi_datasets-0.5.0/docs/using/images/cutout-5.png +0 -0
- anemoi_datasets-0.5.0/docs/using/images/cutout-6.png +0 -0
- anemoi_datasets-0.5.0/docs/using/images/skip-missing.png +0 -0
- anemoi_datasets-0.5.0/docs/using/missing.rst +78 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/other.rst +0 -16
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/selecting.rst +25 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/subsetting.rst +11 -1
- anemoi_datasets-0.5.0/docs/using/zip.rst +64 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/pyproject.toml +12 -18
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/_version.py +2 -2
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/cleanup.py +44 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/create.py +52 -21
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/finalise-additions.py +45 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/finalise.py +39 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/init-additions.py +45 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/init.py +67 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/inspect.py +1 -1
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/load-additions.py +47 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/load.py +47 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/commands/patch.py +39 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/__init__.py +1015 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/check.py +5 -3
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/config.py +54 -2
- 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.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/mars.py +9 -3
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/__init__.py +12 -2
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/coordinates.py +7 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/field.py +8 -2
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/fieldlist.py +0 -2
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/flavour.py +21 -1
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/metadata.py +40 -40
- anemoi_datasets-0.5.0/src/anemoi/datasets/create/functions/sources/xarray/time.py +131 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/variable.py +15 -38
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/input.py +62 -39
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/persistent.py +1 -1
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/statistics/__init__.py +39 -23
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/utils.py +6 -2
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/__init__.py +1 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/concat.py +46 -2
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/dataset.py +119 -34
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/debug.py +5 -1
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/forwards.py +17 -8
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/grids.py +17 -3
- anemoi_datasets-0.5.0/src/anemoi/datasets/data/interpolate.py +133 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/masked.py +2 -2
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/misc.py +56 -66
- anemoi_datasets-0.5.0/src/anemoi/datasets/data/missing.py +240 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/data/rescale.py +147 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/select.py +7 -1
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/stores.py +23 -10
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/subset.py +47 -5
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/unchecked.py +20 -22
- anemoi_datasets-0.5.0/src/anemoi/datasets/data/xy.py +125 -0
- anemoi_datasets-0.5.0/src/anemoi/datasets/dates/__init__.py +242 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/dates/groups.py +85 -20
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/grids.py +66 -48
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/PKG-INFO +8 -17
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/SOURCES.txt +44 -3
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/requires.txt +8 -17
- anemoi_datasets-0.5.0/tests/create/run.sh +20 -0
- anemoi_datasets-0.5.0/tests/create/test_create.py +257 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/test_chunks.py +4 -1
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/test_data.py +22 -5
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/xarray/test_kerchunk.py +4 -1
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/xarray/test_netcdf.py +2 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/xarray/test_opendap.py +6 -1
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/xarray/test_zarr.py +48 -4
- anemoi_datasets-0.5.0/tools/upload-sample-dataset.py +41 -0
- anemoi_datasets-0.4.4/.github/workflows/python-publish.yml +0 -74
- anemoi_datasets-0.4.4/docs/building/syntax.rst +0 -6
- anemoi_datasets-0.4.4/src/anemoi/datasets/create/__init__.py +0 -202
- anemoi_datasets-0.4.4/src/anemoi/datasets/create/functions/sources/grib.py +0 -59
- anemoi_datasets-0.4.4/src/anemoi/datasets/create/functions/sources/hindcasts.py +0 -120
- anemoi_datasets-0.4.4/src/anemoi/datasets/create/functions/sources/xarray/time.py +0 -98
- anemoi_datasets-0.4.4/src/anemoi/datasets/create/loaders.py +0 -936
- anemoi_datasets-0.4.4/src/anemoi/datasets/dates/__init__.py +0 -213
- anemoi_datasets-0.4.4/tests/create/test_create.py +0 -239
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.github/ci-config.yml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.github/workflows/label-public-pr.yml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.readthedocs.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/.vscode/spellright.dict +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/LICENSE +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/README.md +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/Makefile +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/_static/logo.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/_static/style.css +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/_templates/.gitkeep +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/apply-fmt.sh +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/advanced-options.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/filters/empty.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/filters/noop.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/filters/rename.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/filters/rotate_winds.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/filters/select.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/filters/unrotate_winds.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/filters.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/handling-missing-dates.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/handling-missing-values.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/introduction.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/naming-variables.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/operations.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/accumulations.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/accumulations1.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/accumulations2.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/forcings.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/forcings.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/grib.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/hindcasts.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/hindcasts.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/mars.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/mars1.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/mars2.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/netcdf.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/netcdf.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/opendap.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/opendap.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/recentre.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-kerchunk.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-kerchunk.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-kerchunk.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-zarr.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/xarray-zarr.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib1.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib2.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib3.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/grib4.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/yaml/recentre.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/zenodo.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources/zenodo.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/sources.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/statistics.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/syntax.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/Makefile +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/building1.txt +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/building1.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/building2.txt +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/building2.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/building3.txt +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/building3.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/concat.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/input.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/missing_dates.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/nan.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/building/yaml/pipe.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/check-index.sh +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/cli/compare.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/cli/copy.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/cli/create.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/cli/inspect.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/cli/introduction.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/cli/scan.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/conf.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/installing.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/overview.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/overview_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/schemas/matrix.excalidraw +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/schemas/matrix.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/schemas/overview.excalidraw +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/schemas/overview.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/schemas/recipe.excalidraw +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/schemas/recipe.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/area1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/area2_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/chain_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/combine_example.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/concat1.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/cutout_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/drop_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/end_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/ensembles1_.py +0 -0
- /anemoi_datasets-0.4.4/docs/using/code/frequency_.py → /anemoi_datasets-0.5.0/docs/using/code/frequency1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/grids1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/join1.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/matching0_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/matching1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/matching2_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/matching3_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/matching4_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/misc1.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/misc2.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/missing_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_cloud.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_combine1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_combine2_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_complex.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_dict_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_first_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_list_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_name.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_other.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_path.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/open_yaml_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/rename_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/reorder1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/reorder2_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/select1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/select2_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/shuffle_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/some_attributes_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/start_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/statistics_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/subset_example.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/thinning_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/zip1_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/code/zip2_.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/configuration.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/configuration.toml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/grids.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/area-1.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/concat.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/cutout-1.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/cutout-2.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/cutout-3.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/cutout-4.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/join.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/overlay.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/thinning-after.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/images/thinning-before.png +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/introduction.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/matching.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/methods.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/miscellaneous.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/opening.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/docs/using/statistics.rst +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/setup.cfg +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/__init__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/__main__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/__init__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/compare.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/copy.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/commands/scan.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/compute/__init__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/compute/recentre.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/chunks.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/__init__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/__init__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/empty.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/noop.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/rename.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/rotate_winds.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/filters/unrotate_winds.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/__init__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/accumulations.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/constants.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/empty.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/forcings.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/netcdf.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/opendap.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/recentre.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/source.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/tendencies.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray/grid.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray_kerchunk.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/xarray_zarr.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/functions/sources/zenodo.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/patch.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/size.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/statistics/summary.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/template.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/trace.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/writer.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/create/zarr.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/debug.css +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/ensemble.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/indexing.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/join.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/data/statistics.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi/datasets/utils/__init__.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create/concat.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create/data_sources.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create/join.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create/missing.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create/nan.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create/pipe.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create/recentre.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create-perturbations-full.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/create-shift.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/test_dates.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tests/test_indexing.py +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tools/.gitignore +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tools/examples/Makefile +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tools/grids/Makefile +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tools/grids/grids.ipynb +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tools/grids/grids1.yaml +0 -0
- {anemoi_datasets-0.4.4 → anemoi_datasets-0.5.0}/tools/grids/grids2.yaml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
CHANGELOG.md merge=union
|
|
@@ -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
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# .github/workflows/update-changelog.yaml
|
|
2
|
+
name: "Update Changelog"
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
release:
|
|
6
|
+
types: [released]
|
|
7
|
+
workflow_dispatch: ~
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
pull-requests: write
|
|
11
|
+
contents: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
update:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout code
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
ref: ${{ github.event.release.target_commitish }}
|
|
22
|
+
|
|
23
|
+
- name: Update Changelog
|
|
24
|
+
uses: stefanzweifel/changelog-updater-action@v1
|
|
25
|
+
with:
|
|
26
|
+
latest-version: ${{ github.event.release.tag_name }}
|
|
27
|
+
heading-text: ${{ github.event.release.name }}
|
|
28
|
+
|
|
29
|
+
- name: Create Pull Request
|
|
30
|
+
uses: peter-evans/create-pull-request@v6
|
|
31
|
+
with:
|
|
32
|
+
branch: docs/changelog-update-${{ github.event.release.tag_name }}
|
|
33
|
+
title: '[Changelog] Update to ${{ github.event.release.tag_name }}'
|
|
34
|
+
add-paths: |
|
|
35
|
+
CHANGELOG.md
|
|
@@ -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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This workflow will upload a Python Package using Twine when a release is created
|
|
2
|
+
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
|
|
3
|
+
|
|
4
|
+
name: Upload Python Package
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
release:
|
|
8
|
+
types: [created]
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
quality:
|
|
12
|
+
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-precommit-run.yml@v2
|
|
13
|
+
with:
|
|
14
|
+
skip-hooks: "no-commit-to-branch"
|
|
15
|
+
|
|
16
|
+
checks:
|
|
17
|
+
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.9"
|
|
20
|
+
|
|
21
|
+
deploy:
|
|
22
|
+
needs: [checks, quality]
|
|
23
|
+
uses: ecmwf-actions/reusable-workflows/.github/workflows/cd-pypi.yml@v2
|
|
24
|
+
secrets: inherit
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This workflow will upload a Python Package using Twine when a release is created
|
|
2
|
+
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
|
|
3
|
+
|
|
4
|
+
name: Code Quality checks for PRs
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
pull_request:
|
|
9
|
+
types: [opened, synchronize, reopened]
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
quality:
|
|
13
|
+
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-precommit-run.yml@v2
|
|
14
|
+
with:
|
|
15
|
+
skip-hooks: "no-commit-to-branch"
|
|
16
|
+
|
|
17
|
+
checks:
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ["3.9", "3.10"]
|
|
21
|
+
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ matrix.python-version }}
|
|
@@ -120,6 +120,7 @@ celerybeat.pid
|
|
|
120
120
|
*.sage.py
|
|
121
121
|
|
|
122
122
|
# Environments
|
|
123
|
+
.envrc
|
|
123
124
|
.env
|
|
124
125
|
.venv
|
|
125
126
|
env/
|
|
@@ -188,3 +189,8 @@ _build/
|
|
|
188
189
|
*.sync
|
|
189
190
|
*.dot
|
|
190
191
|
_dev/
|
|
192
|
+
*.to_upload
|
|
193
|
+
*.tmp
|
|
194
|
+
test.ipynb
|
|
195
|
+
*tmp_data/
|
|
196
|
+
tempCodeRunnerFile.python
|
|
@@ -20,8 +20,14 @@ 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
|
-
rev: 24.
|
|
30
|
+
rev: 24.8.0
|
|
25
31
|
hooks:
|
|
26
32
|
- id: black
|
|
27
33
|
args: [--line-length=120]
|
|
@@ -34,18 +40,18 @@ repos:
|
|
|
34
40
|
- --force-single-line-imports
|
|
35
41
|
- --profile black
|
|
36
42
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
37
|
-
rev: v0.4
|
|
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
|
-
rev: "2.
|
|
69
|
+
rev: "2.2.3"
|
|
69
70
|
hooks:
|
|
70
71
|
- id: pyproject-fmt
|
|
72
|
+
|
|
73
|
+
ci:
|
|
74
|
+
autoupdate_schedule: monthly
|
|
@@ -12,8 +12,39 @@ Keep it human-readable, your future self will thank you!
|
|
|
12
12
|
|
|
13
13
|
### Added
|
|
14
14
|
|
|
15
|
+
- New `rescale` keyword in `open_dataset` to change units of variables #36
|
|
16
|
+
- Simplify imports
|
|
17
|
+
|
|
15
18
|
### Changed
|
|
16
19
|
|
|
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
|
|
26
|
+
|
|
27
|
+
### Removed
|
|
28
|
+
- pytest for notebooks
|
|
29
|
+
|
|
30
|
+
## [0.4.5]
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- New `interpolate_frequency` keyword in `open_dataset`
|
|
35
|
+
- CI workflow to update the changelog on release
|
|
36
|
+
- adds the reusable cd pypi workflow
|
|
37
|
+
- merge strategy for changelog in .gitattributes #25
|
|
38
|
+
- adds ci hpc config (#43)
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- update CI to reusable workflows for PRs and releases
|
|
43
|
+
- Support sub-hourly datasets.
|
|
44
|
+
- Change negative variance detection to make it less restrictive
|
|
45
|
+
- Fix cutout bug that left some global grid points in the lam part
|
|
46
|
+
- Fix bug in computing missing dates in cutout option
|
|
47
|
+
|
|
17
48
|
### Removed
|
|
18
49
|
|
|
19
50
|
## [0.4.4] Bug fixes
|
|
@@ -54,6 +85,9 @@ Keep it human-readable, your future self will thank you!
|
|
|
54
85
|
- combine datasets
|
|
55
86
|
|
|
56
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
|
|
57
91
|
[0.4.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.3.0...0.4.0
|
|
58
92
|
[0.3.0]: https://github.com/ecmwf/anemoi-datasets/compare/0.2.0...0.3.0
|
|
59
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
|
|
@@ -223,14 +223,14 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
223
223
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
224
224
|
Requires-Python: >=3.9
|
|
225
225
|
License-File: LICENSE
|
|
226
|
-
Requires-Dist: anemoi-utils[provenance]>=0.3.
|
|
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"
|
|
@@ -241,7 +241,6 @@ 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"
|
|
@@ -250,7 +249,6 @@ 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"
|
|
@@ -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"
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
.. _create-incremental:
|
|
2
|
+
|
|
3
|
+
##################################
|
|
4
|
+
Creating a dataset incrementally
|
|
5
|
+
##################################
|
|
6
|
+
|
|
7
|
+
This guide shows how to create a dataset incrementally. This is useful
|
|
8
|
+
when you have a large dataset that you want to load in parts, to avoid
|
|
9
|
+
running out of memory. Because parts can be loaded in parallel, this can
|
|
10
|
+
also speed up the process.
|
|
11
|
+
|
|
12
|
+
**********************
|
|
13
|
+
Building the dataset
|
|
14
|
+
**********************
|
|
15
|
+
|
|
16
|
+
You first need to create an empty dataset with the `init` command, which
|
|
17
|
+
is similar to the `create` command. If there is already a dataset with
|
|
18
|
+
the same name, you can use the `--overwrite` flag to replace it. The
|
|
19
|
+
`init` command requires a YAML file with the dataset configuration and a
|
|
20
|
+
name for the dataset. The content of the YAML file will be copied into
|
|
21
|
+
the dataset, so it will not be needed by following commands.
|
|
22
|
+
|
|
23
|
+
.. code:: bash
|
|
24
|
+
|
|
25
|
+
anemoi-datasets init dataset.yaml dataset.zarr --overwrite
|
|
26
|
+
|
|
27
|
+
You can then load the dataset in parts with the `load` command. You just
|
|
28
|
+
pass which part you want to load with the `--part` flag.
|
|
29
|
+
|
|
30
|
+
.. note::
|
|
31
|
+
|
|
32
|
+
Parts are numbered from 1 to N, where N is the total number of parts
|
|
33
|
+
(unlike Python, where they would start at zero). This is to make it
|
|
34
|
+
easier to use the `seq(1)` command in bash.
|
|
35
|
+
|
|
36
|
+
You can load multiple parts in any order and in parallel by running the
|
|
37
|
+
`load` command in different terminals, slurm jobs or any other
|
|
38
|
+
parallelisation tool. The library relies on the `zarr` library to handle
|
|
39
|
+
concurrent writes.
|
|
40
|
+
|
|
41
|
+
.. code:: bash
|
|
42
|
+
|
|
43
|
+
anemoi-datasets load dataset.zarr --part 1/20
|
|
44
|
+
|
|
45
|
+
.. code:: bash
|
|
46
|
+
|
|
47
|
+
anemoi-datasets load dataset.zarr --part 2/20
|
|
48
|
+
|
|
49
|
+
... and so on ... until:
|
|
50
|
+
|
|
51
|
+
.. code:: bash
|
|
52
|
+
|
|
53
|
+
anemoi-datasets load dataset.zarr --part 20/20
|
|
54
|
+
|
|
55
|
+
Once you have loaded all the parts, you can finalise the dataset with
|
|
56
|
+
the `finalise` command. This will write the metadata and the attributes
|
|
57
|
+
to the dataset, and consolidate the statistics and cleanup some
|
|
58
|
+
temporary files.
|
|
59
|
+
|
|
60
|
+
.. code:: bash
|
|
61
|
+
|
|
62
|
+
anemoi-datasets finalise dataset.zarr
|
|
63
|
+
|
|
64
|
+
You can follow the progress of the dataset creation with the `inspect`
|
|
65
|
+
command. This will show you the percentage of parts loaded.
|
|
66
|
+
|
|
67
|
+
.. code:: bash
|
|
68
|
+
|
|
69
|
+
anemoi-datasets inspect dataset.zarr
|
|
70
|
+
|
|
71
|
+
It is possible that some temporary files are left behind at the end of
|
|
72
|
+
the process. You can clean them up with the `cleanup` command.
|
|
73
|
+
|
|
74
|
+
.. code:: bash
|
|
75
|
+
|
|
76
|
+
anemoi-datasets cleanup dataset.zarr
|
|
77
|
+
|
|
78
|
+
***********************
|
|
79
|
+
Additional statistics
|
|
80
|
+
***********************
|
|
81
|
+
|
|
82
|
+
`anemoi-datasets` can compute additional statistics for the dataset,
|
|
83
|
+
mostly statistics of the increments between two dates (e.g. 6h or 12h).
|
|
84
|
+
|
|
85
|
+
To add statistics for 6h increments:
|
|
86
|
+
|
|
87
|
+
.. code:: bash
|
|
88
|
+
|
|
89
|
+
anemoi-datasets init-additions dataset.zarr --delta 6h
|
|
90
|
+
anemoi-datasets load-additions dataset.zarr --part 1/2 --delta 6h
|
|
91
|
+
anemoi-datasets load-additions dataset.zarr --part 2/2 --delta 6h
|
|
92
|
+
anemoi-datasets finalise-additions dataset.zarr --delta 6h
|
|
93
|
+
|
|
94
|
+
To add statistics for 12h increments:
|
|
95
|
+
|
|
96
|
+
.. code:: bash
|
|
97
|
+
|
|
98
|
+
anemoi-datasets init-additions dataset.zarr --delta 12h
|
|
99
|
+
anemoi-datasets load-additions dataset.zarr --part 1/2 --delta 12h
|
|
100
|
+
anemoi-datasets load-additions dataset.zarr --part 2/2 --delta 12h
|
|
101
|
+
anemoi-datasets finalise-additions dataset.zarr --delta 12h
|
|
102
|
+
|
|
103
|
+
If this process leaves temporary files behind, you can clean them up
|
|
104
|
+
with the `cleanup` command.
|
|
105
|
+
|
|
106
|
+
.. code:: bash
|
|
107
|
+
|
|
108
|
+
anemoi-datasets cleanup dataset.zarr
|
|
109
|
+
|
|
110
|
+
********************************
|
|
111
|
+
Patching the dataset metadata:
|
|
112
|
+
********************************
|
|
113
|
+
|
|
114
|
+
The following command will patch the dataset metadata. In particular, it
|
|
115
|
+
will remove any references to the YAML file used to initialise the
|
|
116
|
+
dataset.
|
|
117
|
+
|
|
118
|
+
.. code:: bash
|
|
119
|
+
|
|
120
|
+
anemoi-datasets patch dataset.zarr
|
|
Binary file
|
|
@@ -44,7 +44,9 @@ datasets <building-introduction>`.
|
|
|
44
44
|
- :doc:`using/combining`
|
|
45
45
|
- :doc:`using/selecting`
|
|
46
46
|
- :doc:`using/grids`
|
|
47
|
+
- :doc:`using/zip`
|
|
47
48
|
- :doc:`using/statistics`
|
|
49
|
+
- :doc:`using/missing`
|
|
48
50
|
- :doc:`using/other`
|
|
49
51
|
- :doc:`using/matching`
|
|
50
52
|
- :doc:`using/miscellaneous`
|
|
@@ -62,7 +64,9 @@ datasets <building-introduction>`.
|
|
|
62
64
|
using/combining
|
|
63
65
|
using/selecting
|
|
64
66
|
using/grids
|
|
67
|
+
using/zip
|
|
65
68
|
using/statistics
|
|
69
|
+
using/missing
|
|
66
70
|
using/other
|
|
67
71
|
using/matching
|
|
68
72
|
using/miscellaneous
|
|
@@ -75,6 +79,7 @@ datasets <building-introduction>`.
|
|
|
75
79
|
- :doc:`building/sources`
|
|
76
80
|
- :doc:`building/filters`
|
|
77
81
|
- :doc:`building/statistics`
|
|
82
|
+
- :doc:`building/incremental`
|
|
78
83
|
|
|
79
84
|
.. toctree::
|
|
80
85
|
:maxdepth: 1
|
|
@@ -89,6 +94,7 @@ datasets <building-introduction>`.
|
|
|
89
94
|
building/handling-missing-dates
|
|
90
95
|
building/handling-missing-values
|
|
91
96
|
building/statistics
|
|
97
|
+
building/incremental
|
|
92
98
|
building/advanced-options
|
|
93
99
|
|
|
94
100
|
**Command line tool**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ds = open_dataset(concat=[dataset1, dataset2, ...], fill_missing_gaps=True)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ds = open_dataset(dataset, interpolate_frequency="10m")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ds = open_dataset(dataset, missing_dates=["2010-01-01T12:00:00", "2010-02-01T12:00:00"])
|
|
@@ -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
|
+
)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
input = open_dataset(zip=[low_res_dataset, high_res_orography_dataset])
|
|
2
|
+
output = open_dataset(high_res_dataset)
|
|
3
|
+
|
|
4
|
+
ds = open_dataset(x=input, y=output)
|
|
5
|
+
|
|
6
|
+
for (x, orography), y in ds:
|
|
7
|
+
y_hat = model(x, orography)
|
|
8
|
+
loss = criterion(y_hat, y)
|
|
9
|
+
loss.backward()
|
|
@@ -48,7 +48,9 @@ attempt to combine them:
|
|
|
48
48
|
You can concatenate two or more datasets along the dates dimension. The
|
|
49
49
|
package will check that all datasets are compatible (same resolution,
|
|
50
50
|
same variables, etc.). Currently, the datasets must be given in
|
|
51
|
-
chronological order with no gaps between them.
|
|
51
|
+
chronological order with no gaps between them. If you want to
|
|
52
|
+
concatenate datasets that have gaps between them, check the
|
|
53
|
+
:ref:`fill_missing_gaps <fill_missing_gaps>` option.
|
|
52
54
|
|
|
53
55
|
.. literalinclude:: code/concat1.py
|
|
54
56
|
:language: python
|
|
@@ -155,3 +157,28 @@ cutout:
|
|
|
155
157
|
:width: 75%
|
|
156
158
|
:align: center
|
|
157
159
|
:alt: Cutout
|
|
160
|
+
|
|
161
|
+
You can also pass a `min_distance_km` parameter to the `cutout`
|
|
162
|
+
function. Any grid points in the global dataset that are closer than
|
|
163
|
+
this distance to a grid point in the LAM dataset will be removed. This
|
|
164
|
+
can be useful to control the behaviour of the algorithm at the edge of
|
|
165
|
+
the cutout area. If no value is provided, the algorithm will compute its
|
|
166
|
+
value as the smallest distance between two grid points in the global
|
|
167
|
+
dataset over the cutout area. If you do not want to use this feature,
|
|
168
|
+
you can set `min_distance_km=0`, or provide your own value.
|
|
169
|
+
|
|
170
|
+
The plots below illustrate how the cutout differs if `min_distance_km`
|
|
171
|
+
is not given (top) or if `min_distance_km` is is set to `0` (bottom).
|
|
172
|
+
The difference can be seen at the boundary between the two grids:
|
|
173
|
+
|
|
174
|
+
.. image:: images/cutout-5.png
|
|
175
|
+
:align: center
|
|
176
|
+
:alt: Cutout
|
|
177
|
+
|
|
178
|
+
.. image:: images/cutout-6.png
|
|
179
|
+
:align: center
|
|
180
|
+
:alt: Cutout
|
|
181
|
+
|
|
182
|
+
To debug the combination, you can pass `plot=True` to the `cutout`
|
|
183
|
+
function (when running from a Notebook), of use `plot="prefix"` to save
|
|
184
|
+
the plots to series of PNG files in the current directory.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|