I am trying to calculate the Enhanced Vegetation Index using Landsat surface reflectance data. The formula for EVI using standard constants is:
EVI = 2.5 * ((NIR – Red) / (NIR + 6 * Red – 7.5 * Blue + 1))
Landsat Collection 1, Level 2 surface reflectance data is scaled from 0-10,000 upon delivery, but it is often rescaled from 0-1 for analysis. A simple analysis reveals that EVI is sensitive to the scale factor of the input data, so it is important to scale the input data correctly when calculating EVI.
A simple comparison in R:
#Input data scaled from 0-10,000
library(raster)
landsat_20070621 <- brick("./landsat_20070621.tif")
evi_20070621 <- 2.5 * ((landsat_20070621[[4]] - landsat_20070621[[3]]) / (landsat_20070621[[4]] + 6 * landsat_20070621[[3]] - 7.5 * landsat_20070621[[1]] + 1))
summary(values(evi_20070621))
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-327.5000 0.5154 0.8160 0.8641 1.1570 1240.0000 385
#Input data scaled from 0-1
landsat_rescale <- landsat_20070621/10000
evi_rescale <- 2.5 * ((landsat_rescale[[4]] - landsat_rescale[[3]]) / (landsat_rescale[[4]] + 6 * landsat_rescale[[3]] - 7.5 * landsat_rescale[[1]] + 1))
summary(values(evi_rescale))
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-0.1074 0.1414 0.1926 0.2047 0.2526 0.9126 385
Many sources suggest that EVI values are inherently constrained between 0-1, although this is not necessarily the case because it does not have the same normalization structure as a normalized difference index (e.g., NDVI). Nonetheless, Huete et al. (2002) report values in the 0-1 range.
Comparing the values reported in literature to the values above, it seems like maybe an input scale factor of 0-1 is correct, although I cannot find this in writing anywhere. Is there a definitive source indicating the appropriate input scale factor for calculating EVI?