xradar.io.backends.imd.open_imd_volumes#

xradar.io.backends.imd.open_imd_volumes(paths, **kwargs)[source]#

Open a directory of IMD files as a multi-volume xarray.DataTree.

Groups files by filename stem via group_imd_files(), opens each group as a CfRadial2 volume via open_imd_datatree(), and nests them under zero-padded vcp_NN child nodes of a parent root. vcp stands for volume coverage pattern. Padding width is chosen so the child names sort lexically (e.g. 121 volumes -> vcp_000 .. vcp_120).

Parameters:

paths (str, Path, or iterable of those) – Same as group_imd_files(): directory, glob, or list.

:keyword All kwargs are forwarded to open_imd_datatree() (applied per: :keyword volume). Typical: :kwtype volume). Typical: first_dim, reindex_angle, site_as_coords, :keyword optional_groups, min_angle, max_angle.:

Returns:

dtree (xarray.DataTree) –

Root with vcp_NN children, each a full CfRadial2 volume tree:

/
├── vcp_00/
│   ├── (root: sweep_group_name, sweep_fixed_angle, ...)
│   ├── sweep_0
│   ├── sweep_1
│   └── ...
├── vcp_01/
└── ...

Examples

>>> import xradar as xd
>>> tree = xd.io.open_imd_volumes("/data/JPR220822IMD-B")
>>> tree["vcp_00/sweep_0"].ds["DBZH"]