anemoi-datasets 0.5.27__tar.gz → 0.5.29__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.
Files changed (441) hide show
  1. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/downstream-ci-hpc.yml +2 -0
  2. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/python-pull-request.yml +1 -1
  3. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.gitignore +5 -0
  4. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.pre-commit-config.yaml +23 -28
  5. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.readthedocs.yaml +3 -3
  6. anemoi_datasets-0.5.29/.release-please-manifest.json +3 -0
  7. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/CHANGELOG.md +50 -0
  8. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/CONTRIBUTORS.md +2 -2
  9. {anemoi_datasets-0.5.27/src/anemoi_datasets.egg-info → anemoi_datasets-0.5.29}/PKG-INFO +9 -6
  10. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/README.md +18 -4
  11. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/Makefile +1 -1
  12. anemoi_datasets-0.5.29/docs/building/filters.rst +10 -0
  13. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/introduction.rst +1 -1
  14. anemoi_datasets-0.5.29/docs/building/sources/accumulate.rst +158 -0
  15. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/repeated-dates.rst +1 -1
  16. anemoi_datasets-0.5.29/docs/building/sources/yaml/accumulations-from-previous-step-mars-era5-1.yaml +12 -0
  17. anemoi_datasets-0.5.29/docs/building/sources/yaml/accumulations-from-previous-step-mars-era5-2.yaml +16 -0
  18. anemoi_datasets-0.5.29/docs/building/sources/yaml/accumulations-from-previous-step-mars-era5-3.yaml +14 -0
  19. anemoi_datasets-0.5.29/docs/building/sources/yaml/accumulations-from-start-mars-ecmwf-operational-forecast-1.yaml +12 -0
  20. anemoi_datasets-0.5.29/docs/building/sources/yaml/accumulations-from-start-mars-ecmwf-operational-forecast-2.yaml +16 -0
  21. anemoi_datasets-0.5.29/docs/building/sources/yaml/accumulations-from-start-mars-ecmwf-operational-forecast-3.yaml +14 -0
  22. anemoi_datasets-0.5.29/docs/building/sources/yaml/accumulations-grib-index.yaml +7 -0
  23. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources.rst +1 -1
  24. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/create.rst +1 -1
  25. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/grib-index.rst +1 -1
  26. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/inspect.rst +1 -1
  27. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/introduction.rst +3 -3
  28. anemoi_datasets-0.5.27/docs/usage/getting_started.rst → anemoi_datasets-0.5.29/docs/howtos/create/00-redo-sample-dataset.rst +4 -4
  29. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/01-grib-data.rst +20 -5
  30. anemoi_datasets-0.5.29/docs/howtos/create/05-create-accumulations.rst +129 -0
  31. anemoi_datasets-0.5.29/docs/howtos/create/yaml/grib-recipe6.yaml +13 -0
  32. anemoi_datasets-0.5.29/docs/howtos/create/yaml/grib-recipe7.yaml +13 -0
  33. anemoi_datasets-0.5.29/docs/howtos/create/yaml/recipe-accumulate-era.yaml +17 -0
  34. anemoi_datasets-0.5.29/docs/howtos/create/yaml/recipe-accumulate-gribindex.yaml +18 -0
  35. anemoi_datasets-0.5.29/docs/howtos/create/yaml/recipe-accumulation-era.yaml +14 -0
  36. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/introduction.rst +1 -1
  37. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/index.rst +4 -17
  38. anemoi_datasets-0.5.29/docs/installing.rst +18 -0
  39. anemoi_datasets-0.5.29/docs/modules/dataset.rst +8 -0
  40. anemoi_datasets-0.5.29/docs/scripts/Makefile +8 -0
  41. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/scripts/api_build.sh +1 -1
  42. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/combining.rst +13 -13
  43. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/grids.rst +22 -3
  44. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/missing.rst +1 -1
  45. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/opening.rst +1 -1
  46. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/pyproject.toml +10 -7
  47. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/_version.py +3 -3
  48. anemoi_datasets-0.5.29/src/anemoi/datasets/commands/recipe/__init__.py +93 -0
  49. anemoi_datasets-0.5.29/src/anemoi/datasets/commands/recipe/format.py +55 -0
  50. anemoi_datasets-0.5.29/src/anemoi/datasets/commands/recipe/migrate.py +555 -0
  51. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/__init__.py +46 -13
  52. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/config.py +52 -53
  53. anemoi_datasets-0.5.29/src/anemoi/datasets/create/input/__init__.py +85 -0
  54. anemoi_datasets-0.5.29/src/anemoi/datasets/create/input/action.py +317 -0
  55. anemoi_datasets-0.5.29/src/anemoi/datasets/create/input/context/__init__.py +71 -0
  56. anemoi_datasets-0.5.29/src/anemoi/datasets/create/input/context/field.py +54 -0
  57. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/input/data_sources.py +2 -1
  58. anemoi_datasets-0.5.29/src/anemoi/datasets/create/input/misc.py +57 -0
  59. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/input/repeated_dates.py +0 -114
  60. anemoi_datasets-0.5.29/src/anemoi/datasets/create/input/result/__init__.py +17 -0
  61. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/result.py → anemoi_datasets-0.5.29/src/anemoi/datasets/create/input/result/field.py +10 -92
  62. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/accumulate.py +517 -0
  63. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/accumulate_utils/__init__.py +8 -0
  64. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/accumulate_utils/covering_intervals.py +221 -0
  65. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/accumulate_utils/field_to_interval.py +149 -0
  66. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/accumulate_utils/interval_generators.py +321 -0
  67. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/anemoi_dataset.py +77 -0
  68. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/constants.py +52 -0
  69. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/empty.py +40 -0
  70. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/forcings.py +42 -0
  71. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/grib.py +166 -0
  72. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/grib_index.py +102 -54
  73. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/hindcasts.py +94 -0
  74. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/legacy.py +46 -0
  75. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/mars.py +159 -154
  76. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/netcdf.py +45 -0
  77. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/opendap.py +45 -0
  78. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/recentre.py +42 -41
  79. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/repeated_dates.py +44 -0
  80. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/source.py +47 -0
  81. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/__init__.py +30 -24
  82. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/coordinates.py +1 -4
  83. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/field.py +4 -4
  84. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/flavour.py +2 -2
  85. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/xarray_support/patch.py +305 -0
  86. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/xarray_zarr.py +44 -0
  87. anemoi_datasets-0.5.29/src/anemoi/datasets/create/sources/zenodo.py +71 -0
  88. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/utils.py +0 -42
  89. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/complement.py +26 -17
  90. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/dataset.py +12 -0
  91. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/grids.py +0 -152
  92. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/masked.py +74 -13
  93. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/missing.py +5 -0
  94. anemoi_datasets-0.5.29/src/anemoi/datasets/data/rolling_average.py +141 -0
  95. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/stores.py +7 -9
  96. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/dates/__init__.py +2 -0
  97. anemoi_datasets-0.5.29/src/anemoi/datasets/dumper.py +76 -0
  98. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/grids.py +1 -178
  99. anemoi_datasets-0.5.29/src/anemoi/datasets/schemas/recipe.json +131 -0
  100. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29/src/anemoi_datasets.egg-info}/PKG-INFO +9 -6
  101. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi_datasets.egg-info/SOURCES.txt +133 -112
  102. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi_datasets.egg-info/requires.txt +7 -2
  103. anemoi_datasets-0.5.29/tests/create/accumulate-mars-ea-enda.yaml +30 -0
  104. anemoi_datasets-0.5.29/tests/create/accumulate-mars-ea-oper-2.yaml +33 -0
  105. anemoi_datasets-0.5.29/tests/create/accumulate-mars-ea-oper.yaml +25 -0
  106. anemoi_datasets-0.5.29/tests/create/accumulate-mars-ecland.yaml +28 -0
  107. anemoi_datasets-0.5.29/tests/create/accumulate-mars-l5-oper.yaml +27 -0
  108. anemoi_datasets-0.5.29/tests/create/accumulate-mars-od-oper.yaml +31 -0
  109. anemoi_datasets-0.5.29/tests/create/accumulate-mars-reset.yaml +56 -0
  110. anemoi_datasets-0.5.29/tests/create/accumulate-mars-rr-oper.yaml +35 -0
  111. anemoi_datasets-0.5.29/tests/create/concat.yaml +35 -0
  112. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/join.yaml +11 -5
  113. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/missing.yaml +3 -0
  114. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/nan.yaml +3 -0
  115. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/pipe.yaml +10 -3
  116. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/recentre.yaml +20 -9
  117. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/regrid.yaml +3 -0
  118. anemoi_datasets-0.5.29/tests/create/repeated-dates.yaml +31 -0
  119. anemoi_datasets-0.5.29/tests/create/test_covering_intervals.py +351 -0
  120. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/test_create.py +34 -13
  121. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/test_sources.py +182 -6
  122. anemoi_datasets-0.5.29/tests/create/utils/checks.py +343 -0
  123. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/utils/create.py +1 -4
  124. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/test_data.py +76 -0
  125. anemoi_datasets-0.5.27/.release-please-manifest.json +0 -3
  126. anemoi_datasets-0.5.27/docs/datasets/building/sources/accumulations.rst +0 -67
  127. anemoi_datasets-0.5.27/docs/datasets/building/sources/yaml/accumulations1.yaml +0 -6
  128. anemoi_datasets-0.5.27/docs/datasets/building/sources/yaml/accumulations2.yaml +0 -6
  129. anemoi_datasets-0.5.27/docs/datasets/introduction.rst +0 -21
  130. anemoi_datasets-0.5.27/docs/installing.rst +0 -85
  131. anemoi_datasets-0.5.27/docs/modules/dataset.rst +0 -10
  132. anemoi_datasets-0.5.27/docs/modules/filters.rst +0 -5
  133. anemoi_datasets-0.5.27/docs/modules/sources.rst +0 -5
  134. anemoi_datasets-0.5.27/src/anemoi/datasets/create/filter.py +0 -47
  135. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/__init__.py +0 -105
  136. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/action.py +0 -257
  137. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/concat.py +0 -161
  138. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/context.py +0 -86
  139. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/empty.py +0 -53
  140. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/filter.py +0 -117
  141. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/function.py +0 -232
  142. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/join.py +0 -129
  143. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/misc.py +0 -128
  144. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/pipe.py +0 -66
  145. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/step.py +0 -173
  146. anemoi_datasets-0.5.27/src/anemoi/datasets/create/input/template.py +0 -161
  147. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/accumulations.py +0 -1062
  148. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/accumulations2.py +0 -647
  149. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/anemoi_dataset.py +0 -73
  150. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/constants.py +0 -51
  151. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/empty.py +0 -36
  152. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/forcings.py +0 -41
  153. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/grib.py +0 -146
  154. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/hindcasts.py +0 -93
  155. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/legacy.py +0 -98
  156. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/netcdf.py +0 -41
  157. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/opendap.py +0 -41
  158. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/source.py +0 -69
  159. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/tendencies.py +0 -198
  160. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/xarray_support/patch.py +0 -132
  161. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/xarray_zarr.py +0 -40
  162. anemoi_datasets-0.5.27/src/anemoi/datasets/create/sources/zenodo.py +0 -67
  163. anemoi_datasets-0.5.27/tests/create/accumulation.yaml +0 -20
  164. anemoi_datasets-0.5.27/tests/create/concat.yaml +0 -32
  165. anemoi_datasets-0.5.27/tests/create/utils/compare.py +0 -219
  166. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.gitattributes +0 -0
  167. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/CODEOWNERS +0 -0
  168. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  169. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/ci-hpc-config.yml +0 -0
  170. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/dependabot.yml +0 -0
  171. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/labeler.yml +0 -0
  172. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/pull_request_template.md +0 -0
  173. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/pr-conventional-commit.yml +0 -0
  174. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/pr-label-ats.yml +0 -0
  175. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/pr-label-conventional-commits.yml +0 -0
  176. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/pr-label-file-based.yml +0 -0
  177. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/pr-label-public.yml +0 -0
  178. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/push-to-private.yml +0 -0
  179. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/python-publish.yml +0 -0
  180. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/readthedocs-pr-update.yml +0 -0
  181. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.github/workflows/release-please.yml +0 -0
  182. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.release-please-config.json +0 -0
  183. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/.vscode/spellright.dict +0 -0
  184. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/LICENSE +0 -0
  185. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/2t_map_example.png +0 -0
  186. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/area-1.png +0 -0
  187. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/concat.png +0 -0
  188. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/cutout-1.png +0 -0
  189. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/cutout-2.png +0 -0
  190. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/cutout-3.png +0 -0
  191. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/cutout-4.png +0 -0
  192. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/cutout-5.png +0 -0
  193. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/cutout-6.png +0 -0
  194. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/join.png +0 -0
  195. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/logo.png +0 -0
  196. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/overlay.png +0 -0
  197. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/schemas/matrix.excalidraw +0 -0
  198. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/schemas/matrix.png +0 -0
  199. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/schemas/overview.excalidraw +0 -0
  200. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/schemas/overview.png +0 -0
  201. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/schemas/recipe.excalidraw +0 -0
  202. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/schemas/recipe.png +0 -0
  203. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/skip-missing.png +0 -0
  204. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/style.css +0 -0
  205. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/thinning-after.png +0 -0
  206. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_static/thinning-before.png +0 -0
  207. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_templates/.gitkeep +0 -0
  208. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/_templates/apidoc/package.rst.jinja +0 -0
  209. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/adr/adr-1.md +0 -0
  210. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/apply-fmt.sh +0 -0
  211. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/advanced-options.rst +0 -0
  212. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/handling-missing-dates.rst +0 -0
  213. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/handling-missing-values.rst +0 -0
  214. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/incremental.rst +0 -0
  215. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/naming-conventions.rst +0 -0
  216. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/naming-variables.rst +0 -0
  217. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/operations.rst +0 -0
  218. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/anemoi-dataset.rst +0 -0
  219. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/cds.rst +0 -0
  220. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/eccc-fstd.rst +0 -0
  221. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/forcings.rst +0 -0
  222. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/grib-index.rst +0 -0
  223. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/grib.rst +0 -0
  224. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/hindcasts.rst +0 -0
  225. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/mars.rst +0 -0
  226. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/netcdf.rst +0 -0
  227. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/opendap.rst +0 -0
  228. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/recentre.rst +0 -0
  229. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/xarray-based.rst +0 -0
  230. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/xarray-kerchunk.py +0 -0
  231. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/xarray-kerchunk.rst +0 -0
  232. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/xarray-zarr.rst +0 -0
  233. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/anemoi-dataset.yaml +0 -0
  234. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/anemoi-zarr-dataset.yaml +0 -0
  235. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/eccc-fstd.yaml +0 -0
  236. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/forcings.yaml +0 -0
  237. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/grib1.yaml +0 -0
  238. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/grib2.yaml +0 -0
  239. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/grib3.yaml +0 -0
  240. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/grib4.yaml +0 -0
  241. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/hindcasts.yaml +0 -0
  242. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/mars-cds.yaml +0 -0
  243. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/mars1.yaml +0 -0
  244. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/mars2.yaml +0 -0
  245. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/netcdf.yaml +0 -0
  246. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/opendap.yaml +0 -0
  247. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/recentre.yaml +0 -0
  248. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/repeated-dates1.yaml +0 -0
  249. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/repeated-dates2.yaml +0 -0
  250. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/repeated-dates3.yaml +0 -0
  251. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/repeated-dates4.yaml +0 -0
  252. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/xarray-based.yaml +0 -0
  253. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/xarray-kerchunk.yaml +0 -0
  254. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/xarray-zarr.yaml +0 -0
  255. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/yaml/zenodo.yaml +0 -0
  256. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/sources/zenodo.rst +0 -0
  257. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/statistics.rst +0 -0
  258. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/building/syntax.yaml +0 -0
  259. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/check-index.sh +0 -0
  260. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/compare-lam.rst +0 -0
  261. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/compare.rst +0 -0
  262. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/copy.rst +0 -0
  263. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/patch.rst +0 -0
  264. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/scan.rst +0 -0
  265. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/cli/validate.rst +0 -0
  266. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/conf.py +0 -0
  267. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/dev/contributing.rst +0 -0
  268. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/02-cf-data.rst +0 -0
  269. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/03-constant-fields.rst +0 -0
  270. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/04-create-with-filter.rst +0 -0
  271. {anemoi_datasets-0.5.27/docs/usage → anemoi_datasets-0.5.29/docs/howtos/create}/yaml/aifs-ea-an-oper-0001-mars-o48-2020-2021-6h-v1.yaml +0 -0
  272. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-flavour1.yaml +0 -0
  273. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-flavour2.yaml +0 -0
  274. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-flavour3.yaml +0 -0
  275. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-flavour4.yaml +0 -0
  276. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-recipe1.yaml +0 -0
  277. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-recipe2.yaml +0 -0
  278. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-recipe3.yaml +0 -0
  279. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-recipe4.yaml +0 -0
  280. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/grib-recipe5.yaml +0 -0
  281. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/netcdf1.yaml +0 -0
  282. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/opendap1.yaml +0 -0
  283. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/recipe-filter1.yaml +0 -0
  284. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/recipe-filter2.yaml +0 -0
  285. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/xarray-flavour1.yaml +0 -0
  286. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/xarray-patch1.yaml +0 -0
  287. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/xarray-patch2.yaml +0 -0
  288. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/zarr1.yaml +0 -0
  289. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/howtos/create/yaml/zarr2.yaml +0 -0
  290. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/01-interpolate-step-dataset-combination.rst +0 -0
  291. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/02-coutout-complement-combination.rst +0 -0
  292. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/code/cutout-complement1.py +0 -0
  293. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/code/interpolate1.py +0 -0
  294. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/code/interpolate2.py +0 -0
  295. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/yaml/cutout-complement1.yaml +0 -0
  296. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/yaml/interpolate1.yaml +0 -0
  297. {anemoi_datasets-0.5.27/docs/howtos/usage → anemoi_datasets-0.5.29/docs/howtos/using}/yaml/interpolate2.yaml +0 -0
  298. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/overview.rst +0 -0
  299. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/pptx/images.pptx +0 -0
  300. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/docs/using/code/trimedge1_.py +0 -0
  301. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/configuration.rst +0 -0
  302. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/configuration.toml +0 -0
  303. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/ensembles.rst +0 -0
  304. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/introduction.rst +0 -0
  305. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/matching.rst +0 -0
  306. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/methods.rst +0 -0
  307. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/miscellaneous.rst +0 -0
  308. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/other.rst +0 -0
  309. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/selecting.rst +0 -0
  310. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/statistics.rst +0 -0
  311. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/subsetting.rst +0 -0
  312. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/using/zip.rst +0 -0
  313. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/Makefile +0 -0
  314. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/building1.txt +0 -0
  315. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/building1.yaml +0 -0
  316. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/building2.txt +0 -0
  317. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/building2.yaml +0 -0
  318. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/building3.txt +0 -0
  319. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/building3.yaml +0 -0
  320. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/concat.yaml +0 -0
  321. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/hindcasts.yaml +0 -0
  322. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/input.yaml +0 -0
  323. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/missing_dates.yaml +0 -0
  324. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/nan.yaml +0 -0
  325. {anemoi_datasets-0.5.27/docs/datasets → anemoi_datasets-0.5.29/docs}/yaml/pipe.yaml +0 -0
  326. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/setup.cfg +0 -0
  327. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/__init__.py +0 -0
  328. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/__main__.py +0 -0
  329. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/check.py +0 -0
  330. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/__init__.py +0 -0
  331. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/check.py +0 -0
  332. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/cleanup.py +0 -0
  333. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/compare-lam.py +0 -0
  334. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/compare.py +0 -0
  335. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/copy.py +0 -0
  336. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/create.py +0 -0
  337. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
  338. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/finalise.py +0 -0
  339. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/grib-index.py +0 -0
  340. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/init-additions.py +0 -0
  341. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/init.py +0 -0
  342. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/inspect.py +0 -0
  343. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/load-additions.py +0 -0
  344. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/load.py +0 -0
  345. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/patch.py +0 -0
  346. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/publish.py +0 -0
  347. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/scan.py +0 -0
  348. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/commands/validate.py +0 -0
  349. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/compute/__init__.py +0 -0
  350. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/compute/recentre.py +0 -0
  351. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/check.py +0 -0
  352. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/chunks.py +0 -0
  353. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/input/trace.py +0 -0
  354. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/patch.py +0 -0
  355. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/persistent.py +0 -0
  356. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/size.py +0 -0
  357. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/source.py +0 -0
  358. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/__init__.py +0 -0
  359. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/eccc_fstd.py +0 -0
  360. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/fdb.py +0 -0
  361. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/patterns.py +0 -0
  362. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/planetary_computer.py +0 -0
  363. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray.py +0 -0
  364. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_kerchunk.py +0 -0
  365. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/README.md +0 -0
  366. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/fieldlist.py +0 -0
  367. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/grid.py +0 -0
  368. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/metadata.py +0 -0
  369. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/time.py +0 -0
  370. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/sources/xarray_support/variable.py +0 -0
  371. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/statistics/__init__.py +0 -0
  372. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/statistics/summary.py +0 -0
  373. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/testing.py +0 -0
  374. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/typing.py +0 -0
  375. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/writer.py +0 -0
  376. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/create/zarr.py +0 -0
  377. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/__init__.py +0 -0
  378. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/concat.py +0 -0
  379. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/debug.css +0 -0
  380. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/debug.py +0 -0
  381. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/ensemble.py +0 -0
  382. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/fill_missing.py +0 -0
  383. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/forwards.py +0 -0
  384. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/indexing.py +0 -0
  385. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/interpolate.py +0 -0
  386. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/join.py +0 -0
  387. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/merge.py +0 -0
  388. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/misc.py +0 -0
  389. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/observations/__init__.py +0 -0
  390. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/observations/legacy_obs_dataset.py +0 -0
  391. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/observations/multi.py +0 -0
  392. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/padded.py +0 -0
  393. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/records/__init__.py +0 -0
  394. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/records/backends/__init__.py +0 -0
  395. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/rescale.py +0 -0
  396. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/select.py +0 -0
  397. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/statistics.py +0 -0
  398. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/subset.py +0 -0
  399. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/unchecked.py +0 -0
  400. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/data/xy.py +0 -0
  401. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/dates/groups.py +0 -0
  402. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/testing.py +0 -0
  403. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi/datasets/validate.py +0 -0
  404. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
  405. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
  406. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
  407. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/conftest.py +0 -0
  408. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/__init__.py +0 -0
  409. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/run.sh +0 -0
  410. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/utils/__init__.py +0 -0
  411. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create/utils/mock_sources.py +0 -0
  412. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create-perturbations-full.yaml +0 -0
  413. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/create-shift.yaml +0 -0
  414. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/test_chunks.py +0 -0
  415. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/test_data_gridded.py +0 -0
  416. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/test_dates.py +0 -0
  417. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/test_indexing.py +0 -0
  418. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/test_records.py +0 -0
  419. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/test_validate.py +0 -0
  420. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/xarray/test_flavour.py +0 -0
  421. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/xarray/test_netcdf.py +0 -0
  422. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/xarray/test_opendap.py +0 -0
  423. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/xarray/test_variable.py +0 -0
  424. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tests/xarray/test_zarr.py +0 -0
  425. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/.gitignore +0 -0
  426. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/build-obs.py +0 -0
  427. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/check-obs.py +0 -0
  428. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/examples/Makefile +0 -0
  429. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
  430. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/Makefile +0 -0
  431. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids.ipynb +0 -0
  432. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids1.yaml +0 -0
  433. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids2.yaml +0 -0
  434. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids3.yaml +0 -0
  435. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids4.yaml +0 -0
  436. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids5.yaml +0 -0
  437. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids6.yaml +0 -0
  438. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids7.yaml +0 -0
  439. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/grids/grids_multilam.ipynb +0 -0
  440. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/make-sample-dataset.py +0 -0
  441. {anemoi_datasets-0.5.27 → anemoi_datasets-0.5.29}/tools/upload-sample-dataset.py +0 -0
