Hey everybody,
On a monthly basis I create a bunch of topologys to make sure that my polygon layers don't overlap or have gaps (ESN). I also run a topology on my street layer to find street segments that aren't snapped. This process consists mostly of models.
Since I always try to help my Public safety brethren, I figured I compile my process in a Python AddIn, that "should be easy to use". I started a day ago and have the skeleton of the AddIn finished and now I am looking for a Guinea Pig (I am looking at you Chris Donohue, GISP & Joe Borgione ) to use it!
Latest Update:
- Created an official document: Topology Check Python AddIn (6/30/17)
- Added Error message when the wrong feature is chosen for certain Checks (i.e. polygon feature is chosen for dangle check)
- Now works with ArcGIS Desktop Standard
- Latest test version that includes a polygon break check. This check make sure that your line features are broken when they intersect with a polygon feature. Just select the line feature and polygon feature in the TOC and run the check.
Dropbox - TopoAddIn.esriaddin 10.3.1 + version
Here is what you need:
ArcGIS Desktop Standard 10.3.1 or later versions
Here is how it works:
1. You would download the add in HERE. (10.1 version HERE )
2. Double click it and install it.
3. Open an MXD and add a polygon layer and a street layer.
4.The toolbar should be there but if it is not click on Customize -> Toolbars -> TopoCheck
5. Follow the steps in the screenshot!
As I said it is still a work in progress, especially the street dangle check.
Let me know what you think!
Tim
HeatherW You can download latest version, which allows to dictate scratch workspace folder. Let me know how it works.
Awesome, thanks. I will try it out.
Also, I just want to throw this out there for other cross-jurisdictional public safety data people - I did a script tool that finds polylines at jurisdictional boundaries that aren't snapped to agreed-upon snap points, such as in this image:
The code is at Data integration – on the edge – GIS Hacker & Hiker, and uses "disjoint" to create an error feature class of points where endpoints aren't snapped.
Thanks for sharing Heather! In the future I wanted to add a button to check that streets are broken at Jurisdiction boundaries.
Just downloaded the latest version. I like the Intersections Error tool. In my case, many errors are not really errors, but freeway overpasses and underpasses. Tim and I chatted on the phone and one idea I had was to be able to rebuild just the visable portion of the scratch topology, just so I can keep track of what I've fixed.
However, since Tim is gracious enough to provide the errors as a point feature class there really a need to over complicate things. With the IntersetErrors point feature class, I symbolize them based on the Exception attribute. As I work on the my streets, I simply calc Exception = 1 as I fix the error and move on. I can also select those error points that spatially fall on a freeway and do the same calculation....
ETA: Below you can see the basic outline of the freeways in the Salt lake Valley:
Thanks for sharing!
I just updated it again. I have also added a latest update line to the original post.
cdspatial can you try the latest 10.1 version? Should be with scratch workspace and error messages.
OK, I'll give it a try.
Chris Donohue, GISP
Installed the new tool and ran it. Some tools ran fine, others had issues. Some of this may be due to the older version of ArcGIS used.
Here's the results on test data in a File Geodatabase using ArcGIS Desktop 10.2.1:
Check for Overlaps function:
- overlap_polys output correctly identified polygon overlaps in a parcel test dataset.
- overlap_Topology output also found the issues correctly.
- OverlapErrors_point and OverlapErros_line outputs had no results (they showed up in the Table of Contents, but I'm not sure if they are used as part of the "Check for Overlaps" function.
Check for Gaps function:
- GapErrors_poly output was empty/did not find the gaps in a parcel test dataset.
- gap_Topology output did find the gaps correctly.
- GapErrors_point output was an empty table/did not find gaps.
- GapErrors_line found all the gap issues and output them as lines.
Check Line Segment Dangle function:
- YourDangleErrors output correctly found dangles at distances of 0.1 foot and 1 foot in street centerline test dataset. Did not 4 other Dangles present (35'+).
Check Line Segments Overlap function:
- intersect_Topology output correctly showed overlapping lines when run on a test street dataset.
- IntersectErrors_point output was an empty table/did not find overlap.
- IntersectErrors_line output did find the overlaps.
- IntersectionErrors_poly output was an empty table/did not find overlaps. Also, I'm curious as to how this output would be used?
Scratch Workspace function:
- Works. I was able to switch the folder location for the Scratch workspace and the other functions then output the results there.
Chris Donohue, GISP
mmmm, yummie street data......
Thanks for the feedback!!
Looking at it, everything seems to run fine. I am using the export topology errors tool, which seems to create a point/line and polygon feature by default and then adds all of them to the MXD even though some might be empty.
To catch some of those further away dangles, will add a combo box in which the use can decide how many feet it should look for.