Some 3rd party software cannot handle polygons with holes (donut polygons). To find them I always use ArcView 3 field calculator, because:
however when I try to do this in ArcGIS, I get this:
So the question is how to make it right in ArcGIS.
Answer
Part count will not yield the correct answer. You could have a multi-part polygon with no holes. See image below for scenario.
This would have been a simple query pre-ArcGIS 10 as you could have called ArcObjects to ask if the polygon had a hole but ESRI have removed much of this support in the VBScripting environment to the point its pretty useless now, bit of a shame really...
Anyway you can solve this question with some Python:
def hasHole(geom):
parts = geom.partCount
boundaries = geom.boundary().partCount
if boundaries > parts:
return 1
else:
return 0
In the expression box you would place the following:
hasHole(!Shape!)
No comments:
Post a Comment