StreetName from FNode/TNode coverage

4212
4
Jump to solution
02-11-2015 10:08 AM
SteveClark
New Contributor III

I am trying to build a table that simply has Fnode, Tnode and StreetName but cannot get accurate data.

With a StreetCenterline featureclass, I used Feature Vertices to Points - BOTH_ENDS to create a Nodes featureclass. Then I used both the Centerlines and the Nodes to create a coverage. The problem is that the Node table picks a Centerline# that may or may not be accurate (since multiple centerlines can come into a node). The Centerline table of the coverage only has FNode and TNode with a FID that may or may not be in the Node table.

I am looking for a more accurate way of doing this. I do not need to build a Network Dataset or a Geometric Network, I just need to know the right StreetName between each FNode and Tnode.

0 Kudos
1 Solution

Accepted Solutions
SteveClark
New Contributor III

The solution was to add an extra step after running Feature Vertices to Points and Feature Class to Coverage = running a Spatial Join with ARE_IDENTICAL_TO option. This conflated the attributes (including streetname) from the original Centerlines featureclass onto the arc coverage that has the FNode/TNode.

View solution in original post

0 Kudos
4 Replies
SteveClark
New Contributor III

The solution was to add an extra step after running Feature Vertices to Points and Feature Class to Coverage = running a Spatial Join with ARE_IDENTICAL_TO option. This conflated the attributes (including streetname) from the original Centerlines featureclass onto the arc coverage that has the FNode/TNode.

0 Kudos
Deanvan_den_Heever2
New Contributor

Hi Steve

Will you please explain in more detail as i am trying to achieve the same?

Thanks

Dean

0 Kudos
SteveClark
New Contributor III

Dean, the best way I can explain the steps is to show it to you in python:

This assumes you have a FileGDB with a streetcenterlines featureclass.

#Create a pointFeatureClass from the beginning and end point of each centerline segment

arcpy.FeatureVerticesToPoints_management(streetCenterline, pointFeatureClass, "BOTH_ENDS")

#Create a Coverage from both the streetCenterline and pointFeatureClass

inFeatures = [[streetCenterline, "ROUTE"],[pointFeatureClass, "POINT"]]

arcpy.FeatureclassToCoverage_conversion(inFeatures, outCoverage, "", "DOUBLE")

#Overlay (using SpatialJoin) the street centerline featureclass onto the arcs of the coverage

arcpy.SpatialJoin_analysis(arcFromOutCoverage, streetCenterline, outFeatureClass, "JOIN_ONE_TO_ONE", "", "", "ARE_IDENTICAL_TO")

Since the streetcenterlines featureclass has the streetname for each line segment, all this does is to overlay the streetcenterlines onto to arcs built for the coverage (which has the FNode and TNode). The result adds the streetname attribute (among others) to the line coverage and creates a featureclass with the results.

The only problem I've run into is that this cannot be run in standalone - the FeatureclassToCoverage will crash every time. Running this manually in toolbox or in python window will work fine.

Deanvan_den_Heever2
New Contributor

Thank you. This was great. Do you by any chance have a answer for the following:

I need to create a shapefile of Road segments with a "To_Road/s" and "From_Road/s" as tables in the attributes with the streetnames as fields.

I used the Planarize tool to seperate the roads into segments. I know it has something to do with spatial join and the FID but I can not figure this one out.

Thanks

0 Kudos