# Calculating 2-bands EVI from Sentinel-2

I have been trying to calculate Enhanced Vegetation Index (EVI) using Sentinel-2 Level 1C imagery. I have atmospherically corrected the imagery (so the imagery is in BOA) but I can't seem to derive EVI in ArcGIS.

I have been calculating EVI using Raster Calculator using the following formula (2-band EVI):

(2.5 * ("Band 8" - "Band 4")) / ("Band 8" + (2.4 * "Band 4") + 1)

The range of the values are between 2.4 and -1.8 and the theoretical range is between 1 and -1.

Is there anyway that I can correct this?

• @PROBERT no I haven't. Is it better to calculate it in ENVI? Jan 31, 2017 at 9:14
• I don't know if your version is up to date...however I found this and not sure if your equation is right ..but here it is the link to there..semiautomaticclassificationmanual-v5.readthedocs.io/en/latest/… . It is under 3.1.13. Spectral Indices. Jan 31, 2017 at 15:32
• @PROBERT The question seems to be strictly about the `EVI` , with no reference to the usage of the application `ENVI`. Feb 1, 2017 at 7:59
• @Kersten. I was trying to help him/her to check if ENVI has the latest version and they might have it. I used to use ENVI and they have all the list of equation to choose. So, if they updated that EVI , they might have but I don't know. I might be wrong. So, I check it out and found the link to share is what I am trying to ensure if his equation is correct. That is all. Feb 1, 2017 at 16:20

Sentinel 2 L1C reflectances are multiplied by 10000. Therefore you should adapt your equation in order to take the into account (or you can divide all values by 10000, but I wouldn't do this). On the other hand, it is worth noting that, while most values will ly between -1 and 1, EVI could mathematically be out of this range.

``````(2.5 * float("Band 8" - "Band 4")) / ("Band 8" + (2.4 * "Band 4") + 10000)
``````

As a remark, I don't see the reason to use "2 bands" EVI when you have a multispectral sensor with NIR, red and blue bands available at the highest spatial resolution (in this case of S2, 10 m). According to Huete et al 1997, the original EVI is 2.5 * ((NIR − R)/(1 + NIR + 6R − 7.5B)). The B(lue) band correspond to band 2 of Sentinel-2 MSI, NIR to Band 8 and R(ed) to band 4. As far as I know, no empirical study tried to adjust these parameters for the specific spectral response of the Sentinel-2 MSI bands, but they re "useable" like this.

• @radouxjju You should modify your first expression because only the bands can be scaled; not the factor 1 (correctly expressed in your second expression attributed to Huete et al.). Feb 20, 2021 at 4:03

Late to reply but I have blog post regarding this question and have described in details about EVI calculation in GEE. https://kaflekrishna.com.np/blog-detail/enhanced-vegetation-index-evi-sentinel-2-image-google-earth-engine/

In short, I have used function to compute EVI as:

``````def getEVI(image):
# Compute the EVI using an expression.
EVI = image.expression(
'2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))', {
'NIR': image.select('B8').divide(10000),
'RED': image.select('B4').divide(10000),
'BLUE': image.select('B2').divide(10000)
}).rename("EVI")