# How to compute NDSI in ArcGIS for Desktop?

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).

• I would have posted this as a comment but I don't have enough reputation. Based on the equation you provided, the denominator should always be larger than the numerator, unless b6 is negative. Do you have negative values in band 6? – BruceDoh Jun 18 '15 at 15:38
• Yes, band 6 has negative values, scaled from -1000 to 8953 for the surface reflectance grid. – user3052817 Jun 18 '15 at 15:46
• If you limit your calculations only where all input values in the range 0 - 10000, you should get realistic results. – whuber Jun 18 '15 at 19:22