In ArcMap, I have a raster file that contains 6 classes of landcover and a shapefile that is the census data (OA boundaries and their population).

I want the area of each class in each OA?

For instance, I need to add six columns to the census shapefile (i.e one column for each class) and calculate the area of that class in the appropriate OA...

Does anyone know how I can solve this?

  • 2
    What does "OA" stand for in this Question? – PolyGeo Jun 19 '14 at 3:33

Assuming you're using ArcGIS 9.3, get the free Hawth's analysis tools extension for ArcGIS, and use the Zonal Statistics ++ tool. Make sure the shapefile is in the same projection as the raster.

From having just looked at the Hawth's tools website for the first time in ages to get the links, I've just seen they're putting all their efforts into developing Geospatial Modelling Environment, which may also do the job, though I haven't tried it.

Lastly, you could do the calculations manually. There are two options:

  1. Turn the raster into a polygon, run an intersect with the boundaries, and calculate areas based on the results. This works well if there aren't a lot of raster classes, or the size of the polygon isn't very large in comparison to cell size.
  2. Turn the polygon into a raster with the same cell size and origin as the original raster and run a combine. Works well if there are lots of raster classes, but only if the original polygons are at all points substantially greater than cell size.

Potentially as well you could take the 2nd option and re-sample the original raster into smaller pixels if you are worried about data loss through polygon size and shape (make sure to keep cell sizes as factors of the original cells to avoid data loss).

  • Dear om_henners Thanks for the solutions you have made for me. I am so glad to find this place where I can see people helping each other in order to improve their knowledge. I am evaluating the methods that I have in my mind now to get the best resul + the right attributer table.I'll write about it after I got it working. Thanks again. – Zeinab Aug 16 '10 at 6:56
  • Be advised that depending on the version of python and arcgis installed you might have to email them for a version that suits you. My experience with Hawth's tool has been great; and when i asked for an updated version, i got one within an hour or so – dassouki Aug 16 '10 at 16:32
  • @Zeinab Not a worry. Let us know how you go with it! – om_henners Aug 16 '10 at 23:17
  • Hello again, I am happy now, thanks to glennon and om_henners. you brought the ideas to my mind although I used tabulant area calculation in spatial analysis tool. thanks again for heplping me. – Zeinab Aug 17 '10 at 4:22

I'd use a combination of the clip geoprocessing tool and the procedure from this page: Calculating an Area in Raster.

  • Dear glennon, Thanks fo ryour help. I found some useful info on the link you have located help. Thank you so much and I'll tell you about my success later on. – Zeinab Aug 16 '10 at 6:52

From a Comment by the Question's author (@Zeinab; who has not logged into this site for nearly four years) on one of the other Answers, it looks like the solution that resolved this was the Tabulate Area (Spatial Analyst) tool which:

Calculates cross-tabulated areas between two datasets and outputs a table.

protected by whuber Aug 26 '13 at 17:45

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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