Load ODIM_H5 Volume data from German Weather Service#

In this example, we obtain and read the last 2 hours of available volumetric radar data from German Weather Service available at opendata.dwd.de. Finally we do some plotting.

This retrieves 24 timesteps of the 10 sweeps (moments DBZH and VRADH) of the DWD volume scan of a distinct radar. This amounts to 480 data files which are combined into one volumetric Cf/Radial2 like xarray powered structure.

Exports to single file Odim_H5 and Cf/Radial2 format are shown at the end of this tutorial.

Warning

The following code is based on xarray and xradar. It claims multiple data files and presents them in a DataTree.

import glob
import os
import shutil
import warnings
from html.parser import HTMLParser

import cartopy.crs as ccrs
import certifi
import matplotlib.pyplot as plt
import numpy as np
import urllib3
import xarray as xr
import xradar as xd
from IPython.display import display

warnings.filterwarnings("ignore")
class DWDHTMLParser(HTMLParser):
    def handle_starttag(self, tag, attrs):
        if tag != "a":
            return
        self.links.append(attrs[0][1])


parser = DWDHTMLParser()

Download data from opendata.dwd.de#

radar = "ESS"
DBZH = "sweep_vol_z"
VRADH = "sweep_vol_v"

opendata_url1 = f"https://opendata.dwd.de/weather/radar/sites/{DBZH}/{radar.lower()}/hdf5/filter_polarimetric/"

http = urllib3.PoolManager(cert_reqs="CERT_REQUIRED", ca_certs=certifi.where())
response = http.request("GET", opendata_url1).data.decode("utf-8")

parser.links = []
parser.feed(response)
filelist1 = parser.links[1:]

filelist1.sort(key=lambda x: x.split("-")[2])
filelist1.reverse()

opendata_url2 = f"https://opendata.dwd.de/weather/radar/sites/{VRADH}/{radar.lower()}/hdf5/filter_polarimetric/"

http = urllib3.PoolManager(cert_reqs="CERT_REQUIRED", ca_certs=certifi.where())
response = http.request("GET", opendata_url2).data.decode("utf-8")

parser.links = []
parser.feed(response)
filelist2 = parser.links[1:]

filelist2.sort(key=lambda x: x.split("-")[2])
filelist2.reverse()

Clean up local folder#

flist = glob.glob("ras07*")
for f in flist:
    os.remove(f)

Download latest 24 volumes to current directory#

for f in filelist1[: 10 * 25]:
    with http.request(
        "GET", os.path.join(opendata_url1, f), preload_content=False
    ) as r, open(f, "wb") as out:
        shutil.copyfileobj(r, out)

for f in filelist2[: 10 * 25]:
    with http.request(
        "GET", os.path.join(opendata_url2, f), preload_content=False
    ) as r, open(f, "wb") as out:
        shutil.copyfileobj(r, out)
volume_reflectivity = glob.glob("ras07*_dbzh_*")
volume_velocity = glob.glob("ras07*_vradh_*")
volume_reflectivity = np.array(
    sorted(volume_reflectivity, key=lambda x: x.split("-")[2])
)
volume_velocity = np.array(sorted(volume_velocity, key=lambda x: x.split("-")[2]))
volume_reflectivity = volume_reflectivity.reshape(-1, 10).T
volume_velocity = volume_velocity.reshape(-1, 10).T

Read the data into xarray powered structure#

dsl = []
reindex_angle = dict(
    tolerance=1.0, start_angle=0, stop_angle=360, angle_res=1.0, direction=1
)
for i, (r, v) in enumerate(zip(volume_reflectivity, volume_velocity)):
    ds0 = [
        xr.open_dataset(
            r0,
            engine="odim",
            group="sweep_0",
            reindex_angle=reindex_angle,
            fix_second_angle=True,
        )
        for r0 in r
    ]
    ds0 = [r0.assign_coords(sweep_mode=r0.sweep_mode.min()) for r0 in ds0]
    ds1 = [
        xr.open_dataset(
            v0,
            engine="odim",
            group="sweep_0",
            reindex_angle=reindex_angle,
            fix_second_angle=True,
        )
        for v0 in v
    ]
    ds1 = [r1.assign_coords(sweep_mode=r1.sweep_mode.min()) for r1 in ds1]
    ds2 = [
        xr.merge([r0, v0], compat="no_conflicts").assign(
            volume_time=r0.time.min().dt.floor("5min")
        )
        for r0, v0 in zip(ds0, ds1)
    ]
    ds2 = [r2.wrl.georef.georeference() for r2 in ds2]
    ds = xr.concat(ds2, "volume_time")
    dsl.append(ds)
vt_min = np.array([dsl[i].volume_time.min().values for i in range(10)])
vt_max = np.array([dsl[i].volume_time.max().values for i in range(10)])
if not all((vt_min == vt_min[0])):
    dsl = [ds.sel(volume_time=slice(vt_min.max(), vt_max.min())) for ds in dsl]
else:
    dsl = [ds.isel(volume_time=slice(1, -1)) for ds in dsl]
dsl = sorted(dsl, key=lambda ds: ds.time.min().values)
dtree = {"/": xd.io.backends.common._get_required_root_dataset(dsl, optional=False)}
for i, swp in enumerate(dsl):
    dsl[i]["sweep_number"] = i
