vegindex | R Documentation |
Function calculates a variety of hyperspectral vegetation indices
vegindex(x, index, returnHCR = "auto", L = 0.5, weighted = TRUE, ...)
x |
Object of class |
index |
Character string. Name or definition of index or vector with names/definitions of indices to calculate. See Details section for further information. |
returnHCR |
If TRUE, the result will be of class HyperSpecRaster, otherwise it is a data frame. If "auto", the class is automatically determined by passed Speclib. |
L |
Factor for SAVI index. Unused for other indices. |
weighted |
Logical indicating if reflectance values should be interpolated to fit wavelength position. If |
... |
Further arguments passed to derivative functions. Only used for indices requiring derivations. |
Index must be a charater vector containing pre-defined indices (selected by their name) or self defined indices or any combination of pre- and self-defined indices.
The following indices are available:
Name | Formula | Reference* |
Boochs | D_{703} | Boochs et al. (1990) |
Boochs2 | D_{720} | Boochs et al. (1990) |
CAI | 0.5*(R_{2000}+R_{2200})-R_{2100} | Nagler et al. (2003) |
CARI | a = (R_{700}-R_{550}) / 150 | Kim et al. (1994) |
b = R_{550}-(a*550) | ||
R_{700}*abs(a*670+R_{670}+b)/R_{670}* | ||
(a^2+1)^{0.5} | ||
Carter | R_{695}/R_{420} | Carter (1994) |
Carter2 | R_{695}/R_{760} | Carter (1994) |
Carter3 | R_{605}/R_{760} | Carter (1994) |
Carter4 | R_{710}/R_{760} | Carter (1994) |
Carter5 | R_{695}/R_{670} | Carter (1994) |
Carter6 | R_{550} | Carter (1994) |
CI | R_{675}*R_{690}/R_{683}^2 | Zarco-Tejada et al. |
(2003) | ||
CI2 | R_{760}/R_{700}-1 | Gitelson et al. (2003) |
ClAInt | \int_{600 nm}^{735 nm} R | Oppelt and Mauser |
(2004) | ||
CRI1 | 1/R_{515}-1/R_{550} | Gitelson et al. (2003) |
CRI2 | 1/R_{515}-1/R_{770} | Gitelson et al. (2003) |
CRI3 | 1/R_{515}-1/R_{550}*R_{770} | Gitelson et al. (2003) |
CRI4 | 1/R_{515}-1/R_{700}*R_{770} | Gitelson et al. (2003) |
D1 | D_{730}/D_{706} | Zarco-Tejada et al. |
(2003) | ||
D2 | D_{705}/D_{722} | Zarco-Tejada et al. |
(2003) | ||
Datt | (R_{850}-R_{710})/(R_{850}-R_{680}) | Datt (1999b) |
Datt2 | R_{850}/R_{710} | Datt (1999b) |
Datt3 | D_{754}/D_{704} | Datt (1999b) |
Datt4 | R_{672}/(R_{550}*R_{708}) | Datt (1998) |
Datt5 | R_{672}/R_{550} | Datt (1998) |
Datt6 | (R_{860})/(R_{550}*R_{708}) | Datt (1998) |
Datt7 | (R_{860} - R_{2218})/(R_{860} - R_{1928}) | Datt (1999a) |
Datt8 | (R_{860} - R_{1788})/(R_{860} - R_{1928}) | Datt (1999a) |
DD | (R_{749}-R_{720})-(R_{701}-R_{672}) | le Maire et al. (2004) |
DDn | 2*(R_{710}-R_{660}-R_{760}) | le Maire et al. (2008) |
DPI | (D_{688}*D_{710})/D_{697}^2 | Zarco-Tejada et al. |
(2003) | ||
DWSI1 | R_{800}/R_{1660} | Apan et al. (2004) |
DWSI2 | R_{1660}/R_{550} | Apan et al. (2004) |
DWSI3 | R_{1660}/R_{680} | Apan et al. (2004) |
DWSI4 | R_{550}/R_{680} | Apan et al. (2004) |
DWSI5 | (R_{800} + R_{550})/(R_{1660} + R_{680}) | Apan et al. (2004) |
EGFN | (\max(D_{650:750})-\max(D_{500:550}))/ | Penuelas et al. |
(\max(D_{650:750})+\max(D_{500:550})) | (1994) | |
EGFR | \max(D_{650:750})/\max(D_{500:550}) | Penuelas et al. (1994) |
EVI | 2.5*((R_{800}-R_{670})/ | Huete et al. (1997) |
(R_{800}-(6*R_{670})-(7.5*R_{475})+1)) | ||
GDVI | (R_{800}^n-R_{680}^n) / (R_{800}^n+R_{680}^n)** | Wu (2014) |
GI | R_{554}/R_{677} | Smith et al. (1995) |
Gitelson | 1/R_{700} | Gitelson et al. (1999) |
Gitelson2 | (R_{750}-R_{800}/R_{695}-R_{740})-1 | Gitelson et al. (2003) |
GMI1 | R_{750}/R_{550} | Gitelson et al. (2003) |
GMI2 | R_{750}/R_{700} | Gitelson et al. (2003) |
Green NDVI | (R_{800}-R_{550})/(R_{800}+R_{550}) | Gitelson et al. (1996) |
LWVI_1 | (R_{1094}-R_{983}) / (R_{1094}+R_{983}) | Galvao et al. (2005) |
LWVI_2 | (R_{1094}-R_{1205}) / (R_{1094}+R_{1205}) | Galvao et al. (2005) |
Maccioni | (R_{780}-R_{710})/(R_{780}-R_{680}) | Maccioni et al. (2001) |
MCARI | ((R_{700}-R_{670})-0.2*(R_{700}-R_{550}))* | Daughtry et al. (2000) |
(R_{700}/R_{670}) | ||
MCARI/OSAVI | Daughtry et al. (2000) | |
MCARI2 | ((R_{750}-R_{705})-0.2*(R_{750}-R_{550}))* | Wu et al. (2008) |
(R_{750}/R_{705}) | ||
MCARI2/OSAVI2 | Wu et al. (2008) | |
mND705 | (R_{750}-R_{705})/(R_{750}+R_{705}-2*R_{445}) | Sims and Gamon (2002) |
mNDVI | (R_{800}-R_{680})/(R_{800}+R_{680}-2*R_{445}) | Sims and Gamon (2002) |
MPRI | (R_{515}-R_{530})/(R_{515}+R_{530}) | Hernandez-Clemente et al. |
(2011) | ||
mREIP | Red-edge inflection point using Gaussain fit | Miller et al. (1990) |
MSAVI | 0.5*(2*R_{800}+1- | Qi et al. (1994) |
((2*R_{800}+1)^2-8*(R_{800}-R_{670}))^{0.5}) | ||
MSI | R_{1600}/ R_{817} | Hunt and Rock (1989) |
mSR | (R_{800}-R_{445})/(R_{680}-R_{445}) | Sims and Gamon (2002) |
mSR2 | (R_{750}/R_{705})-1/(R_{750}/R_{705}+1)^{0.5} | Chen (1996) |
mSR705 | (R_{750}-R_{445})/(R_{705}-R_{445}) | Sims and Gamon (2002) |
MTCI | (R_{754}-R_{709})/(R_{709}-R_{681}) | Dash and Curran (2004) |
MTVI | 1.2*(1.2*(R_{800}-R_{550})- | Haboudane et al. |
2.5* (R_{670}-R_{550})) | (2004) | |
NDLI | (log(1/R_{1754}) - log(1/R_{1680}))/ | Serrano et al. (2002) |
(log(1/R_{1754}) + log(1/R_{1680})) | ||
NDNI | (log(1/R_{1510}) - log(1/R_{1680}))/ | Serrano et al. (2002) |
(log(1/R_{1510}) + log(1/R_{1680})) | ||
NDVI | (R_{800}-R_{680}) / (R_{800}+R_{680}) | Tucker (1979) |
NDVI2 | (R_{750}-R_{705})/(R_{750}+R_{705}) | Gitelson and Merzlyak |
(1994) | ||
NDVI3 | (R_{682}-R_{553})/(R_{682}+R_{553}) | Gandia et al. (2004) |
NDWI | (R_{860}-R_{1240}) / (R_{860}+R_{1240}) | Gao (1996) |
NPCI | (R_{680}-R_{430})/(R_{680}+R_{430}) | Penuelas et al. (1994) |
OSAVI | (1+0.16)*(R_{800}-R_{670})/ | Rondeaux et al. |
(R_{800}+R_{670}+0.16) | (1996) | |
OSAVI2 | (1+0.16)*(R_{750}-R_{705})/ | Wu et al. (2008) |
(R_{750}+R_{705}+0.16) | ||
PARS | R_{746}/R_{513} | Chappelle et al. (1992) |
PRI | (R_{531}-R_{570})/(R_{531}+R_{570}) | Gamon et al. (1992) |
PRI_norm | PRI*(-1)/(RDVI*R_{700}/R_{670}) | Zarco-Tejada et al. |
(2013) | ||
PRI*CI2 | PRI*CI2 | Garrity et al. (2011) |
PSRI | (R_{678}-R_{500}/R_{750} | Merzlyak et al. (1999) |
PSSR | R_{800}/R_{635} | Blackburn (1998) |
PSND | (R_{800}-R_{470})/(R_{800}-R_{470}) | Blackburn (1998) |
PWI | R_{900}/R_{970} | Penuelas et al. (1997) |
RDVI | (R_{800}-R_{670})/√{R_{800}+R_{670}} | Roujean and Breon (1995) |
REP_LE | Red-edge position through linear extrapolation. | Cho and Skidmore (2006) |
REP_Li | R_{re}=(R_{670}+R_{780})/2 | Guyot and Baret (1988) |
700 + 40*((R_{re} -R_{700})/(R_{740}-R_{700})) | ||
SAVI | (1+L)*(R_{800}-R_{670})/(R_{800}+R_{670}+L) | Huete (1988) |
SIPI | (R_{800}-R_{445})/(R_{800}-R_{680}) | Penuelas et al. (1995), |
Penuelas et al. (1995a) | ||
SPVI | 0.4*3.7*(R_{800}-R_{670})-1.2* | Vincini et al. (2006) |
((R_{530}-R_{670})^2)^{0.5} | ||
SR | R_{800}/R_{680} | Jordan (1969) |
SR1 | R_{750}/R_{700} | Gitelson and Merzlyak |
(1997) | ||
SR2 | R_{752}/R_{690} | Gitelson and Merzlyak |
(1997) | ||
SR3 | R_{750}/R_{550} | Gitelson and Merzlyak |
(1997) | ||
SR4 | R_{700}/R_{670} | McMurtrey et al. (1994) |
SR5 | R_{675}/R_{700} | Chappelle et al. (1992) |
SR6 | R_{750}/R_{710} | Zarco-Tejada and Miller |
(1999) | ||
SR7 | R_{440}/R_{690} | Lichtenthaler et al. (1996) |
SR8 | R_{515}/R_{550} | Hernandez-Clemente et al. |
(2012) | ||
SRPI | R_{430}/R_{680} | Penuelas et al. (1995) |
SRWI | R_{850}/R_{1240} | Zarco-Tejada et al. |
(2003) | ||
Sum_Dr1 | ∑_{i=626}^{795} D1_i | Elvidge and Chen (1995) |
Sum_Dr2 | ∑_{i=680}^{780} D1_i | Filella and Penuelas |
(1994) | ||
SWIR FI | R_{2133}^2/(R_{2225} \cdot R_{2209}^3 | Levin et al. (2007) |
SWIR LI | 3.87 \cdot (R_{2210} - R_{2090}) - | Lobell et al. (2001) |
27.51 \cdot (R_{2280} - R_{2090}) - 0.2 | ||
SWIR SI | -41.59 \cdot (R_{2210} - R_{2090}) + | Lobell et al. (2001) |
1.24 \cdot (R_{2280} - R_{2090}) + 0.64 | ||
SWIR VI | 37.72 \cdot (R_{2210} - R_{2090}) + | Lobell et al. (2001) |
26.27 \cdot (R_{2280} - R_{2090}) + 0.57 | ||
TCARI | 3*((R_{700}-R_{670})-0.2*R_{700}-R_{550})* | Haboudane et al. (2002) |
(R_{700}/R_{670})) | ||
TCARI/OSAVI | TCARI/OSAVI | Haboudane et al. (2002) |
TCARI2 | 3*((R_{750}-R_{705})-0.2*(R_{750}-R_{550})* | Wu et al. (2008) |
(R_{750}/R_{705})) | ||
TCARI2/OSAVI2 | TCARI2/OSAVI2 | Wu et al. (2008) |
TGI | -0.5 (190 (R_{670} - R_{550} ) - 120 (R_{670} - R_{480} )) | Hunt et al. (2013) |
TVI | 0.5*(120*(R_{750}-R_{550})- | Broge and Leblanc |
200*(R_{670}-R_{550})) | (2000) | |
Vogelmann | R_{740}/R_{720} | Vogelmann et al. (1993) |
Vogelmann2 | (R_{734}-R_{747})/(R_{715}+R_{726}) | Vogelmann et al. (1993) |
Vogelmann3 | D_{715}/D_{705} | Vogelmann et al. (1993) |
Vogelmann4 | (R_{734}-R_{747})/(R_{715}+R_{720}) | Vogelmann et al. (1993) |
* For references please type: hsdardocs("References.pdf")
.
** For GDVI n must be defined appending an underscore and the intended exponent to the index name. E.g., for n = 2, the correct index name would be "GDVI_2". Note that GDVI-indices with n = 2, 3, 4 will be derived if all available indices are calculated.
Self-defined indices may be passed using the following syntax:
Rxxx: Reflectance at wavelength 'xxx'. Note that R must be upper case.
Dxxx: First derivation of reflectance values at wavelength 'xxx'. Note that D must be upper case.
Sxxx: Second derivation of reflectance values at wavelength 'xxx'. Note that S must be upper case.
Using this syntax, complex indices can be easily defined. Note that the entire definition of the index must be passed as one character string. Consequently, the NDVI would be written as
"(R800-R680)/(R800+R680)".
A vector containing indices values. If index is a vector with length > 1, a data frame with ncol = length(index) and nrow = number of spectra in x is returned.
If function is called without any arguments, return value will be a vector containing all available indices in alphabetical order.
Hanna Meyer and Lukas Lehnert
See hsdardocs("References.pdf")
soilindex
, derivative.speclib
, rededge
, get_reflectance
## Example calculating NDVI data(spectral_data) ndvi <- vegindex(spectral_data, "NDVI") ## Example calculating all available indices ## Get available indices avl <- vegindex() vi <- vegindex(spectral_data, avl) ## Self-defined indices ## NDVI vi <- vegindex(spectral_data, "(R800-R680)/(R800+R680)") ## NDNI vi <- vegindex(spectral_data, "(log(1/R1510) - log(1/R1680))/(log(1/R1510) + log(1/R1680))") ## D1 vi <- vegindex(spectral_data, "D730/D706") ## Example using second derivative spectra vi <- vegindex(spectral_data, "(S930-S710)/(S930+S710)")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.