Hello ArcPy folks,

I am working on a script to get the area of overlap between polygons in two different feature classes. I am able to loop through one polygon by polygon while looping through the other. But, I am stuck at how to get the area of overlap. Any suggestions would be awesome. Here is my code:

Thanks,

Derek

I am working on a script to get the area of overlap between polygons in two different feature classes. I am able to loop through one polygon by polygon while looping through the other. But, I am stuck at how to get the area of overlap. Any suggestions would be awesome. Here is my code:

import arcpy arcpy.env.workspace = "C:/path/PADUS/Polys.gdb" countiesFC = "Counties" countyRows = arcpy.SearchCursor(countiesFC) countyFields = arcpy.ListFields(countiesFC) PADUSFC = "PADUS" PADUSRows = arcpy.SearchCursor(PADUSFC) PADUSFields = arcpy.ListFields(PADUSFC) countyGeom = arcpy.Geometry() countyGeomList = arcpy.CopyFeatures_management("Counties", countyGeom) PADUSGeom = arcpy.Geometry() PADUSGeomList = arcpy.CopyFeatures_management("PADUS", PADUSGeom) countyIndex = 0 #arcpy.AddMessage(str(len(countyGeomList))) for countyRow in countyRows: countyGeom = countyGeomList[countyIndex] #arcpy.AddMessage("county: " + countyRow.name + " - " + str(countyGeom.area)) PADUSFC = "PADUS" PADUSRows = arcpy.SearchCursor(PADUSFC) PADUSIndex = 0 for PADUSRow in PADUSRows: PADUSGeom = PADUSGeomList[PADUSIndex] if PADUSGeom.overlaps(countyGeom): arcpy.AddMessage("PADUS: " + PADUSRow.own_type + "overlaps " + countyRow.NAME) #here want to find the area of overlap between the two geometry polygons PADUSIndex = PADUSIndex + 1 #arcpy.Delete_management("C:/temp/test.shp") del PADUSFC del PADUSRow del PADUSRows #arcpy.AddMessage(str(countyIndex)) countyIndex = countyIndex + 1

Thanks,

Derek

When you identify 2 polygons overlap, you can get the intersection of the 2 polygons, and get the area of the intersection.

Here is the code snippet in ArcObject.

ITopologicalOperator to = PADUSGeom;

IArea a = to.Intersect(countyGeom, esriGeometry2Dimension);

double area = a.Area;