# Calculate polygon area inside extent

We're using ArcMap 10.0 sp5, creating a tool in c# using the ArcObjects sdk.

Is there a built in function or simple set of steps that calculates the area of each feature of a polygon layer within a specific extent? What we want to do is calculate the area inside a set of bounds for each of the polygon layer’s features that reside within those bounds (defined by minimum and maximum X and Y). This process would be repeated multiple times, as we traverse a grid. Ideally, the function would also return the area not occupied by any features.

For example, consider this polygon layer in which there are 3 polygons (red, blue, and geen):

If we imagine splitting that layer into a grid:

Looking exclusively at one cell of the grid:

We would like to get a measurement of the area that each feature occupies within that cell, along with a measurement of the “empty” area of the cell. The measurements could be in actual area (square feet, square meters, etc.) or merely a percentage of the area of the grid cell (as shown below).

Note: these percents are for demonstration purposes only and are not necessarily to scale.

We'd also like to keep in mind the case of overlapping polygons. Consider this alternate polygon layer in which the blue polygon resides entirely within the red polygon:

In this case, the sum of the area covered by each polygon would be greater than the area covered by the grid cell. As shown in the illustration above, red and blue both occupy the same percentage area as in the first example, but their areas are not distinct. In this case we would need to receive the values adding up to 110%, or a new set of percentages along the lines of:

• Red = 31.8181818%
• Green = 10%
• Blue = 9.0909091%
• Empty = 49.0909091%

We could either calculate the percentage as a fraction of the total polygon areas (including the "empty" polygon) or as a fraction of the grid cell area.

If a function exists that performs the calculations described above, we would need to know exactly what the result of that calculation gives us.

Our current thought is to follow the workflow below, but we wanted to see if anyone had better ideas.

1. Create a fishnet of the desired cell size and extent (to handle multiple grid cells at a time)
2. Union the fishnet with the polygon feature class
3. Calculate the area of all resultant features
4. Traverse the resultant features (by grid cell) to read the area of each unioned feature manually. (In this case, features without an FID from the original polygon layer would be the area not occupied by any features)
5. Sum the area of all features in the cell
6. Compute the percentage for each feature based on the calculated sum from 5.
• Can you add a picture please?
– Emi
Feb 16, 2013 at 0:09
• I edited the question to incorporate images throughout. Does this help visualize the problem?
– BDA
Feb 19, 2013 at 18:22
• Rather than "Traversing the resultant features", could you treat it as a purely SQL based problem? You have everything you need in the table at that point don't you? Can you use a DBMS? Feb 19, 2013 at 19:04
• That's a great point. I'm not sure how much control I have with querying the data, but that would almost certainly be faster than trying to read each feature one at a time. If nothing else, I could probably export to a table and query it by other means. Definitely something I'll keep in mind, thanks!
– BDA
Feb 21, 2013 at 17:18

## 1 Answer

I realize that this an answer to an older thread but if you've upgraded to 10.1, check out the Tabulate Intersections tool in the Analysis toolbox (ArcInfo level).

I don't think it handles empty spaces but in theory you could create a bounding box polygon, clip out your original data, merge the clip with your original data and assign the clip with dummy attribute(s) that are easily filtered.

• I tried this as I have the same question but it gives me percentages above 100 and also areas for a property that don't add up. I have tried a 10m tolerance. I am trying to see how much of each soil type there is in all properties in a project area. May 12, 2014 at 0:34