[GIS] Extract Raster Value into Polygon Attribute

arcgis-desktoprastervector

I have Raster Data for a State which has Elevation Data in its pixels. I also have Vector layer which has the 300 divisions of State. what I need is, I want to get the average elevation value of particular division from the raster data using ArcGIS.

I tried extract by mask in ArcGIS to extract individual polygon to clip the raster into 300 raster then from individual raster i have collected average elevation but it has taken days together to complete the work. Is there any other easy way to get it?

Best Answer

There are several ways to do this. If you don't have Spatial Analyst you can do it anyway as follows:

  • First, convert the raster to Points using the Raster to Point tool. This gives you a grid of points and is relatively quick - 16million points were created in about 2 minutes (be sure to turn off rendering so they aren't displayed though ;-) ).

  • Now, use the Analysis Tools -> Overlay - Spatial Join tool. Target feature is your 300 polygon layer, join is the point layer. Leave as one-to-one. Create a "Field Map of Join Features" - being sure to set the merge rule as "mean", "Median", or "mode" (or all of them I guess). Resultant single polygon layer should have all 300 polygon areas, each of which has attributes with the requested types of average calculated in them.

That should get you the numbers you need with minimal effort (though waiting quite a bit of processing - Spatial Joins are slow).