def calc_dsd_sband_bringi_2004(dz, zdr, kdp): """ Retrieves d0, Nw, and mu following the methodology of Bringi et al. (2004) Works for S-band """ d0 = 0.0 * dz Nw = 0.0 * dz mu = 0.0 * dz zeta = linearize(zdr) dz_lin = linearize(dz) beta = calc_beta(dz_lin, kdp, zeta) #Break down DSD calculations by methods meth1a = np.logical_and(dz >= 35, zdr >= 0.2) meth1 = np.logical_and(meth1a, kdp >= 0.3) d0[meth1], Nw[meth1], mu[meth1] = dsd_sband_method1(dz_lin[meth1], kdp[meth1], zeta[meth1], beta[meth1]) meth2 = np.logical_and(kdp < 0.3, zdr >= 0.5) d0[meth2], Nw[meth2], mu[meth2] = dsd_sband_method2(dz_lin[meth2], kdp[meth2], zdr[meth2]) meth3a = np.logical_and(zdr >= 0.2, zdr < 0.5) meth3 = np.logical_and(meth3a, kdp < 0.3) d0[meth3], Nw[meth3], mu[meth3] = dsd_sband_method3(dz_lin[meth3], kdp[meth3], zdr[meth3], zeta[meth3]) meth4a = np.logical_and(zdr >= -0.5, zdr < 0.2) meth4 = np.logical_and(meth4a, kdp < 0.3) d0[meth4], Nw[meth4], mu[meth4] = dsd_sband_method4(dz_lin[meth4], zeta[meth4]) return d0, Nw, mu
def calc_dsd_cband_bringi_2009(dz, zdr): """ Retrieves d0, Nw, and mu following the methodology of Bringi et al. (2009) Works for C-band """ d0 = 0.0 * dz Nw = 0.0 * dz dz_lin = linearize(dz) meth1 = np.logical_and(zdr >= -0.5, zdr <= 1.25) d0[meth1] = d0_low_zdr(zdr[meth1]) meth2 = zdr > 1.25 d0[meth2] = d0_high_zdr(zdr[meth2]) Nw = dz_lin / power_law(d0, 0.056, 7.319) mu = 0.0 * dz + DEFAULT_MU return d0, Nw, mu
def calc_dsd_sband_bringi_2013(dz, zdr): """ Retrieves d0, Nw, and mu following the methodology of Bringi et al. (2009) Works for C-band """ d0 = 0.0 * dz Nw = 0.0 * dz dz_lin = linearize(dz) meth1 = zdr < 1 d0[meth1] = d0_low_zdr(zdr[meth1], a=0.0424, b=-0.4571, c=0.6125, d=0.457, e=0.8808) meth2 = zdr >= 1 d0[meth2] = d0_high_zdr(zdr[meth2], a=0.0536, b=-0.1971, c=0.6261, d=1.0815) Nw = 19.76 * dz_lin / power_law(d0, b=7.46) mu = 0.0 * dz + DEFAULT_MU return d0, Nw, mu