Example #1
0
def mv2hh(mv, ks, theta, dB=True):
    """
    Input:
        mv: soil moisture (v/v)
        ks: microwave roughness
        theta: incidence angle (degree)
    Output:
        hh: backscatter coefficient 
    """
    ep = mv2ep(mv)
    gamma0 = ep2gamma(ep)
    g = 0.7 * (1 - np.exp(-0.65 * ks**1.8))
    q, p = foreward_model(ks, gamma0, theta, dB=False)
    gamma_h = horizontal_fresnel(ep, theta)
    gamma_v = vertical_fresnel(ep, theta)
    hh = g * np.sqrt(p) * np.cos(np.radians(theta))**3 * (gamma_v - gamma_h)
    if dB:
        hh = 10 * np.log10(hh)
    return hh
Example #2
0
def mv2hh(mv, ks, theta, dB=True):
    """
    Input:
        mv: soil moisture (v/v)
        ks: microwave roughness
        theta: incidence angle (degree)
    Output:
        hh: backscatter coefficient 
    """
    ep = mv2ep(mv)
    gamma0 = ep2gamma(ep)
    g = 0.7*(1-np.exp(-0.65*ks**1.8))
    q, p = foreward_model(ks, gamma0, theta, dB=False)
    gamma_h = horizontal_fresnel(ep, theta)
    gamma_v = vertical_fresnel(ep, theta)
    hh = g*np.sqrt(p)*np.cos(np.radians(theta))**3*(gamma_v-gamma_h)
    if dB:
        hh = 10*np.log10(hh)
    return hh
Example #3
0
    mv = ep2mv(ep)

    # estimate ks
    # convert from dB to linear
    q = 10**(q / 10.0)
    ks = -np.log(1 - q / (0.23 * np.sqrt(gamma0)))

    return mv, ks


if __name__ == "__main__":

    # fig 11 and 12 of Oh(1992)
    theta = 40
    mv = 0.25
    ep = mv2ep(mv)
    gamma0 = ep2gamma(ep)
    ks = np.linspace(0, 7)
    q, p = foreward_model(ks, gamma0, theta)

    #plt.plot(ks,q)
    #plt.show()

    #plt.plot(ks,p)
    #plt.show()

    # inverse modelling
    ks = 0.1
    theta = 40
    mv = 0.35
    ep = mv2ep(mv)
Example #4
0
        q: (dB)
        theta: incidence angle (degree)
            
    """
    
    guess_ks_gamma0 = [0.2, 0.4]
    ks_gamma0 = fmin(res_ks_gamma0, guess_ks_gamma0, args=(p, q, theta), disp=False)
    ks = ks_gamma0[0]
    gamma0 = ks_gamma0[1]
    return ks, gamma0

def inverse_oh1994(p, q, theta):
    """
    
    """
    ks, gamma0 = estimate_ks_gamma0(p, q, theta)
    ep = gamma2ep(gamma0)
    
    mv = ep2mv(ep)
    
    return mv, ks


if __name__ == "__main__":
    mv = 0.15
    ks = 0.3
    theta = 40
    ep = mv2ep(mv)
    gamma0 = ep2gamma(ep)
    p,q =  foreward_model(ks, gamma0, theta)
    print inverse_oh1994(p, q, theta)