[GIS] How to calculate average NDVI values for buffers in ArcGIS

arcgis-10.2arcgis-desktopbufferndvispatial-analyst

I would need to calculate an average NDVI value for each buffer among everal hundred buffer-areas. The buffer areas are built around observation points. I have all buffer areas in one .shp file and NDVI values in a 32 Bit floating point .tif file. I have also the Band 3 and Band 4 values in separate .tif files (if that helps). I am using ArcMap 10.2 and have e.g. the Spatial Analyst Tools package. What should I do to get the average NDVI values for each buffer?

Best Answer

The easy way is to use Zonal statistics as a table to extract the mean value for all buffers, then join the table to your shapefile. However, there might be a problem if your buffers overlap : in this case, it gets more difficult because you need to iterate on each polygon (e.g. in model builder).

Alternatively, you can use focal statistics with a circular neighborhood of the size of your buffer to create a mean NDVI raster, then extract the value (extract multiple value to point) at the location of each observation point. This should give you the same result on average, with small differences due to the rasterization.

When you perform the analysis, make sure that your environment settings are set to the same pixel size as your image and that you snap your image (Zonal stat will actually rasterize your shapefile internally)

Related Question