Skip to main content

I have a tabfile that I want to migrate to a database. But first, I need to correct som geometryerrors. I have a polygon layer with some lines on polygon, please see picture below. I want to have them removed. One other thing that is weird is that when I use the transformer GeometryFilter the line object won't filter as lines. They will filter as areas.

I Appreciate all the help I can get.

Could those objects actually be polygon slivers rather than lines? What do you see when you inspect the geometries in the FME Inspector? Can you post a screenshot here?


I agree with @david_r, look like slivers to me, you can use the AreaGapAndOverlapCleaner for that.


Easiest way to get rid of slivers;

 

  1. Measure the sliver width for a few slivers
  2. Buffer 3/4 the amount so the edges overlap (1 ft gap = .75 ft buffer)
  3. Dissolve with a group by for each unique polygon
  4. Buffer the newly dissolved polygon with the same number as a negative to get it back to its original size.

 

You may have to play around with the buffering to get the desired result, but that's how I do it and it's pretty clean.

 

 


Hi @david_r . The geometry is FME_donut. How can I handle that? I know that some "lines" are defined as fme_polygons.


Easiest way to get rid of slivers;

 

  1. Measure the sliver width for a few slivers
  2. Buffer 3/4 the amount so the edges overlap (1 ft gap = .75 ft buffer)
  3. Dissolve with a group by for each unique polygon
  4. Buffer the newly dissolved polygon with the same number as a negative to get it back to its original size.

 

You may have to play around with the buffering to get the desired result, but that's how I do it and it's pretty clean.

 

 

Hi @jlbaker2779 is this done in AreaGapAndOverlapCleaner ?


If it's a donut you could perhaps decompose it into individual parts (DonutHoleExtractor), repair the individual parts and then re-build the donut again (DonutBuilder).


Hi @jlbaker2779 is this done in AreaGapAndOverlapCleaner ?

In this series using 3 transformers;

 

Bufferer (positive buffer of X units)

Dissolver (group by unique values)

Bufferer (negative buffer of X units)

 

That will also change the lines to polygons and then dissolve them into the original polygon. The AreaGapAndOverlapCleaner will only allow for polygons to be fixed. The lines will remain unchanged.


If it's a donut you could perhaps decompose it into individual parts (DonutHoleExtractor), repair the individual parts and then re-build the donut again (DonutBuilder).

How do I repair it? Also some objects that looks like a line are defined as fme_polygon. I would like to remove those lines and keep the donuts. How do I do that?


If it's a donut you could perhaps decompose it into individual parts (DonutHoleExtractor), repair the individual parts and then re-build the donut again (DonutBuilder).

When it comes to line as an object think I solved it by readjusting the parameters in AreaGapAndOverlapCleaner. But what do you mean by repair when it comes to donts? What do I need to do?


Reply