I have a reclassified raster dataset (10 classes) and I want to find out the area of each class contained within multiple (hundreds-to-thousands) polygons.

I have all the polygons in the same shapefile and have used 'Extract by Mask' which has given me the raster for all the polygons, but now I want to do this for each individual polygon. I have been selecting each polygon individually and running 'Extract by Mask' which is working but will obviously take forever with 1000's of polygons.

  • I'm using ArcGIS 10.1 by the way, and don't have access to other software. I also don't have any real coding skills, especially not with Python.
    – Tom
    Commented Dec 18, 2013 at 0:32
  • 1
    Welcome to GIS SE! You can use the edit button beneath your Question to revise it (and your tags) with your GIS software and version.
    – PolyGeo
    Commented Dec 18, 2013 at 0:33
  • try this freeeware software addin Hawths_Analysis_Tools_for_ArcGIS9
    – user27829
    Commented Mar 8, 2014 at 12:31
  • What could you use if your polygons do overlap?
    – user40846
    Commented Nov 19, 2014 at 19:49
  • 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. Commented Nov 19, 2014 at 20:26

2 Answers 2


Assuming that the polygons do not overlap in any way, you can use Tabulate Areas tool in Spatial Analyst to calculate the areas in batch. Your polygons would be the ZoneRas, and your reclassified raster would be the ClassRas:

Tabulate areas tool

Note that if the zone layer is a polygon feature layer, this tool rasterizes it before processing, which is why it asks for a processing cell size. In order to have more control over this rasterization process, I convert the feature layer to raster myself using the Polygon to Raster tool. This way I can control things like processing extent and pixel registration (using the Snap Raster environment setting).

Regardless of whether you choose to do the rasterization yourself or let Tabulate Areas handle it for you, just make sure that both layers are in the same projected coordinate system.

  • Awesome! Worked perfectly. Polygon to Raster before running Tabulate Areas definitely gives more control thanks for the tip!
    – Tom
    Commented Dec 19, 2013 at 0:38
  • I always find the name of this tool misleading as to what it actually does. good answer. Commented Nov 19, 2014 at 20:32

For the solution, we can just do this:

  1. right click on extract by mask in arctoolbox, then click on batch
  2. select the same raster for all input raster.
  3. select those polygons for mask data.
  4. for output the same direction can be pasted.

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.