Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
239 commits
Select commit Hold shift + click to select a range
9cb8c52
feat: recipe generator
b8raoult May 8, 2025
01774dd
update
b8raoult May 8, 2025
33793a6
update
b8raoult May 8, 2025
920d523
update
b8raoult May 8, 2025
ed5d190
update
b8raoult May 8, 2025
2562baf
fix: better handling of xarray metadata
b8raoult May 10, 2025
f048a4b
update
b8raoult May 10, 2025
8ad5eb0
update
b8raoult May 10, 2025
5db7a97
Merge branch 'fix/better-handling-of-xarray-metadata' into feat/recip…
b8raoult May 10, 2025
b33f3ac
fix: support other keys that param in rename filter
b8raoult May 10, 2025
71d8180
Merge branch 'fix/support-other-keys-than-param-in-rename-filter' int…
b8raoult May 10, 2025
6d23027
typo
b8raoult May 10, 2025
6933574
Merge branch 'fix/support-other-keys-than-param-in-rename-filter' int…
b8raoult May 10, 2025
9179dae
add command line
b8raoult May 10, 2025
79a391b
update
b8raoult May 11, 2025
203e09b
update
b8raoult May 11, 2025
b4433bd
update
b8raoult May 11, 2025
6f3fdb0
update
b8raoult May 11, 2025
45365a1
upadte
b8raoult May 12, 2025
d7cc82c
update
b8raoult May 12, 2025
f381b00
update
b8raoult May 12, 2025
da93ad6
update
b8raoult May 14, 2025
47f650b
feat: missing features for observations
floriankrb May 28, 2025
eeeedcd
change window on the fly
floriankrb Jun 2, 2025
ecba1db
implement netcdf backend
floriankrb Jun 4, 2025
8ccd237
up
floriankrb Jun 4, 2025
e2b54ad
up
floriankrb Jun 6, 2025
fcd46a3
up
floriankrb Jun 10, 2025
a02deb3
fix
floriankrb Jun 10, 2025
48df56e
creating obs dataset. Draft
floriankrb Jun 10, 2025
4823099
creating obs dataset. Draft
floriankrb Jun 10, 2025
89fe751
feat(obs): add set_group and rename
JPXKQX Jun 12, 2025
4e6d877
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 12, 2025
2bd2567
fieldsrecords and set_group. and some refactor. may not be backward c…
floriankrb Jun 11, 2025
ab56402
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 12, 2025
111bcc8
adding odb mars draft example
pinnstorm Jun 17, 2025
5738660
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 17, 2025
3680c6b
adding odb mars draft example
pinnstorm Jun 17, 2025
227f815
adding odb mars draft example
pinnstorm Jun 17, 2025
bc70153
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 17, 2025
a195b03
adding needed metadata file
pinnstorm Jun 17, 2025
9bd5ca5
mering branch
pinnstorm Jun 17, 2025
1f9f9aa
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 17, 2025
ebfe5af
Merge branch 'main' into feature/missing-features-for-observations
floriankrb Jun 17, 2025
a3e72f7
qa
floriankrb Jun 17, 2025
2b01564
updating mars example
pinnstorm Jun 18, 2025
9bb6c66
merging in remote
pinnstorm Jun 18, 2025
8d6ccd6
updating mars odb example
pinnstorm Jun 19, 2025
3c38f5f
Merge branch 'main' into feature/missing-features-for-observations
floriankrb Jun 23, 2025
6b2adb8
more metadata
floriankrb Jun 23, 2025
dcc1802
fix timedelta type
floriankrb Jun 24, 2025
826dff8
more logs
floriankrb Jun 24, 2025
d4be463
typo
floriankrb Jun 24, 2025
552c797
update 2025.06.24
floriankrb Jun 24, 2025
0053aec
up
floriankrb Jun 30, 2025
7c2d4fb
padding="missing" or "raise"
floriankrb Jul 1, 2025
031e9f2
DOP dataset: first draft, missing len, sample factory index issue
mishooax Jul 2, 2025
5bebd27
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 2, 2025
fbb4121
remove codes that does not belong here
floriankrb Jul 2, 2025
e6ecbc0
up
floriankrb Jul 2, 2025
ad61f65
bring lats and lons
JPXKQX Jul 3, 2025
ea2f7d9
update timedelta to 0s for field records
JPXKQX Jul 3, 2025
c10ea85
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 3, 2025
e565866
add metadata
JPXKQX Jul 3, 2025
6faeb15
Merge branch 'feature/missing-features-for-observations' of https://g…
JPXKQX Jul 3, 2025
348d43a
Merge branch 'main' into feature/missing-features-for-observations
floriankrb Jul 7, 2025
98dae84
revert inspect
floriankrb Jul 7, 2025
3082edf
refactor missing
b8raoult Jul 9, 2025
ef4a5c9
add references
b8raoult Jul 9, 2025
93410d5
refactor
b8raoult Jul 9, 2025
1df0ef7
refactor
b8raoult Jul 9, 2025
18df4eb
refactor
b8raoult Jul 9, 2025
3341d4c
update
b8raoult Jul 9, 2025
58dc8a2
work on migrate
b8raoult Jul 10, 2025
3e180f9
work on migrate
b8raoult Jul 10, 2025
a9816ca
fix
floriankrb Jul 16, 2025
20fc185
fix padding
floriankrb Jul 17, 2025
558f1a6
fix: _select with set_group
JPXKQX Aug 5, 2025
255c22d
merge
b8raoult Aug 11, 2025
83936f7
merge
b8raoult Aug 11, 2025
5209f26
update
b8raoult Aug 11, 2025
c7a0e5d
update
b8raoult Aug 12, 2025
b78a098
update
b8raoult Aug 12, 2025
d641ea7
update
b8raoult Aug 13, 2025
3754eb2
update
b8raoult Aug 14, 2025
39ebc13
update
b8raoult Aug 14, 2025
5d32745
update
b8raoult Aug 14, 2025
6c1f146
update
b8raoult Aug 14, 2025
37de369
update
b8raoult Aug 14, 2025
24f2c2a
update
b8raoult Aug 15, 2025
db4d895
add dumper
b8raoult Aug 15, 2025
55f740d
update
b8raoult Aug 15, 2025
014dbbc
update
b8raoult Aug 15, 2025
8ad9396
bug fix in path
b8raoult Aug 15, 2025
9756618
join recipe command
b8raoult Aug 15, 2025
a493a96
join recipe command
b8raoult Aug 15, 2025
1cde9f8
use ampersand
b8raoult Aug 15, 2025
cdb1a9a
use ampersand
b8raoult Aug 15, 2025
e69eb10
add settings
b8raoult Aug 16, 2025
92165b4
add settings
b8raoult Aug 16, 2025
a044e14
udpate
b8raoult Aug 16, 2025
cb9c576
use ruamel
b8raoult Aug 16, 2025
99a5fb7
fix source as parameters
b8raoult Aug 16, 2025
ce027f4
update
b8raoult Aug 18, 2025
aa8e16d
Merge branch 'main' into feature/missing-features-for-observations
floriankrb Aug 20, 2025
f2615d6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 20, 2025
3bf7c35
Merge branch 'feat/refactor-create' of github.com:ecmwf/anemoi-datase…
b8raoult Aug 22, 2025
96dfe3d
Merge branch 'feat/recipe-generator' into feat/refactor-create
b8raoult Aug 22, 2025
f68a11e
Merge remote-tracking branch 'origin/main' into feat/refactor-create
b8raoult Aug 22, 2025
3d5f0ef
tidy
b8raoult Aug 22, 2025
70272f6
update
b8raoult Aug 22, 2025
38ced18
update tests
b8raoult Aug 22, 2025
cb3847e
fix tests
b8raoult Aug 22, 2025
00477c9
add missing package
b8raoult Aug 25, 2025
b0508a9
update
b8raoult Aug 25, 2025
7d494b9
update
b8raoult Aug 26, 2025
dd62e77
fix icon grid test
b8raoult Aug 29, 2025
21208ad
review origins
b8raoult Aug 31, 2025
53f915c
work on components
b8raoult Sep 1, 2025
b0348bd
work on components
b8raoult Sep 1, 2025
28d6ffa
work on components
b8raoult Sep 1, 2025
1a6a3e4
add projections
b8raoult Sep 2, 2025
7b332b5
add projection
b8raoult Sep 3, 2025
c40025a
tidy code
b8raoult Sep 3, 2025
81e355b
tidy
b8raoult Sep 3, 2025
06850d8
add transformations
b8raoult Sep 3, 2025
1d94d5a
up
floriankrb Sep 5, 2025
6941fdf
add type hint
JPXKQX Sep 5, 2025
9ef1fc3
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 5, 2025
e09ed7e
rename variables
b8raoult Sep 6, 2025
cd06c98
add origins test
b8raoult Sep 6, 2025
f9fd3a0
tidy
b8raoult Sep 8, 2025
4f5acbb
adding bufr examples to obs-data building
pinnstorm Sep 9, 2025
23e8a5f
merging in remote
pinnstorm Sep 9, 2025
c9259c6
fix skipped origins
b8raoult Sep 9, 2025
8df9cc5
work on origin
b8raoult Sep 10, 2025
4c06588
python recipes
b8raoult Sep 13, 2025
a917c49
add doc
b8raoult Sep 13, 2025
39bedac
add origins to metadata
b8raoult Sep 14, 2025
56ac3ca
Merge branch 'feat/origin' of github.com:ecmwf/anemoi-datasets into f…
b8raoult Sep 14, 2025
9309cfe
update
b8raoult Sep 14, 2025
437e4aa
docs
b8raoult Sep 14, 2025
79f1706
add filter.rst
b8raoult Sep 16, 2025
ef431f8
add docs
b8raoult Sep 21, 2025
48c9d07
compress origins
b8raoult Sep 25, 2025
3eaf3ac
Merge remote-tracking branch 'origin/main' into feat/observations-sup…
b8raoult Sep 25, 2025
8b6b765
added some comments
floriankrb Sep 26, 2025
450394f
Merge branch 'feat/origin' into feat/observations-support
b8raoult Sep 27, 2025
c6da1cf
check that file exists
b8raoult Sep 29, 2025
3830d1c
make Record a mapping
b8raoult Sep 29, 2025
789a4ba
make Record a mapping
b8raoult Sep 29, 2025
3ba6c11
add windows.py
b8raoult Sep 29, 2025
61c8dc0
move code around
b8raoult Sep 29, 2025
373792b
update
b8raoult Sep 29, 2025
d58ae51
refactor
b8raoult Sep 29, 2025
b193993
absolute imports
b8raoult Sep 29, 2025
2b9b425
absolute imports
b8raoult Sep 29, 2025
68fdf5b
refactor
b8raoult Sep 29, 2025
64ba82a
refactor
b8raoult Sep 29, 2025
6519c5a
refactor
b8raoult Sep 29, 2025
38475ad
refactor
b8raoult Sep 30, 2025
734a36f
refactor
b8raoult Sep 30, 2025
bd09239
refactor
b8raoult Sep 30, 2025
8be0cb5
same as #423
floriankrb Sep 30, 2025
475eae7
make all import absolute
b8raoult Oct 6, 2025
19b9171
rename files
b8raoult Oct 6, 2025
6d84c53
rename files
b8raoult Oct 6, 2025
a0b8e34
rename files
b8raoult Oct 6, 2025
6c5ce24
rename files
b8raoult Oct 6, 2025
6b1e5b5
rename files
b8raoult Oct 6, 2025
ba24f4c
rename files
b8raoult Oct 6, 2025
fa6f799
rename files
b8raoult Oct 6, 2025
3dbc49c
revert to some relative import when meaningful
b8raoult Oct 6, 2025
8ba1308
revert to some relative import when meaningful
b8raoult Oct 6, 2025
17d00b5
update
b8raoult Oct 6, 2025
c90b10c
update
b8raoult Oct 6, 2025
e0184e7
more refactoring
b8raoult Oct 7, 2025
042a8f0
fix test
b8raoult Oct 7, 2025
f4ad404
update
b8raoult Oct 7, 2025
d286f9a
refactoring
b8raoult Oct 7, 2025
804faa8
refactoring
b8raoult Oct 7, 2025
ddfc22a
wip
floriankrb Oct 18, 2025
0c89264
Merge branch 'feat/observations-support' into feature/missing-feature…
floriankrb Oct 20, 2025
293f9bc
added change frequency of obs datasets, shrinking window
floriankrb Oct 20, 2025
f1df2aa
Review suggestions for PR #433 (#436)
aaron-hopkinson Oct 21, 2025
403520a
Merge branch 'main' into feat/move-code-to-prepare-for-observations
aaron-hopkinson Oct 21, 2025
1c0236f
Merge branch 'main' into feat/move-code-to-prepare-for-observations
aaron-hopkinson Oct 21, 2025
69e7daa
Update broken imports
aaron-hopkinson Oct 21, 2025
b478d28
Fix imports
aaron-hopkinson Oct 21, 2025
c02ecaf
fix s3 access
floriankrb Oct 22, 2025
1f79466
Merge branch 'main' into feat/move-code-to-prepare-for-observations
aaron-hopkinson Oct 22, 2025
0f56af3
fix frequency for observations
floriankrb Oct 23, 2025
195086c
Merge branch 'feature/missing-features-for-observations' of https://g…
JPXKQX Oct 25, 2025
8752edb
fix bug
floriankrb Nov 10, 2025
6f1a48c
fix bug
floriankrb Nov 10, 2025
9d8b93f
fix bug
floriankrb Nov 10, 2025
e154dca
more consistent dates
floriankrb Nov 10, 2025
3ab2564
rename build to create
b8raoult Nov 11, 2025
37ca757
more refactoring
b8raoult Nov 12, 2025
3dac972
Merge remote-tracking branch 'origin/feature/missing-features-for-obs…
b8raoult Nov 12, 2025
92c0023
update
b8raoult Nov 13, 2025
7a0f959
update
b8raoult Nov 13, 2025
b8892ae
update
b8raoult Nov 13, 2025
2a1b980
update
b8raoult Nov 13, 2025
cc6c384
update
b8raoult Nov 13, 2025
6f3abee
update
b8raoult Nov 13, 2025
819a860
checkpoint
b8raoult Nov 13, 2025
54f12c1
update
b8raoult Nov 13, 2025
309517e
update
b8raoult Nov 13, 2025
90aa18e
update
b8raoult Nov 13, 2025
4fb65cf
update
b8raoult Nov 13, 2025
a915fb3
update
b8raoult Nov 13, 2025
eecf7ee
added missing property, finish merging
floriankrb Nov 14, 2025
4ae97b1
fix
floriankrb Nov 14, 2025
dda1a20
fix missing property for observations
floriankrb Nov 14, 2025
9ce5596
remove unused observation npz2 backend + slight optimisation in speed…
floriankrb Nov 17, 2025
d834689
update
b8raoult Nov 17, 2025
8ba4057
update
b8raoult Nov 17, 2025
7de1bde
update
b8raoult Nov 17, 2025
9ef5f01
Merge remote-tracking branch 'origin/feat/observations-main' into fea…
b8raoult Nov 17, 2025
ab9311c
update
b8raoult Nov 17, 2025
44daea0
remove python
b8raoult Nov 17, 2025
4928e14
remove python
b8raoult Nov 17, 2025
941c500
remove python
b8raoult Nov 17, 2025
740d3ee
update
b8raoult Nov 17, 2025
99fa8d3
update
b8raoult Nov 17, 2025
895b9ad
update
b8raoult Nov 17, 2025
0cfabd5
update
b8raoult Nov 17, 2025
242a421
tidy up
b8raoult Nov 17, 2025
7f593fb
tidy up
b8raoult Nov 17, 2025
fd7a9e7
tidy up
b8raoult Nov 17, 2025
29625a7
tidy up
b8raoult Nov 17, 2025
8ce9ddb
tidy up
b8raoult Nov 17, 2025
82b4fe0
tidy up
b8raoult Nov 17, 2025
de8d991
tidy up
b8raoult Nov 17, 2025
cb5991e
update
b8raoult Nov 17, 2025
5436453
update
b8raoult Nov 17, 2025
88930b9
update
b8raoult Nov 17, 2025
f3f0c34
update
b8raoult Nov 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,6 @@ trace.txt
*.prof
prof/
*.gz
*.odb
*.bufr
*.csv
12 changes: 6 additions & 6 deletions src/anemoi/datasets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
# nor does it submit to any jurisdiction.


