-
Notifications
You must be signed in to change notification settings - Fork 168
Open
Description
def _extract(r_list: Volume_T, dtype: str) -> tuple:
if len(set(i.range for i in r_list)) > 1:
raise ValueError("Input radials must have same data range")
adim_shape = set(i.dims["azimuth"] for i in r_list)
if max(adim_shape) > 400:
# CC radar
adim_interp_to = 512
else:
adim_interp_to = 360
r_data = list()
elev = list()
for i in r_list:
x, d, a = resample(
i[dtype].values,
i["distance"].values,
i["azimuth"].values,
i.tangential_reso,
adim_interp_to,
)
r_data.append(x)
elev.append(i.elevation)
data = np.concatenate(r_data).reshape(
len(r_list), r_data[0].shape[0], r_data[0].shape[1]
)
return data, d, a, np.array(elev)上述代码第17行:i.tangential_reso,,疑似传参错误,该参数含义为切向分辨率,而非径向分辨率
def resample(
data: np.ndarray,
distance: np.ndarray,
azimuth: np.ndarray,
d_reso: Number_T,
a_reso: int,
) -> tuple:
r"""
Resample radar radial data which have different number of radials
in one scan into that of 360 radials
Args:
data (numpy.ndarray): Radar radial data.
distance (numpy.ndarray): Original distance.
azimuth (numpy.ndarray): Original azimuth.
Returns:
numpy.ndarray: Resampled radial data.
numpy.ndarray: Resampled distance.
numpy.ndarray: Resampled azimuth.
"""
# Target grid
Rrange = np.arange(d_reso, distance.max() + d_reso, d_reso)
Trange = np.linspace(0, np.pi * 2, a_reso + 1)
dist, theta = np.meshgrid(Rrange, Trange)
# Original grid
d, t = np.meshgrid(distance, azimuth)
kds = KDResampler(data, d, t, 1)
r = kds.map_data(dist, theta)
return r, dist, theta根据这段代码看,d_reso应该是径向分辨率/径向数据库长,而非tangential_reso(切向分辨率)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels