Пример #1
0
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
Пример #2
0
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
Пример #3
0
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