[GIS] Calculating EVI from Sentinel 2 imagery gives difference in results between ArcMap & QGIS

arcgis-desktopeviqgisremote sensingsentinel-2

Though EVI coefficients have not been developed for Sentinel 2 imagery, I am using the same coefficients used for MODIS to calculate EVI for Sentinel imagery.

I know that Sentinel 2 imagery is TOA reflectance and has a scaling factor of 10000. Hence, can I use the following formula to calculate EVI

(2.5* (NIR/10000-red/10000))/(NIR/10000+(6*red/10000)- (7.5*blue/10000)+1)

I did the above calculation in Arcmap and QGIS but got completely different results-
QGIS gave me a plausible range of -0.048 to 0.3915,while ArcMap included a range of -31.68 to 45.17.
The mean and std in ArcMap are 0.1718 and 0.0887 leading me to believe that these extreme values are a few pixels only. How do I clip these extra pixels of in ArcMap?

Best Answer

Please stick to one question per post in the future. It makes answering significantly easier.

Question 1 - How to calculate EVI:
The formula that you are using is "correct", in the sense that you are using the constants calculated for MODIS.

Question 2 - Why does QGis and ArcGIS provide different results:
Minuscule differences in results most likely originate from different resampling methods used when combining the spectral bands. It is a difficult discover the reason for the differences, without having the data available.

Question 3 - How to remove extreme values from a raster calculation:
Removing those values is best done by adjusting your raster calculation. One approach would be to simply add a parenthesis around the entire equation and multiply it by a pair of 'greater than' and 'less than' calculations.
Example:

(EVI) * (EVI > -1) * (EVI < 1) + (EVI > 1)*1 + (EVI < -1)*(-1)

The above outlined calculation would set all the values below -1 and above 1 to -1 and 1, respectively.

Question 4 - When to apply the scale factors:
The scale factors should be applied when you are using the bands. If you applied them afterwards, to the EVI, then the effect of the constants in the equation would be changed, and your calculations would become incorrect. As such, you use is currently the right one.

Related Question