dtree = xd.io.backends.common._attach_sweep_groups(dtree, dsl)
vol = xr.DataTree.from_dict(dtree)
display(vol)
<xarray.DataTree>
Group: /
β”‚   Dimensions:              (sweep: 10, volume_time: 24)
β”‚   Coordinates:
β”‚     * volume_time          (volume_time) datetime64[ns] 192B 2026-04-30T06:00:0...
β”‚       longitude            float64 8B 6.967
β”‚       altitude             float64 8B 185.1
β”‚       latitude             float64 8B 51.41
β”‚   Dimensions without coordinates: sweep
β”‚   Data variables:
β”‚       volume_number        int64 8B 0
β”‚       platform_type        <U5 20B 'fixed'
β”‚       instrument_type      <U5 20B 'radar'
β”‚       time_coverage_start  <U20 80B '2026-04-30T06:00:35Z'
β”‚       time_coverage_end    <U20 80B '2026-04-30T07:59:02Z'
β”‚       sweep_mode           object 8B 'azimuth_surveillance'
β”‚       crs_wkt              int64 8B 0
β”‚       sweep_group_name     (sweep, volume_time) int64 2kB 0 0 0 0 0 ... 0 0 0 0 0
β”‚       sweep_fixed_angle    (sweep, volume_time) float64 2kB 5.499 5.499 ... 25.0
β”‚   Attributes:
β”‚       Conventions:      ODIM_H5/V2_2
β”‚       instrument_name:  None
β”‚       version:          None
β”‚       title:            None
β”‚       institution:      None
β”‚       references:       None
β”‚       source:           None
β”‚       history:          None
β”‚       comment:          im/exported using xradar
β”œβ”€β”€ Group: /sweep_0
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 5.471 5.471 5.471 ... 5.471 5.471
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.086 3.257 ... -1.559e+03
β”‚           y                  (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
β”‚           z                  (azimuth, range) float64 2MB 197.0 220.9 ... 1.922e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 0
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 5.499 5.499 ... 5.499 5.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_1
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 4.493 4.493 4.493 ... 4.493 4.493
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.087 3.262 ... -1.562e+03
β”‚           y                  (azimuth, range) float64 2MB 124.6 373.8 ... 1.79e+05
β”‚           z                  (azimuth, range) float64 2MB 194.9 214.5 ... 1.617e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.6 373.8 ... 1.79e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 1
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 4.499 4.499 ... 4.499 4.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_2
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 3.494 3.494 3.494 ... 3.494 3.494
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.089 3.266 ... -1.564e+03
β”‚           y                  (azimuth, range) float64 2MB 124.8 374.3 ... 1.793e+05
β”‚           z                  (azimuth, range) float64 2MB 192.7 208.0 ... 1.304e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.8 374.3 ... 1.793e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 2
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 3.499 3.499 ... 3.499 3.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_3
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 2.483 2.483 2.483 ... 2.483 2.483
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.09 3.269 ... -1.567e+03
β”‚           y                  (azimuth, range) float64 2MB 124.9 374.6 ... 1.795e+05
β”‚           z                  (azimuth, range) float64 2MB 190.5 201.4 ... 9.878e+03
β”‚           gr                 (azimuth, range) float64 2MB 124.9 374.6 ... 1.795e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 3
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 2.499 2.499 ... 2.499 2.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_4
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 1.494 1.494 1.494 ... 1.494 1.494
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.09 3.271 ... -1.568e+03
β”‚           y                  (azimuth, range) float64 2MB 124.9 374.8 ... 1.797e+05
β”‚           z                  (azimuth, range) float64 2MB 188.4 194.9 ... 6.779e+03
β”‚           gr                 (azimuth, range) float64 2MB 125.0 374.9 ... 1.797e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 4
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 1.5 1.5 1.5 ... 1.5 1.5 1.5
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_5
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 0.4834 0.4834 ... 0.4834 0.4834
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.091 3.272 ... -1.569e+03
β”‚           y                  (azimuth, range) float64 2MB 125.0 375.0 ... 1.798e+05
β”‚           z                  (azimuth, range) float64 2MB 186.2 188.3 ... 3.608e+03
β”‚           gr                 (azimuth, range) float64 2MB 125.0 375.0 ... 1.798e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 5
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 0.4999 0.4999 ... 0.4999
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_6
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 496)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 7.987 7.987 7.987 ... 7.987 7.987
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 2kB 125.0 375.0 ... 1.236e+05 1.239e+05
β”‚           x                  (azimuth, range) float64 1MB 1.08 3.241 ... -1.068e+03
β”‚           y                  (azimuth, range) float64 1MB 123.8 371.3 ... 1.224e+05
β”‚           z                  (azimuth, range) float64 1MB 202.5 237.2 ... 1.828e+04
β”‚           gr                 (azimuth, range) float64 1MB 123.8 371.4 ... 1.224e+05
β”‚           rays               (azimuth, range) float64 1MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 714kB 125.0 375.0 ... 1.239e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 34MB -64.0 ... -...
β”‚           sweep_number       int64 8B 6
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 7.998 7.998 ... 7.998 7.998
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 34MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_7
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 11.99 11.99 11.99 ... 11.99 11.99
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           x                  (azimuth, range) float64 691kB 1.067 3.201 ... -510.3
β”‚           y                  (azimuth, range) float64 691kB 122.3 366.8 ... 5.848e+04
β”‚           z                  (azimuth, range) float64 691kB 211.1 263.0 ... 1.282e+04
β”‚           gr                 (azimuth, range) float64 691kB 122.3 366.8 ... 5.848e+04
β”‚           rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
β”‚           sweep_number       int64 8B 7
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 12.0 12.0 12.0 ... 12.0 12.0
β”‚           nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
β”‚           VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_8
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (volume_time, azimuth) float64 69kB 16.97 16.97 ... 16.97
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           x                  (volume_time, azimuth, range) float64 17MB 1.043 ... -...
β”‚           y                  (volume_time, azimuth, range) float64 17MB 119.5 ... 5...
β”‚           z                  (volume_time, azimuth, range) float64 17MB 221.6 ... 1...
β”‚           gr                 (volume_time, azimuth, range) float64 17MB 119.6 ... 5...
β”‚           rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
β”‚           sweep_number       int64 8B 8
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 17.0 17.0 17.0 ... 17.0 17.0
β”‚           nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
β”‚           VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
└── Group: /sweep_9
        Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
        Coordinates:
          * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
            elevation          (volume_time, azimuth) float64 69kB 24.97 24.97 ... 24.97
            time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
          * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
            x                  (volume_time, azimuth, range) float64 17MB 0.9888 ... ...
            y                  (volume_time, azimuth, range) float64 17MB 113.3 ... 5...
            z                  (volume_time, azimuth, range) float64 17MB 237.9 ... 2...
            gr                 (volume_time, azimuth, range) float64 17MB 113.3 ... 5...
            rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
            bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
            sweep_mode         object 8B 'azimuth_surveillance'
            crs_wkt            int64 8B 0
        Data variables:
            DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
            sweep_number       int64 8B 9
            prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
            follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
            sweep_fixed_angle  (volume_time) float64 192B 25.0 25.0 25.0 ... 25.0 25.0
            nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
            VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...

