Can anyone suggest a resource which discusses different approaches to cleaning up linearly references events in order to minimize the occurrence of small dynamic segments?

I'm working with many overlapping events that in many cases should terminate at the same place, but in many cases don't. This results in very small dynamic segments. I want to reduce the occurrence of these by snapping events to other events, but only if each event isn't significantly modified. For example, an event could be extended by 10% but not 50%. The number of involved events is unknown, typically between 1 and 10, and I am not using spatially-aware software. (pure tabular processing)

I have an existing approach, but am interested in learning about other methods.


The data depicts the locations of highway construction projects. They have been overlaid into a LRS data-structure where each project is an event, and some locations have multiple projects (overlapping projects). The problem is that many projects should terminate at the same location, but for various reasons they don't. I need to cleanup the data to minimize short segments, which implies adjusting the locations of projects slightly.

My current approach processes the segments in multiple passes. Each pass attempts to extend segments over top of a neighboring segment (replacing it) if doing so would not overly change the total length of the projects. Each pass is only permitted to "touch" a project once, and the process is looped until no more modifications are possible. One round of iterations is done which extends segments "forward" over the next segment, and a second round is done which extends them "backward" over the preceding segment. Every record is considered in each pass.

This is all done using a language called SAS, which has no spatial awareness. I could also work in Python. The reason I posted in a GIS forum is because of the linear-referenced data structure, which to most people implies GIS. I do ultimately pass the results into a GIS system.

[EDIT2: ask a specific question]

Specifically, I would like a more efficient way of doing this, ideally one which can prioritize certain projects over others. For example, I'm able to identify which projects have the most accurate termini, but my current solution isn't able to take advantage of that information.

  • 1
    Can you describe your existing process/software in more detail so that other users can better understand how to improve upon it? – JoshC May 19 '19 at 1:48
  • Welcome to GIS SE! We're a little different from other sites; this isn't a discussion forum but a Q&A site. Please check out our short tour to learn about our focussed Q&A format. Are you using ArcMap, ArcGIS Pro or something else to do your linear referencing? What is your existing approach? Without telling potential answerers that, their volunteered time may be simply retracing your steps. – PolyGeo May 19 '19 at 1:50
  • Could you extend your current solution to take advantage of the termini accuracy? Assuming a 1 is best and 5 is worst, start with all of your 1's first, check for all overlaps, adjust the termini on the overlapping features as warranted, and change their accuracy numbers to match that of the current pass (so that you don't process them on subsequent passes). I think another thing that may help would be to settle on a accuracy/tolerance threshold. Do you want it accurate to the foot (station-plus), tenth of a mile, quarter mile, mile, etc? – Zachary Ordo - GISP May 20 '19 at 13:27
  • Thanks Zack. I'll noodle on that, but it sounds workable. – Keith May 21 '19 at 3:10
  • Thanks Zack. I'll noodle on that.....it sounds workable. Good point about the accuracy/tolerance threshold. For the most part, the percentage threshold suffices, but having another threshold would avoid overly adjusting very long projects, for example 10% of a 100 mile project is 10 miles which is an unreasonable adjustment. – Keith May 21 '19 at 3:15