Question

Is there a way to iterate through a single feature class, comparing the value of one attribute to the next in a list?

  • 25 March 2021
  • 4 replies
  • 3 views

I am working with a roads dataset, and need to assign what is primary and what is secondary for each line segment. I have the line segments in a single feature class. Each segment has a Unique ID, a routeID, then the mile marker for the start and endpoint of the line. What I need to do is compare the mile markers for each line segment that share a routeID. The end goal (as illustrated in the attached image) is to eliminate areas of overlap (which will be marked secondary). I plan to accomplish this by seeing where the mile marker endpoint of one segment falls within the range of another segment that shares a routeid. So in the example attached, the segment that stretches from 5-7 would be marked as an overlap because endpoint 5 falls within the segment that stretches 0-6. Thanks!


4 replies

Userlevel 5
Badge +29

have a look at the lineonlineoverlayer. This will indicate what segments of each line overlap with another line. From there you can classify one as primary and one as secondary

have a look at the lineonlineoverlayer. This will indicate what segments of each line overlap with another line. From there you can classify one as primary and one as secondary

Unfortunately the line segments do not overlap. I apologize for not being more clear with the diagram, but those lines are as the diagram suggests, parallel in most cases. They represent lanes of a road where imagery has been collected, they do not have an intersecting spatial relationship

Userlevel 1
Badge +11

Hi @blevine​  Is there a center line for the road? It looks like a case of overlapping linear events. From your example of line 5-7 falling within the range of line 0-6, is 5-7 marked as overlap instead of 0-6 because 5 > 0 ? Also, are lines ever split?

Hi @blevine​  Is there a center line for the road? It looks like a case of overlapping linear events. From your example of line 5-7 falling within the range of line 0-6, is 5-7 marked as overlap instead of 0-6 because 5 > 0 ? Also, are lines ever split?

Hi Dan,

Essentially what we have is a series of 2 million points that represent image capture. We created the roads dataset based on those points (using the linebuilder transformer), but instead of one continuous route in one lane, it's been captured in different lanes at different times, or driven twice in two different lanes. We need to make that a singular continuous route for each unique routeid, which will eventually be broken back down into the points so we can "drive" along the road in order according to mileage marker. So we are eliminating overlap where it occurs to make the route continuous, otherwise we will have the imagery jump back and forth between lanes (since its ordered by mileage marker) rather than move in a smooth motion forward. To help clear this up I've taken some screenshot that show the type of areas we are looking to remove or trim. In the first we have one road with images twice (different lanes), in the second we have a small section that a road was imaged twice in a different lane.Example3Example2 

I figure since we have the attributes that indicate the low and high mileage endpoint of each line segment, we can compare the range of each segment against the other segments in the same unique routeid to see which ones fall complete or partially within another...that's where I'm struggling as I don't know of a transformer that will allow me to iterate through features in the same feature class like that.

Reply