Title: | Land Surface Remote Sensing |
---|---|
Description: | Rapid satellite data streams in operational applications have clear benefits for monitoring land cover, especially when information can be delivered as fast as changing surface conditions. Over the past decade, remote sensing has become a key tool for monitoring and predicting environmental variables by using satellite data. This package presents the main applications in remote sensing for land surface monitoring and land cover mapping (soil, vegetation, water...). Tomlinson, C.J., Chapman, L., Thornes, E., Baker, C (2011) <doi:10.1002/met.287>. |
Authors: | Mehdi Sarparast |
Maintainer: | Mehdi Sarparast <[email protected]> |
License: | GPL-3 |
Version: | 0.2.0 |
Built: | 2024-11-01 11:16:57 UTC |
Source: | https://github.com/cran/LSRS |
cover management factor in RUSLE model (C factor): Many people in the erosion control industry use the Revised Universal Soil Loss Equation (RUSLE) to estimate soil loss caused by rainfall erosion. The equation combines the interrelated physical and management parameters of climate, soils, topography, and land use. The full equation is:
A = R*K*LS*C*P
C factor : Cover Management Cover management is considered by RUSLE through the C factor. The C factor represents the effect of surface cover and roughness on soil erosion. The cover factor is the most common factor used to assess the impact of BMPs on reducing erosion because the C factor represents the effect of land use on soil erosion (Renard et al., 1997). Erosion control blankets and surface applied BMPs such as blown straw are represented as C factors within RUSLE. By definition, C = 1 under standard fallow conditions. As surface cover is added to the soil, the C factor value approaches zero. The unitless cover management factor can be determined in different ways. The remote sensing data, useful for reconstructing the temporal variation of C factor. The relationship between the C factor and NDVI is the same applied to the regional scale that is the following (Knijff et al., 2000):
C=exp(2.5* NDVI/1-NDVI)
And another equation (Durigon et al., 2014):
c=[(-1*NDVI+0.5)]
C.factor(a = "NIR", b = "Red", method, na.rm = TRUE)
C.factor(a = "NIR", b = "Red", method, na.rm = TRUE)
a |
NIR satellite band (format:TIF) |
b |
Red satellite band (format:TIF) |
method |
based on Knijff or Durigon equation |
na.rm |
remove missing values |
Mehdi Sarparast
[1] Dudigon,v.l., Carvalho, D.F., Antunes, M.A.H., Oliveira, P.T.S., Fernandes, M.M. NDVI time series for monitoring RUSLE cover management factor in a tropical watershed. International Journal of Remote Sensing, v.35, p.441-453, 2014. DOI: 0.1080/01431161.2013.871081. [2] Knijff, van der J.M., Jones R.J.A. and Montanarella L., 2000. Soil Erosion Risk Assessment in Italy. European Soil Bureau, JRC, Space Applications Institute.
## The function is currently defined as function (a = "NIR", b = "Red", method, na.rm = TRUE) { name <- C.factor (a,b, method="Knijff",na.rm = TRUE) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4,main=" C.factor ", xlab="easting", ylab="northing") hist(cropXY,main=" C.factor " , xlab=" C.factor ",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a = "NIR", b = "Red", method, na.rm = TRUE) { name <- C.factor (a,b, method="Knijff",na.rm = TRUE) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4,main=" C.factor ", xlab="easting", ylab="northing") hist(cropXY,main=" C.factor " , xlab=" C.factor ",col="red", ylab="Frequency of Pixels") }
Enhanced Built-Up and Bareness Index (EBBI): The EBBI is a remote sensing index that applies bands of NIR, SWIR, and TIR. The NIR and SWIR bands are associated with a high contrast level for detecting built-up and bare land areas In addition, in these bands, there is an inverse reflectance ratio with respect to detecting built-up or bare land areas compared to vegetation. Vegetation has a high reflectance in NIR band, but the reflectance of built-up or bare land in NIR band is low. subtraction of NIR band from SWIR band will result in positive values for built-up and barren pixels and will result in negative values for vegetation. In addition, a summation of SWIR band and TIR band will result in higher values pixel for built-up and bare land than for vegetation. The difference between the subtraction of NIR band from SWIR band and the summation of SWIR band and TIR band will result in virtually 0 water pixels as well as negative values for vegetation and positive values for built-up and barren pixels. This outcome allows for easy distinguishing between built-up and bare land areas.EBBI can be calculated as:
EBBI=SWIR-Red/10*sqrt(SWIR+TIR)
EBBI(x = "NIR", y = "SWIR", z = "TIR", Pixel.Depth)
EBBI(x = "NIR", y = "SWIR", z = "TIR", Pixel.Depth)
x |
Red satellite band (format:TIF) |
y |
SWIR satellite band (format:TIF) |
z |
TIR satellite band (format:TIF) |
Pixel.Depth |
for satellite image with digital numbers (DN) of 0 to 255,Pixel.Depth=null and for the larger DN, Pixel.Depth=1 |
Mehdi Sarparast
[1] As syakur, A.R., Adnyana, I.W.S., Arthana, I.W., Nuarsa, I.W., 2012. Enhanced built-UP and bareness index (EBBI) for mapping built-UP and bare land in an urban area. Remote Sens. 4, 2957-2970. doi:10.3390/rs4102957
## The function is currently defined as function (x = "NIR", y = "SWIR", z = "TIR", Pixel.Depth) { name <- EBBI (a,b,c,Pixel.Depth=1) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4,main=" EBBI ", xlab="easting", ylab="northing") hist(cropXY,main="EBBI " , xlab=" EBBI ",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (x = "NIR", y = "SWIR", z = "TIR", Pixel.Depth) { name <- EBBI (a,b,c,Pixel.Depth=1) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4,main=" EBBI ", xlab="easting", ylab="northing") hist(cropXY,main="EBBI " , xlab=" EBBI ",col="red", ylab="Frequency of Pixels") }
In areas of dense canopy where the leaf area index (LAI) is high, the NDVI values can be improved by leveraging information in the blue wavelength. Information in this portion of the spectrum can help correct for soil background signals and atmospheric influences. The enhanced vegetation index (EVI) is an 'optimized' vegetation index designed to enhance the vegetation signal with improved sensitivity in high biomass regions and improved vegetation monitoring through a de-coupling of the canopy background signal and a reduction in atmosphere influences. EVI is computed following this equation:
VALUE = 2.5*(NIR - Red) / (NIR + 6*Red - 7.5*Blue + 1)
EVI(a="NIR",b="Red",c="Blue",Pixel.Depth)
EVI(a="NIR",b="Red",c="Blue",Pixel.Depth)
a |
NIR satellite band (format:TIF) |
b |
Red satellite band (format:TIF) |
c |
Blue satellite band (format:TIF) |
Pixel.Depth |
for satellite image with digital numbers (DN) of 0 to 255,Pixel.Depth=null and for the larger DN, Pixel.Depth=1 |
in some cases for satellite image with very large digital numbers it need to be multiplied with 0.1,0.01,.001,...
Mehdi Sarparast
[1] A. Huete, K. Didan, T. Miura, E. P. Rodriguez, X. Gao, L. G. Ferreira. Overview of the radiometric and biophysical performance of the MODIS vegetation indices. Remote Sensing of Environment 83(2002) 195-213.
## The function is currently defined as function (a = NIR, b = Red, c = Blue,Pixel.Depth) { name=EVI(a,b,c,Pixel.Depth=null) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="EVI",xlab="easting", ylab="northing") hist(cropXY, main="EVI", xlab="EVI",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a = NIR, b = Red, c = Blue,Pixel.Depth) { name=EVI(a,b,c,Pixel.Depth=null) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="EVI",xlab="easting", ylab="northing") hist(cropXY, main="EVI", xlab="EVI",col="red", ylab="Frequency of Pixels") }
The modified soil-adjusted vegetation index (MSAVI) is the soil adjusted vegetation index that seek to address some of the limitation of NDVI when applied to areas with a high degree of exposed soil surface. The problem with the original soil-adjusted vegetation index (SAVI) is that it required specifying the soil-brightness correction factor (L) through trial-and-error based on the amount of vegetation in the study area. Not only did this lead to the majority of people just using the default L value of 0.5, but it also created a circular logic problem of needing to know what the vegetation amount/cover was before you could apply SAVI which was supposed to give you information on how much vegetation there was. Qi et al. (1994a) developed the MSAVI to more reliably and simply calculate a soil brightness correction factor.
MSAVI=(NIR-Red)/(NIR+Red+L)*(1+L)
where RED is the red band reflectance from a sensor, NIR is the near infrared band reflectance, and L is the soil brightness correction factor. The difference between SAVI and MSAVI, however, comes in how L is calculated. In SAVI, L is estimated based on how much vegetation there is (but it's generally left alone at a compromise of 0.5). MSAVI uses the following formula to calculate L:
L=2*s*(NIR-Red)*(NIR-s* Red)/(NIR+Red)
where s is the slope of the soil line from a plot of red versus near infrared brightness values.
MSAVI(a = "NIR", b = "Red", Pixel.Depth)
MSAVI(a = "NIR", b = "Red", Pixel.Depth)
a |
NIR satellite band (format:TIF) |
b |
Red satellite band (format:TIF) |
Pixel.Depth |
for satellite image with digital numbers (DN) of 0 to 255,Pixel.Depth=null and for the larger DN, Pixel.Depth=1 |
in some cases for satellite image with very large digital numbers it need to be multiplied with 0.1,0.01,.001,...
Mehdi Sarparast
[1] https://water.usgs.gov/GIS/metadata/usgswrd/XML/msavi92.xml. [2]http://wiki.landscapetoolbox.org/doku.php/remote_sensing_methods:modified_soil -adjusted_vegetation_index.
## The function is currently defined as function (a = "NIR", b = "Red", Pixel.Depth) { name=MSAVI(a,b,Pixel.Depth=null) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="MSAVI", xlab="easting", ylab="northing") hist(cropXY, main="MSAVI", xlab="MSAVI",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a = "NIR", b = "Red", Pixel.Depth) { name=MSAVI(a,b,Pixel.Depth=null) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="MSAVI", xlab="easting", ylab="northing") hist(cropXY, main="MSAVI", xlab="MSAVI",col="red", ylab="Frequency of Pixels") }
The Normalized Burn Ratio (NBR) was designed to highlight burned areas and estimate fire severity. The formula is similar to NDVI, except that it uses near-infrared (NIR) and shortwave-infrared (SWIR) wavelengths.
NBR=(NIR - SWIR) / (NIR + SWIR)
NBR(a = "NIR", b = "SWIR")
NBR(a = "NIR", b = "SWIR")
a |
NIR satellite band (format:TIF) |
b |
SWIR satellite band (format:TIF) |
Mehdi Sarparast
[1] USGS burn severity - Overview of applied remote sensing principles. [2] Norton, J.M. 2006. The use of remote sensing indices to determine wildland burn severity in semiarid sagebrush steppe rangelands using Landsat ETM+ and SPOT 5. MS Thesis, Idaho State University.
## The function is currently defined as function (a = "NIR", b = "SWIR") { name=NBR(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NBR", xlab="easting", ylab="northing") hist(cropXY, main="Histogram of NBR" , xlab="NBR",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a = "NIR", b = "SWIR") { name=NBR(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NBR", xlab="easting", ylab="northing") hist(cropXY, main="Histogram of NBR" , xlab="NBR",col="red", ylab="Frequency of Pixels") }
The Normalized Burn Ratio 2 (NBR2) is calculated as a ratio between the SWIR values, substituting the SWIR1 band for the NIR band used in NBR to highlight sensitivity to water in vegetation.
NBR2= (SWIR1 - SWIR2) / (SWIR1 + SWIR2)
NBR2(a = "SWIR1", b = "SWIR2")
NBR2(a = "SWIR1", b = "SWIR2")
a |
SWIR1 satellite band (Wavelength:1.566 - 1.651 micrometer) (format:TIF) |
b |
SWIR2 satellite band (Wavelength:2.107 - 2.294 micrometer)(format:TIF) |
Mehdi Sarparast
[1] https://landsat.usgs.gov/sites/default/files/documents/si_product_guide.pdf
## The function is currently defined as function (a = SWIR1, b = SWIR2) { name=NBR2(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NBR2", xlab="easting", ylab="northing") hist(cropXY, main="NBR2" , xlab="NBR2",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a = SWIR1, b = SWIR2) { name=NBR2(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NBR2", xlab="easting", ylab="northing") hist(cropXY, main="NBR2" , xlab="NBR2",col="red", ylab="Frequency of Pixels") }
The Normalized Difference Moisture (Water) Index (NDMI or NDWI) is a satellite-derived index from the Near-Infrared (NIR) and Short Wave Infrared (SWIR) channels. The SWIR reflectance reflects changes in both the vegetation water content and the spongy mesophyll structure in vegetation canopies, while the NIR reflectance is affected by leaf internal structure and leaf dry matter content but not by water content. The combination of the NIR with the SWIR removes variations induced by leaf internal structure and leaf dry matter content, improving the accuracy in retrieving the vegetation water content. The amount of water available in the internal leaf structure largely controls the spectral reflectance in the SWIR interval of the electromagnetic spectrum. SWIR reflectance is therefore negatively related to leaf water content. NDWI is computed using the near infrared (NIR) and the short wave infrared (SWIR) reflectance’s:
NDMI=(NIR - SWIR) / (NIR + SWIR)
NDMI(a = "NIR", b = "SWIR")
NDMI(a = "NIR", b = "SWIR")
a |
NIR satellite band (format:TIF) |
b |
SWIR satellite band (format:TIF) |
Mehdi Sarparast
[1] Gao, B.C. 1996. NDWI : A normalized difference water index for remote sensing of vegetation liquid water from space. Remote Sensing of Environment 58: 257-266
## The function is currently defined as function (a = "NIR", b = "SWIR") { name <- NDMI(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NDMI", xlab="easting", ylab="northing") hist(cropXY, main="NDMI" , xlab="NDMI",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a = "NIR", b = "SWIR") { name <- NDMI(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NDMI", xlab="easting", ylab="northing") hist(cropXY, main="NDMI" , xlab="NDMI",col="red", ylab="Frequency of Pixels") }
Normalized Difference Vegetation Index (NDVI) quantifies vegetation by measuring the difference between near-infrared (which vegetation strongly reflects) and red light (which vegetation absorbs). NDVI always ranges from -1 to +1. But there isn’t a distinct boundary for each type of land cover. For example, when you have negative values, it’s highly likely that it’s water. On the other hand, if you have a NDVI value close to +1, there’s a high possibility that it’s dense green leaves. But when NDVI is close to zero, there isn’t green leaves and it could even be an urbanized area.As shown below, Normalized Difference Vegetation Index (NDVI) uses the NIR and red channels in its formula. NDVI=NIR-Red/NIR+Red
The result of this formula generates a value between -1 and +1. If you have low reflectance (or low values) in the red channel and high reflectance in the NIR channel, this will yield a high NDVI value. And vice versa.Overall, NDVI is a standardized way to measure healthy vegetation. When you have high NDVI values, you have healthier vegetation. When you have low NDVI, you have less or no vegetation. satellites like Sentinel-2, Landsat and SPOT produce red and near infrared images.
NDVI(a="NIR",b="Red")
NDVI(a="NIR",b="Red")
a |
NIR satellite band (format:TIF) |
b |
Red satellite band (format:TIF) |
Mehdi Sarparast
[1] http://gisgeography.com/ndvi-normalized-difference-vegetation-index/
## The function is currently defined as function (a, b){ name <- NDVI(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NDVI", xlab="easting", ylab="northing") hist(cropXY, main="NDVI", xlab="NDVI",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a, b){ name <- NDVI(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="NDVI", xlab="easting", ylab="northing") hist(cropXY, main="NDVI", xlab="NDVI",col="red", ylab="Frequency of Pixels") }
In areas where vegetative cover is low (i.e., < 40 percent) and the soil surface is exposed, the reflectance of light in the red and near -infrared spectra can influence vegetation index values. This is especially problematic when comparisons are being made across different soil types that may reflect different amounts of light in the red and near infrared wavelengths (i.e., soils with different brightness values). The soil -adjusted vegetation index was developed as a modification of the Normalize d Difference Vegetation Index to correct for the influence of soil brightness when vegetative cover is low. The SAVI is structured similar to the NDVI but with the addition of a “soil brightness correction factor,”
SAVI=(NIR-Red)/(NIR+Red+L)*(1+L)
The SAVI is structured similar to the NDVI but with the addition of a “soil brightness correction factor,” where NIR is the reflectance value of the near infrared band, RED is reflectance of the red band, and L is the soil brightness correction factor. The value of L varies by the amount or cover of green vegetation: in very high vegetation regions, L=0; and in areas with no green vegetation, L=1. Generally, an L=0.5 works well in most situations and is the default value used. When L=0, then SAVI = NDVI.
SAVI(a="NIR",b="Red")
SAVI(a="NIR",b="Red")
a |
NIR satellite band (format:TIF) |
b |
Red satellite band (format:TIF) |
Mehdi Sarparast
[1] http://wiki.landscapetoolbox.org/doku.php/remote_sensing_methods:soil-adjusted_vegetation_index.
## The function is currently defined as function (a="NIR",b="Red") { name <- SAVI(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="SAVI", xlab="easting", ylab="northing") hist(cropXY, main="SAVI" , xlab="SAVI",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a="NIR",b="Red") { name <- SAVI(a,b) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4, main="SAVI", xlab="easting", ylab="northing") hist(cropXY, main="SAVI" , xlab="SAVI",col="red", ylab="Frequency of Pixels") }
Topsoil Grain Size Index (TGSI): Topsoil Grain Size Index (TGSI) was developed based on the field survey of soil surface spectral reflectance and laboratory analyses of soil grain composition. Even one rainfall can significantly increase the vegetation cover. Thus, NDVI is misinterpret the actual degree of desertification (Xiao et al., 2006). To overcome this problem, Xiao et al. (2006) proposed a new index, topsoil grain size index (TGSI), which is associated with the mechanical composition of topsoil. It indicates the coarsening of topsoil grain size which has a positive correlation with fine sand content (this class of sand is dominated by the finer sizes of sand particle, and somewhat less coarse than either sand or coarse sand) of surface soil texture, as a manifestation of undergoing desertification. The more severe the desertification, the coarser the topsoil grain size composition (grain size refers to the mean or effective diameter of individual mineral grains or particles. A high TGSI value corresponds to an area with high content of fine sand in the topsoil or low content of clay-silt grains. The TGSI can be calculated as:
TGSI= (Red-Blue)/(Red+Blue+green)
where R, B, and G are the red, blue, and green bands of the remote sensing data, respectively. TGSI is an index used to detect the texture of the topsoil layer, or grain size. Negative values or those near 0 repre- sent zones with vegetation or water bodies and values near 0.20 indicate high contents of fine sand.
TGSI(a = "Red", b = "Blue", c = "green")
TGSI(a = "Red", b = "Blue", c = "green")
a |
Red satellite band (format:TIF) |
b |
Blue satellite band (format:TIF) |
c |
green satellite band (format:TIF) |
Mehdi Sarparast
[1] Xiao, J., Shen, Y., Tateishi, R., et al., 2006. Development of topsoil grain size index for monitoring desertification in arid land using remote sensing. Int J. Remote Sens. 27, 2411–2422. [2] Lamchin, M., Lee, J.Y., Lee, W.K., Lee, E.J., Kim, M., Lim, C.H., Choi, H.A. and Kim, S.R., 2016. Assessment of land cover change and desertification using remote sensing technology in a local region of Mongolia. Advances in Space Research, 57(1), pp.64-77.
## The function is currently defined as function (a = "Red", b = "Blue", c = "green") { name <- TGSI(a,b,c) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4,main="TGSI", xlab="easting", ylab="northing") hist(cropXY,main="TGSI" , xlab="TGSI",col="red", ylab="Frequency of Pixels") }
## The function is currently defined as function (a = "Red", b = "Blue", c = "green") { name <- TGSI(a,b,c) areaXY <-c(xmin, xmax, ymin, ymax) cropXY <- crop(name, areaXY) plot(cropXY,lwd=4,main="TGSI", xlab="easting", ylab="northing") hist(cropXY,main="TGSI" , xlab="TGSI",col="red", ylab="Frequency of Pixels") }