Inspect structure#

Root Group#

vol.root
<xarray.DataTree>
Group: /
β”‚   Dimensions:              (sweep: 10, volume_time: 24)
β”‚   Coordinates:
β”‚     * volume_time          (volume_time) datetime64[ns] 192B 2026-04-30T06:00:0...
β”‚       longitude            float64 8B 6.967
β”‚       altitude             float64 8B 185.1
β”‚       latitude             float64 8B 51.41
β”‚   Dimensions without coordinates: sweep
β”‚   Data variables:
β”‚       volume_number        int64 8B 0
β”‚       platform_type        <U5 20B 'fixed'
β”‚       instrument_type      <U5 20B 'radar'
β”‚       time_coverage_start  <U20 80B '2026-04-30T06:00:35Z'
β”‚       time_coverage_end    <U20 80B '2026-04-30T07:59:02Z'
β”‚       sweep_mode           object 8B 'azimuth_surveillance'
β”‚       crs_wkt              int64 8B 0
β”‚       sweep_group_name     (sweep, volume_time) int64 2kB 0 0 0 0 0 ... 0 0 0 0 0
β”‚       sweep_fixed_angle    (sweep, volume_time) float64 2kB 5.499 5.499 ... 25.0
β”‚   Attributes:
β”‚       Conventions:      ODIM_H5/V2_2
β”‚       instrument_name:  None
β”‚       version:          None
β”‚       title:            None
β”‚       institution:      None
β”‚       references:       None
β”‚       source:           None
β”‚       history:          None
β”‚       comment:          im/exported using xradar
β”œβ”€β”€ Group: /sweep_0
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 5.471 5.471 5.471 ... 5.471 5.471
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.086 3.257 ... -1.559e+03
β”‚           y                  (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
β”‚           z                  (azimuth, range) float64 2MB 197.0 220.9 ... 1.922e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 0
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 5.499 5.499 ... 5.499 5.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_1
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 4.493 4.493 4.493 ... 4.493 4.493
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.087 3.262 ... -1.562e+03
β”‚           y                  (azimuth, range) float64 2MB 124.6 373.8 ... 1.79e+05
β”‚           z                  (azimuth, range) float64 2MB 194.9 214.5 ... 1.617e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.6 373.8 ... 1.79e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 1
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 4.499 4.499 ... 4.499 4.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_2
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 3.494 3.494 3.494 ... 3.494 3.494
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.089 3.266 ... -1.564e+03
β”‚           y                  (azimuth, range) float64 2MB 124.8 374.3 ... 1.793e+05
β”‚           z                  (azimuth, range) float64 2MB 192.7 208.0 ... 1.304e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.8 374.3 ... 1.793e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 2
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 3.499 3.499 ... 3.499 3.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_3
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 2.483 2.483 2.483 ... 2.483 2.483
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.09 3.269 ... -1.567e+03
β”‚           y                  (azimuth, range) float64 2MB 124.9 374.6 ... 1.795e+05
β”‚           z                  (azimuth, range) float64 2MB 190.5 201.4 ... 9.878e+03
β”‚           gr                 (azimuth, range) float64 2MB 124.9 374.6 ... 1.795e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 3
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 2.499 2.499 ... 2.499 2.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_4
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 1.494 1.494 1.494 ... 1.494 1.494
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.09 3.271 ... -1.568e+03
β”‚           y                  (azimuth, range) float64 2MB 124.9 374.8 ... 1.797e+05
β”‚           z                  (azimuth, range) float64 2MB 188.4 194.9 ... 6.779e+03
β”‚           gr                 (azimuth, range) float64 2MB 125.0 374.9 ... 1.797e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 4
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 1.5 1.5 1.5 ... 1.5 1.5 1.5
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_5
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 0.4834 0.4834 ... 0.4834 0.4834
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.091 3.272 ... -1.569e+03
β”‚           y                  (azimuth, range) float64 2MB 125.0 375.0 ... 1.798e+05
β”‚           z                  (azimuth, range) float64 2MB 186.2 188.3 ... 3.608e+03
β”‚           gr                 (azimuth, range) float64 2MB 125.0 375.0 ... 1.798e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 5
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 0.4999 0.4999 ... 0.4999
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_6
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 496)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 7.987 7.987 7.987 ... 7.987 7.987
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 2kB 125.0 375.0 ... 1.236e+05 1.239e+05
β”‚           x                  (azimuth, range) float64 1MB 1.08 3.241 ... -1.068e+03
β”‚           y                  (azimuth, range) float64 1MB 123.8 371.3 ... 1.224e+05
β”‚           z                  (azimuth, range) float64 1MB 202.5 237.2 ... 1.828e+04
β”‚           gr                 (azimuth, range) float64 1MB 123.8 371.4 ... 1.224e+05
β”‚           rays               (azimuth, range) float64 1MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 714kB 125.0 375.0 ... 1.239e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 34MB -64.0 ... -...
β”‚           sweep_number       int64 8B 6
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 7.998 7.998 ... 7.998 7.998
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 34MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_7
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 11.99 11.99 11.99 ... 11.99 11.99
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           x                  (azimuth, range) float64 691kB 1.067 3.201 ... -510.3
β”‚           y                  (azimuth, range) float64 691kB 122.3 366.8 ... 5.848e+04
β”‚           z                  (azimuth, range) float64 691kB 211.1 263.0 ... 1.282e+04
β”‚           gr                 (azimuth, range) float64 691kB 122.3 366.8 ... 5.848e+04
β”‚           rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
β”‚           sweep_number       int64 8B 7
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 12.0 12.0 12.0 ... 12.0 12.0
β”‚           nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
β”‚           VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_8
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (volume_time, azimuth) float64 69kB 16.97 16.97 ... 16.97
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           x                  (volume_time, azimuth, range) float64 17MB 1.043 ... -...
β”‚           y                  (volume_time, azimuth, range) float64 17MB 119.5 ... 5...
β”‚           z                  (volume_time, azimuth, range) float64 17MB 221.6 ... 1...
β”‚           gr                 (volume_time, azimuth, range) float64 17MB 119.6 ... 5...
β”‚           rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
β”‚           sweep_number       int64 8B 8
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 17.0 17.0 17.0 ... 17.0 17.0
β”‚           nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
β”‚           VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
└── Group: /sweep_9
        Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
        Coordinates:
          * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
            elevation          (volume_time, azimuth) float64 69kB 24.97 24.97 ... 24.97
            time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
          * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
            x                  (volume_time, azimuth, range) float64 17MB 0.9888 ... ...
            y                  (volume_time, azimuth, range) float64 17MB 113.3 ... 5...
            z                  (volume_time, azimuth, range) float64 17MB 237.9 ... 2...
            gr                 (volume_time, azimuth, range) float64 17MB 113.3 ... 5...
            rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
            bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
            sweep_mode         object 8B 'azimuth_surveillance'
            crs_wkt            int64 8B 0
        Data variables:
            DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
            sweep_number       int64 8B 9
            prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
            follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
            sweep_fixed_angle  (volume_time) float64 192B 25.0 25.0 25.0 ... 25.0 25.0
            nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
            VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...

