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

  • 1
    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, 2015 at 15:38
  • Yes, band 6 has negative values, scaled from -1000 to 8953 for the surface reflectance grid. Jun 18, 2015 at 15:46
  • 1
    If you limit your calculations only where all input values in the range 0 - 10000, you should get realistic results.
    – whuber
    Jun 18, 2015 at 19:22

2 Answers 2


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.


It is all game of signed and unsigned types. Select the output layer stack image as unsigned 16 bit. You will get your answer. I faced the same problem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.