Title: | Water Cloud Model (WCM) for the Simulation of Leaf Area Index (LAI) and Soil Moisture (SM) from Microwave Backscattering |
---|---|
Description: | Retrieval the leaf area index (LAI) and soil moisture (SM) from microwave backscattering data using water cloud model (WCM) model . The WCM algorithm attributed to Pervot et al.(1993) <doi:10.1016/0034-4257(93)90053-Z>. The authors are grateful to SAC, ISRO, Ahmedabad for providing financial support to Dr. Prashant K Srivastava to conduct this research work. |
Authors: | Ujjwal Singh <[email protected]> Prashant K Srivastava <[email protected])> Dharmendra Kumar Pandey <[email protected]> Sumit Kumar Chaudhary <[email protected]> Dileep Kumar Gupta <[email protected]> |
Maintainer: | Ujjwal Singh <[email protected]> |
License: | GPL (>= 3) |
Version: | 0.2.2 |
Built: | 2024-10-31 18:35:43 UTC |
Source: | https://github.com/cran/WCM |
Inversion of LAI from look up table generated by WCM
lai_inversion_lut(img, lookuptable)
lai_inversion_lut(img, lookuptable)
img |
raster object |
lookuptable |
Look up table simulated from 'wcm_sim' function |
a raster object (pixel value represents LAI)
radar <- raster::raster(ncol=10, nrow=10) val <- seq(-12,-7, length.out=100) radar[] <- val A= -9.596695 B= -0.005331 C= -11.758309 D= 0.011344 lut <- lut_wcm(LAI=seq(1,6,0.1), SM=seq(0,.6,.01),coeff=c(A,B,C,D)) example(out_lai <- lai_inversion_lut(img = radar,lookuptable = lut))
radar <- raster::raster(ncol=10, nrow=10) val <- seq(-12,-7, length.out=100) radar[] <- val A= -9.596695 B= -0.005331 C= -11.758309 D= 0.011344 lut <- lut_wcm(LAI=seq(1,6,0.1), SM=seq(0,.6,.01),coeff=c(A,B,C,D)) example(out_lai <- lai_inversion_lut(img = radar,lookuptable = lut))
Look up table of WCM
lut_wcm(LAI, SM, coeff)
lut_wcm(LAI, SM, coeff)
LAI |
one dimensional row vector or a range of LAI value |
SM |
one dimensionalrow vector or a range of SM value |
coeff |
Generated A, B, C, D fitted coefficient for WCM using non linear least square using in situ data |
look up table for WCM for given range of LAI and SM
A= -9.596695 B=-0.005331 C=-11.758309 D=0.011344 lookuptable <- lut_wcm(LAI=seq(1,6,0.1), SM=seq(0,.6,.01),coeff=c(A,B,C,D))
A= -9.596695 B=-0.005331 C=-11.758309 D=0.011344 lookuptable <- lut_wcm(LAI=seq(1,6,0.1), SM=seq(0,.6,.01),coeff=c(A,B,C,D))
Inversion of SM from look up table generated by WCM
sm_inversion_lut(img, lookuptable)
sm_inversion_lut(img, lookuptable)
img |
raster object |
lookuptable |
Look up table simulated from 'wcm_sim' function |
a raster object (pixel value represents SM)
radar1 <- raster::raster(ncol=10, nrow=10) val <- seq(-12,-7, length.out=100) radar1[] <- val A= -9.596695 B= -0.005331 C= -11.758309 D= 0.011344 lut1 <- lut_wcm(LAI=seq(1,6,0.1), SM=seq(0,.6,.01),coeff=c(A,B,C,D)) example(out_sm <- sm_inversion_lut(img = radar1,lookuptable = lut1))
radar1 <- raster::raster(ncol=10, nrow=10) val <- seq(-12,-7, length.out=100) radar1[] <- val A= -9.596695 B= -0.005331 C= -11.758309 D= 0.011344 lut1 <- lut_wcm(LAI=seq(1,6,0.1), SM=seq(0,.6,.01),coeff=c(A,B,C,D)) example(out_sm <- sm_inversion_lut(img = radar1,lookuptable = lut1))
This function can be used to simulate the backscattering coefficient using WCM. This function can be called in nls function for generation of model coefficients (A,B,C,D).
wcm_sim(X, Y, theta, A, B, C, D)
wcm_sim(X, Y, theta, A, B, C, D)
X |
In situ LAI or vegetation descriptor |
Y |
In situ SM soil moisture |
theta |
incident angle of Satellite sensor |
A |
fitted coefficient for WCM using non linear least squre using in situ data |
B |
fitted coefficient for WCM using non linear least squre using in situ data |
C |
fitted coefficient for WCM using non linear least squre using in situ data |
D |
fitted coefficient for WCM using non linear least squre using in situ data |
wcm_sim |
is simulated backscattering coefficient |
simulated backscattering coefficient
# For single value. n <- wcm_sim(4,.3,48.9,-9.596695,-0.005331,-11.758309,0.011344) #For list of value X<-c(5.34, 4.34, 4.32, 4.12, 4.17, 3.58, 5.39, 5.66, 5.47, 5.73, 5.76, 5.93, 4.91, 5.36, 6.15, 4.56, 5.44, 6.54, 6.20, 6.34, 5.56, 5.88, 7.34, 5.74, 4.81, 5.73, 3.63, 4.61, 4.76, 4.02) Y<-c(35.0, 26.0, 18.0, 13.0, 18.0, 22.0, 19.0, 16.5, 20.0, 24.0, 24.0, 21.0, 13.0, 22.0, 25.0, 24.0, 30.0, 23.0, 18.0, 17.6, 15.0, 17.0, 27.0, 22.0, 21.0, 15.0, 15.0, 18.0, 31.0, 10.0) w<-c(-9.604, -11.648, -11.556, -11.556, -11.090, -10.444, -10.444, -10.042, -9.200, -9.750, -9.200, -9.200, -9.812, -9.972, -8.938, -9.200, -8.198, -7.722, -7.348, -7.348, -8.198, -10.082, -6.870, -8.104, -8.732, -7.830, -10.686, -10.964, -10.976, -10.976) theta<-48.9 example(nlc<-nls.control(maxiter = 50000, tol = 1e-05, minFactor = 1/100000000000, printEval = FALSE, warnOnly = FALSE)) example(k<-nls(w~wcm_sim(X,Y,theta,A,B,C,D),control=nlc, start=list(A= 0.01,B=0.01,C=-21,D= 0.00014),trace = T)) example(y<-predict(k)) n <- wcm_sim(X,Y,theta,-9.596695,-0.005331,-11.758309,0.011344)
# For single value. n <- wcm_sim(4,.3,48.9,-9.596695,-0.005331,-11.758309,0.011344) #For list of value X<-c(5.34, 4.34, 4.32, 4.12, 4.17, 3.58, 5.39, 5.66, 5.47, 5.73, 5.76, 5.93, 4.91, 5.36, 6.15, 4.56, 5.44, 6.54, 6.20, 6.34, 5.56, 5.88, 7.34, 5.74, 4.81, 5.73, 3.63, 4.61, 4.76, 4.02) Y<-c(35.0, 26.0, 18.0, 13.0, 18.0, 22.0, 19.0, 16.5, 20.0, 24.0, 24.0, 21.0, 13.0, 22.0, 25.0, 24.0, 30.0, 23.0, 18.0, 17.6, 15.0, 17.0, 27.0, 22.0, 21.0, 15.0, 15.0, 18.0, 31.0, 10.0) w<-c(-9.604, -11.648, -11.556, -11.556, -11.090, -10.444, -10.444, -10.042, -9.200, -9.750, -9.200, -9.200, -9.812, -9.972, -8.938, -9.200, -8.198, -7.722, -7.348, -7.348, -8.198, -10.082, -6.870, -8.104, -8.732, -7.830, -10.686, -10.964, -10.976, -10.976) theta<-48.9 example(nlc<-nls.control(maxiter = 50000, tol = 1e-05, minFactor = 1/100000000000, printEval = FALSE, warnOnly = FALSE)) example(k<-nls(w~wcm_sim(X,Y,theta,A,B,C,D),control=nlc, start=list(A= 0.01,B=0.01,C=-21,D= 0.00014),trace = T)) example(y<-predict(k)) n <- wcm_sim(X,Y,theta,-9.596695,-0.005331,-11.758309,0.011344)