from .data import MissingDateError
from .data import add_dataset_path
from .data import add_named_dataset
from .data import list_dataset_names
from .data import open_dataset
from anemoi.datasets.use.gridded import MissingDateError
from anemoi.datasets.use.gridded import add_dataset_path
from anemoi.datasets.use.gridded import add_named_dataset
from anemoi.datasets.use.gridded import list_dataset_names
from anemoi.datasets.use.gridded import open_dataset

try:
# NOTE: the `_version.py` file must not be present in the git repository
# as it is generated by setuptools at install time
from ._version import __version__ # type: ignore
from anemoi.datasets._version import __version__ # type: ignore
except ImportError: # pragma: no cover
# Local copy or not installed with setuptools
__version__ = "999"
Expand Down
4 changes: 2 additions & 2 deletions src/anemoi/datasets/commands/create.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ def task(what: str, options: dict, *args: Any, **kwargs: Any) -> Any:
now = datetime.datetime.now()
LOG.info(f"🎬 Task {what}({args},{kwargs}) starting")

from anemoi.datasets.create import creator_factory
from anemoi.datasets.create.tasks import task_factory

options = {k: v for k, v in options.items() if v is not None}

c = creator_factory(what.replace("-", "_"), **options)
c = task_factory(what.replace("-", "_"), **options)
result = c.run()

