Check Geometry

06-14-2013 08:09 AM
New Contributor III
Hi all,
I've got a large polygon dataset ( ~ 3.5 million polygons) and I know there's a number of geometry errors.
I've run the check geometry tool and joined the output to the original data to allow me to pan to the erroneous polygons.
The problem is that some of these polygons are very large and so it is sometimes very difficult to spot where the error (or even errors) are in the polygon and to make sure I find all of them.
Is there a way to be able to zoom straight into where the geometry error is rather than to the full extent of the erroneous polygon?
Unfortunately I can't run the repair geometry tool as I need to look at each error.

I've tried creating a topology for the dataset, but this gives me fewer errors.

I'm running ArcInfo 10.1 SP1 and have all the extensions available.

Any ideas?

Many thanks.
0 Kudos
3 Replies
Regular Contributor
This is a head scratcher.  The only thing I can think of is to examine the geometry via the arcpy Polygon class.  You could read the geometry, make a copy, run repair geometry on the copy, then compare the copy to the original vertex-by-vertex.  When a miscompare is found, record the vertex x,y for further investigation.  Yikes!  That's non-trival and ugly.  But it is, in essence, what the Check Geometry tool does -- repair the geometry then compare it against the original geometry.
0 Kudos
New Contributor III
Thanks. I will try that and see what happens! And there I was imagining that there would be a nice tool in a toolbox that ran check geometry and stored the x y for each error!
Surely I can't be the first person to need to do this?!
0 Kudos
Esri Regular Contributor

The Data Interoperability extension can give you what you need.
You might first want to subset your 3.5 million features using the table that Check Geometry creates, but in any event the GeometryValidator transformer will detect and provide sample XY values for errors such as self-intersection.  The list of issues found for each feature will contain an issue_found attribute and a location_sample.x and location_sample.y value for each issue.

0 Kudos