예제 #1
0
def _extract(Rlist):
    r_data = list()
    elev = list()
    areso = Rlist[0].a_reso if Rlist[0].a_reso else 360
    for i in Rlist:
        x, d, a = resample(i.data, i.dist, i.az, i.reso, areso)
        r_data.append(x)
        elev.append(i.elev)
    data = np.concatenate(r_data).reshape(len(Rlist), r_data[0].shape[0],
                                          r_data[0].shape[1])
    return data, d, a, elev
예제 #2
0
def _extract(r_list):
    d_list = np.array([i.drange for i in r_list])
    if d_list.mean() != d_list.max():
        raise ValueError('Input radials must have same data range')
    r_data = list()
    elev = list()
    areso = r_list[0].a_reso if r_list[0].a_reso else 360
    for i in r_list:
        x, d, a = resample(i.data, i.dist, i.az, i.reso, areso)
        r_data.append(x)
        elev.append(i.elev)
    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)
예제 #3
0
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)