Comparaison of transformation methods

Comparaison of transformation methods#

[1]:
import time

import matplotlib.pyplot as plt
import wradlib
import xarray
import xradar

Get a radar sweep with reflectivity measurements and metadata

[2]:
from wradlib_data import DATASETS

filename = "hdf5/71_20181220_060628.pvol.h5"
filename = DATASETS.fetch(filename)
volume = xradar.io.open_odim_datatree(filename)
sweep = volume["sweep_0"].ds
metadata = xradar.model.required_sweep_metadata_vars
sweep = sweep[["DBZH"] + list(metadata)]

Interpolate radar sweep into a Cartesian grid using nearest neighbor method

[3]:
window = [-200e3, 200e3, -200e3, 200e3]
size = 1000
lon = float(sweep.longitude.values)
lat = float(sweep.latitude.values)
crs = wradlib.georef.get_radar_projection((lon, lat))
raster = wradlib.georef.create_raster_xarray(crs, window, size)
grid = raster
sweep = sweep.wrl.georef.georeference(crs=crs)
tic = time.time()
comp1 = sweep.DBZH.wrl.comp.togrid(
    grid, radius=250e3, center=(lon, lat), interpol=wradlib.ipol.Nearest
)
toc = time.time() - tic
print(f"Time elapsed: {toc}")
Time elapsed: 0.24989652633666992

Combine radar sweep into a raster image by taking the mean

[4]:
tic = time.time()
transform = wradlib.comp.transform_binned(sweep, raster)
comp2 = wradlib.comp.sweep_to_raster(sweep, raster)
toc = time.time() - tic
print(f"Time elapsed: {toc}")
/home/runner/micromamba/envs/wradlib-notebooks/lib/python3.12/site-packages/scipy/stats/_binned_statistic.py:694: RuntimeWarning: Mean of empty slice
  stat = stat_func(np.array(bin_map[i]))
Time elapsed: 3.8472297191619873

Compare the methods at close range

[5]:
sweep.DBZH.plot(x="x", y="y", cmap="PuBuGn", vmin=10, vmax=60)
plt.xlim(-10e3, 10e3)
plt.ylim(-10e3, 10e3)
plt.suptitle("Sweep")
plt.show()

comp1.plot.pcolormesh(cmap="PuBuGn", vmin=10, vmax=60)
plt.xlim(-10e3, 10e3)
plt.ylim(-10e3, 10e3)
plt.suptitle("Grid (nearest)")
plt.show()

comp2 = comp2.drop_vars("spatial_ref")
comp2["DBZH"].plot.pcolormesh(cmap="PuBuGn", vmin=10, vmax=60)
plt.xlim(-10e3, 10e3)
plt.ylim(-10e3, 10e3)
plt.suptitle("Raster (binned)")
plt.show()
../../_images/notebooks_compositing_transform_10_0.png
../../_images/notebooks_compositing_transform_10_1.png
../../_images/notebooks_compositing_transform_10_2.png
[ ]: