xarray ODIM backend¶
In this example, we read ODIM_H5 (HDF5) data files using the xarray odim backend.
[1]:
import glob
import os
import wradlib as wrl
import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as pl
import numpy as np
import xarray as xr
try:
get_ipython().magic("matplotlib inline")
except:
pl.ion()
from wradlib.io import open_odim_dataset
Load ODIM_H5 Volume Data¶
[2]:
fpath = 'hdf5/knmi_polar_volume.h5'
f = wrl.util.get_wradlib_data_file(fpath)
vol = wrl.io.open_odim_dataset(f)
Inspect RadarVolume¶
[3]:
display(vol)
<wradlib.RadarVolume>
Dimension(s): (sweep: 14)
Elevation(s): (0.3, 0.4, 0.8, 1.1, 2.0, 3.0, 4.5, 6.0, 8.0, 10.0, 12.0, 15.0, 20.0, 25.0)
Inspect root group¶
The sweep dimension contains the number of scans in this radar volume. Further the dataset consists of variables (location coordinates, time_coverage) and attributes (Conventions, metadata).
[4]:
vol.root
[4]:
<xarray.Dataset>
Dimensions: (sweep: 14)
Coordinates:
time datetime64[ns] 2011-06-10T11:40:02
sweep_mode <U20 'azimuth_surveillance'
longitude float64 4.79
altitude float64 50.0
latitude float64 52.95
Dimensions without coordinates: sweep
Data variables:
volume_number int64 0
platform_type <U5 'fixed'
instrument_type <U5 'radar'
primary_axis <U6 'axis_z'
time_coverage_start <U20 '2011-06-10T11:40:02Z'
time_coverage_end <U20 '2011-06-10T11:43:54Z'
sweep_group_name (sweep) <U8 'sweep_0' 'sweep_1' ... 'sweep_13'
sweep_fixed_angle (sweep) float64 0.3 0.4 0.8 1.1 ... 12.0 15.0 20.0 25.0
Attributes:
version: None
title: None
institution: None
references: None
source: None
history: None
comment: im/exported using wradlib
instrument_name: None
fixed_angle: 0.30000001192092896- sweep: 14
- time()datetime64[ns]2011-06-10T11:40:02
- standard_name :
- time
array('2011-06-10T11:40:02.000000000', dtype='datetime64[ns]') - sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20') - longitude()float644.79
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(4.78996992)
- altitude()float6450.0
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(50.)
- latitude()float6452.95
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(52.95333862)
- volume_number()int640
array(0)
- platform_type()<U5'fixed'
array('fixed', dtype='<U5') - instrument_type()<U5'radar'
array('radar', dtype='<U5') - primary_axis()<U6'axis_z'
array('axis_z', dtype='<U6') - time_coverage_start()<U20'2011-06-10T11:40:02Z'
array('2011-06-10T11:40:02Z', dtype='<U20') - time_coverage_end()<U20'2011-06-10T11:43:54Z'
array('2011-06-10T11:43:54Z', dtype='<U20') - sweep_group_name(sweep)<U8'sweep_0' 'sweep_1' ... 'sweep_13'
array(['sweep_0', 'sweep_1', 'sweep_2', 'sweep_3', 'sweep_4', 'sweep_5', 'sweep_6', 'sweep_7', 'sweep_8', 'sweep_9', 'sweep_10', 'sweep_11', 'sweep_12', 'sweep_13'], dtype='<U8') - sweep_fixed_angle(sweep)float640.3 0.4 0.8 1.1 ... 15.0 20.0 25.0
array([ 0.30000001, 0.40000001, 0.80000001, 1.10000002, 2. , 3. , 4.5 , 6. , 8. , 10. , 12. , 15. , 20. , 25. ])
- version :
- None
- title :
- None
- institution :
- None
- references :
- None
- source :
- None
- history :
- None
- comment :
- im/exported using wradlib
- instrument_name :
- None
- fixed_angle :
- 0.30000001192092896
Inspect sweep group(s)¶
The sweep-groups can be accessed via their respective keys. The dimensions consist of range and time with added coordinates azimuth, elevation, range and time. There will be variables like radar moments (DBZH etc.) and sweep-dependend metadata (like fixed_angle, sweep_mode etc.).
[5]:
display(vol[0])
<xarray.Dataset>
Dimensions: (azimuth: 360, range: 320)
Coordinates:
* azimuth (azimuth) float32 0.5 1.5 2.5 3.5 ... 356.5 357.5 358.5 359.5
elevation (azimuth) float32 0.3 0.3 0.3 0.3 0.3 ... 0.3 0.3 0.3 0.3 0.3
rtime (azimuth) datetime64[ns] 2011-06-10T11:40:17.361118208 ... 20...
* range (range) float32 500.0 1.5e+03 2.5e+03 ... 3.185e+05 3.195e+05
time datetime64[ns] 2011-06-10T11:40:02
sweep_mode <U20 'azimuth_surveillance'
longitude float64 4.79
latitude float64 52.95
altitude float64 50.0
Data variables:
DBZH (azimuth, range) float32 ...
Attributes:
fixed_angle: 0.30000001192092896- azimuth: 360
- range: 320
- azimuth(azimuth)float320.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
- a1gate :
- [84]
- angle_res :
- 1.0
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], dtype=float32)
- elevation(azimuth)float32...
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
array([0.3, 0.3, 0.3, ..., 0.3, 0.3, 0.3], dtype=float32)
- rtime(azimuth)datetime64[ns]2011-06-10T11:40:17.361118208 .....
- standard_name :
- time
array(['2011-06-10T11:40:17.361118208', '2011-06-10T11:40:17.416673792', '2011-06-10T11:40:17.472229376', ..., '2011-06-10T11:40:17.194451456', '2011-06-10T11:40:17.250007040', '2011-06-10T11:40:17.305562624'], dtype='datetime64[ns]') - range(range)float32500.0 1.5e+03 ... 3.195e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- spacing_is_constant :
- true
- axis :
- radial_range_coordinate
- meters_to_center_of_first_gate :
- [500.]
- meters_between_gates :
- [1000.]
array([ 500., 1500., 2500., ..., 317500., 318500., 319500.], dtype=float32) - time()datetime64[ns]2011-06-10T11:40:02
- standard_name :
- time
array('2011-06-10T11:40:02.000000000', dtype='datetime64[ns]') - sweep_mode()<U20...
array('azimuth_surveillance', dtype='<U20') - longitude()float64...
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(4.78997)
- latitude()float64...
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(52.953339)
- altitude()float64...
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(50.)
- DBZH(azimuth, range)float32...
- _Undetect :
- [0.]
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- units :
- dBZ
[115200 values with dtype=float32]
- fixed_angle :
- 0.30000001192092896
Goereferencing¶
[6]:
swp = vol[0].copy().pipe(wrl.georef.georeference_dataset)
Plotting¶
[7]:
swp.DBZH.plot.pcolormesh(x='x', y='y')
pl.gca().set_aspect('equal')
[8]:
fig = pl.figure(figsize=(10,10))
swp.DBZH.wradlib.plot_ppi(proj='cg', fig=fig)
[8]:
<matplotlib.collections.QuadMesh at 0x7f28da51bd00>
[9]:
import cartopy
import cartopy.crs as ccrs
import cartopy.feature as cfeature
map_trans = ccrs.AzimuthalEquidistant(central_latitude=swp.latitude.values,
central_longitude=swp.longitude.values)
[10]:
map_proj = ccrs.AzimuthalEquidistant(central_latitude=swp.latitude.values,
central_longitude=swp.longitude.values)
pm = swp.DBZH.wradlib.plot_ppi(proj=map_proj)
ax = pl.gca()
ax.gridlines(crs=map_proj)
print(ax)
< GeoAxes: <cartopy.crs.AzimuthalEquidistant object at 0x7f28da03a810> >
[11]:
map_proj = ccrs.Mercator(central_longitude=swp.longitude.values)
fig = pl.figure(figsize=(10,8))
ax = fig.add_subplot(111, projection=map_proj)
pm = swp.DBZH.wradlib.plot_ppi(ax=ax)
ax.gridlines(draw_labels=True)
[11]:
<cartopy.mpl.gridliner.Gridliner at 0x7f28da9a6fa0>
[12]:
import cartopy.feature as cfeature
def plot_borders(ax):
borders = cfeature.NaturalEarthFeature(category='physical',
name='coastline',
scale='10m',
facecolor='none')
ax.add_feature(borders, edgecolor='black', lw=2, zorder=4)
map_proj = ccrs.Mercator(central_longitude=swp.longitude.values)
fig = pl.figure(figsize=(10,8))
ax = fig.add_subplot(111, projection=map_proj)
DBZH = swp.DBZH
pm = DBZH.where(DBZH > 0).wradlib.plot_ppi(ax=ax)
plot_borders(ax)
ax.gridlines(draw_labels=True)
[12]:
<cartopy.mpl.gridliner.Gridliner at 0x7f28da8b5df0>
[13]:
import matplotlib.path as mpath
theta = np.linspace(0, 2*np.pi, 100)
center, radius = [0.5, 0.5], 0.5
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts * radius + center)
map_proj = ccrs.AzimuthalEquidistant(central_latitude=swp.latitude.values,
central_longitude=swp.longitude.values,
)
fig = pl.figure(figsize=(10,8))
ax = fig.add_subplot(111, projection=map_proj)
ax.set_boundary(circle, transform=ax.transAxes)
pm = swp.DBZH.wradlib.plot_ppi(proj=map_proj, ax=ax)
ax = pl.gca()
ax.gridlines(crs=map_proj)
[13]:
<cartopy.mpl.gridliner.Gridliner at 0x7f28da78ce80>
[14]:
fig = pl.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.wradlib.plot_ppi(ax=ax)
ax.gridlines()
[14]:
<cartopy.mpl.gridliner.Gridliner at 0x7f28d8cbc4f0>
[15]:
swp.DBZH.wradlib.plot_ppi()
[15]:
<matplotlib.collections.QuadMesh at 0x7f28d8f726d0>
Inspect radar moments¶
The DataArrays can be accessed by key or by attribute. Each DataArray has dimensions and coordinates of it’s parent dataset. There are attributes connected which are defined by ODIM_H5 standard.
[16]:
display(swp.DBZH)
<xarray.DataArray 'DBZH' (azimuth: 360, range: 320)>
array([[ 22. , 17. , -8. , ..., -31.5, -31.5, -31.5],
[ 24. , 24.5, -9. , ..., -31.5, -31.5, -31.5],
[ 35.5, 42. , 12. , ..., -31.5, -31.5, -31.5],
...,
[ 23. , 14. , -13. , ..., -31.5, -31.5, -31.5],
[ 23. , 14. , -9. , ..., -31.5, -31.5, -31.5],
[ 22. , 18.5, -11.5, ..., -31.5, -31.5, -31.5]], dtype=float32)
Coordinates: (12/15)
* azimuth (azimuth) float32 0.5 1.5 2.5 3.5 ... 356.5 357.5 358.5 359.5
elevation (azimuth) float32 0.3 0.3 0.3 0.3 0.3 ... 0.3 0.3 0.3 0.3 0.3
rtime (azimuth) datetime64[ns] 2011-06-10T11:40:17.361118208 ... 20...
* range (range) float32 500.0 1.5e+03 2.5e+03 ... 3.185e+05 3.195e+05
time datetime64[ns] 2011-06-10T11:40:02
sweep_mode <U20 'azimuth_surveillance'
... ...
x (azimuth, range) float32 4.363 13.09 ... -2.777e+03 -2.786e+03
y (azimuth, range) float32 500.0 1.5e+03 ... 3.183e+05 3.193e+05
z (azimuth, range) float32 53.0 58.0 64.0 ... 7.691e+03 7.734e+03
gr (azimuth, range) float32 500.0 1.5e+03 ... 3.183e+05 3.193e+05
rays (azimuth, range) float32 0.5 0.5 0.5 0.5 ... 359.5 359.5 359.5
bins (azimuth, range) float32 500.0 1.5e+03 ... 3.185e+05 3.195e+05
Attributes:
_Undetect: [0.]
long_name: Equivalent reflectivity factor H
standard_name: radar_equivalent_reflectivity_factor_h
units: dBZ- azimuth: 360
- range: 320
- 22.0 17.0 -8.0 23.0 -7.5 44.0 ... -31.5 -31.5 -31.5 -31.5 -31.5 -31.5
array([[ 22. , 17. , -8. , ..., -31.5, -31.5, -31.5], [ 24. , 24.5, -9. , ..., -31.5, -31.5, -31.5], [ 35.5, 42. , 12. , ..., -31.5, -31.5, -31.5], ..., [ 23. , 14. , -13. , ..., -31.5, -31.5, -31.5], [ 23. , 14. , -9. , ..., -31.5, -31.5, -31.5], [ 22. , 18.5, -11.5, ..., -31.5, -31.5, -31.5]], dtype=float32) - azimuth(azimuth)float320.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
- a1gate :
- [84]
- angle_res :
- 1.0
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], dtype=float32)
- elevation(azimuth)float320.3 0.3 0.3 0.3 ... 0.3 0.3 0.3 0.3
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
array([0.3, 0.3, 0.3, ..., 0.3, 0.3, 0.3], dtype=float32)
- rtime(azimuth)datetime64[ns]2011-06-10T11:40:17.361118208 .....
- standard_name :
- time
array(['2011-06-10T11:40:17.361118208', '2011-06-10T11:40:17.416673792', '2011-06-10T11:40:17.472229376', ..., '2011-06-10T11:40:17.194451456', '2011-06-10T11:40:17.250007040', '2011-06-10T11:40:17.305562624'], dtype='datetime64[ns]') - range(range)float32500.0 1.5e+03 ... 3.195e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- spacing_is_constant :
- true
- axis :
- radial_range_coordinate
- meters_to_center_of_first_gate :
- [500.]
- meters_between_gates :
- [1000.]
array([ 500., 1500., 2500., ..., 317500., 318500., 319500.], dtype=float32) - time()datetime64[ns]2011-06-10T11:40:02
- standard_name :
- time
array('2011-06-10T11:40:02.000000000', dtype='datetime64[ns]') - sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20') - longitude()float644.79
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(4.78997)
- latitude()float6452.95
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(52.953339)
- altitude()float6450.0
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(50.)
- x(azimuth, range)float324.363 13.09 ... -2.786e+03
array([[ 4.36319351e+00, 1.30895739e+01, 2.18159409e+01, ..., 2.76879565e+03, 2.77750610e+03, 2.78621680e+03], [ 1.30882359e+01, 3.92646866e+01, 6.54411011e+01, ..., 8.30553320e+03, 8.33166211e+03, 8.35779199e+03], [ 2.18092918e+01, 6.54278412e+01, 1.09046326e+02, ..., 1.38397412e+04, 1.38832803e+04, 1.39268203e+04], ..., [-2.18093681e+01, -6.54280701e+01, -1.09046707e+02, ..., -1.38397900e+04, -1.38833291e+04, -1.39268691e+04], [-1.30881338e+01, -3.92643776e+01, -6.54405899e+01, ..., -8.30546875e+03, -8.33159668e+03, -8.35772656e+03], [-4.36314964e+00, -1.30894423e+01, -2.18157215e+01, ..., -2.76876782e+03, -2.77747827e+03, -2.78618896e+03]], dtype=float32) - y(azimuth, range)float32500.0 1.5e+03 ... 3.193e+05
array([[ 499.97098, 1499.9121 , 2499.8518 , ..., 317271.6 , 318269.72 , 319267.88 ], [ 499.8187 , 1499.4552 , 2499.0903 , ..., 317174.97 , 318172.78 , 319170.62 ], [ 499.51416, 1498.5416 , 2497.5676 , ..., 316981.72 , 317978.9 , 318976.16 ], ..., [ 499.51416, 1498.5416 , 2497.5676 , ..., 316981.72 , 317978.9 , 318976.16 ], [ 499.8187 , 1499.4552 , 2499.0903 , ..., 317174.97 , 318172.78 , 319170.62 ], [ 499.97098, 1499.9121 , 2499.8518 , ..., 317271.6 , 318269.72 , 319267.88 ]], dtype=float32) - z(azimuth, range)float3253.0 58.0 ... 7.691e+03 7.734e+03
array([[ 53., 58., 64., ..., 7648., 7691., 7734.], [ 53., 58., 64., ..., 7648., 7691., 7734.], [ 53., 58., 64., ..., 7648., 7691., 7734.], ..., [ 53., 58., 64., ..., 7648., 7691., 7734.], [ 53., 58., 64., ..., 7648., 7691., 7734.], [ 53., 58., 64., ..., 7648., 7691., 7734.]], dtype=float32) - gr(azimuth, range)float32500.0 1.5e+03 ... 3.193e+05
array([[ 499.99002, 1499.9691 , 2499.947 , ..., 317283.7 , 318281.84 , 319280.03 ], [ 499.99002, 1499.9692 , 2499.947 , ..., 317283.72 , 318281.84 , 319280.03 ], [ 499.99002, 1499.9692 , 2499.947 , ..., 317283.72 , 318281.84 , 319280.03 ], ..., [ 499.99005, 1499.9692 , 2499.947 , ..., 317283.72 , 318281.84 , 319280.03 ], [ 499.99002, 1499.9692 , 2499.947 , ..., 317283.72 , 318281.84 , 319280.03 ], [ 499.99002, 1499.9691 , 2499.947 , ..., 317283.7 , 318281.84 , 319280.03 ]], dtype=float32) - rays(azimuth, range)float320.5 0.5 0.5 ... 359.5 359.5 359.5
array([[ 0.5, 0.5, 0.5, ..., 0.5, 0.5, 0.5], [ 1.5, 1.5, 1.5, ..., 1.5, 1.5, 1.5], [ 2.5, 2.5, 2.5, ..., 2.5, 2.5, 2.5], ..., [357.5, 357.5, 357.5, ..., 357.5, 357.5, 357.5], [358.5, 358.5, 358.5, ..., 358.5, 358.5, 358.5], [359.5, 359.5, 359.5, ..., 359.5, 359.5, 359.5]], dtype=float32) - bins(azimuth, range)float32500.0 1.5e+03 ... 3.195e+05
array([[ 500., 1500., 2500., ..., 317500., 318500., 319500.], [ 500., 1500., 2500., ..., 317500., 318500., 319500.], [ 500., 1500., 2500., ..., 317500., 318500., 319500.], ..., [ 500., 1500., 2500., ..., 317500., 318500., 319500.], [ 500., 1500., 2500., ..., 317500., 318500., 319500.], [ 500., 1500., 2500., ..., 317500., 318500., 319500.]], dtype=float32)
- _Undetect :
- [0.]
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- units :
- dBZ
Create simple plot¶
Using xarray features a simple plot can be created like this. Note the sortby('rtime') method, which sorts the radials by time.
[17]:
swp.DBZH.sortby('rtime').plot(x="range", y="rtime", add_labels=False)
[17]:
<matplotlib.collections.QuadMesh at 0x7f28d8cfa0d0>
[18]:
fig = pl.figure(figsize=(5,5))
pm = swp.DBZH.wradlib.plot_ppi(proj={'latmin': 33e3}, fig=fig)
Mask some values¶
[19]:
swp['DBZH'] = swp['DBZH'].where(swp['DBZH'] >= 0)
swp['DBZH'].plot()
[19]:
<matplotlib.collections.QuadMesh at 0x7f28da7f97c0>
Export to ODIM and CfRadial2¶
[20]:
vol.to_odim('knmi_odim.h5')
vol.to_cfradial2('knmi_odim_as_cfradial.nc')
Import again¶
[21]:
vola = wrl.io.open_odim_dataset('knmi_odim.h5')
[22]:
volb = wrl.io.open_cfradial2_dataset('knmi_odim_as_cfradial.nc')
Check equality¶
[23]:
xr.testing.assert_allclose(vol.root, vola.root)
xr.testing.assert_equal(vol[0], vola[0])
xr.testing.assert_allclose(vol.root, volb.root)
xr.testing.assert_equal(vol[0], volb[0])
xr.testing.assert_allclose(vola.root, volb.root)
xr.testing.assert_equal(vola[0], volb[0])
More ODIM loading mechanisms¶
Use xr.open_dataset to retrieve explicit group¶
[24]:
swp = xr.open_dataset(f, engine="odim", group="dataset14")
display(swp)
<xarray.Dataset>
Dimensions: (azimuth: 360, range: 240)
Coordinates:
* azimuth (azimuth) float32 0.5 1.5 2.5 3.5 ... 356.5 357.5 358.5 359.5
elevation (azimuth) float32 25.0 25.0 25.0 25.0 ... 25.0 25.0 25.0 25.0
rtime (azimuth) datetime64[ns] 2011-06-10T11:43:48.763874560 ... 20...
* range (range) float32 250.0 750.0 1.25e+03 ... 1.192e+05 1.198e+05
time datetime64[ns] 2011-06-10T11:43:45
sweep_mode <U20 'azimuth_surveillance'
longitude float64 4.79
latitude float64 52.95
altitude float64 50.0
Data variables:
DBZH (azimuth, range) float32 -31.5 -0.5 0.0 ... -31.5 -31.5 -31.5
Attributes:
fixed_angle: 25.0- azimuth: 360
- range: 240
- azimuth(azimuth)float320.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
- a1gate :
- [225]
- angle_res :
- 1.0
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], dtype=float32)
- elevation(azimuth)float32...
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
array([25., 25., 25., ..., 25., 25., 25.], dtype=float32)
- rtime(azimuth)datetime64[ns]...
- standard_name :
- time
array(['2011-06-10T11:43:48.763874560', '2011-06-10T11:43:48.791652096', '2011-06-10T11:43:48.819429888', ..., '2011-06-10T11:43:48.680541440', '2011-06-10T11:43:48.708319232', '2011-06-10T11:43:48.736096768'], dtype='datetime64[ns]') - range(range)float32250.0 750.0 ... 1.192e+05 1.198e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- spacing_is_constant :
- true
- axis :
- radial_range_coordinate
- meters_to_center_of_first_gate :
- [250.]
- meters_between_gates :
- [500.]
array([ 250., 750., 1250., ..., 118750., 119250., 119750.], dtype=float32) - time()datetime64[ns]...
- standard_name :
- time
array('2011-06-10T11:43:45.000000000', dtype='datetime64[ns]') - sweep_mode()<U20...
array('azimuth_surveillance', dtype='<U20') - longitude()float64...
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(4.78997)
- latitude()float64...
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(52.953339)
- altitude()float64...
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(50.)
- DBZH(azimuth, range)float32...
- _Undetect :
- [0.]
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- units :
- dBZ
array([[-31.5, -0.5, 0. , ..., -31.5, -31.5, -31.5], [-31.5, 1. , 0.5, ..., -31.5, -31.5, -31.5], [-31.5, -2.5, 0. , ..., -31.5, -31.5, -31.5], ..., [-31.5, -2. , 2.5, ..., -31.5, -31.5, -31.5], [-31.5, -2. , -0.5, ..., -31.5, -31.5, -31.5], [-31.5, 1. , -0.5, ..., -31.5, -31.5, -31.5]], dtype=float32)
- fixed_angle :
- 25.0
Use xr.open_mfdataset to retrieve timeseries of explicit group¶
[25]:
fpath = os.path.join(wrl.util.get_wradlib_data_path(), "hdf5/71*.h5")
f = glob.glob(fpath)
ts = xr.open_mfdataset(f, engine="odim", concat_dim="time", combine="nested", group="dataset1")
display(ts)
<xarray.Dataset>
Dimensions: (azimuth: 360, range: 1200, time: 2)
Coordinates:
* azimuth (azimuth) float32 0.5 1.5 2.5 3.5 ... 356.5 357.5 358.5 359.5
elevation (azimuth) float32 dask.array<chunksize=(360,), meta=np.ndarray>
rtime (time, azimuth) datetime64[ns] 2018-12-20T06:06:50.112467968 ...
* range (range) float32 125.0 375.0 625.0 ... 2.996e+05 2.999e+05
* time (time) datetime64[ns] 2018-12-20T06:06:28 2018-12-20T06:12:28
sweep_mode <U20 'azimuth_surveillance'
longitude float64 151.2
latitude float64 -33.7
altitude float64 195.0
Data variables:
DBZH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
DBZH_CLEAN (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
VRADDH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
VRADH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
WRADH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
TH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
ZDR (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
RHOHV (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
PHIDP (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
KDP (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
SNRH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
Attributes:
fixed_angle: 0.5- azimuth: 360
- range: 1200
- time: 2
- azimuth(azimuth)float320.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
- a1gate :
- 86
- angle_res :
- 1.0
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], dtype=float32)
- elevation(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Count 5 Tasks 1 Chunks Type float32 numpy.ndarray - rtime(time, azimuth)datetime64[ns]2018-12-20T06:06:50.112467968 .....
- standard_name :
- time
array([['2018-12-20T06:06:50.112467968', '2018-12-20T06:06:50.193023488', '2018-12-20T06:06:50.273579008', '2018-12-20T06:06:50.354134272', '2018-12-20T06:06:50.434689792', '2018-12-20T06:06:50.515245312', '2018-12-20T06:06:50.595800576', '2018-12-20T06:06:50.676356096', '2018-12-20T06:06:50.756911616', '2018-12-20T06:06:50.837466880', '2018-12-20T06:06:50.918022400', '2018-12-20T06:06:50.998577920', '2018-12-20T06:06:51.079133184', '2018-12-20T06:06:51.159688704', '2018-12-20T06:06:51.240244224', '2018-12-20T06:06:51.320799488', '2018-12-20T06:06:51.401355008', '2018-12-20T06:06:51.481910528', '2018-12-20T06:06:51.562465792', '2018-12-20T06:06:51.643021312', '2018-12-20T06:06:51.723576832', '2018-12-20T06:06:51.804132096', '2018-12-20T06:06:51.884687616', '2018-12-20T06:06:51.965243136', '2018-12-20T06:06:52.045798656', '2018-12-20T06:06:52.126353920', '2018-12-20T06:06:52.206909440', '2018-12-20T06:06:52.287464960', '2018-12-20T06:06:52.368020224', '2018-12-20T06:06:52.448575744', '2018-12-20T06:06:52.529131264', '2018-12-20T06:06:52.609686528', '2018-12-20T06:06:52.690242048', '2018-12-20T06:06:52.770797568', '2018-12-20T06:06:52.851352832', '2018-12-20T06:06:52.931908352', '2018-12-20T06:06:53.012463872', '2018-12-20T06:06:53.093019136', '2018-12-20T06:06:53.173574656', '2018-12-20T06:06:53.254130176', ... '2018-12-20T06:12:37.948596736', '2018-12-20T06:12:38.029152256', '2018-12-20T06:12:38.109707520', '2018-12-20T06:12:38.190263040', '2018-12-20T06:12:38.270818560', '2018-12-20T06:12:38.351373824', '2018-12-20T06:12:38.431929344', '2018-12-20T06:12:38.512484864', '2018-12-20T06:12:38.593040128', '2018-12-20T06:12:38.673595648', '2018-12-20T06:12:38.754151168', '2018-12-20T06:12:38.834706432', '2018-12-20T06:12:38.915261952', '2018-12-20T06:12:38.995817472', '2018-12-20T06:12:39.076372736', '2018-12-20T06:12:39.156928256', '2018-12-20T06:12:39.237483776', '2018-12-20T06:12:39.318039296', '2018-12-20T06:12:39.398594560', '2018-12-20T06:12:39.479150080', '2018-12-20T06:12:39.559705600', '2018-12-20T06:12:39.640260864', '2018-12-20T06:12:39.720816384', '2018-12-20T06:12:39.801371904', '2018-12-20T06:12:39.881927168', '2018-12-20T06:12:39.962482688', '2018-12-20T06:12:40.043038208', '2018-12-20T06:12:40.123593472', '2018-12-20T06:12:40.204148992', '2018-12-20T06:12:40.284704512', '2018-12-20T06:12:40.365259776', '2018-12-20T06:12:40.445815296', '2018-12-20T06:12:40.526370816', '2018-12-20T06:12:40.606926080', '2018-12-20T06:12:40.687481600', '2018-12-20T06:12:40.768037120', '2018-12-20T06:12:40.848592640', '2018-12-20T06:12:40.929147904']], dtype='datetime64[ns]') - range(range)float32125.0 375.0 ... 2.996e+05 2.999e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- spacing_is_constant :
- true
- axis :
- radial_range_coordinate
- meters_to_center_of_first_gate :
- 125.0
- meters_between_gates :
- 250.0
array([1.25000e+02, 3.75000e+02, 6.25000e+02, ..., 2.99375e+05, 2.99625e+05, 2.99875e+05], dtype=float32) - time(time)datetime64[ns]2018-12-20T06:06:28 2018-12-20T0...
- standard_name :
- time
array(['2018-12-20T06:06:28.000000000', '2018-12-20T06:12:28.000000000'], dtype='datetime64[ns]') - sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20') - longitude()float64151.2
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(151.20899963)
- latitude()float64-33.7
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(-33.70080185)
- altitude()float64195.0
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(195.)
- DBZH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- units :
- dBZ
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - DBZH_CLEAN(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 1.0
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- units :
- dBZ
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - VRADDH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 1.0
- long_name :
- Radial velocity of scatterers away from instrument H
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_h
- units :
- meters per seconds
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - VRADH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Radial velocity of scatterers away from instrument H
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_h
- units :
- meters per seconds
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - WRADH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Doppler spectrum width H
- standard_name :
- radar_doppler_spectrum_width_h
- units :
- meters per seconds
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - TH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Linear total power H (uncorrected reflectivity)
- standard_name :
- radar_linear_equivalent_reflectivity_factor_h
- units :
- unitless
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - ZDR(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Log differential reflectivity H/V
- standard_name :
- radar_differential_reflectivity_hv
- units :
- dB
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - RHOHV(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
- units :
- unitless
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - PHIDP(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- units :
- degrees
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - KDP(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- units :
- degrees per kilometer
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - SNRH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Signal Noise Ratio H
- standard_name :
- signal_noise_ratio_h
- units :
- unitless
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray
- fixed_angle :
- 0.5
Use wrl.io.open_odim_mfdataset to retrieve volume timeseries¶
[26]:
fpath = os.path.join(wrl.util.get_wradlib_data_path(), "hdf5/71*.h5")
f = glob.glob(fpath)
ts = wrl.io.open_odim_mfdataset(f)
display(ts)
100%|██████████| 14/14 [00:03<00:00, 4.39it/s]
<wradlib.RadarVolume>
Dimension(s): (sweep: 14)
Elevation(s): (0.5, 0.9, 1.3, 1.8, 2.4, 3.1, 4.2, 5.6, 7.4, 10.0, 13.3, 17.9, 23.9, 32.0)
[27]:
display(ts[0])
<xarray.Dataset>
Dimensions: (azimuth: 360, range: 1200, time: 2)
Coordinates:
* azimuth (azimuth) float32 0.5 1.5 2.5 3.5 ... 356.5 357.5 358.5 359.5
elevation (azimuth) float32 dask.array<chunksize=(360,), meta=np.ndarray>
rtime (time, azimuth) datetime64[ns] 2018-12-20T06:06:50.112467968 ...
* range (range) float32 125.0 375.0 625.0 ... 2.996e+05 2.999e+05
* time (time) datetime64[ns] 2018-12-20T06:06:28 2018-12-20T06:12:28
sweep_mode <U20 'azimuth_surveillance'
longitude float64 151.2
latitude float64 -33.7
altitude float64 195.0
Data variables:
DBZH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
DBZH_CLEAN (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
VRADDH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
VRADH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
WRADH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
TH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
ZDR (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
RHOHV (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
PHIDP (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
KDP (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
SNRH (time, azimuth, range) float32 dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
Attributes:
fixed_angle: 0.5- azimuth: 360
- range: 1200
- time: 2
- azimuth(azimuth)float320.5 1.5 2.5 ... 357.5 358.5 359.5
- standard_name :
- ray_azimuth_angle
- long_name :
- azimuth_angle_from_true_north
- units :
- degrees
- axis :
- radial_azimuth_coordinate
- a1gate :
- 86
- angle_res :
- 1.0
array([ 0.5, 1.5, 2.5, ..., 357.5, 358.5, 359.5], dtype=float32)
- elevation(azimuth)float32dask.array<chunksize=(360,), meta=np.ndarray>
- standard_name :
- ray_elevation_angle
- long_name :
- elevation_angle_from_horizontal_plane
- units :
- degrees
- axis :
- radial_elevation_coordinate
Array Chunk Bytes 1.41 kiB 1.41 kiB Shape (360,) (360,) Count 5 Tasks 1 Chunks Type float32 numpy.ndarray - rtime(time, azimuth)datetime64[ns]2018-12-20T06:06:50.112467968 .....
- standard_name :
- time
array([['2018-12-20T06:06:50.112467968', '2018-12-20T06:06:50.193023488', '2018-12-20T06:06:50.273579008', '2018-12-20T06:06:50.354134272', '2018-12-20T06:06:50.434689792', '2018-12-20T06:06:50.515245312', '2018-12-20T06:06:50.595800576', '2018-12-20T06:06:50.676356096', '2018-12-20T06:06:50.756911616', '2018-12-20T06:06:50.837466880', '2018-12-20T06:06:50.918022400', '2018-12-20T06:06:50.998577920', '2018-12-20T06:06:51.079133184', '2018-12-20T06:06:51.159688704', '2018-12-20T06:06:51.240244224', '2018-12-20T06:06:51.320799488', '2018-12-20T06:06:51.401355008', '2018-12-20T06:06:51.481910528', '2018-12-20T06:06:51.562465792', '2018-12-20T06:06:51.643021312', '2018-12-20T06:06:51.723576832', '2018-12-20T06:06:51.804132096', '2018-12-20T06:06:51.884687616', '2018-12-20T06:06:51.965243136', '2018-12-20T06:06:52.045798656', '2018-12-20T06:06:52.126353920', '2018-12-20T06:06:52.206909440', '2018-12-20T06:06:52.287464960', '2018-12-20T06:06:52.368020224', '2018-12-20T06:06:52.448575744', '2018-12-20T06:06:52.529131264', '2018-12-20T06:06:52.609686528', '2018-12-20T06:06:52.690242048', '2018-12-20T06:06:52.770797568', '2018-12-20T06:06:52.851352832', '2018-12-20T06:06:52.931908352', '2018-12-20T06:06:53.012463872', '2018-12-20T06:06:53.093019136', '2018-12-20T06:06:53.173574656', '2018-12-20T06:06:53.254130176', ... '2018-12-20T06:12:37.948596736', '2018-12-20T06:12:38.029152256', '2018-12-20T06:12:38.109707520', '2018-12-20T06:12:38.190263040', '2018-12-20T06:12:38.270818560', '2018-12-20T06:12:38.351373824', '2018-12-20T06:12:38.431929344', '2018-12-20T06:12:38.512484864', '2018-12-20T06:12:38.593040128', '2018-12-20T06:12:38.673595648', '2018-12-20T06:12:38.754151168', '2018-12-20T06:12:38.834706432', '2018-12-20T06:12:38.915261952', '2018-12-20T06:12:38.995817472', '2018-12-20T06:12:39.076372736', '2018-12-20T06:12:39.156928256', '2018-12-20T06:12:39.237483776', '2018-12-20T06:12:39.318039296', '2018-12-20T06:12:39.398594560', '2018-12-20T06:12:39.479150080', '2018-12-20T06:12:39.559705600', '2018-12-20T06:12:39.640260864', '2018-12-20T06:12:39.720816384', '2018-12-20T06:12:39.801371904', '2018-12-20T06:12:39.881927168', '2018-12-20T06:12:39.962482688', '2018-12-20T06:12:40.043038208', '2018-12-20T06:12:40.123593472', '2018-12-20T06:12:40.204148992', '2018-12-20T06:12:40.284704512', '2018-12-20T06:12:40.365259776', '2018-12-20T06:12:40.445815296', '2018-12-20T06:12:40.526370816', '2018-12-20T06:12:40.606926080', '2018-12-20T06:12:40.687481600', '2018-12-20T06:12:40.768037120', '2018-12-20T06:12:40.848592640', '2018-12-20T06:12:40.929147904']], dtype='datetime64[ns]') - range(range)float32125.0 375.0 ... 2.996e+05 2.999e+05
- units :
- meters
- standard_name :
- projection_range_coordinate
- long_name :
- range_to_measurement_volume
- spacing_is_constant :
- true
- axis :
- radial_range_coordinate
- meters_to_center_of_first_gate :
- 125.0
- meters_between_gates :
- 250.0
array([1.25000e+02, 3.75000e+02, 6.25000e+02, ..., 2.99375e+05, 2.99625e+05, 2.99875e+05], dtype=float32) - time(time)datetime64[ns]2018-12-20T06:06:28 2018-12-20T0...
- standard_name :
- time
array(['2018-12-20T06:06:28.000000000', '2018-12-20T06:12:28.000000000'], dtype='datetime64[ns]') - sweep_mode()<U20'azimuth_surveillance'
array('azimuth_surveillance', dtype='<U20') - longitude()float64151.2
- long_name :
- longitude
- units :
- degrees_east
- standard_name :
- longitude
array(151.20899963)
- latitude()float64-33.7
- long_name :
- latitude
- units :
- degrees_north
- positive :
- up
- standard_name :
- latitude
array(-33.70080185)
- altitude()float64195.0
- long_name :
- altitude
- units :
- meters
- standard_name :
- altitude
array(195.)
- DBZH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- units :
- dBZ
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - DBZH_CLEAN(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 1.0
- long_name :
- Equivalent reflectivity factor H
- standard_name :
- radar_equivalent_reflectivity_factor_h
- units :
- dBZ
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - VRADDH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 1.0
- long_name :
- Radial velocity of scatterers away from instrument H
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_h
- units :
- meters per seconds
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - VRADH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Radial velocity of scatterers away from instrument H
- standard_name :
- radial_velocity_of_scatterers_away_from_instrument_h
- units :
- meters per seconds
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - WRADH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Doppler spectrum width H
- standard_name :
- radar_doppler_spectrum_width_h
- units :
- meters per seconds
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - TH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Linear total power H (uncorrected reflectivity)
- standard_name :
- radar_linear_equivalent_reflectivity_factor_h
- units :
- unitless
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - ZDR(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Log differential reflectivity H/V
- standard_name :
- radar_differential_reflectivity_hv
- units :
- dB
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - RHOHV(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Correlation coefficient HV
- standard_name :
- radar_correlation_coefficient_hv
- units :
- unitless
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - PHIDP(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Differential phase HV
- standard_name :
- radar_differential_phase_hv
- units :
- degrees
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - KDP(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Specific differential phase HV
- standard_name :
- radar_specific_differential_phase_hv
- units :
- degrees per kilometer
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray - SNRH(time, azimuth, range)float32dask.array<chunksize=(1, 360, 1200), meta=np.ndarray>
- _Undetect :
- 0.0
- long_name :
- Signal Noise Ratio H
- standard_name :
- signal_noise_ratio_h
- units :
- unitless
Array Chunk Bytes 3.30 MiB 1.65 MiB Shape (2, 360, 1200) (1, 360, 1200) Count 8 Tasks 2 Chunks Type float32 numpy.ndarray
- fixed_angle :
- 0.5