Select to view content in your preferred language

Road graph correctness control

645
2
09-26-2011 11:41 PM
AlessandroCristofori
Emerging Contributor
Hi everybody,

I have a linear feature layer consisting of all the arches representing the street network of a township, and a point feature layer consisting of all the nodes conjoined to those arches.
The linear layer has two fields in its attributes table : "F_NODE" and "T_NODE", the former containing an ID number connected to the node from which moves the direction af the arch, the latter containing an ID number connected to the node the arch moves toward.
I am executing a control on these two layers about the accuracy of the data included in the nodes mentioned before, i'm doing this manually, placing labels on the nodes and on the arches and checking if the Id number of the arches matches the ones of the nodes.
This will require a lot of time and there's always the risk of making further mistakes.
Is there a way to set this kind of control automatically using a tool in arcInfo or in Network Analyst

Thank you
Tags (1)
0 Kudos
2 Replies
PatrickStevens
Esri Contributor
Hello,

Have you used Network Analyst before?  If not, see the desktop help about how it all works.

Do you have your data in a network dataset?  If not, go and create a network dataset out of your street data.

After that, there are a few ways to verify connectivity using Network Analyst: 

   You could use the Network Identify tool on the Network Analyst toolbar.  With that tool selected, you click on a network element, and you can see which elements are connected to it.  This is another manually way and would be pretty tedious.

  You could generate lines with the Service Area solver to make sure that there is connectivity in the network draft.  This would show you where there were disconnects in the graph, but it would be difficult to determine exactly what connected to what else.

  Lastly, for full automation of this, you could programmatically determine exactly which elements are connected to
which other elements.  There are a couple of ways to accomplish this as well.  This simplest is probably by starting with the INetworkJunction interface. 
     1. In ArcCatalog, set up your node IDs as descriptor attributes on your network dataset.
     2. In code, get a reference to your network dataset, then cast to INetworkQuery.
     3. INetworkQuery::CreateNetworkElement to cocreate a junction.
     4. INetworkQuery::QueryJunction to populate your newly create junction.
     5. Use INetworkJunction::EdgeCount and INetworkJunction::QueryEdge to iterate over the edges connected to that junction.
     6. Use INetworkElement::AttributeValueByName to get the ID values for your network edge.
     7. Get the from and to junctions use INetworkEdge::QueryJunctions.
     8. Go to step 5, and in the meantime, verify that the IDs of the adjacent edges are the ones you expect them to be.

Hopefully, this wasn't too confusing.
0 Kudos
PatrickStevens
Esri Contributor
This post is a cross-post with the Network Analyst forum.  Please continue the discussion there, if Network Analyst is indeed your tool of choice for this problem.

http://forums.arcgis.com/threads/40364-Road-graph-correctness-control

Thanks
0 Kudos