Question

How to add measures to a line using another line/route with measures?

  • 14 February 2019
  • 9 replies
  • 1 view

Badge

I want to use LineOnLineOverlayer similar to how PointOnLineOverlayer works, to overlay two line feature classes (one that has measures) and extract measures to the other line feature class. These are features from an LRS db so they should be coincident and intersect exactly. However, I'm getting unexpected results and am unable to extract measures once the LineOnLineOverlayer has run.

Is there a better way to do this?


9 replies

Userlevel 1
Badge +21

Do the features match exactly, or are colinear with different start/end points?

If they match exactly, you can use a MeasureExtractor to extract the measure for the whole line as a list, use a spatialrelator to find lines that are equal to each other and transfer the list by merging attributes, then a measure setter to add the measure to the line.

Badge

Thanks for your response @egomm! They are colinear with different start/end points. The base feature class with the measures acts as the routes, and the other event feature class with linear attributes in general has smaller segments with different start and end points. In the attached image I'm looking to apply the measures from the "Line with Measure" to the start/end points to the colinear segments intersecting it.

Userlevel 1
Badge +21

Thanks for your response @egomm! They are colinear with different start/end points. The base feature class with the measures acts as the routes, and the other event feature class with linear attributes in general has smaller segments with different start and end points. In the attached image I'm looking to apply the measures from the "Line with Measure" to the start/end points to the colinear segments intersecting it.

I've just checked and the line on line overlayer should produce an output where the line is broken into segments and each has measures. If you set separate collinear segements to yes however, you won't get the output you want.

I suspect you need to carefully manage what attributes are merged/dropped to get the output you want.

Badge

I've just checked and the line on line overlayer should produce an output where the line is broken into segments and each has measures. If you set separate collinear segements to yes however, you won't get the output you want.

I suspect you need to carefully manage what attributes are merged/dropped to get the output you want.

How do I extract the measures? When I check the result in Arc after running the LineOnLine Overlayer (FME 2016), the results don't have measures associated with them unfortunately. I tried using the Measure Extractor to extract at Individual Vertex by Index, Index=0, and Index = -1, and the job fails when it reaches the Measure Extractor transformer.

Userlevel 1
Badge +21

How do I extract the measures? When I check the result in Arc after running the LineOnLine Overlayer (FME 2016), the results don't have measures associated with them unfortunately. I tried using the Measure Extractor to extract at Individual Vertex by Index, Index=0, and Index = -1, and the job fails when it reaches the Measure Extractor transformer.

It may be that the functionality isn't quite the same in FME2016?

After the LineOnLine Overlayer are you getting the correct segments reporting an overlap of 2?

Badge

It may be that the functionality isn't quite the same in FME2016?

After the LineOnLine Overlayer are you getting the correct segments reporting an overlap of 2?

Ah, so I'm only getting Overlaps = 1 for all the features.

Userlevel 1
Badge +21

Ah, so I'm only getting Overlaps = 1 for all the features.

I think probably the lack of tolerance in 2016 lineonlineoverlayer means you are not finding the overlapping segments which is why you don't see the measures transferred
Badge
I think probably the lack of tolerance in 2016 lineonlineoverlayer means you are not finding the overlapping segments which is why you don't see the measures transferred

Yep, that is it. Upgraded to 2018 and it works. Thanks!

Userlevel 2
Badge +17

You can use the PointOnLineOverlayer to transfer measure from a line to points on it.

A possible way is to decompose the collinear segments into individual vertex points, set measure to them with the PointOnLineOverlayer, and restore the original segments with the PointConnector.

Reply