[GIS] Intersecting overlapping polylines using ArcGIS for Desktop

arcgis-desktoparcpyintersectionlinear-referencing

I have 4 multipart polyline shapefiles (download a sample dataset here).

The geometries are identical, except for the length of segments in each shapefile. They represent 4 variables describing an identical shoreline. From these 4 overlapping polylines, I would like to create a resulting polyline that has segments for each unique set of the 4 input lines.

My approach was to use an intersect. This, however, breaks down when I try to run it on 4 huge feature classes.

My question is whether there is a more efficient way to combine polyline attributes stored in separate layers. I thought a union would be good, but it only works on polygons. Spatial Join seems inefficient, as I would end up with many to many joins for a single segment. Turning the segment end points into a point layer, then splitting the line at those points?

I have access to arcpy, PostGIS, and shapely.

Has anyone had experience doing this before on large datasets? Is there a more efficient way to store these variables?

Best Answer

This sounds like a use case for Overlay Route Events from the Linear Referencing toolbox:

Overlays two event tables to create an output event table that represents the union or intersection of the input.

...

  • Line-on-line, line-on-point, point-on-line, and point-on-point event overlays can be performed.
  • The input and overlay events should be based on the same route reference.

The "same route reference" sounds like your "identical shoreline" that can be easily turned into a route ready for dynamic segmentation.

You are trying to "intersect overlapping polylines" which sounds like a "line-on-line ... event overlay" to me.