Sweep Groups#

vol["sweep_0"]
<xarray.DataTree 'sweep_0'>
Group: /sweep_0
    Dimensions:            (sweep: 10, volume_time: 24, azimuth: 360, range: 720)
    Coordinates:
      * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
        elevation          (azimuth) float64 3kB 5.471 5.471 5.471 ... 5.471 5.471
        time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
      * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
        x                  (azimuth, range) float64 2MB 1.086 3.257 ... -1.559e+03
        y                  (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
        z                  (azimuth, range) float64 2MB 197.0 220.9 ... 1.922e+04
        gr                 (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
        rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
        bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
        sweep_mode         object 8B 'azimuth_surveillance'
        crs_wkt            int64 8B 0
    Inherited coordinates:
      * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
    Dimensions without coordinates: sweep
    Data variables:
        DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
        sweep_number       int64 8B 0
        prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
        follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
        sweep_fixed_angle  (volume_time) float64 192B 5.499 5.499 ... 5.499 5.499
        nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
        VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...

plot sweeps#

DBZH#

vol["sweep_0"].isel(volume_time=0)
<xarray.DataTree 'sweep_0'>
Group: /
    Dimensions:            (azimuth: 360, range: 720)
    Coordinates: (12/13)
      * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
        elevation          (azimuth) float64 3kB 5.471 5.471 5.471 ... 5.471 5.471
        time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:00:54.34749...
      * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
        x                  (azimuth, range) float64 2MB 1.086 3.257 ... -1.559e+03
        y                  (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
        ...                 ...
        gr                 (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
        rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
        bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
        volume_time        datetime64[ns] 8B 2026-04-30T06:00:00
        sweep_mode         object 8B 'azimuth_surveillance'
        crs_wkt            int64 8B 0
    Data variables:
        DBZH               (azimuth, range) float64 2MB -64.0 -64.0 ... -64.0 -64.0
        sweep_number       int64 8B 0
        prt_mode           <U7 28B 'not_set'
        follow_mode        <U7 28B 'not_set'
        sweep_fixed_angle  float64 8B 5.499
        nyquist_velocity   float64 8B 32.08
        VRADH              (azimuth, range) float64 2MB -128.0 -128.0 ... -128.0
vol.match("sweep*")
<xarray.DataTree>
Group: /
β”œβ”€β”€ Group: /sweep_0
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 5.471 5.471 5.471 ... 5.471 5.471
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.086 3.257 ... -1.559e+03
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 2MB 197.0 220.9 ... 1.922e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.4 373.3 ... 1.787e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 0
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 5.499 5.499 ... 5.499 5.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_1
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 4.493 4.493 4.493 ... 4.493 4.493
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.087 3.262 ... -1.562e+03
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 2MB 194.9 214.5 ... 1.617e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.6 373.8 ... 1.79e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 1
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 4.499 4.499 ... 4.499 4.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_2
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 3.494 3.494 3.494 ... 3.494 3.494
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.089 3.266 ... -1.564e+03
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 2MB 192.7 208.0 ... 1.304e+04
β”‚           gr                 (azimuth, range) float64 2MB 124.8 374.3 ... 1.793e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 2
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 3.499 3.499 ... 3.499 3.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_3
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 2.483 2.483 2.483 ... 2.483 2.483
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.09 3.269 ... -1.567e+03
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 2MB 190.5 201.4 ... 9.878e+03
β”‚           gr                 (azimuth, range) float64 2MB 124.9 374.6 ... 1.795e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 3
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 2.499 2.499 ... 2.499 2.499
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_4
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 1.494 1.494 1.494 ... 1.494 1.494
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.09 3.271 ... -1.568e+03
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 2MB 188.4 194.9 ... 6.779e+03
β”‚           gr                 (azimuth, range) float64 2MB 125.0 374.9 ... 1.797e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 4
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 1.5 1.5 1.5 ... 1.5 1.5 1.5
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_5
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 720)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 0.4834 0.4834 ... 0.4834 0.4834
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           x                  (azimuth, range) float64 2MB 1.091 3.272 ... -1.569e+03
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 2MB 186.2 188.3 ... 3.608e+03
β”‚           gr                 (azimuth, range) float64 2MB 125.0 375.0 ... 1.798e+05
β”‚           rays               (azimuth, range) float64 2MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 1MB 125.0 375.0 ... 1.799e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 50MB -64.0 ... -...
β”‚           sweep_number       int64 8B 5
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 0.4999 0.4999 ... 0.4999
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 50MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_6
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 496)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 7.987 7.987 7.987 ... 7.987 7.987
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 2kB 125.0 375.0 ... 1.236e+05 1.239e+05
β”‚           x                  (azimuth, range) float64 1MB 1.08 3.241 ... -1.068e+03
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 1MB 202.5 237.2 ... 1.828e+04
β”‚           gr                 (azimuth, range) float64 1MB 123.8 371.4 ... 1.224e+05
β”‚           rays               (azimuth, range) float64 1MB 0.5 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 714kB 125.0 375.0 ... 1.239e+05
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 34MB -64.0 ... -...
β”‚           sweep_number       int64 8B 6
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 7.998 7.998 ... 7.998 7.998
β”‚           nyquist_velocity   (volume_time) float64 192B 32.08 32.08 ... 32.08 32.08
β”‚           VRADH              (volume_time, azimuth, range) float64 34MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_7
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB 11.99 11.99 11.99 ... 11.99 11.99
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           x                  (azimuth, range) float64 691kB 1.067 3.201 ... -510.3
β”‚           ...                 ...
β”‚           z                  (azimuth, range) float64 691kB 211.1 263.0 ... 1.282e+04
β”‚           gr                 (azimuth, range) float64 691kB 122.3 366.8 ... 5.848e+04
β”‚           rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
β”‚           sweep_number       int64 8B 7
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 12.0 12.0 12.0 ... 12.0 12.0
β”‚           nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
β”‚           VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
β”œβ”€β”€ Group: /sweep_8
β”‚       Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
β”‚       Coordinates: (12/13)
β”‚         * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
β”‚         * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (volume_time, azimuth) float64 69kB 16.97 16.97 ... 16.97
β”‚           time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           x                  (volume_time, azimuth, range) float64 17MB 1.043 ... -...
β”‚           ...                 ...
β”‚           z                  (volume_time, azimuth, range) float64 17MB 221.6 ... 1...
β”‚           gr                 (volume_time, azimuth, range) float64 17MB 119.6 ... 5...
β”‚           rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
β”‚           bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
β”‚           sweep_mode         object 8B 'azimuth_surveillance'
β”‚           crs_wkt            int64 8B 0
β”‚       Data variables:
β”‚           DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
β”‚           sweep_number       int64 8B 8
β”‚           prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
β”‚           sweep_fixed_angle  (volume_time) float64 192B 17.0 17.0 17.0 ... 17.0 17.0
β”‚           nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
β”‚           VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
└── Group: /sweep_9
        Dimensions:            (volume_time: 24, azimuth: 360, range: 240)
        Coordinates: (12/13)
          * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
          * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
            elevation          (volume_time, azimuth) float64 69kB 24.97 24.97 ... 24.97
            time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
          * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
            x                  (volume_time, azimuth, range) float64 17MB 0.9888 ... ...
            ...                 ...
            z                  (volume_time, azimuth, range) float64 17MB 237.9 ... 2...
            gr                 (volume_time, azimuth, range) float64 17MB 113.3 ... 5...
            rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
            bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
            sweep_mode         object 8B 'azimuth_surveillance'
            crs_wkt            int64 8B 0
        Data variables:
            DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
            sweep_number       int64 8B 9
            prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
            follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
            sweep_fixed_angle  (volume_time) float64 192B 25.0 25.0 25.0 ... 25.0 25.0
            nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
            VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
swp = vol["sweep_0"].isel(volume_time=0).ds
swp.sweep_fixed_angle.values
array(5.49865723)
fig, gs = plt.subplots(
    4, 3, figsize=(20, 30), sharex=True, sharey=True, constrained_layout=True
)

for i, grp in enumerate(vol.match("sweep_*")):
    ax = gs.flat[i]
    swp = vol[grp].isel(volume_time=0).ds
    swp.DBZH.wrl.vis.plot(ax=ax, fig=fig)
    ax.set_title(swp.sweep_fixed_angle.values)

fig.delaxes(gs.flat[-2])
fig.delaxes(gs.flat[-1])
../../_images/853b9c6e45e7ca2583aa986f7c882812feb6c1cdd9355f97328647134c51ad59.png

VRADH#

fig, gs = plt.subplots(
    4, 3, figsize=(20, 30), sharex=True, sharey=True, constrained_layout=True
)

for i, grp in enumerate(vol.match("sweep_*")):
    ax = gs.flat[i]
    swp = vol[grp].isel(volume_time=0).ds
    swp.VRADH.wrl.vis.plot(ax=ax, fig=fig)
    ax.set_title(swp.sweep_fixed_angle.values)

fig.delaxes(gs.flat[-2])
fig.delaxes(gs.flat[-1])
../../_images/904f16531f804c4703f4a2983b3d721a76bbfceb23105c2dfa9908e3e65718bf.png

Plot single sweep using cartopy#

vol0 = vol.isel(volume_time=0)
swp = vol0["sweep_9"].to_dataset(inherit="all_coords")
map_trans = ccrs.AzimuthalEquidistant(
    central_latitude=swp.latitude.values,
    central_longitude=swp.longitude.values,
)
map_proj = ccrs.AzimuthalEquidistant(
    central_latitude=swp.latitude.values,
    central_longitude=swp.longitude.values,
)

pm = swp.DBZH.wrl.georef.georeference().wrl.vis.plot(crs=map_proj)
ax = plt.gca()
ax.gridlines(crs=map_proj)
print(ax)
< GeoAxes: +proj=aeqd +ellps=WGS84 +lon_0=6.967111 +lat_0=51.405649 +x_0=0.0 +y_0=0.0 +no_defs +type=crs >
../../_images/702d246a7685fd9efe9f0a7d84bcaa1a91083eb38a32ea203f0a658dd677c468.png
map_proj = ccrs.Mercator(central_longitude=swp.longitude.values)
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection=map_proj)
pm = swp.DBZH.wrl.georef.georeference().wrl.vis.plot(ax=ax)
ax.gridlines(draw_labels=True)
<cartopy.mpl.gridliner.Gridliner at 0x78c63c36da90>
../../_images/9d5a48645cfb3b5861c77f11fdfd5437ade48ec826900642f3af9aef74c5449a.png
fig = plt.figure(figsize=(10, 8))
proj = ccrs.AzimuthalEquidistant(
    central_latitude=swp.latitude.values,
    central_longitude=swp.longitude.values,
)
ax = fig.add_subplot(111, projection=proj)
pm = swp.DBZH.wrl.georef.georeference().wrl.vis.plot(ax=ax)
ax.gridlines()
<cartopy.mpl.gridliner.Gridliner at 0x78c63c240f50>
../../_images/deb71300a6ffaaa7755f8baa38f58094b590477b1d35466661a10bdfefd63388.png

Inspect radar moments#

The DataArrays can be accessed by key or by attribute. Each DataArray inherits dimensions and coordinates of it’s parent dataset. There are attributes connected which are defined by Cf/Radial and/or ODIM_H5 standard.

vol["sweep_9"].isel(volume_time=0).ds.DBZH
<xarray.DataArray 'DBZH' (azimuth: 360, range: 240)> Size: 691kB
array([[-64.00292982, -64.00292982, -64.00292982, ..., -64.00292982,
        -64.00292982, -64.00292982],
       [-64.00292982, -64.00292982, -64.00292982, ..., -64.00292982,
        -64.00292982, -64.00292982],
       [-64.00292982, -64.00292982, -64.00292982, ..., -64.00292982,
        -64.00292982, -64.00292982],
       ...,
       [-64.00292982, -64.00292982, -64.00292982, ..., -64.00292982,
        -64.00292982, -64.00292982],
       [-64.00292982, -64.00292982, -64.00292982, ..., -64.00292982,
        -64.00292982, -64.00292982],
       [-64.00292982, -64.00292982, -64.00292982, ..., -64.00292982,
        -64.00292982, -64.00292982]], shape=(360, 240))
Coordinates: (12/13)
  * azimuth      (azimuth) float64 3kB 0.5 1.5 2.5 3.5 ... 357.5 358.5 359.5
    elevation    (azimuth) float64 3kB 24.97 24.97 24.97 ... 24.97 24.97 24.97
    time         (azimuth) datetime64[ns] 3kB 2026-04-30T06:03:54.509999872 ....
  * range        (range) float32 960B 125.0 375.0 625.0 ... 5.962e+04 5.988e+04
    x            (azimuth, range) float64 691kB 0.9888 2.966 ... -470.3 -472.2
    y            (azimuth, range) float64 691kB 113.3 339.9 ... 5.411e+04
    ...           ...
    gr           (azimuth, range) float64 691kB 113.3 339.9 ... 5.411e+04
    rays         (azimuth, range) float64 691kB 0.5 0.5 0.5 ... 359.5 359.5
    bins         (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
    volume_time  datetime64[ns] 8B 2026-04-30T06:00:00
    sweep_mode   object 8B 'azimuth_surveillance'
    crs_wkt      int64 8B 0
Attributes:
    _Undetect:      0.0
    units:          dBZ
    long_name:      Equivalent reflectivity factor H
    standard_name:  radar_equivalent_reflectivity_factor_h
vol["sweep_9"].isel(volume_time=0).ds.sweep_mode
<xarray.DataArray 'sweep_mode' ()> Size: 8B
array('azimuth_surveillance', dtype=object)
Coordinates:
    volume_time  datetime64[ns] 8B 2026-04-30T06:00:00
    sweep_mode   object 8B 'azimuth_surveillance'
    crs_wkt      int64 8B 0

Plot Quasi Vertical Profile#

ts = vol["sweep_9"]
ts
<xarray.DataTree 'sweep_9'>
Group: /sweep_9
    Dimensions:            (sweep: 10, volume_time: 24, azimuth: 360, range: 240)
    Coordinates:
      * azimuth            (azimuth) float64 3kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
        elevation          (volume_time, azimuth) float64 69kB 24.97 24.97 ... 24.97
        time               (volume_time, azimuth) datetime64[ns] 69kB 2026-04-30T...
      * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
        x                  (volume_time, azimuth, range) float64 17MB 0.9888 ... ...
        y                  (volume_time, azimuth, range) float64 17MB 113.3 ... 5...
        z                  (volume_time, azimuth, range) float64 17MB 237.9 ... 2...
        gr                 (volume_time, azimuth, range) float64 17MB 113.3 ... 5...
        rays               (azimuth, range) float64 691kB 0.5 0.5 ... 359.5 359.5
        bins               (azimuth, range) float32 346kB 125.0 375.0 ... 5.988e+04
        sweep_mode         object 8B 'azimuth_surveillance'
        crs_wkt            int64 8B 0
    Inherited coordinates:
      * volume_time        (volume_time) datetime64[ns] 192B 2026-04-30T06:00:00 ...
    Dimensions without coordinates: sweep
    Data variables:
        DBZH               (volume_time, azimuth, range) float64 17MB -64.0 ... -...
        sweep_number       int64 8B 9
        prt_mode           (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
        follow_mode        (volume_time) <U7 672B 'not_set' 'not_set' ... 'not_set'
        sweep_fixed_angle  (volume_time) float64 192B 25.0 25.0 25.0 ... 25.0 25.0
        nyquist_velocity   (volume_time) float64 192B 32.22 32.22 ... 32.22 32.22
        VRADH              (volume_time, azimuth, range) float64 17MB -128.0 ... ...
fig = plt.figure(figsize=(10, 4))
ax = fig.add_subplot(111)
ts.ds.DBZH.median("azimuth").plot(x="volume_time", vmin=-10, vmax=30, ax=ax)
ax.set_title(f"{np.datetime_as_string(ts.ds.time[0][0].values, unit='D')}")
ax.set_ylim(0, 20000)
(0.0, 20000.0)
../../_images/011815f545c12bd007d3912da386da1ead7d26f4b54098380d5b356c80d6c084.png

Export to OdimH5#

This exports the radar volume at given timestep including all moments into one ODIM_H5 compliant data file.

xd.io.to_odim(vol0, "dwd_odim.h5", source="RAD:DWD")

Export to Cf/Radial2#

This exports the radar volume at given timestep including all moments into one Cf/Radial2 compliant data file.

xd.io.to_cfradial2(vol0, "dwd_cfradial2.nc")

Import again#

vol1 = xd.io.open_odim_datatree("dwd_odim.h5")
display(vol1)
<xarray.DataTree>
Group: /
β”‚   Dimensions:              (sweep: 10)
β”‚   Coordinates:
β”‚       latitude             float64 8B ...
β”‚       longitude            float64 8B ...
β”‚       altitude             float64 8B ...
β”‚   Dimensions without coordinates: sweep
β”‚   Data variables:
β”‚       volume_number        int64 8B 0
β”‚       platform_type        <U5 20B 'fixed'
β”‚       instrument_type      <U5 20B 'radar'
β”‚       time_coverage_start  <U20 80B '2026-04-30T06:00:35Z'
β”‚       time_coverage_end    <U20 80B '2026-04-30T06:04:02Z'
β”‚       sweep_group_name     (sweep) int64 80B 0 1 2 3 4 5 6 7 8 9
β”‚       sweep_fixed_angle    (sweep) float64 80B 5.499 4.499 3.499 ... 17.0 25.0
β”‚   Attributes:
β”‚       Conventions:      ODIM_H5/V2_2
β”‚       instrument_name:  None
β”‚       version:          None
β”‚       title:            None
β”‚       institution:      None
β”‚       references:       None
β”‚       source:           None
β”‚       history:          None
β”‚       comment:          im/exported using xradar
β”œβ”€β”€ Group: /sweep_0
β”‚       Dimensions:            (azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:00:54.51802...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 2MB ...
β”‚           VRADH              (azimuth, range) float64 2MB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_1
β”‚       Dimensions:            (azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:01:16.94302...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 2MB ...
β”‚           VRADH              (azimuth, range) float64 2MB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_2
β”‚       Dimensions:            (azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:01:39.36802...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 2MB ...
β”‚           VRADH              (azimuth, range) float64 2MB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_3
β”‚       Dimensions:            (azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:02:01.95836...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 2MB ...
β”‚           VRADH              (azimuth, range) float64 2MB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_4
β”‚       Dimensions:            (azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:02:24.40836...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 2MB ...
β”‚           VRADH              (azimuth, range) float64 2MB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_5
β”‚       Dimensions:            (azimuth: 360, range: 720)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:02:52.37497...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 2MB ...
β”‚           VRADH              (azimuth, range) float64 2MB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_6
β”‚       Dimensions:            (azimuth: 360, range: 496)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:03:15.80556...
β”‚         * range              (range) float32 2kB 125.0 375.0 ... 1.236e+05 1.239e+05
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 1MB ...
β”‚           VRADH              (azimuth, range) float64 1MB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_7
β”‚       Dimensions:            (azimuth: 360, range: 240)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:03:30.48332...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 691kB ...
β”‚           VRADH              (azimuth, range) float64 691kB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
β”œβ”€β”€ Group: /sweep_8
β”‚       Dimensions:            (azimuth: 360, range: 240)
β”‚       Coordinates:
β”‚         * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
β”‚           elevation          (azimuth) float64 3kB ...
β”‚           time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:03:42.28332...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚       Data variables:
β”‚           DBZH               (azimuth, range) float64 691kB ...
β”‚           VRADH              (azimuth, range) float64 691kB ...
β”‚           sweep_mode         <U20 80B ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           nyquist_velocity   object 8B ...
└── Group: /sweep_9
        Dimensions:            (azimuth: 360, range: 240)
        Coordinates:
          * azimuth            (azimuth) float32 1kB 0.5 1.5 2.5 ... 357.5 358.5 359.5
            elevation          (azimuth) float64 3kB ...
            time               (azimuth) datetime64[ns] 3kB 2026-04-30T06:03:54.74999...
          * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
        Data variables:
            DBZH               (azimuth, range) float64 691kB ...
            VRADH              (azimuth, range) float64 691kB ...
            sweep_mode         <U20 80B ...
            sweep_number       int64 8B ...
            prt_mode           <U7 28B ...
            follow_mode        <U7 28B ...
            sweep_fixed_angle  float64 8B ...
            nyquist_velocity   object 8B ...
vol2 = xr.open_datatree("dwd_cfradial2.nc")
display(vol2)
<xarray.DataTree>
Group: /
β”‚   Dimensions:              (sweep: 10)
β”‚   Coordinates:
β”‚       longitude            float64 8B ...
β”‚       altitude             float64 8B ...
β”‚       latitude             float64 8B ...
β”‚       volume_time          datetime64[ns] 8B ...
β”‚   Dimensions without coordinates: sweep
β”‚   Data variables:
β”‚       volume_number        int64 8B ...
β”‚       platform_type        <U5 20B ...
β”‚       instrument_type      <U5 20B ...
β”‚       time_coverage_start  <U20 80B ...
β”‚       time_coverage_end    <U20 80B ...
β”‚       sweep_mode           <U20 80B ...
β”‚       crs_wkt              int64 8B ...
β”‚       sweep_group_name     (sweep) int64 80B ...
β”‚       sweep_fixed_angle    (sweep) float64 80B ...
β”‚   Attributes:
β”‚       Conventions:      ODIM_H5/V2_2
β”‚       instrument_name:  None
β”‚       version:          None
β”‚       title:            None
β”‚       institution:      None
β”‚       references:       None
β”‚       source:           None
β”‚       history:          None
β”‚       comment:          im/exported using xradar
β”œβ”€β”€ Group: /sweep_0
β”‚       Dimensions:            (time: 360, range: 720)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:00:35.28250009...
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 2MB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 2MB ...
β”œβ”€β”€ Group: /sweep_1
β”‚       Dimensions:            (time: 360, range: 720)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:00:58.348000 ....
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 2MB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 2MB ...
β”œβ”€β”€ Group: /sweep_2
β”‚       Dimensions:            (time: 360, range: 720)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:01:21.41200025...
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 2MB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 2MB ...
β”œβ”€β”€ Group: /sweep_3
β”‚       Dimensions:            (time: 360, range: 720)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:01:44.53900006...
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 2MB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 2MB ...
β”œβ”€β”€ Group: /sweep_4
β”‚       Dimensions:            (time: 360, range: 720)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:02:07.604000 ....
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 2MB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 2MB ...
β”œβ”€β”€ Group: /sweep_5
β”‚       Dimensions:            (time: 360, range: 720)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:02:31.01049984...
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 3kB 125.0 375.0 ... 1.796e+05 1.799e+05
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 2MB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 2MB ...
β”œβ”€β”€ Group: /sweep_6
β”‚       Dimensions:            (time: 360, range: 496)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:03:02.59550003...
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 2kB 125.0 375.0 ... 1.236e+05 1.239e+05
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 1MB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 1MB ...
β”œβ”€β”€ Group: /sweep_7
β”‚       Dimensions:            (time: 360, range: 240)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:03:24.03950003...
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 691kB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 691kB ...
β”œβ”€β”€ Group: /sweep_8
β”‚       Dimensions:            (time: 360, range: 240)
β”‚       Coordinates:
β”‚         * time               (time) datetime64[ns] 3kB 2026-04-30T06:03:37.24049996...
β”‚           azimuth            (time) float64 3kB ...
β”‚           elevation          (time) float64 3kB ...
β”‚         * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
β”‚           sweep_mode         <U20 80B ...
β”‚       Data variables:
β”‚           DBZH               (time, range) float64 691kB ...
β”‚           sweep_number       int64 8B ...
β”‚           prt_mode           <U7 28B ...
β”‚           follow_mode        <U7 28B ...
β”‚           sweep_fixed_angle  float64 8B ...
β”‚           VRADH              (time, range) float64 691kB ...
└── Group: /sweep_9
        Dimensions:            (time: 360, range: 240)
        Coordinates:
          * time               (time) datetime64[ns] 3kB 2026-04-30T06:03:50.77550003...
            azimuth            (time) float64 3kB ...
            elevation          (time) float64 3kB ...
          * range              (range) float32 960B 125.0 375.0 ... 5.962e+04 5.988e+04
            sweep_mode         <U20 80B ...
        Data variables:
            DBZH               (time, range) float64 691kB ...
            sweep_number       int64 8B ...
            prt_mode           <U7 28B ...
            follow_mode        <U7 28B ...
            sweep_fixed_angle  float64 8B ...
            VRADH              (time, range) float64 691kB ...