Skip to main content

Folks,

This is a question of cleanup and an answer here will decide what technology is best for dealing with this issue.

I have a number of Mapinfo tables that should contain typical simple multi-SEGMENT polylines.

However due to some sort of conversion or creation error some of the objects are mutli-SECTION polylines. For those unfamiliar with this object type what I mean is a series of LINES that don't perfectly start/end at the next line in the chain have been aggregated into a single object. For Mapinfo's pupose this looks like a single polyline but doesn't have the same properties. Each SECTION maintains it's individual "sub-geometry" within the multi-SECTION polyline.

Now what's happening is that when these objects are converted via FME to DWG the only aggregate type DWG supports is a thing called a block. Now what I'm getting is few 100 blocks mixed with a few 1000 true polylines.

As an aside the recipient of the DWG didn't know what these oddly named blocks were and EXPLODED them. Now when they are looking for the polyline they're finding all these broken segments.

Is there a Transformer\\ series of transformers in FME that can "repair" these objects?

I'd imagine a process of degenerating the object into it's component lines and then using some kind of end-point analysis snap the end points together and then reconstitute the lines into a polyline.

I'd also considered degenerating to vertices and doing a fuzzy match of coordiantes but there's no guarantee of a sense of order to create a polyline from the individual points.

I was considering doing this in Mapinfo but if there are some bits in FME I can use it will probably be faster.

Your assistance is appreciated.

It's possible that FME might read the multi-section polylines as a 'path'. You can check that by looking at the MapInfo data in Data Inspector. If FME does treat the multi-section polylines as a path, then use PathSplitter followed by a Snapper and then either PathBuilder or LineCombiner (LineJoiner in older versions of FME). In the Snapper & LineCombiner use a Group By based on the polyline ID or something similar.

If FME doesn't see the multi-section polyline as a path, then use Chopper (Max. Vertices 2) to make a series of two vertex lines. Then use Snapper & LineCombiner with an appropriate Group By attribute.

A sample of the MapInfo dataset would help if the above doesn't work


It's possible that FME might read the multi-section polylines as a 'path'. You can check that by looking at the MapInfo data in Data Inspector. If FME does treat the multi-section polylines as a path, then use PathSplitter followed by a Snapper and then either PathBuilder or LineCombiner (LineJoiner in older versions of FME). In the Snapper & LineCombiner use a Group By based on the polyline ID or something similar.

If FME doesn't see the multi-section polyline as a path, then use Chopper (Max. Vertices 2) to make a series of two vertex lines. Then use Snapper & LineCombiner with an appropriate Group By attribute.

A sample of the MapInfo dataset would help if the above doesn't work

I'll give a go @MarkAtSafe and let you know.

 


It's unclear what the "multi-SECTION" means, therefore no one could provide a correct answer. Firstly read the source dataset with FME Data Inspector, select a so-called "multi-SECTION" feature, and see what geometry type (IFME***) is shown in the Feature Information window.

I suppose it would be one of IFMEAggregate and IFMEPath. The solution would be different depending on the geometry type.


It's unclear what the "multi-SECTION" means, therefore no one could provide a correct answer. Firstly read the source dataset with FME Data Inspector, select a so-called "multi-SECTION" feature, and see what geometry type (IFME***) is shown in the Feature Information window.

I suppose it would be one of IFMEAggregate and IFMEPath. The solution would be different depending on the geometry type.

Thanks for the reply @takashi. I apologies my description of a multi-section polyline wasn't clear. I will review your input and try to understand what FME sees these objects as.

 

Thanks again.

Reply