Radarx#

[ ]:
import radarx as rx
import xradar as xd
import cmweather  # noqa
import cartopy.crs as ccrs
from datetime import datetime
[ ]:
def filter_radar(ds):
    ds = ds.where((ds.reflectivity >= 0) & (ds.reflectivity <= 70))
    return ds

Grid Setup#

[ ]:
x_lims = (-300e3, 250e3)
y_lims = (-250e3, 300e3)
z_lims = (0, 15e3)
h_res = 2000
v_res = 500

Load data#

[ ]:
filename = "KSGF20180612_083109_V06.nc"
[ ]:
dtree = xd.io.open_cfradial1_datatree(filename)
[ ]:
dtree = rx.utils.combine_nexrad_sweeps(dtree)
[ ]:
dtree = dtree.xradar.map_over_sweeps(filter_radar)
[ ]:
dtree = dtree.xradar.georeference()
dtree.groups
[ ]:
dtree["sweep_0"]["reflectivity"].plot(
    x="x",
    y="y",
    xlim=(-300e3, 200e3),
    ylim=(-200e3, 300e3),
    cmap="ChaseSpectral",
    levels=range(-10, 70),
)

Radarx#

[ ]:
tstart = datetime.now()
ds_rx = dtree.radarx.to_grid(
    data_vars=["reflectivity"],
    pseudo_cappi=False,
    x_lim=x_lims,
    y_lim=y_lims,
    z_lim=z_lims,
    x_step=h_res,
    y_step=h_res,
    z_step=v_res,
    x_smth=0.2,
    y_smth=0.2,
    z_smth=0.6,
)
print("Radarx gridding took:", datetime.now() - tstart)
display(ds_rx)

Plot#

[ ]:
ds_rx.radarx.plot_max_cappi(
    data_var="reflectivity",
    vmin=-10,
    vmax=70,
    range_rings=True,
    add_map=True,
    projection=ccrs.PlateCarree(),
    title="Radarx",
)
[ ]: