We normally discuss topics of data modeling, migration or improvement – but in this post we’ll talk a bit about using a Geodatabase we’ve built to discover potentially important information in ways that can’t readily be done using standard tools alone. The use case is this:
Pipes connected at an angle are typically joined by an elbow fitting of one size/kind or another. However, in some cases the join is accomplished by welding – which, at least in some cases can be somewhat less secure. As preventative measure we want to discover cases where our pipe network contains two pipes joined with no fitting present at the junction and an inflection angle within a specified tolerance. Further, we may want to be able to limit the candidates to those that share common attributes.
An approach we can take to address these requirements involves these steps:
- Start with the set of “generic junctions” – those junctions in our network where pipes meet with no other point feature present.
- Iterate over all generic junctions and subset them as follows:
- Include only those cases where exactly two pipes meet (thus the junctions are “bivalent”)
- Include only cases where the edges are part of the target pipe class – exclude cases where, for example, a pipe is connected with a service line or CP wire
- (Optionally) Include only cases where the two segments share values for designated fields – same size, material, coating, etc.
- Include only those cases where the angle turned falls within a user-specified tolerance, for example, greater than 5 degrees and less than 175 degrees.
The result will be a subset of junctions that would be candidates for inspection as welded pipe locations. Of course this process can in no way ensure that all welded joint locations can be found – especially since we are looking for the absence of a thing than the presence – however it may help focus a search.
Here is a tool we’ve prototyped that performs these queries and returns a set of candidate junctions in a list and then allows you to navigate to each and inspect it.
The code is implemented as a C# ArcMap Add-in for ArcGIS version 10.2.1 the Add-in itself as well as source code to which available to any interested. As-is with no warranty of course. Contact us with an e- mail address and we’ll provide a zipped version.