How do I prevent turns at a junction in Network Analyst

951
4
01-27-2022 10:20 PM
LindsayRaabe_FPCWA
Occasional Contributor III

I'm using Network Analyst to build a road network for finding haulage routes. Unfortunately the data I'm using was not designed for routing, so I'm having to manipulate it a fair bit to get what I want. One issue I'm yet to resolve is how to deal with turns at junctions that shouldn't exist. In the screenshot below, the junctions in the green circle are actually an overpass/underpass scenario. I know I can delete the vertices to stop a junction forming, but this is proving difficult to automate because in some instances the vertices are the start/end of lines and then a break forms in the lines. 

Instead, I'm sure there's a way to prevent a turn occurring at a junction but I can't for the life of me figure out how it all works. 

LindsayRaabe_FPCWA_0-1643350601630.png

Do I need to create a Turn Feature Class? If so, can I just populate it with segments (like below) and somehow set that as restricted in the Network Properties?

LindsayRaabe_FPCWA_1-1643350816689.png

 

Is there another way? (I wanted to delete the junctions after they were created through a spatial selection but it's not editable). 

Lindsay Raabe
GIS Officer
Forest Products Commission WA
0 Kudos
4 Replies
Sean_Wray
Occasional Contributor

Yes you do need to create a turn feature class. That is where the data lives that will restrict the turn.

https://desktop.arcgis.com/en/arcmap/latest/extensions/network-analyst/creating-a-turn-feature.htm

This is step 18, 19 and 20 from the above link...

  • On the Editor toolbar, click the Attributes button to show the Attribute Editor.
  • Edit the attributes as needed. - This is where you might add a value to an additional field for restricting the turn or adding a cost for making the turn.
  • When the edits to the turn feature class are completed, on the Editor toolbar, click Editor > Stop Editing.

This might be helpful too

https://desktop.arcgis.com/en/arcmap/latest/extensions/network-analyst/editing-turn-features-modify-...

There is a Network Analyst Community here too that you could look into

https://community.esri.com/t5/arcgis-network-analyst-questions/bd-p/arcgis-network-analyst-questions

0 Kudos
LindsayRaabe_FPCWA
Occasional Contributor III

Thanks for the links. By the looks of it, there's no way of mass creating this type of data - it must all be done manually (not what I was looking for unfortunately). I was looking for a way to solve many overpasses turning onto the underpasses instead of taking the on/off ramps. 

I did manage to come up with a solution though. I did a once off pass of the data identifying the overpass or underpass I didn't want turns to happen on, buffered the segments 5 metres into a polygon feature class (yellow features below), and in my network building process, use those polygons to spatially select any segments (wholly within) and create one line data source, and then repeat it selecting everything else (wholly within inverted) to create a 2nd line data source. Both of these line feature classes are then used to build the network, but the one containing the no-turn features within the polygons are set to an Endpoint policy in Group Connectivity, whilst the rest of the data has an Any Vertex policy. Where the datasets meet, turns occur (valid intersections or connections), but when crossing an over/underpass, turns won't happen. 

LindsayRaabe_FPCWA_0-1643676406193.png

LindsayRaabe_FPCWA_1-1643676893735.png

 

Lindsay Raabe
GIS Officer
Forest Products Commission WA
0 Kudos
Sean_Wray
Occasional Contributor

 Glad  you found a solution. It sounds similar to using an elevation field to separate segments. I haven't had a network with underpasses and overpasses yet, but  they describe using elevation values in the same way, except you only need one feature class.

https://desktop.arcgis.com/en/arcmap/10.3/guide-books/extensions/network-analyst/understanding-conne...

Elevation fields are used in the network dataset to refine the connectivity at line endpoints. They contain elevation information derived from fields on a feature class participating in the network. This is different from establishing connectivity based on z-coordinate values, in which the physical elevation information is stored on each vertex of the feature. Elevation fields apply to edge and junction sources. Edge feature sources using elevation fields have two fields to describe elevation (one for each end of the line feature)

0 Kudos
LindsayRaabe_FPCWA
Occasional Contributor III

Yeah. I did consider trying to use the elevation fields, but decided against it as it would have been too much work to attribute all the required features in a reliable manner (it's a state-wide dataset). Unfortunately it's not my data and our State doesn't have a routable network source available (the data was setup for asset management). 

Lindsay Raabe
GIS Officer
Forest Products Commission WA
0 Kudos