I have points overlaid on an elevation raster as shown below;


The aim is to get mean value of each point computed from 3x3 window size covering its immediate neighbouring pixels.

It will be highly appreciable if I can append values from multiple raster.

enter image description here


Do you use model builder? It takes a few steps but you could buffer your points and rasterize them and use this raster as input as zones for zonal statistics as table. Then this table can be joined to the points based on the ObjectID.

As your points are not in the centre of the raster an extra step is needed to create a point in the middle of the cell to make sure the buffer size extents to the surrounding cells. This can be by converting the points to raster and back to vector again(might be an easier way for this). See example of my model.

enter image description here

Make sure that when you convert the feature to raster you set the original raster to snap raster in the environment settings. You could also do this step by step in Arcmap of course, in that case the snap raster can be set in a tool under environment setting -> Processing Extent.

Hope this works.

  • @jbchurchill and Jarren I am grateful for your time and anticipation. Both derive desired result. However, I had a time to explore less time consuming means of getting things timely. I simply used 'filter' tool available in ArcGIS. It moves 3x3 window over each pixel and assign mean value to the central pixel computed from neighbouring window size. desktop.arcgis.com/en/arcmap/10.3/tools/spatial-analyst-tool‌​‌​box/… . The next step is to simply extract value of pixels underlying these points, which can be done using 'extract values to points' tool. – Ben Apr 15 '17 at 12:48
  • Alternatively, one can use 'Focal Statistics' tool to get same results. So, simply filter the raster------> 'extract values to points. or 'extract multi alues to points' tool for getting values from multiple raster. – Ben Apr 15 '17 at 12:48

Why not use the "extract values to points" tool (Spatial Analyst) as step one. That will give you the elevation value on each point. Then use a 3x3 fishnet and perform a spatial join with the point layer as the source layer and the fishnet as the target layer. As you can see from the screenshot below you have the ability to use create a mean value for numeric values from the join layer (the point layer with the elevations) as output. The result will be the 3x3 fishnet layer with mean elevations from your point layer.

enter image description here


If you have the spatial analyst extension, you could use the zonal statistics tool

Set the "Input Raster or feature zone data" to be your polygons (what you have called windows).

Set the "Input Value Raster" to be your elevation raster.

You can then select "Mean" from the "Statistics type" dropdown.

  • I am using points. The kernel size of windows is 3x3. – Ben Apr 13 '17 at 10:52
  • I've derived the results and added methodology above. – Ben Apr 15 '17 at 12:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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