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[] - landsat_20070621[]) / (landsat_20070621[] + 6 * landsat_20070621[] - 7.5 * landsat_20070621[] + 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[] - landsat_rescale[]) / (landsat_rescale[] + 6 * landsat_rescale[] - 7.5 * landsat_rescale[] + 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?