Calculating EVI from Sentinel-2 Sen2Cor output product


I would just like to know how to calculate EVI from Sentinel-2 atmospherically corrected product. I have been trying to calculate using the following formula:

Sentinel - EVI2 (Enhanced Vegetation Index 2)
Value = 2.5 * (B08 - B04) / (B08 + 2.4 * B04 + 1)

However, the values do not seem to be in the conventional range (1 to -1). Should apply a scale factor even though the output product is in BOA?

Kind Regards

where do the coefficients 2.5, 2.4 and 1 come from?

I found the formula on the Sentinel-2 Playground (

Should I use to regular EVI formula which includes the blue band?

I’m not very familiar with the EVI but the coefficients clearly influence the result. So there should be some empirical table where you can retrieve the constants according to the conditions in your study area.
Just using constants from another example may use the wrong assumtptions for your case. For example, the original index was based on Modis which has different wavelengths and bandwidths.

I was looking for S2-specific EVI coefficients and found this thread.

EVI was developed for MODIS, so I would expect that the coefficients will vary for diverse sensors. However, SentinelHub introduces Sentinel-2 based EVI using exactly the same coefficients as were identified for MODIS.

I am not convinced about this ‘quick and dirty’ approach… Any thoughts?!

There is this nice index database.
For EVI it lists the same equation (EVI2-2). Only that they missed a ‘-’ in the equation.
The coefficients are not sensor depended. The same equation is listed for many sensors. Only the appropriate bands are selected.


Thank you marpet for the link!
This data base is amazing!

Just a short Post Scriptum from my side:
I find the EVI formulas presented on the IDB website inconsistent.
First of all, for S2 bands 9, 5 and 1 are suggested for NIR, red and blue bands, respectively. This is at least bizarre selection, especially when Bands 1 and 9 are not a standard sen2cor output and are located outside atmospheric windows. Not to mention that band 5 is not red but red edge band.
A quick comparison with Landsat-specific EVI formulation shows differences in bands selection, which translates on value differences. So i would take the proposed formula with a pinch of salt.

After some consideration I think that the ‘optimal’ EVI formula for S2 is:
EVI = G*(B8A-B04)/(B8A + C1B04 - C2B02 +1)
where: G = 2.5, C1 = 6, C2 = 7.5 and L = 1.

B8A is selected here over B08 due to its better fit to the MODIS band range (using which EVI was developed and tested).


Hi Shaupt,

To come back to your first question on the scaling factor: did you divide the BOA numerical counts by the scaling factor 10000, to obtain reflectances scaled between 0 and 1, before computing the EVI ? As there is a “+1” in the denominator you cannot use the numerical counts directly. You probably already did that, but just in case…


@marpet I noticed something with the formulas in the index database.
In the EVI formula:

the NIR and RED bands are taken to be band 9 and 5, respectively, while in the NDVI formula,, NIR and RED are taken to be band 8 and 4 respectively. Which formula should I have to pay attention to? the general formula or the specific formula.
Because when I calculate using the general formula some of my VIs falls out of range (-1 to 1).

I would stick to 8 and 4. B5 is not in the red spectrum anymore. For NIR you have some freedom. Could be B8 or B9.
Maybe this ( gives some insights.
Could be a mistake in the database. You can report this via the Feedback form or via mail.
Values higher 1 can be normal:

@marpet Thank you for your suggestion.

What will be the expression for Landsat-8?

You can find the equation in this list (#16):
IDB - Sensor: Landsat 8 (