[GIS] How to compute NDSI in ArcGIS for Desktop

arcgis-desktoplandsat 8rasterraster-calculatorremote sensing

How do I compute a Normalized Difference Snow Index (NDSI) in ArcGIS's Raster Calculator? I have a Landsat 8 scene (hdf4 format) that contains derived surface reflectance band-by-band. Each band is a grid 16-bit signed format.

In Raster Calculator, I tried to compute NDSI using the following code: (float(b3)-float(b6))/(float(b3)+float(b6)), where b3 is Band 3 (Green) and b6 is Band 6 (SWIR). This results in an output of 32-bit and floating point pixel type. However, the resulting NDSI is not scaled from -1 to 1. Instead, the values range from, in this case, -367 to 251. The original surface reflectance for each band ranges from -1000 to 12018.

Does this have to do with rescaling? If I rescale the NDSI output (dividing the output results by 1000), the values still seem low for an ice and snow-covered surface (now, the output values are -0.367 to 0.251).

Best Answer

Reflectance is a values that lies between 0 and 1 because it is the fraction of the light the is reflected to the sensor. Negative values are therefore not possible and could be due to artefacts (e.g. some atmospheric corrections). You should always make sure that your data is well calibrated before using those indices. As mentioned by @whuber, in your case valid values should be truncated in 0-10000 which is the interval used to store 0-1 values in integers.

Related Question