Skip to content

Commit da9e6ff

Browse files
committed
all working again
1 parent f547279 commit da9e6ff

File tree

4 files changed

+271
-165
lines changed

4 files changed

+271
-165
lines changed

cmip7_prep/cmor_writer.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@
1010
from contextlib import AbstractContextManager, contextmanager
1111
from pathlib import Path
1212
import re
13+
import types
1314
from importlib.resources import files as ir_files, as_file
14-
from typing import Any, Optional, Dict, Union
15+
from typing import Any, Optional, Dict, Union, Sequence
1516
import datetime as dt
1617
import cftime
1718

@@ -450,3 +451,19 @@ def write_variable(
450451
outdir.mkdir(parents=True, exist_ok=True)
451452
outfile = outdir / f"{getattr(vdef, 'name', varname)}.nc"
452453
cmor.close(var_id, file_name=str(outfile))
454+
455+
def write_variables(
456+
self,
457+
ds: xr.Dataset,
458+
cmip_vars: Sequence[str],
459+
mapping: "Mapping",
460+
*,
461+
outdir: Path,
462+
) -> None:
463+
"""Write multiple CMIP variables from one dataset."""
464+
for v in cmip_vars:
465+
cfg = mapping.get_cfg(v) or {}
466+
table = cfg.get("table", "Amon")
467+
units = cfg.get("units", "")
468+
vdef = types.SimpleNamespace(name=v, table=table, realm=table, units=units)
469+
self.write_variable(ds, v, vdef, outdir=outdir)

0 commit comments

Comments
 (0)