LOG.info(f"🏁 Task {what}({args},{kwargs}) completed ({datetime.datetime.now()-now})")
Expand Down
6 changes: 3 additions & 3 deletions src/anemoi/datasets/commands/inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
from numpy.typing import NDArray

from anemoi.datasets import open_dataset
from anemoi.datasets.data.stores import open_zarr
from anemoi.datasets.data.stores import zarr_lookup
from anemoi.datasets.use.gridded.stores import dataset_lookup
from anemoi.datasets.use.gridded.stores import open_zarr

from . import Command

Expand Down Expand Up @@ -810,7 +810,7 @@ def _info(self, path: str) -> Version:
Version
The version object of the dataset.
"""
z = open_zarr(zarr_lookup(path))
z = open_zarr(dataset_lookup(path))

metadata = dict(z.attrs)
version = metadata.get("version", "0.0.0")
Expand Down
11 changes: 6 additions & 5 deletions src/anemoi/datasets/commands/recipe/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@

import yaml

from anemoi.datasets.create import validate_config

from .. import Command
from .format import format_recipe
from .migrate import migrate_recipe
Expand All @@ -37,6 +35,7 @@ def add_arguments(self, command_parser: Any) -> None:
command_parser.add_argument("--validate", action="store_true", help="Validate recipe.")
command_parser.add_argument("--format", action="store_true", help="Format the recipe.")
command_parser.add_argument("--migrate", action="store_true", help="Migrate the recipe to the latest version.")
command_parser.add_argument("--python", action="store_true", help="Convert the recipe to a Python script.")

group = command_parser.add_mutually_exclusive_group()
group.add_argument("--inplace", action="store_true", help="Overwrite the recipe file in place.")
Expand All @@ -49,7 +48,7 @@ def add_arguments(self, command_parser: Any) -> None:

def run(self, args: Any) -> None:

if not args.validate and not args.format and not args.migrate:
if not args.validate and not args.format and not args.migrate and not args.python:
args.validate = True

with open(args.path) as file:
Expand All @@ -58,10 +57,12 @@ def run(self, args: Any) -> None:
assert isinstance(config, dict)

if args.validate:
if args.inplace and (not args.format and not args.migrate):
from anemoi.datasets.create.gridded.tasks import validate_config

if args.inplace and (not args.format and not args.migrate and not args.python):
argparse.ArgumentError(None, "--inplace is not supported with --validate.")

if args.output and (not args.format and not args.migrate):
if args.output and (not args.format and not args.migrate and not args.python):
argparse.ArgumentError(None, "--output is not supported with --validate.")

validate_config(config)
Expand Down
4 changes: 2 additions & 2 deletions src/anemoi/datasets/commands/recipe/format.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# (C) Copyright 2025 Anemoi contributors.
# (C) Copyright 2024 Anemoi contributors.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
Expand All @@ -11,7 +11,7 @@
import datetime
import logging

from ...dumper import yaml_dump
from anemoi.datasets.misc.dumper import yaml_dump

LOG = logging.getLogger(__name__)

Expand Down
4 changes: 2 additions & 2 deletions src/anemoi/datasets/commands/recipe/migrate.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from glom import delete
from glom import glom

from anemoi.datasets.create import validate_config
from anemoi.datasets.create.gridded.tasks import validate_config
from anemoi.datasets.dumper import yaml_dump

LOG = logging.getLogger(__name__)
Expand Down Expand Up @@ -417,7 +417,7 @@ def _fix_some(config: dict) -> None:
node = glom(config, ".".join(p[:-1]))
node.update(node.pop("<<"))
parent[node.pop("name")] = node
assert len(parent) == 2
assert len(parent) == 2, parent
del parent["source"]

paths = find_paths_in_substrees("label.mars", config)
Expand Down
Loading
Loading