Select to view content in your preferred language

Append Routes rejects polylines with curves

801
2
Jump to solution
06-27-2022 07:37 PM
GraemeBrowning
Frequent Contributor

When running Append Routes the Validation of route attributes failed and in the log that was written I found this message which was followed by a list of seven OIDs.

"Source data has curves. A list of offending OIDs is available below"

If curves are not supported in an LRS dataset is that documented somewhere?

Assuming that they are not supported is the best way to turn them into vertexed curves to copy their geometries out to and back from shapefile format?

1 Solution

Accepted Solutions
GraemeBrowning
Frequent Contributor

Thanks Ryan

I found a less obvious place that the absence of support for curves is documented for ArcGIS Pro at 130115: Number of route representations that had curves and were ignored: <value>—ArcGIS Pro | Docum... where it says:


Examine the log returned with the execution of the tool to determine the polylines that caused the problem. The Densify tool can be used to remove curves from those polylines.

Before seeing that or your welcome message I had implemented the ArcPy code below to detect and convert the curves into vertices by using the hasCurves property and densify method of the Polyline class.

 

# Check for and convert any curves
# Without this step this error is seen:
# "Source data has curves.  A list of offending OIDs is available below."
print("Checking for curves which are not supported in LRS datasets")
with arcpy.da.UpdateCursor(testFC,["OBJECTID","SHAPE@"]) as cursor:
    for row in cursor:
        if row[1].hasCurves == True:
            print("Converting curve(s) in OBJECTID {0} to vertices 10cm apart".format(row[0]))
            feature = row[1].densify("GEODESIC",0.1)
            cursor.updateRow([row[0],feature])

 

 

 

 

 

View solution in original post

2 Replies
RyanKoschatzky
Frequent Contributor

Curves are not supported in R&H, unfortunately in my opinion.  

One place it's documented. https://desktop.arcgis.com/en/arcmap/latest/extensions/roads-and-highways/loading-routes.htm

"For routes to be loaded and calibrated properly, source routes should not contain any curves. If your source routes contain curves, you can run the Densify geoprocessing tool on the source routes before route loading to ensure they will load and calibrate properly. For more information, see Densify."

As I recall, the way I fixed them in 9.3/9.5 after we found them introduced into the system by other means (nice the tool lets you know and prevents them) was to reshape the geometry. 

Hope that helps.

 

GraemeBrowning
Frequent Contributor

Thanks Ryan

I found a less obvious place that the absence of support for curves is documented for ArcGIS Pro at 130115: Number of route representations that had curves and were ignored: <value>—ArcGIS Pro | Docum... where it says:


Examine the log returned with the execution of the tool to determine the polylines that caused the problem. The Densify tool can be used to remove curves from those polylines.

Before seeing that or your welcome message I had implemented the ArcPy code below to detect and convert the curves into vertices by using the hasCurves property and densify method of the Polyline class.

 

# Check for and convert any curves
# Without this step this error is seen:
# "Source data has curves.  A list of offending OIDs is available below."
print("Checking for curves which are not supported in LRS datasets")
with arcpy.da.UpdateCursor(testFC,["OBJECTID","SHAPE@"]) as cursor:
    for row in cursor:
        if row[1].hasCurves == True:
            print("Converting curve(s) in OBJECTID {0} to vertices 10cm apart".format(row[0]))
            feature = row[1].densify("GEODESIC",0.1)
            cursor.updateRow([row[0],feature])