[GIS] Extracting raster data to multiple polygons using ArcGIS Desktop

arcgis-10.1arcgis-desktopmaskingpolygonraster

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.

Best Answer

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.