Node Valence for ArcGIS Network Troubleshooting
When validating your utility geometric network connectivity one of the hardest things to do is figuring out what exactly is connected to what. While ArcMap and ArcFM provide a variety of investigative tools, one that we’ve found most useful hasn’t made the cut for inclusion within either product – but at least one version has made it to the level of an ArcGIS developer sample.
The tool we’re talking about is the “Valence Renderer” and you can find the ArcGIS sample here. (“Valence” being the graph theory term for number of edges connected at a network node.) The sample creates a new type of “feature renderer” that you can plug in to the regular drawing process and takes effect any time your map display is redrawn.
Example Conditions 1 and 2 – Disconnected and Non-Network Features
We’ve found it more useful to use the basic idea but take more control of when rendering happens by putting the logic behind a button. A typical use case is illustrated to the right. Above is a display of a substation schematic that generally appears OK. Clicking on the “Draw Valence” button paints a solid colored marker below and to the right of all visible junction features present in the display. Inside the marker is the number of connected edges – the ‘valence’.
In this example we uncover two issues, “Condition 1” is a case where our device (an open switch) appears physically connected to the substation bus bar but the valence marker is “0” indicating the device is not connected. Clearly a problem.
If we dig a little further we’d find that if our map includes network generic junctions the display for “Condition 1” could be misleading. More on that point in a bit.
The second issue, “Condition 2” is where there is no valence marker shown for our device when we expect one. In this case the device feature class is not defined as part of the geometric network but rather a simple point feature. This may mean we need to re-create our geometric network.
Example Condition 3 – Clarifying Coincident but Not Connected Conditions
Another example shows how the valence renderer can help clarify conditions that would otherwise require us to either perform a trace or start editing and inspect feature vertices. Condition 3 to the right shows a case where an underground tap (dashed line) from a segment on the green feeder crosses another feeder where two segments meet. Looking at the display alone one really can’t tell if the feeders connect at this point (which would be bad) or if they don’t.
Displaying the junction valence it quickly becomes clear that our connectivity is OK. Our green underground tap connects only to the green overhead primary line on the same feeder, and not to the pink feeder. (Whew!)
Example Condition 4 – Excluding Generic Junctions
While we’re at this location in our electric network we can get back to the point about potential confusion with generic junctions. First we’ll look at a fuse on the underground primary. Again, visually it looks fine. Further, when we render the valence markers we get an expected result, the fuse appears to be connected to two edges, just as we would want.
The misleading part is that there is a generic junction that lies coincident with the fuse and the blue “2” marker describes the generic junction and not the fuse. To account for this possibility the “Draw Valance Options” form includes a choice of whether or not to show valences for generic junctions. The final image illustrates the results, and shows us that in fact the fuse is not connected.
Summary
Clearly, this tool can be useful for diagnosing network connectivity issues when used interactively in an ArcMap session. But the fundamental concept can also aid our bulk review of a dataset when applied in more of a “batch” mode. More about this in an upcoming post.
Code
This tool as described is implemented as a ArcMap Add-in buttons for ArcMap version 10.2.1.
ValenceRenderer_CSharp |
A zip file with the Valence Renderer Addin installer |
ValenceRenderer |
A zip file with the Valence Renderer Addin source code |