@@ -48,6 +48,8 @@ jobs:
48
48
  gnu@rocky-8.6
49
49
  clang@rocky-8.6
50
50
  gnu@ubuntu-22.04
51
+ python_versions: |+
52
+ - '3.11'
51
53
  secrets: inherit
52
54
 
53
55
  # # Build downstream packages on HPC
@@ -19,7 +19,7 @@ jobs:
19
19
  checks:
20
20
  strategy:
21
21
  matrix:
22
- python-version: ["3.10", "3.11", "3.12"]
22
+ python-version: ["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 }}
@@ -141,3 +141,8 @@ _version.py
141
141
  *.to_upload
142
142
  tempCodeRunnerFile.python
143
143
  Untitled-*.py
144
+ trace.txt
145
+ ?/
146
+ *.prof
147
+ prof/
148
+ *.gz
@@ -20,19 +20,19 @@ 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
+ - 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
29
29
  - repo: https://github.com/psf/black-pre-commit-mirror
30
- rev: 25.1.0
30
+ rev: 25.12.0
31
31
  hooks:
32
32
  - id: black
33
33
  args: [--line-length=120]
34
34
  - repo: https://github.com/pycqa/isort
35
- rev: 6.0.1
35
+ rev: 7.0.0
36
36
  hooks:
37
37
  - id: isort
38
38
  args:
@@ -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.12.11
44
+ rev: v0.14.10
45
45
  hooks:
46
46
  - id: ruff
47
47
  args:
@@ -50,35 +50,30 @@ repos:
50
50
  - --exit-non-zero-on-fix
51
51
  - --exclude=docs/**/*_.py
52
52
  - repo: https://github.com/sphinx-contrib/sphinx-lint
53
- rev: v1.0.0
53
+ rev: v1.0.2
54
54
  hooks:
55
55
  - id: sphinx-lint
56
- # For now, we use it. But it does not support a lot of sphinx features
57
- - repo: https://github.com/dzhu/rstfmt
58
- rev: v0.0.14
59
- hooks:
60
- - id: rstfmt
61
- exclude: '(cli|schemas)/.*' # Because we use argparse and pydantic sphinx directives
62
56
  - repo: https://github.com/b8raoult/pre-commit-docconvert
63
57
  rev: "0.1.5"
64
58
  hooks:
65
59
  - id: docconvert
66
60
  args: ["numpy"]
67
61
  - repo: https://github.com/tox-dev/pyproject-fmt
68
- rev: "v2.6.0"
62
+ rev: "v2.11.1"
69
63
  hooks:
70
64
  - id: pyproject-fmt
71
- - repo: https://github.com/jshwi/docsig # Check docstrings against function sig
72
- rev: v0.71.0
73
- hooks:
74
- - id: docsig
75
- args:
76
- - --ignore-no-params # Allow docstrings without parameters
77
- - --check-dunders # Check dunder methods
78
- - --check-overridden # Check overridden methods
79
- - --check-protected # Check protected methods
80
- - --check-class # Check class docstrings
81
- - --disable=SIG101,SIG102 # Disable empty docstrings
65
+ args: ["--max-supported-python", "3.12"]
66
+ - repo: https://github.com/jshwi/docsig # Check docstrings against function sig
67
+ rev: v0.74.0
68
+ hooks:
69
+ - id: docsig
70
+ args:
71
+ - --ignore-no-params # Allow docstrings without parameters
72
+ - --check-dunders # Check dunder methods
73
+ - --check-overridden # Check overridden methods
74
+ - --check-protected # Check protected methods
75
+ - --check-class # Check class docstrings
76
+ - --disable=SIG101,SIG102,SIG305 # Disable empty docstrings
82
77
  ci:
83
78
  autoupdate_schedule: monthly
84
79
  autoupdate_commit_msg: "chore(deps): pre-commit.ci autoupdate"
@@ -4,9 +4,9 @@ build:
4
4
  os: ubuntu-22.04
5
5
  tools:
6
6
  python: "3.11"
7
- # jobs:
8
- # pre_build:
9
- # - bash docs/scripts/api_build.sh
7
+ jobs:
8
+ pre_build:
9
+ - (cd docs/scripts && make rst)
10
10
 
11
11
  sphinx:
12
12
  configuration: docs/conf.py
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.5.29"
3
+ }
@@ -8,6 +8,56 @@ 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.29](https://github.com/ecmwf/anemoi-datasets/compare/0.5.28...0.5.29) (2026-01-28)
12
+
13
+
14
+ ### Features
15
+
16
+ * Abstracting accumulation ([#326](https://github.com/ecmwf/anemoi-datasets/issues/326)) ([57a2895](https://github.com/ecmwf/anemoi-datasets/commit/57a2895c30a7752c96dc2bf7d93de0262693dab6))
17
+ * Add id and location for point data ([#500](https://github.com/ecmwf/anemoi-datasets/issues/500)) ([8cf8a10](https://github.com/ecmwf/anemoi-datasets/commit/8cf8a10a8986d89d115fe87bcb9600f18c682d5e))
18
+ * Add xarray patches for changing time dimension and summing variables ([#494](https://github.com/ecmwf/anemoi-datasets/issues/494)) ([7c44d99](https://github.com/ecmwf/anemoi-datasets/commit/7c44d99329aba869022504d15e746f5ef25abd31))
19
+ * **apply mask:** Apply a boolean mask when opening a dataset ([#496](https://github.com/ecmwf/anemoi-datasets/issues/496)) ([820eb39](https://github.com/ecmwf/anemoi-datasets/commit/820eb39ce48124d274b5fe60c2c12235790fc456))
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * '--test' changes grid/number ([#386](https://github.com/ecmwf/anemoi-datasets/issues/386)) ([71238c6](https://github.com/ecmwf/anemoi-datasets/commit/71238c69d307f2266e495f5c39f60d36fe9dcc76))
25
+ * Complement with max distance ([#469](https://github.com/ecmwf/anemoi-datasets/issues/469)) ([a8666fa](https://github.com/ecmwf/anemoi-datasets/commit/a8666fa26f97d32ccc43eb0a729c4773f5369523))
26
+ * Coordinate (multiple) indexing - check indices before comparison ([#506](https://github.com/ecmwf/anemoi-datasets/issues/506)) ([859ed19](https://github.com/ecmwf/anemoi-datasets/commit/859ed194a9a9e0171bd1260e9c6b45d304f9ca5b))
27
+ * Grids for masked datasets, field_shape thinning ([#504](https://github.com/ecmwf/anemoi-datasets/issues/504)) ([e7b8d58](https://github.com/ecmwf/anemoi-datasets/commit/e7b8d58adb83f9764b2df96280ab41e3facb6147))
28
+ * Issue [#477](https://github.com/ecmwf/anemoi-datasets/issues/477) ([#478](https://github.com/ecmwf/anemoi-datasets/issues/478)) ([42b9e27](https://github.com/ecmwf/anemoi-datasets/commit/42b9e27c621be292cea77358c738a6c90590a2a9))
29
+ * Pin min version of ruamel-yaml ([#514](https://github.com/ecmwf/anemoi-datasets/issues/514)) ([e6037b0](https://github.com/ecmwf/anemoi-datasets/commit/e6037b0fa759fb75dc28be79f419e1977010d222))
30
+ * Update README to reflect project maturity status ([#465](https://github.com/ecmwf/anemoi-datasets/issues/465)) ([ec8a15e](https://github.com/ecmwf/anemoi-datasets/commit/ec8a15eac36743502d8850070ce8f1d892a40ef0))
31
+
32
+
33
+ ### Documentation
34
+
35
+ * Document the option to specify types when selecting a GRIB message ([#466](https://github.com/ecmwf/anemoi-datasets/issues/466)) ([8940839](https://github.com/ecmwf/anemoi-datasets/commit/8940839ed6f2b7f606e20465f45dbad0c68e2096))
36
+ * Fix interpolate to interpolation key in combining page ([#461](https://github.com/ecmwf/anemoi-datasets/issues/461)) ([990a5c3](https://github.com/ecmwf/anemoi-datasets/commit/990a5c3f54706aacd8252b832ad45b598c7252b2))
37
+
38
+ ## [0.5.28](https://github.com/ecmwf/anemoi-datasets/compare/0.5.27...0.5.28) (2025-10-30)
39
+
40
+
41
+ ### Features
42
+
43
+ * Added rolling average on read ([#448](https://github.com/ecmwf/anemoi-datasets/issues/448)) ([5cef720](https://github.com/ecmwf/anemoi-datasets/commit/5cef7207b7900190272d970bf44f35a7011e3708))
44
+ * Fix repeat dates ([#458](https://github.com/ecmwf/anemoi-datasets/issues/458)) ([16b5c83](https://github.com/ecmwf/anemoi-datasets/commit/16b5c836172a37c13b210b35baee1a5e97731e5d))
45
+ * Refactor dataset create ([#379](https://github.com/ecmwf/anemoi-datasets/issues/379)) ([c5408da](https://github.com/ecmwf/anemoi-datasets/commit/c5408dafd34c80bcb4b0cd9623dbebfe00959151))
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * Allow grib source to be used for constant data ([#428](https://github.com/ecmwf/anemoi-datasets/issues/428)) ([c1d7ff1](https://github.com/ecmwf/anemoi-datasets/commit/c1d7ff1035848e26d3034903577c267973985c07))
51
+ * Broken source imports ([#450](https://github.com/ecmwf/anemoi-datasets/issues/450)) ([#454](https://github.com/ecmwf/anemoi-datasets/issues/454)) ([d6ed174](https://github.com/ecmwf/anemoi-datasets/commit/d6ed174cf4f6da22464c050d3304b026fc0ae4a3))
52
+ * Ensure missing value indicator in not a valid value in accumulat… ([#316](https://github.com/ecmwf/anemoi-datasets/issues/316)) ([3541a1f](https://github.com/ecmwf/anemoi-datasets/commit/3541a1f7068b54ceeb35dff93c3f94b4b138cb9d))
53
+ * S3 access [#453](https://github.com/ecmwf/anemoi-datasets/issues/453) ([#459](https://github.com/ecmwf/anemoi-datasets/issues/459)) ([2d810e3](https://github.com/ecmwf/anemoi-datasets/commit/2d810e3775ace78ffe2c43cc9bac66d704c0754d))
54
+ * Xarray-zarr filters ([#457](https://github.com/ecmwf/anemoi-datasets/issues/457)) ([5f2973f](https://github.com/ecmwf/anemoi-datasets/commit/5f2973fb7d128a3f6de5ed538e39cc7421eeb5dc))
55
+
56
+
57
+ ### Documentation
58
+
59
+ * Documentation updates ([#419](https://github.com/ecmwf/anemoi-datasets/issues/419)) ([4588175](https://github.com/ecmwf/anemoi-datasets/commit/458817533e805652527945eef4de781c62d3abf9))
60
+
11
61
  ## [0.5.27](https://github.com/ecmwf/anemoi-datasets/compare/0.5.26...0.5.27) (2025-10-06)
12
62
 
13
63
 
@@ -1,6 +1,6 @@
1
1
  ## How to Contribute
2
2
 
3
- Please see the [read the docs](https://anemoi.readthedocs.io/en/latest/dev/contributing.html).
3
+ Please see the [read the docs](https://anemoi.readthedocs.io/en/latest/contributing/contributing.html).
4
4
 
5
5
 
6
6
  ## Contributors
@@ -10,4 +10,4 @@ Thank you to all the wonderful people who have contributed to Anemoi. Contributi
10
10
 
11
11
  ## Contributing Organisations
12
12
 
13
- Significant contributions have been made by the following organisations: [DWD](https://www.dwd.de/), [FMI](https://www.ilmatieteenlaitos.fi/), [KNMI](https://www.knmi.nl), [MET Norway](https://www.met.no/), [MeteoSwiss](https://www.meteoswiss.admin.ch/), [RMI](https://www.meteo.be/) & [ECMWF](https://www.ecmwf.int/)
13
+ Significant contributions have been made by the following organisations: [DMI](https://www.dmi.dk/), [DWD](https://www.dwd.de/), [FMI](https://www.ilmatieteenlaitos.fi/), [KNMI](https://www.knmi.nl), [MET Norway](https://www.met.no/), [MeteoSwiss](https://www.meteoswiss.admin.ch/), [RMI](https://www.meteo.be/), [Met Office](https://www.metoffice.gov.uk/), [Météo-France](https://meteofrance.com/) & [ECMWF](https://www.ecmwf.int/)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anemoi-datasets
3
- Version: 0.5.27
3
+ Version: 0.5.29
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,20 +216,23 @@ 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.10
220
219
  Classifier: Programming Language :: Python :: 3.11
221
220
  Classifier: Programming Language :: Python :: 3.12
222
- Classifier: Programming Language :: Python :: 3.13
223
221
  Classifier: Programming Language :: Python :: Implementation :: CPython
224
222
  Classifier: Programming Language :: Python :: Implementation :: PyPy
225
- Requires-Python: >=3.10
223
+ Requires-Python: >=3.11
226
224
  License-File: LICENSE
227
- Requires-Dist: anemoi-transform>=0.1.10
228
- Requires-Dist: anemoi-utils[provenance]>=0.4.32
225
+ Requires-Dist: anemoi-transform>=0.1.12
226
+ Requires-Dist: anemoi-utils>=0.4.26
229
227
  Requires-Dist: cfunits
228
+ Requires-Dist: glom
229
+ Requires-Dist: jsonschema
230
230
  Requires-Dist: numcodecs<0.16
231
231
  Requires-Dist: numpy
232
+ Requires-Dist: pytest>=8.4.1
233
+ Requires-Dist: pytest-xdist>=3.7
232
234
  Requires-Dist: pyyaml
235
+ Requires-Dist: ruamel-yaml>=0.16
233
236
  Requires-Dist: semantic-version
234
237
  Requires-Dist: tqdm
235
238
  Requires-Dist: zarr<=2.18.4
@@ -1,9 +1,19 @@
1
1
  # anemoi-datasets
2
2
 
3
- **DISCLAIMER**
4
- This project is **BETA** and will be **Experimental** for the foreseeable future.
5
- Interfaces and functionality are likely to change, and the project itself may be scrapped.
6
- **DO NOT** use this software in any project/software that is operational.
3
+ <p align="center">
4
+ <a href="https://github.com/ecmwf/codex/raw/refs/heads/main/Project Maturity">
5
+ <img src="https://github.com/ecmwf/codex/raw/refs/heads/main/Project Maturity/incubating_badge.svg" alt="Maturity Level">
6
+ </a>
7
+ <a href="https://opensource.org/licenses/apache-2-0">
8
+ <img src="https://img.shields.io/badge/Licence-Apache 2.0-blue.svg" alt="Licence">
9
+ </a>
10
+ <a href="https://github.com/ecmwf/anemoi-datasets/releases">
11
+ <img src="https://img.shields.io/github/v/release/ecmwf/anemoi-datasets?color=purple&label=Release" alt="Latest Release">
12
+ </a>
13
+ </p>
14
+
15
+ > \[!IMPORTANT\]
16
+ > This software is **Incubating** and subject to ECMWF's guidelines on [Software Maturity](https://github.com/ecmwf/codex/raw/refs/heads/main/Project%20Maturity).
7
17
 
8
18
 
9
19
 
@@ -11,6 +21,10 @@ Interfaces and functionality are likely to change, and the project itself may be
11
21
 
12
22
  The documentation can be found at https://anemoi-datasets.readthedocs.io/.
13
23
 
24
+ ## Contributing
25
+
26
+ You can find information about contributing to Anemoi at our [Contribution page](https://anemoi.readthedocs.io/en/latest/contributing/contributing.html).
27
+
14
28
  ## Install
15
29
 
16
30
  Install via `pip` with:
@@ -19,5 +19,5 @@ help:
19
19
  # Catch-all target: route all unknown targets to Sphinx using the new
20
20
  # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
21
21
  %: Makefile
22
- bash $(SOURCEDIR)/scripts/api_build.sh
22
+ @cd scripts && $(MAKE) $@
23
23
  @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,10 @@
1
+ .. _filters:
2
+
3
+ #########
4
+ Filters
5
+ #########
6
+
7
+ Filters can be used to perform data transformations when creating a
8
+ dataset. See the :ref:`anemoi-transform
9
+ <anemoi-transform:list-of-filters>` documentation for a list of filters
10
+ and example configurations.
@@ -14,7 +14,7 @@ computed as the dataset is built, and stored in the metadata, with other
14
14
  information such as the locations of the grid points, the list of
15
15
  variables, etc.
16
16
 
17
- .. figure:: ../../_static/schemas/recipe.png
17
+ .. figure:: ../_static/schemas/recipe.png
18
18
  :alt: Building datasets
19
19
  :align: center
20
20
 
@@ -0,0 +1,158 @@
1
+ ###############
2
+ accumulate
3
+ ###############
4
+
5
+ .. note::
6
+
7
+ The ``accumulate`` source was previously named ``accumulations``.
8
+ The API has changed in the following ways:
9
+
10
+ - The parameter ``accumulation_period`` has been renamed to ``period``.
11
+ - The source can be now different from ``mars`` (e.g., ``mars``, ``grib-index``)
12
+ it must now be explicitly specified as a nested dictionary under the ``source`` key.
13
+ - The (optional) available accumulation intervals can now be specified using the ``availability`` key.
14
+
15
+ Accumulations and flux variables, such as precipitation, are often
16
+ forecast fields, which are archived for a given base date (or reference
17
+ time) and a forecast time (or step). These fields are valid at the
18
+ forecast time and are accumulated over a given period of time, with the
19
+ relation: :math:`valid\_date = base\_date + step`.
20
+
21
+ Because the package builds datasets according to the valid date of the
22
+ fields, it must be able to reconstruct the requested accumulation period
23
+ from the available data in the source dataset. Furthermore, some fields
24
+ are accumulated since the beginning of the forecast (e.g. ECMWF
25
+ operational forecast), while others are accumulated since the last time
26
+ step (e.g. ERA5).
27
+
28
+ The ``accumulate`` source requires the following parameters:
29
+
30
+ - **period**: The requested accumulation period (e.g., ``6h``, ``12h``, ``24h``, ``1d``).
31
+ This can be specified as a string with units ``"6h"``.
32
+ Periods shorter than one hour such as ``"30min"`` are not supported yet.
33
+ - **source**: The data source configuration. Currently only ``mars`` and ``grib-index`` sources are supported.
34
+ - **availability**: Information about how accumulations are stored in
35
+ the data source. This allows the package to determine which intervals to use
36
+ for reconstructing the requested accumulation period (see below).
37
+ - **patch** (optional): Patches to apply to fields returned by the source to fix metadata issues.
38
+ Default patching is to set ``startStep`` to ``0`` when ``startStep==endStep``.
39
+
40
+ .. warning::
41
+
42
+ If the data provided by the source does not match the definition provided
43
+ in the ``availability`` parameter, the package will attempt to check the
44
+ metadata of the source dataset and fail if the accumulation periods cannot
45
+ be reconstructed.
46
+ Defining the period to use to reconstruct the request accumulation period and
47
+ checking the validity of the accumulation and relies on the metadata provided by the data source.
48
+ **If the metadata is incomplete or inconsistent, the package may produce incorrect results.**
49
+
50
+
51
+ Specifying the ``availability`` of accumulation intervals
52
+ =========================================================
53
+
54
+ Data accumulation methods differ between datasets. Two common methods are to
55
+ accumulate data either from the start of the forecast or from the previous time step.
56
+
57
+ - For ECMWF operational forecasts, the data is accumulated from the
58
+ beginning of the forecast. For example, if the accumulation period is
59
+ 6h and the valid date is 2020-01-01 00:00, the source will use the
60
+ forecast [1]_ of 2019-12-31 18:00 at step 6h.
61
+
62
+ - For ERA5, the data is accumulated since the last time step (hourly
63
+ accumulations), and forecasts are only available at 06Z and 18Z. For a
64
+ 6h accumulation with valid date 2020-01-01 13:00, the source will sum
65
+ the fields from the forecast of 2020-01-01 06:00 at steps 1-2h, 2-3h,
66
+ 3-4h, 4-5h, 5-6h, and 6-7h.
67
+
68
+ There are multiple ways to specify the ``availability`` parameter:
69
+
70
+ - `Option 1: Type-based availability`_
71
+ - `Option 2: Availability over fixed periods`_
72
+ - `Option 3: Automatic detection for well-known datasets`_
73
+ - `Option 4: Finer control using explicit list of interval`_
74
+
75
+
76
+ Option 1: Type-based availability
77
+ ---------------------------------
78
+
79
+ For more explicit control, use the **type** parameter with ``accumulated-from-start``
80
+ or ``accumulated-from-previous-step``, along with **basetime**, **frequency**, and **last_step**.
81
+
82
+ .. list-table::
83
+ :widths: 50 50
84
+ :header-rows: 1
85
+
86
+ * - ECMWF operational (accumulated from start)
87
+ - ERA5 (accumulated from previous step)
88
+ * - .. literalinclude:: yaml/accumulations-from-start-mars-ecmwf-operational-forecast-2.yaml
89
+ :language: yaml
90
+ - .. literalinclude:: yaml/accumulations-from-previous-step-mars-era5-2.yaml
91
+ :language: yaml
92
+
93
+ Option 2: Availability over fixed periods
94
+ -----------------------------------------
95
+
96
+ If the source provides data accumulated over a fixed period, such as
97
+ ``availability: "1h"`` for hourly accumulated data, ``"3h"`` for
98
+ 3-hourly accumulated data, etc.
99
+
100
+ This approach should be used when all accumulation intervals for the fixed period are available
101
+ for all base times.
102
+
103
+ Additionally, the period provided in ``availability`` must be compatible with the requested accumulation period,
104
+ i.e., it must be a divisor of the requested period in ``period``.
105
+
106
+ .. literalinclude:: yaml/accumulations-grib-index.yaml
107
+ :language: yaml
108
+
109
+ Option 3: Automatic detection for well-known datasets
110
+ -----------------------------------------------------
111
+
112
+ The simplest approach is to use ``availability: auto``. The package will try to
113
+ infer the availability from the ``mars`` source parameters (class, stream, origin).
114
+ Supported combinations are:
115
+
116
+ - ERA5 reanalysis (class ``ea``, stream ``oper``)
117
+ - ERA5 ensemble data assimilation (class ``ea``, stream ``enda``)
118
+ - ECMWF operational forecasts (class ``od``, stream ``oper``)
119
+ - ECMWF operational ensemble data assimilation (class ``od``, stream ``elda``)
120
+ - Regional reanalysis (class ``rr``, stream ``oper``, origin ``se-al-ec``).
121
+ - ERA5-Land (class ``l5``, stream ``oper``)
122
+
123
+ Automatic detection is not supported for the ``grib-index`` source.
124
+
125
+ .. list-table::
126
+ :widths: 50 50
127
+ :header-rows: 1
128
+
129
+ * - ECMWF operational (accumulated from start)
130
+ - ERA5 (accumulated from previous step)
131
+ * - .. literalinclude:: yaml/accumulations-from-start-mars-ecmwf-operational-forecast-1.yaml
132
+ :language: yaml
133
+ - .. literalinclude:: yaml/accumulations-from-previous-step-mars-era5-1.yaml
134
+ :language: yaml
135
+
136
+
137
+ Option 4: Finer control using explicit list of interval
138
+ -------------------------------------------------------
139
+
140
+ For full control, provide an explicit list of ``(basetime, steps)`` pairs.
141
+
142
+ .. list-table::
143
+ :widths: 50 50
144
+ :header-rows: 1
145
+
146
+ * - ECMWF operational (accumulated from start)
147
+ - ERA5 (accumulated from previous step)
148
+ * - .. literalinclude:: yaml/accumulations-from-start-mars-ecmwf-operational-forecast-3.yaml
149
+ :language: yaml
150
+ - .. literalinclude:: yaml/accumulations-from-previous-step-mars-era5-3.yaml
151
+ :language: yaml
152
+
153
+ These two examples are equivalent to those shown in Option 1 above.
154
+
155
+ .. [1]
156
+
157
+ For ECMWF forecasts, the forecasts at 00Z and 12Z are from the stream
158
+ ``oper`` while the forecasts at 06Z and 18Z are from the stream ``scda``.
@@ -10,7 +10,7 @@ dates of the dataset.
10
10
 
11
11
  The general format of the `repeated-dates` source is:
12
12
 
13
- .. literalinclude:: yaml/repeated_dates1.yaml
13
+ .. literalinclude:: yaml/repeated-dates1.yaml
14
14
  :language: yaml
15
15
 
16
16
  where ``source`` is any of the :ref:`operations <operations>` or
@@ -0,0 +1,12 @@
1
+ accumulate:
2
+ period: 6h
3
+ availability: auto
4
+ source:
5
+ mars:
6
+ expver: "0001"
7
+ class: ea
8
+ stream: oper
9
+ type: fc
10
+ grid: 20./20.
11
+ levtype: sfc
12
+ param: [tp, cp]
@@ -0,0 +1,16 @@
1
+ accumulate:
2
+ period: 6h
3
+ availability:
4
+ type: accumulated-from-previous-step
5
+ basetime: [6, 18]
6
+ frequency: 1h
7
+ last_step: 18
8
+ source:
9
+ mars:
10
+ expver: "0001"
11
+ class: ea
12
+ stream: oper
13
+ type: fc
14
+ grid: 20./20.
15
+ levtype: sfc
16
+ param: [tp, cp]
@@ -0,0 +1,14 @@
1
+ accumulate:
2
+ period: 6h
3
+ availability:
4
+ - [6, "0-1/1-2/2-3/3-4/4-5/5-6/6-7/7-8/8-9/9-10/10-11/11-12/12-13/13-14/14-15/15-16/16-17/17-18"]
5
+ - [18, "0-1/1-2/2-3/3-4/4-5/5-6/6-7/7-8/8-9/9-10/10-11/11-12/12-13/13-14/14-15/15-16/16-17/17-18"]
6
+ source:
7
+ mars:
8
+ expver: "0001"
9
+ class: ea
10
+ stream: oper
11
+ type: fc
12
+ grid: 20./20.
13
+ levtype: sfc
14
+ param: [tp, cp]
@@ -0,0 +1,12 @@
1
+ accumulate:
2
+ period: 6h
3
+ availability: auto
4
+ source:
5
+ mars:
6
+ expver: "0001"
7
+ class: od
8
+ stream: oper
9
+ type: fc
10
+ grid: 20./20.
11
+ levtype: sfc
12
+ param: [tp, cp]
@@ -0,0 +1,16 @@
1
+ accumulate:
2
+ period: 6h
3
+ availability:
4
+ type: accumulated-from-start
5
+ basetime: [0, 12]
6
+ frequency: 6h
7
+ last_step: 18
8
+ source:
9
+ mars:
10
+ expver: "0001"
11
+ class: od
12
+ stream: oper
13
+ type: fc
14
+ grid: 20./20.
15
+ levtype: sfc
16
+ param: [tp, cp]
@@ -0,0 +1,14 @@
1
+ accumulate:
2
+ period: 6h
3
+ availability:
4
+ - [0, "0-6/0-12/0-18"]
5
+ - [12, "0-6/0-12/0-18"]
6
+ source:
7
+ mars:
8
+ expver: "0001"
9
+ class: od
10
+ stream: oper
11
+ type: fc
12
+ grid: 20./20.
13
+ levtype: sfc
14
+ param: [tp, cp]
@@ -0,0 +1,7 @@
1
+ accumulate:
2
+ period: 6h
3
+ availability: 1h
4
+ grib-index:
5
+ index-db: /path/to/grib/index.db
6
+ param: [ tp, cp, sf ]
7
+ levtype: sfc
@@ -19,7 +19,7 @@ The following `sources` are currently available:
19
19
  .. toctree::
20
20
  :maxdepth: 1
21
21
 
22
- sources/accumulations
22
+ sources/accumulate
23
23
  sources/anemoi-dataset
24
24
  sources/cds
25
25
  sources/eccc-fstd
@@ -4,7 +4,7 @@ Create Command
4
4
  ==============
5
5
 
6
6
  Use this command to create a dataset from a recipe file.
7
- The syntax of the recipe file is described in :doc:`building datasets <../datasets/building/introduction>`.
7
+ The syntax of the recipe file is described in :ref:`building-introduction`.
8
8
 
9
9
  .. argparse::
10
10
  :module: anemoi.datasets.__main__
@@ -1,7 +1,7 @@
1
1
  .. _grib-index_command:
2
2
 
3
3
  Grib-index Command
4
- ============
4
+ ==================
5
5
 
6
6
  The `grib-index` command is used to create an index file for GRIB files. The index file is then used
7
7
  by the `grib-index` :ref:`source <grib-index_source>`.
@@ -15,7 +15,7 @@ This command will output the metadata of the dataset, including the variables, d
15
15
 
16
16
  which will output something like the following. The output should be self-explanatory.
17
17
 
18
- .. literalinclude:: ../datasets/yaml/building1.txt
18
+ .. literalinclude:: ../yaml/building1.txt
19
19
  :language: console
20
20
 
21
21
  .. argparse::
@@ -1,8 +1,8 @@
1
1
  .. _cli-introduction:
2
2
 
3
- ##################
4
- Command line tool
5
- ##################
3
+ ############
4
+ Introduction
5
+ ############
6
6
 
7
7
  When you install the `anemoi-datasets` package, this will also install command line tool
8
8
  called ``anemoi-datasets`` which can be used to manage the zarr datasets.