Select to view content in your preferred language

NDVI calculation in ArcGIS 10 - Image Analysis Window

20060
6
08-05-2010 02:25 PM
ChackoJacob
New Contributor
Hello,

I just installed ArcGIS 10 and looked at the NDVI function in Image Analysis Window. The NDVI created is in the scale of 0-255. Is there any way that I can get float NDVI values within the IAW ? I assume that I have to do something in the Function tab under properties of the NDVI image. I am using Landsat False Infra Red image create an NDVI image.

I know how to get float values using Raster Calculator. I am trying to do this in IAW.

Thanks.

Chacko
0 Kudos
6 Replies
RobertBerger
Occasional Contributor
Greetings,

I don't think there is a very easy way to get the float values directly from the Image Analysis Window right now. It is possible with a few more clicks:
Load the individual bands 3 (red) and 4 (nir) into ArcMap, with band 4 on top of band 3. Calculate the difference between them (button on Image Analysis Window) twice. The first (bottom in TOC) layer, open the layer properties > functions tab and change the math to plus. Then do another difference between the two difference layers (your building the NDVI formula in essence through the functions). This last difference (with nir - red and nir + red as input), change the math to divide and the output to 32 bit float.
Voila, you have the NDVI in float.

Robert
0 Kudos
MelanieHarlow
Esri Contributor
0 Kudos
JeffMilliken
Deactivated User
I might also add, unless I am mistaken, that when using the NDVI function to output values from 0 - 255, the algorithm appears to be 'reversing' the values (ie. 0 = high NDVI, and 255 = low NDVI), which would be in error.
0 Kudos
RichardDaniels
Frequent Contributor
To have more control on how the NDVI values are calculated, and to use the equation in modelbuilder you can use the Raster Calculator tool.

Equation would be as follows for a simple NDVI.

     ((Float("%Near IR Band%") - Float("%Red Band%")) / (Float("%Near IR Band%") + Float("%Red Band%"))

This would return a FLOAT data set with values between -1.0 and 1.0 and assumes the input bands are 8 bit unsigned.

To covert the values back an 8 bit unsigned raster suitalbe for use with other imagery when doing classification (e.g., maximum likelehood) the above would become:

     Int(((Float("%Near IR Band%") - Float("%Red Band%")) / (Float("%Near IR Band%") + (Float("%Red Band%")))  + 1 ) * 127.5 )

This would return a INT data set with values between 0 and 255.

Enjoy,
0 Kudos
myname
by
Deactivated User

you should use arcgis 10.2, it's easy to calculate NDVI in analysis window, steps to calculate NDVI in arcgis here calculate NDVI in ArcGIS - YouTube 

0 Kudos