# Network Analyst - Identify Loop Streets

2728
4
08-04-2010 05:43 AM
New Contributor II
Is there a way to identify all streets which are part of a loop street, meaning the only way to exit the network is the same point you entered?

I've attached a screen shot and circled in blue a couple examples of loop systems.

I want to be able to identify all the streets segments that are part of these looped systems.

I found an old thread that refers to this but I can't figure out exactly how they identified it

Thank you
Tags (2)
4 Replies
New Contributor III
Mike,

There are algorithmic ways of doing what you are asking for, but there are no existing out-of-the-box tools in Network Analyst to do this.

Could you provide some use cases for why you need this functionality? Perhaps providing some additional context for what you are trying to do will allow me to better help you arrive at a suitable solution.

As for the link you provided in your original post, this appears to be referring to something different than what your post suggests. The linked thread is referring to loop edges, which are just single edges which have the same starting and ending junction (i.e., the edge loops back to its origin). You seem to be asking to detect entire sections of your network which can only be entered or exited via one junction (at least, that is what your image suggests). Can you verify this or elaborate further?
New Contributor II
Thanks Michael.

I'm trying to run point density analysis on street intersections and I don't want to count intersections that are part of cul-de-sacs or intersections that are part of a looped street system where there might be multiple streets or cul-de-sacs that all originate at one single entrance.

I have been able to 'tag' the end point of a cul-de-sac and the intersection point at the start of the cul-de-sac.  The map in my original post shows end of cul-de-sacs as red and entrance into cul-de-sacs as orange.

I do this by finding any intersection that has only one leg to it, which represents the end of a cul-de-sac.  Then I select all points that share the same line segement with a end of the cul-de-sac to be able to tag the entrance into a cul-de-sac,

However, I have not be able to identify those street networks where there is a loop street network.  For example, the street is one big loop and it will have multiple other loops or cul-de-sacs on the loop.  I want to be able to identify that all those intersections on the loop are part of a loop so that I can eliminate them from my analysis.  Basically identify everything "upstream" from the enter/exit intersection.

I attached an example of a loop where all streets would have to enter/exit at the same point.  I would like to somehow identify all the interections that comprise these looped street networks.

Clear as mud?!
New Contributor III
Mike,

Well, like I was saying, there is certainly an algorithm for that. In graph theory parlance, what you are asking to do is to determine the biconnected components of your graph (i.e., network). See here for a brief discussion: http://en.wikipedia.org/wiki/Biconnected_component

The so-called cut vertices shown in the graphic at the link above represent the only entrance and exit vertices into each respective biconnected component (what you have been calling "loop systems") in the graph. Unfortunately, you would need to be familiar with standard graph traversal algorithms, as well as our own ArcObjects API, to implement such analysis to identify biconnected components on our network datasets. You can, of course, do a search on this concept to find more relevant and detailed information.

However, while the examples you have provided in your screenshots appear straightforward, this concept is not as simple or intuitive as it might seem on the surface, especially when considered in the context of your density analysis task.

For example, consider that we have a very large graph, with only two separate biconnected components ("loop systems"), each with equal number of edges and junctions, and each connected by a single "bridge". That is, all paths from one component to the other must always pass across this bridge. Both are loop systems, but both make up roughly half the size of your full network/graph. Which of these "loop systems" would you be willing to drop from your density analysis? One? Both? Neither?

As you can see, it appears intuitive when you notice that many of these components are merely very small neighborhoods which are connected to the main network via only a single vertex or edge. However, what happens to your analysis when the components represent a more significant portion of your network? How representative would your analysis truly be if you ignored such a large portion of the network? Do you see what I am getting at?

I realize that this probably gave you more questions than it did answers, but I just wanted to point out that it may not be as straightforward as it looks. Is there perhaps some way to simplify which junctions you wish to remove from your analysis? For example, what if you only remove dead-ends? Would this somehow invalidate your results or would it still be acceptable?
New Contributor II
Thanks Michael.

I expected that this would not be an easy problem to actually solve.  However, you at least got me pointed the right direction to try to solve it.

Thanks!