Question

OffsetCurveGenerator breaks apart lines


Badge +14
  • Contributor
  • 120 replies

I am running into a issue with OffsetCurveGenerator. There are some instances where it drops nodes from the original linework and breaks the output line into an aggregate, I assume this is beacuse it folds on itself.

The uppermost grey line below is the original. The green lines are generated offsets at various distances. Note that the one at the bottom has lost a vertice towards the corner. The linecount coming out of the transformer is correct, but if I run a deaggregator, the total number of lines has increased. As the red line illustrates it has split at the corner.

This is not an issue in most occurrences, but I want to run some Snippers on the start and end vertex downstream and the Snipper treats the lines as if they where deaggregated. I tried working around this by first running a Deaggerator followed by a LineCombiner. But if I do the lines sometimes flip their original direction (depending on the order in which it was rebuilt), which results in the end vertexes I wanted to snipp changing place.

Any ideas for a workaround?

offsett


3 replies

Userlevel 1
Badge +11

Hi @aron There is already an issue about offsets get directions reverse of the input line - FMEENGINE-67304. Left lines generally have the same directions and right lines are usually reversed. We don't guarantee the direction with the current version of the OffsetCurveGenerator.

 

Yes, the offset line will become an aggregate if a segment from the input line shrinks to 0 length as the offset gets further away. I wasn't able to reproduce your problem with the LineCombiner. Can you attach here some sample data?

 

Use an Orientor to reverse line direction. If you're not sure of which lines need reorienting, you could try CoordinateExtractors before and after the OffsetCurveGenerator and then test for changes.

Badge +14

Hi @aron There is already an issue about offsets get directions reverse of the input line - FMEENGINE-67304. Left lines generally have the same directions and right lines are usually reversed. We don't guarantee the direction with the current version of the OffsetCurveGenerator.

 

Yes, the offset line will become an aggregate if a segment from the input line shrinks to 0 length as the offset gets further away. I wasn't able to reproduce your problem with the LineCombiner. Can you attach here some sample data?

 

Use an Orientor to reverse line direction. If you're not sure of which lines need reorienting, you could try CoordinateExtractors before and after the OffsetCurveGenerator and then test for changes.

Hi @danatsafe​ ,

 

Sorry, but how do I to get the direction from the CoordinateExtractor? Since the line is being offset the first (or last) vertex will always have a different x-y. Or is there some clever trick to get the direction?

 

Have attached a sample of the offending data.

 

 

Userlevel 1
Badge +11

Hi @danatsafe​ ,

 

Sorry, but how do I to get the direction from the CoordinateExtractor? Since the line is being offset the first (or last) vertex will always have a different x-y. Or is there some clever trick to get the direction?

 

Have attached a sample of the offending data.

 

 

Hi @aron I've now filed FMEENGINE-73087 about this problem which has existed since FME 2020. The OffsetCurveGenerator can create aggregate lines but this is easily worked-around with a Deaggregator and LineCombiner.

Reply