Load ODIM_H5 Volume data from German Weather Service#

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

This retrieves 6 timesteps of the 10 sweeps (moments DBZH and VRADH) of the DWD volume scan of a distinct radar. This amounts to 120 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.

Note

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

[1]:
import wradlib as wrl
import warnings

warnings.filterwarnings("ignore")
import matplotlib.pyplot as plt
import numpy as np
import xarray as xr

try:
    get_ipython().run_line_magic("matplotlib inline")
except:
    plt.ion()
/home/runner/micromamba/envs/wradlib-tests/lib/python3.11/site-packages/h5py/__init__.py:36: UserWarning: h5py is running against HDF5 1.14.3 when it was built against 1.14.2, this may cause problems
  _warn(("h5py is running against HDF5 {0} when it was built against {1}, "
[2]:
import urllib3
import os
import io
import glob
import shutil
import datetime

Download radar volumes of latest 30 minutes from server using wetterdienst#

wetterdienst is a neat package for easy retrieval of data primarily from DWD. For further information have a look at their documentation.

[3]:
from wetterdienst.provider.dwd.radar import (
    DwdRadarDataFormat,
    DwdRadarDataSubset,
    DwdRadarParameter,
    DwdRadarValues,
)
from wetterdienst.provider.dwd.radar.sites import DwdRadarSite
[4]:
elevations = range(10)

end_date = datetime.datetime.utcnow()
start_date = end_date - datetime.timedelta(minutes=30)

results_velocity = []
results_reflectivity = []

for el in elevations:
    # Horizontal Doppler Velocity
    request_velocity = DwdRadarValues(
        parameter=DwdRadarParameter.SWEEP_VOL_VELOCITY_H,
        start_date=start_date,
        end_date=end_date,
        site=DwdRadarSite.ESS,
        elevation=el,
        fmt=DwdRadarDataFormat.HDF5,
        subset=DwdRadarDataSubset.POLARIMETRIC,
    )

    # Horizontal Reflectivity
    request_reflectivity = DwdRadarValues(
        parameter=DwdRadarParameter.SWEEP_VOL_REFLECTIVITY_H,
        start_date=start_date,
        end_date=end_date,
        elevation=el,
        site=DwdRadarSite.ESS,
        fmt=DwdRadarDataFormat.HDF5,
        subset=DwdRadarDataSubset.POLARIMETRIC,
    )

    # Submit requests.
    results_velocity.append(request_velocity.query())
    results_reflectivity.append(request_reflectivity.query())
[5]:
import wetterdienst

wetterdienst.__version__
[5]:
'0.49.0'

Acquire data as memory buffer#

[6]:
%%time
volume_velocity = []
for item1 in results_velocity:
    files = []
    for item2 in item1:
        files.append(item2.data)
    volume_velocity.append(files)
more-to-come:

class:

stderr

0%| | 0/240 [00:00<?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:02&lt;08:46, 2.20s/it]

</pre>

0%| | 1/240 [00:02<08:46, 2.20s/it]

end{sphinxVerbatim}

0%| | 1/240 [00:02<08:46, 2.20s/it]

more-to-come:

class:

stderr

1%| | 2/240 [00:02&lt;03:57, 1.00it/s]

</pre>

1%| | 2/240 [00:02<03:57, 1.00it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:02<03:57, 1.00it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:02&lt;02:24, 1.64it/s]

</pre>

1%|▏ | 3/240 [00:02<02:24, 1.64it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:02<02:24, 1.64it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:02&lt;01:40, 2.34it/s]

</pre>

2%|▏ | 4/240 [00:02<01:40, 2.34it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:02<01:40, 2.34it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:02&lt;01:16, 3.08it/s]

</pre>

2%|▏ | 5/240 [00:02<01:16, 3.08it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:02<01:16, 3.08it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:02&lt;01:01, 3.80it/s]

</pre>

2%|▎ | 6/240 [00:02<01:01, 3.80it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:02<01:01, 3.80it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:03&lt;00:52, 4.47it/s]

</pre>

3%|▎ | 7/240 [00:03<00:52, 4.47it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:03<00:52, 4.47it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:03&lt;01:42, 2.27it/s]

</pre>

3%|▎ | 7/240 [00:03<01:42, 2.27it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:03<01:42, 2.27it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:21, 1.69it/s]

</pre>

0%| | 1/240 [00:00<02:21, 1.69it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:21, 1.69it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:18, 3.03it/s]

</pre>

1%| | 2/240 [00:00<01:18, 3.03it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:18, 3.03it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:58, 4.07it/s]

</pre>

1%|▏ | 3/240 [00:00<00:58, 4.07it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:58, 4.07it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:01&lt;00:48, 4.86it/s]

</pre>

2%|▏ | 4/240 [00:01<00:48, 4.86it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:01<00:48, 4.86it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:43, 5.46it/s]

</pre>

2%|▏ | 5/240 [00:01<00:43, 5.46it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:43, 5.46it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:39, 5.91it/s]

</pre>

2%|▎ | 6/240 [00:01<00:39, 5.91it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:39, 5.91it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:37, 6.25it/s]

</pre>

3%|▎ | 7/240 [00:01<00:37, 6.25it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:37, 6.25it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:48, 4.81it/s]

</pre>

3%|▎ | 7/240 [00:01<00:48, 4.81it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:48, 4.81it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:21, 1.69it/s]

</pre>

0%| | 1/240 [00:00<02:21, 1.69it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:21, 1.69it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:19, 3.01it/s]

</pre>

1%| | 2/240 [00:00<01:19, 3.01it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:19, 3.01it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;01:04, 3.65it/s]

</pre>

1%|▏ | 3/240 [00:00<01:04, 3.65it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<01:04, 3.65it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:01&lt;00:52, 4.49it/s]

</pre>

2%|▏ | 4/240 [00:01<00:52, 4.49it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:01<00:52, 4.49it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:45, 5.21it/s]

</pre>

2%|▏ | 5/240 [00:01<00:45, 5.21it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:45, 5.21it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:40, 5.77it/s]

</pre>

2%|▎ | 6/240 [00:01<00:40, 5.77it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:40, 5.77it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:37, 6.26it/s]

</pre>

3%|▎ | 7/240 [00:01<00:37, 6.26it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:37, 6.26it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:49, 4.67it/s]

</pre>

3%|▎ | 7/240 [00:01<00:49, 4.67it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:49, 4.67it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:35, 1.54it/s]

</pre>

0%| | 1/240 [00:00<02:35, 1.54it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:35, 1.54it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:23, 2.84it/s]

</pre>

1%| | 2/240 [00:00<01:23, 2.84it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:23, 2.84it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;01:01, 3.88it/s]

</pre>

1%|▏ | 3/240 [00:00<01:01, 3.88it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<01:01, 3.88it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:01&lt;00:51, 4.54it/s]

</pre>

2%|▏ | 4/240 [00:01<00:51, 4.54it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:01<00:51, 4.54it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:45, 5.19it/s]

</pre>

2%|▏ | 5/240 [00:01<00:45, 5.19it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:45, 5.19it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:41, 5.69it/s]

</pre>

2%|▎ | 6/240 [00:01<00:41, 5.69it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:41, 5.69it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:38, 6.08it/s]

</pre>

3%|▎ | 7/240 [00:01<00:38, 6.08it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:38, 6.08it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:50, 4.57it/s]

</pre>

3%|▎ | 7/240 [00:01<00:50, 4.57it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:50, 4.57it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:17, 1.74it/s]

</pre>

0%| | 1/240 [00:00<02:17, 1.74it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:17, 1.74it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:17, 3.06it/s]

</pre>

1%| | 2/240 [00:00<01:17, 3.06it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:17, 3.06it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:58, 4.08it/s]

</pre>

1%|▏ | 3/240 [00:00<00:58, 4.08it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:58, 4.08it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:01&lt;00:48, 4.84it/s]

</pre>

2%|▏ | 4/240 [00:01<00:48, 4.84it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:01<00:48, 4.84it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:43, 5.39it/s]

</pre>

2%|▏ | 5/240 [00:01<00:43, 5.39it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:43, 5.39it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:40, 5.78it/s]

</pre>

2%|▎ | 6/240 [00:01<00:40, 5.78it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:40, 5.78it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:38, 6.09it/s]

</pre>

3%|▎ | 7/240 [00:01<00:38, 6.09it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:38, 6.09it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:48, 4.77it/s]

</pre>

3%|▎ | 7/240 [00:01<00:48, 4.77it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:48, 4.77it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:21, 1.69it/s]

</pre>

0%| | 1/240 [00:00<02:21, 1.69it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:21, 1.69it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:18, 3.03it/s]

</pre>

1%| | 2/240 [00:00<01:18, 3.03it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:18, 3.03it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:58, 4.04it/s]

</pre>

1%|▏ | 3/240 [00:00<00:58, 4.04it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:58, 4.04it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:01&lt;00:49, 4.79it/s]

</pre>

2%|▏ | 4/240 [00:01<00:49, 4.79it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:01<00:49, 4.79it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:43, 5.35it/s]

</pre>

2%|▏ | 5/240 [00:01<00:43, 5.35it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:43, 5.35it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:40, 5.76it/s]

</pre>

2%|▎ | 6/240 [00:01<00:40, 5.76it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:40, 5.76it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:38, 6.07it/s]

</pre>

3%|▎ | 7/240 [00:01<00:38, 6.07it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:38, 6.07it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:49, 4.73it/s]

</pre>

3%|▎ | 7/240 [00:01<00:49, 4.73it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:49, 4.73it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:31, 1.58it/s]

</pre>

0%| | 1/240 [00:00<02:31, 1.58it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:31, 1.58it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:18, 3.02it/s]

</pre>

1%| | 2/240 [00:00<01:18, 3.02it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:18, 3.02it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:55, 4.30it/s]

</pre>

1%|▏ | 3/240 [00:00<00:55, 4.30it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:55, 4.30it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:44, 5.34it/s]

</pre>

2%|▏ | 4/240 [00:00<00:44, 5.34it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:44, 5.34it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:38, 6.18it/s]

</pre>

2%|▏ | 5/240 [00:01<00:38, 6.18it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:38, 6.18it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:34, 6.85it/s]

</pre>

2%|▎ | 6/240 [00:01<00:34, 6.85it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:34, 6.85it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:31, 7.38it/s]

</pre>

3%|▎ | 7/240 [00:01<00:31, 7.38it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:31, 7.38it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:44, 5.25it/s]

</pre>

3%|▎ | 7/240 [00:01<00:44, 5.25it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:44, 5.25it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:12, 1.80it/s]

</pre>

0%| | 1/240 [00:00<02:12, 1.80it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:12, 1.80it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:10, 3.38it/s]

</pre>

1%| | 2/240 [00:00<01:10, 3.38it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:10, 3.38it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:50, 4.72it/s]

</pre>

1%|▏ | 3/240 [00:00<00:50, 4.72it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:50, 4.72it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:40, 5.78it/s]

</pre>

2%|▏ | 4/240 [00:00<00:40, 5.78it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:40, 5.78it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:35, 6.63it/s]

</pre>

2%|▏ | 5/240 [00:01<00:35, 6.63it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:35, 6.63it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:32, 7.28it/s]

</pre>

2%|▎ | 6/240 [00:01<00:32, 7.28it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:32, 7.28it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:30, 7.76it/s]

</pre>

3%|▎ | 7/240 [00:01<00:30, 7.76it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:30, 7.76it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:40, 5.70it/s]

</pre>

3%|▎ | 7/240 [00:01<00:40, 5.70it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:40, 5.70it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:16, 1.76it/s]

</pre>

0%| | 1/240 [00:00<02:16, 1.76it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:16, 1.76it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:11, 3.33it/s]

</pre>

1%| | 2/240 [00:00<01:11, 3.33it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:11, 3.33it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:50, 4.67it/s]

</pre>

1%|▏ | 3/240 [00:00<00:50, 4.67it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:50, 4.67it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:40, 5.76it/s]

</pre>

2%|▏ | 4/240 [00:00<00:40, 5.76it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:40, 5.76it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:35, 6.60it/s]

</pre>

2%|▏ | 5/240 [00:01<00:35, 6.60it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:35, 6.60it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:32, 7.26it/s]

</pre>

2%|▎ | 6/240 [00:01<00:32, 7.26it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:32, 7.26it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:29, 7.77it/s]

</pre>

3%|▎ | 7/240 [00:01<00:29, 7.77it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:29, 7.77it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:41, 5.65it/s]

</pre>

3%|▎ | 7/240 [00:01<00:41, 5.65it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:41, 5.65it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:05, 1.90it/s]

</pre>

0%| | 1/240 [00:00<02:05, 1.90it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:05, 1.90it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:07, 3.54it/s]

</pre>

1%| | 2/240 [00:00<01:07, 3.54it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:07, 3.54it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:48, 4.89it/s]

</pre>

1%|▏ | 3/240 [00:00<00:48, 4.89it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:48, 4.89it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:39, 5.95it/s]

</pre>

2%|▏ | 4/240 [00:00<00:39, 5.95it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:39, 5.95it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:00&lt;00:34, 6.79it/s]

</pre>

2%|▏ | 5/240 [00:00<00:34, 6.79it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:00<00:34, 6.79it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:31, 7.39it/s]

</pre>

2%|▎ | 6/240 [00:01<00:31, 7.39it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:31, 7.39it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:29, 7.85it/s]

</pre>

3%|▎ | 7/240 [00:01<00:29, 7.85it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:29, 7.85it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:39, 5.85it/s]

</pre>

3%|▎ | 7/240 [00:01<00:39, 5.85it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:39, 5.85it/s]

CPU times: user 3.48 s, sys: 122 ms, total: 3.6 s
Wall time: 15.5 s

[7]:
volume_velocity = [v[-6:] for v in volume_velocity]
volume_velocity = np.array(volume_velocity).T.tolist()
[8]:
%%time
volume_reflectivity = []
for item1 in results_reflectivity:
    files = []
    for item2 in item1:
        files.append(item2.data)
    volume_reflectivity.append(files)
more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:12, 1.80it/s]

</pre>

0%| | 1/240 [00:00<02:12, 1.80it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:12, 1.80it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:11, 3.34it/s]

</pre>

1%| | 2/240 [00:00<01:11, 3.34it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:11, 3.34it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:51, 4.59it/s]

</pre>

1%|▏ | 3/240 [00:00<00:51, 4.59it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:51, 4.59it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:42, 5.58it/s]

</pre>

2%|▏ | 4/240 [00:00<00:42, 5.58it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:42, 5.58it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:37, 6.33it/s]

</pre>

2%|▏ | 5/240 [00:01<00:37, 6.33it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:37, 6.33it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:34, 6.87it/s]

</pre>

2%|▎ | 6/240 [00:01<00:34, 6.87it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:34, 6.87it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:32, 7.27it/s]

</pre>

3%|▎ | 7/240 [00:01<00:32, 7.27it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:32, 7.27it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:42, 5.47it/s]

</pre>

3%|▎ | 7/240 [00:01<00:42, 5.47it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:42, 5.47it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:10, 1.83it/s]

</pre>

0%| | 1/240 [00:00<02:10, 1.83it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:10, 1.83it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:10, 3.37it/s]

</pre>

1%| | 2/240 [00:00<01:10, 3.37it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:10, 3.37it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:51, 4.60it/s]

</pre>

1%|▏ | 3/240 [00:00<00:51, 4.60it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:51, 4.60it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:42, 5.53it/s]

</pre>

2%|▏ | 4/240 [00:00<00:42, 5.53it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:42, 5.53it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:37, 6.24it/s]

</pre>

2%|▏ | 5/240 [00:01<00:37, 6.24it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:37, 6.24it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:34, 6.80it/s]

</pre>

2%|▎ | 6/240 [00:01<00:34, 6.80it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:34, 6.80it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:32, 7.19it/s]

</pre>

3%|▎ | 7/240 [00:01<00:32, 7.19it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:32, 7.19it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:42, 5.45it/s]

</pre>

3%|▎ | 7/240 [00:01<00:42, 5.45it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:42, 5.45it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:14, 1.77it/s]

</pre>

0%| | 1/240 [00:00<02:14, 1.77it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:14, 1.77it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:13, 3.26it/s]

</pre>

1%| | 2/240 [00:00<01:13, 3.26it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:13, 3.26it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:53, 4.46it/s]

</pre>

1%|▏ | 3/240 [00:00<00:53, 4.46it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:53, 4.46it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:43, 5.39it/s]

</pre>

2%|▏ | 4/240 [00:00<00:43, 5.39it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:43, 5.39it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:38, 6.10it/s]

</pre>

2%|▏ | 5/240 [00:01<00:38, 6.10it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:38, 6.10it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:35, 6.61it/s]

</pre>

2%|▎ | 6/240 [00:01<00:35, 6.61it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:35, 6.61it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:33, 7.02it/s]

</pre>

3%|▎ | 7/240 [00:01<00:33, 7.02it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:33, 7.02it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:43, 5.30it/s]

</pre>

3%|▎ | 7/240 [00:01<00:43, 5.30it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:43, 5.30it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:16, 1.74it/s]

</pre>

0%| | 1/240 [00:00<02:16, 1.74it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:16, 1.74it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:15, 3.17it/s]

</pre>

1%| | 2/240 [00:00<01:15, 3.17it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:15, 3.17it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:55, 4.29it/s]

</pre>

1%|▏ | 3/240 [00:00<00:55, 4.29it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:55, 4.29it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:45, 5.14it/s]

</pre>

2%|▏ | 4/240 [00:00<00:45, 5.14it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:45, 5.14it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:40, 5.79it/s]

</pre>

2%|▏ | 5/240 [00:01<00:40, 5.79it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:40, 5.79it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:37, 6.25it/s]

</pre>

2%|▎ | 6/240 [00:01<00:37, 6.25it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:37, 6.25it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:35, 6.63it/s]

</pre>

3%|▎ | 7/240 [00:01<00:35, 6.63it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:35, 6.63it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:45, 5.07it/s]

</pre>

3%|▎ | 7/240 [00:01<00:45, 5.07it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:45, 5.07it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:15, 1.76it/s]

</pre>

0%| | 1/240 [00:00<02:15, 1.76it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:15, 1.76it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:16, 3.12it/s]

</pre>

1%| | 2/240 [00:00<01:16, 3.12it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:16, 3.12it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:01&lt;02:11, 1.81it/s]

</pre>

1%|▏ | 3/240 [00:01<02:11, 1.81it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:01<02:11, 1.81it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:01&lt;01:34, 2.51it/s]

</pre>

2%|▏ | 4/240 [00:01<01:34, 2.51it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:01<01:34, 2.51it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;01:13, 3.22it/s]

</pre>

2%|▏ | 5/240 [00:01<01:13, 3.22it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<01:13, 3.22it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:02&lt;00:59, 3.91it/s]

</pre>

2%|▎ | 6/240 [00:02<00:59, 3.91it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:02<00:59, 3.91it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:02&lt;00:51, 4.54it/s]

</pre>

3%|▎ | 7/240 [00:02<00:51, 4.54it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:02<00:51, 4.54it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:02&lt;01:11, 3.24it/s]

</pre>

3%|▎ | 7/240 [00:02<01:11, 3.24it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:02<01:11, 3.24it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:20, 1.70it/s]

</pre>

0%| | 1/240 [00:00<02:20, 1.70it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:20, 1.70it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:19, 3.00it/s]

</pre>

1%| | 2/240 [00:00<01:19, 3.00it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:19, 3.00it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:59, 4.01it/s]

</pre>

1%|▏ | 3/240 [00:00<00:59, 4.01it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:59, 4.01it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:01&lt;00:49, 4.77it/s]

</pre>

2%|▏ | 4/240 [00:01<00:49, 4.77it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:01<00:49, 4.77it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:44, 5.32it/s]

</pre>

2%|▏ | 5/240 [00:01<00:44, 5.32it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:44, 5.32it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:40, 5.74it/s]

</pre>

2%|▎ | 6/240 [00:01<00:40, 5.74it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:40, 5.74it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:38, 6.05it/s]

</pre>

3%|▎ | 7/240 [00:01<00:38, 6.05it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:38, 6.05it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:49, 4.71it/s]

</pre>

3%|▎ | 7/240 [00:01<00:49, 4.71it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:49, 4.71it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:11, 1.82it/s]

</pre>

0%| | 1/240 [00:00<02:11, 1.82it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:11, 1.82it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:10, 3.38it/s]

</pre>

1%| | 2/240 [00:00<01:10, 3.38it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:10, 3.38it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:50, 4.66it/s]

</pre>

1%|▏ | 3/240 [00:00<00:50, 4.66it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:50, 4.66it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:41, 5.67it/s]

</pre>

2%|▏ | 4/240 [00:00<00:41, 5.67it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:41, 5.67it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:36, 6.49it/s]

</pre>

2%|▏ | 5/240 [00:01<00:36, 6.49it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:36, 6.49it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:33, 7.07it/s]

</pre>

2%|▎ | 6/240 [00:01<00:33, 7.07it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:33, 7.07it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:31, 7.51it/s]

</pre>

3%|▎ | 7/240 [00:01<00:31, 7.51it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:31, 7.51it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:41, 5.59it/s]

</pre>

3%|▎ | 7/240 [00:01<00:41, 5.59it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:41, 5.59it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:10, 1.84it/s]

</pre>

0%| | 1/240 [00:00<02:10, 1.84it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:10, 1.84it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:09, 3.44it/s]

</pre>

1%| | 2/240 [00:00<01:09, 3.44it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:09, 3.44it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:49, 4.77it/s]

</pre>

1%|▏ | 3/240 [00:00<00:49, 4.77it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:49, 4.77it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:40, 5.84it/s]

</pre>

2%|▏ | 4/240 [00:00<00:40, 5.84it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:40, 5.84it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:00&lt;00:35, 6.63it/s]

</pre>

2%|▏ | 5/240 [00:00<00:35, 6.63it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:00<00:35, 6.63it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:32, 7.20it/s]

</pre>

2%|▎ | 6/240 [00:01<00:32, 7.20it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:32, 7.20it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:30, 7.64it/s]

</pre>

3%|▎ | 7/240 [00:01<00:30, 7.64it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:30, 7.64it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:40, 5.70it/s]

</pre>

3%|▎ | 7/240 [00:01<00:40, 5.70it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:40, 5.70it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:11, 1.82it/s]

</pre>

0%| | 1/240 [00:00<02:11, 1.82it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:11, 1.82it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:09, 3.42it/s]

</pre>

1%| | 2/240 [00:00<01:09, 3.42it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:09, 3.42it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:49, 4.76it/s]

</pre>

1%|▏ | 3/240 [00:00<00:49, 4.76it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:49, 4.76it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:40, 5.81it/s]

</pre>

2%|▏ | 4/240 [00:00<00:40, 5.81it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:40, 5.81it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:01&lt;00:35, 6.61it/s]

</pre>

2%|▏ | 5/240 [00:01<00:35, 6.61it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:01<00:35, 6.61it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:32, 7.27it/s]

</pre>

2%|▎ | 6/240 [00:01<00:32, 7.27it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:32, 7.27it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:30, 7.75it/s]

</pre>

3%|▎ | 7/240 [00:01<00:30, 7.75it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:30, 7.75it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:40, 5.71it/s]

</pre>

3%|▎ | 7/240 [00:01<00:40, 5.71it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:40, 5.71it/s]


more-to-come:

class:

stderr

0%| | 0/240 [00:00&lt;?, ?it/s]

</pre>

0%| | 0/240 [00:00<?, ?it/s]

end{sphinxVerbatim}

0%| | 0/240 [00:00<?, ?it/s]

more-to-come:

class:

stderr

0%| | 1/240 [00:00&lt;02:06, 1.89it/s]

</pre>

0%| | 1/240 [00:00<02:06, 1.89it/s]

end{sphinxVerbatim}

0%| | 1/240 [00:00<02:06, 1.89it/s]

more-to-come:

class:

stderr

1%| | 2/240 [00:00&lt;01:07, 3.51it/s]

</pre>

1%| | 2/240 [00:00<01:07, 3.51it/s]

end{sphinxVerbatim}

1%| | 2/240 [00:00<01:07, 3.51it/s]

more-to-come:

class:

stderr

1%|▏ | 3/240 [00:00&lt;00:49, 4.83it/s]

</pre>

1%|▏ | 3/240 [00:00<00:49, 4.83it/s]

end{sphinxVerbatim}

1%|▏ | 3/240 [00:00<00:49, 4.83it/s]

more-to-come:

class:

stderr

2%|▏ | 4/240 [00:00&lt;00:40, 5.88it/s]

</pre>

2%|▏ | 4/240 [00:00<00:40, 5.88it/s]

end{sphinxVerbatim}

2%|▏ | 4/240 [00:00<00:40, 5.88it/s]

more-to-come:

class:

stderr

2%|▏ | 5/240 [00:00&lt;00:34, 6.73it/s]

</pre>

2%|▏ | 5/240 [00:00<00:34, 6.73it/s]

end{sphinxVerbatim}

2%|▏ | 5/240 [00:00<00:34, 6.73it/s]

more-to-come:

class:

stderr

2%|▎ | 6/240 [00:01&lt;00:31, 7.37it/s]

</pre>

2%|▎ | 6/240 [00:01<00:31, 7.37it/s]

end{sphinxVerbatim}

2%|▎ | 6/240 [00:01<00:31, 7.37it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:29, 7.86it/s]

</pre>

3%|▎ | 7/240 [00:01<00:29, 7.86it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:29, 7.86it/s]

more-to-come:

class:

stderr

3%|▎ | 7/240 [00:01&lt;00:40, 5.82it/s]

</pre>

3%|▎ | 7/240 [00:01<00:40, 5.82it/s]

end{sphinxVerbatim}

3%|▎ | 7/240 [00:01<00:40, 5.82it/s]

CPU times: user 3.32 s, sys: 69.7 ms, total: 3.39 s
Wall time: 13.8 s

[9]:
volume_reflectivity = [v[-6:] for v in volume_reflectivity]
volume_reflectivity = np.array(volume_reflectivity).T.tolist()

Read the data into xarray powered structure#

[10]:
from datatree import DataTree, open_datatree
import xradar


def concat_radar_datatree(objs, dim="volume_time"):
    root_ds = [obj["/"].ds for obj in objs]
    root = xr.concat(root_ds, dim=dim)
    dtree = DataTree(data=root, name="root")
    for grp in objs[0].groups[1:]:
        ngrps = [obj[grp[1:]].ds for obj in objs]
        ngrp = xr.concat(ngrps, dim=dim)
        DataTree(ngrp, name=grp[1:], parent=dtree)
    return dtree
[11]:
dsl = []
reindex_angle = dict(
    tolerance=1.0, start_angle=0, stop_angle=360, angle_res=1.0, direction=1
)
for r, v in zip(volume_reflectivity, volume_velocity):
    ds0 = [
        xr.open_dataset(r0, engine="odim", group="sweep_0", reindex_angle=reindex_angle)
        for r0 in r
    ]
    ds1 = [
        xr.open_dataset(v0, engine="odim", group="sweep_0", reindex_angle=reindex_angle)
        for v0 in v
    ]
    ds = [xr.merge([r0, v0], compat="override") for r0, v0 in zip(ds0, ds1)]
    ds.insert(0, xr.open_dataset(r[0], group="/"))
    dsl.append(ds)
# this takes some private functions from xradar, take care here
trees = [
    DataTree(data=xradar.io.backends.common._assign_root(ds), name="root") for ds in dsl
]
trees = [
    xradar.io.backends.common._attach_sweep_groups(tree, ds[1:])
    for tree, ds in zip(trees, dsl)
]
vol = concat_radar_datatree(trees, dim="volume_time")
# align sweep_numbers to cover for single sweep single moment layout of DWD
for i, swp in enumerate(vol.groups[1:]):
    vol[swp]["sweep_number"] = i
[12]:
vol
[12]:
<xarray.DatasetView>
Dimensions:              (volume_time: 6)
Dimensions without coordinates: volume_time
Data variables:
    volume_number        (volume_time) int64 0 0 0 0 0 0
    platform_type        (volume_time) <U5 'fixed' 'fixed' ... 'fixed' 'fixed'
    instrument_type      (volume_time) <U5 'radar' 'radar' ... 'radar' 'radar'
    time_coverage_start  (volume_time) <U20 '2023-12-11T07:55:35Z' ... '2023-...
    time_coverage_end    (volume_time) <U20 '2023-12-11T07:59:03Z' ... '2023-...
    longitude            (volume_time) float64 6.967 6.967 6.967 ... 6.967 6.967
    altitude             (volume_time) float64 185.1 185.1 185.1 ... 185.1 185.1
    latitude             (volume_time) float64 51.41 51.41 51.41 ... 51.41 51.41
Attributes:
    Conventions:      ODIM_H5/V2_2
    version:          None
    title:            None
    institution:      None
    references:       None
    source:           None
    history:          None
    comment:          im/exported using xradar
    instrument_name:  None
[13]:
vol["sweep_9"]
[13]:
<xarray.DatasetView>
Dimensions:            (range: 240, azimuth: 360, volume_time: 6)
Coordinates:
  * range              (range) float32 125.0 375.0 625.0 ... 5.962e+04 5.988e+04
  * azimuth            (azimuth) float64 0.5 1.5 2.5 3.5 ... 357.5 358.5 359.5
    elevation          (volume_time, azimuth) float64 24.98 24.98 ... 24.98
    time               (volume_time, azimuth) datetime64[ns] 2023-12-11T07:58...
    longitude          float64 6.967
    latitude           float64 51.41
    altitude           float64 185.1
Dimensions without coordinates: volume_time
Data variables:
    DBZH               (volume_time, azimuth, range) float32 -64.0 ... -64.0
    sweep_mode         (volume_time) <U20 'azimuth_surveillance' ... 'azimuth...
    sweep_number       int64 9
    prt_mode           (volume_time) <U7 'not_set' 'not_set' ... 'not_set'
    follow_mode        (volume_time) <U7 'not_set' 'not_set' ... 'not_set'
    sweep_fixed_angle  (volume_time) float64 25.0 25.0 25.0 25.0 25.0 25.0
    VRADH              (volume_time, azimuth, range) float32 -128.0 ... -128.0

Inspect structure#

Root Group#

[14]:
vol.root
[14]:
<xarray.DatasetView>
Dimensions:              (volume_time: 6)
Dimensions without coordinates: volume_time
Data variables:
    volume_number        (volume_time) int64 0 0 0 0 0 0
    platform_type        (volume_time) <U5 'fixed' 'fixed' ... 'fixed' 'fixed'
    instrument_type      (volume_time) <U5 'radar' 'radar' ... 'radar' 'radar'
    time_coverage_start  (volume_time) <U20 '2023-12-11T07:55:35Z' ... '2023-...
    time_coverage_end    (volume_time) <U20 '2023-12-11T07:59:03Z' ... '2023-...
    longitude            (volume_time) float64 6.967 6.967 6.967 ... 6.967 6.967
    altitude             (volume_time) float64 185.1 185.1 185.1 ... 185.1 185.1
    latitude             (volume_time) float64 51.41 51.41 51.41 ... 51.41 51.41
Attributes:
    Conventions:      ODIM_H5/V2_2
    version:          None
    title:            None
    institution:      None
    references:       None
    source:           None
    history:          None
    comment:          im/exported using xradar
    instrument_name:  None