How split road lines at vertices and divide lengths accordingly?

2378
7
Jump to solution
10-18-2015 05:40 PM
Highlighted
New Contributor II

I am working with Network Analyst, but my road dataset needs to be fixed so that NA can find shortest routes..  Some roads have been drawn to skip right over vertices where intersections are present.  NA would find better routes, if all intersections were really available.

I have used the "split line at vertex" tool, and it does a marvelous job of splitting up the roads.  But it does not divide the distances among the various splits.  The same mileage numbers, for example, simply transfer over to all splits made on a given line.   I want NA to be able to report on the lengths of the routes

What's the better way to split the roads at intersections and have the software calculate new, correct distances (lengths)?

Reply
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Occasional Contributor III

Herb,

Do you need the field to update automatically?  When the line is split the Shape_Length field will automatically update (it will be in the meters or feet depending on your projection).

View solution in original post

7 Replies
Highlighted
MVP Esteemed Contributor

I have moved this thread to the Network Analyst place so that it may gather some attention from those familiar with it

Network Analyst

Reply
0 Kudos
Highlighted
Occasional Contributor III

Herb,

Do you need the field to update automatically?  When the line is split the Shape_Length field will automatically update (it will be in the meters or feet depending on your projection).

View solution in original post

Highlighted
MVP Honored Contributor

If you are relying on a numeric field called something like Miles rather than the Shape_Length, Length, etc. field maintained by the feature class in a Geodatabase, then you will have to manually recalculate the Miles field.  You can use the Geometry calculator to update the field based on the geometry Property of Length and set the Units to Miles.

Setting up a split policy to proportion the value of the field relative to the length may work with the Split Line at Vertice tool, but it may not, since not all geoprocessing tools respect the split policy.

For the maintenance of the data, you should use Attribute Assistant.  It can be set up to automatically update attributes during an edit session in response to feature creation, geometry changes, or attribute changes.  For example, using the Expression method it can automatically update your Miles field every time a feature is created or has its geometry modified using the formula: [Length] / 5280 (assuming your native units are in feet).  Attribute Assistant can also be set up to automatically update a Minutes field every time a feature gets created, the geometry changes or the speed limit attribute changes.  The Expression for minutes when length is in feet and speed is in MPH is: ([Length] / 5280) / ([Speed_MPH] / 60). Attribute Assistant is invaluable for editing feature classes with lots of attributes that need to maintain a relationship to the feature geometry or between interdependent attributes.

However, you do not need a field called Miles for NA to report your distances in Miles, even if your native units are in feet.  By default NA should detect and use the geodatabase Length field for cost.  As part of the configuration of the Network Dataset you specify the units you want NA to report the native feature class length maintained by the geodatabase and can specify Miles as the units.  The way you do that is dependent on the ArcGIS version of NA that you are using, so specify the version in your original post or in a response.

I also highly recommend setting up a topology for your centerlines to detect dangles and lines that cross each other.  The topology makes it easy to detect these types of errors in your connectivity and easily correct them by doing splits, extends, snaps, or trims using the topology toolbar tools.  Even if you don't use a geodatabase topology, the topology toolbar has a Planarize tool that will split selected lines during an edit session where they intersect each other, whether or not a vertice exists at the intersection.

Highlighted
New Contributor II

Thanks Richard, and also Kyle Balke and Dan Patterson.

I didn't think to look for shape length.  That is the issue, and you are right in point me to it.  I was focused only on the "miles" field.  The Split Line at Vertex DID divy up the shape length appropriately.  Just checked a couple.  From here on out it's easy. 

Thanks a bunch.

Reply
0 Kudos
Highlighted
New Contributor II

Thanks, Richard.  We're now aware of everything in your response, except that we haven't used Attribute Assistant nor have we worked the typology properly.  Will be taking your suggestions to heart.

Thanks again.

Reply
0 Kudos
Highlighted
Regular Contributor II

Hi

When you create a domain it has a split policy that can be set to "geometry ratio".

You can create a range domain with values 0 - 99999999 and set it to your miles field just to get the split policy.

Have fun

Reply
0 Kudos
Highlighted
New Contributor II

Thanks, Mody.

Actually, the "split lines at vertices" tool did automatically split the length of segments, but I didn't catch that. I was only looking at the "miles" field in the street file. As you probably realize, our "miles" field was a calculated field. I simply went back to the street file and recalculated the "miles" field....and now all is well.

Thanks for the reply.

Herb Kuehne

Reply
0 Kudos