I have been trying to calculate the NDVI for a scene using Sentinel 2 bands 4(red) & 8(NIR).
I first did it in ArcMap and then QGIS.
In both softwares, I used the raster calculator and included the basic NDVI formula = (NIR-Red)/(NIR+Red).
ArcMap gave me a range of 0-9221 (this varies with the stretch applied) while QGIS gave me more plausible values from 0.0258-0.5255.
I have read briefly that Sentinel 2 is TOA reflectance and has a scaling factor of 10000, which apparently can be found in the xml file that gets downloaded with the images. I never found this scaling factor mentioned in the xml file I downloaded.
Why is there this difference? How is the calculation being done on QGIS?
Best Answer
Arcmap is notorious for retaining the raster type and not treating values as decimals/float when calculated from 16bit integer rasters.
In order to force Arcmap to treat raster calculation result as a float, you should multiply one of the arguments by 1.0, or simply append a '.0' to a any constant or real number in the formula.
In your case
(NIR-Red)*1.0/(NIR+Red)
will suffice.