37

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?

2
  • If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context.
    – Chris W
    Commented May 23, 2015 at 20:05
  • Thank you so much. It worked for me. Since long, i was trying to do zonal statistics. It worked now. Thank You once again
    – DEVANG
    Commented Jun 18, 2017 at 8:26

5 Answers 5

34

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

1
  • 4
    Very good advice, avoiding the Spatial Analyst extension. Just, it is really slow for large rasters.
    – nadya
    Commented Nov 7, 2012 at 17:43
28

This is the task for the Zonal Statistics tool. Go to Spatial Analyst Tools > Zonal > Zonal Statistics and select the Mean statistic. The raster should have an attribute table for this.

5
  • 2
    Note: This requires the Spatial Analyst extension. Commented Nov 7, 2012 at 15:51
  • 4
    (+1) Another note: The processing recommended here by nadya will only take seconds (or fractions thereof), not minutes. The principle involved is that when you're analyzing raster data, using raster procedures (which of course requires raster software like SA) tends to be far more efficient (in its use of your time, the computer's time, and the computer's RAM) than converting rasters to vector format and using vector procedures.
    – whuber
    Commented Nov 7, 2012 at 16:44
  • I Hearty Thank you "NADYA" It works but the elevation results changes from 10m to 100m if i compare this with my separate cliped raster result (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.)
    – Mahesh
    Commented Nov 8, 2012 at 6:34
  • 1
    I was doing this same task but the output zonal summary table does not contain all the features from the zones shapefile. How is this possible? The raster covers every single zone feature and I also selected ignore null values while running the tool.
    – Salman
    Commented Jul 4, 2015 at 13:41
  • 4
    Hmm, when I do this using the Zonal Statistics tool, it creates a new raster, and doesn't append the maximum (or average, but I'm looking for a maximum values) to the vector layer layer's attribute table. I have had to use the Zonal Statistics as Table tool and then perform a spatial join between the resulting table and the original vector layer.
    – traggatmot
    Commented Dec 18, 2015 at 15:37
5
  1. Calculate Zonal Statistics using polygon that data will later be appended to and Raster layer. Use Mean, Max, Min as appropriate for your use case.
  2. Create polygon centroid layer using Feature to Point (Data Management)
  3. Append raster value to centroid layer using Extract Multi Values to Points (Spatial Analyst).
  4. Join centroid layer with raster value to original polygon layer.
1
  • 3
    Adding a little context to your answer is helpful! Please take the community tour and see our help page! gis.stackexchange.com/help
    – MaryBeth
    Commented Feb 25, 2016 at 16:56
3

You can use Geospatial Modelling Environment tools (independent tools) which used to be Hawths Tools. From there you can extract raster values of the extent of polygons with whichever statistics you want. You can also extract thematic variables with its fraction. the result will be automatically added to your shapefile. This tool works together with ArcGIS and R.

Specifically use the isectpolyrst tool to put underlying raster information into polygon shapefiles. It has no problems with overlapping polygons either.

0

you can use these steps: 1.Vector to raster (your polygons) 2. Use sample spatial analyses to extract raster value as a table file (your raster file and the output frome "step 1". 3. Use "Join Filed" to add table result to polygon Attribute Good luck

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.