Question

Is there a way to do segment snapping for polygons but dont snap to self?

  • 28 June 2018
  • 4 replies
  • 32 views

Badge

Hi Im snapping a large dataset of complex polygons with donuts to remove overlaps and such, I tried the sliver remover but it takes forever and eventually crashes with no real reason why in the log, I've tried allsorts of validation to fix this but still have the problem with sliver remover crashing. So now Im using the snapper, but the problem I have is some of my really thin polygons snap to themselves creating degenerate geoms, is there a way to do segment snapping but don't snap to self?


4 replies

Userlevel 2
Badge +17

Hi @smurf,

We have re-written and renamed the SliverRemover in FME 2018 (to AreaGapAndOverlapCleaner). Please try cleaning your polygons with this new version - I think you should get better results.

Badge

Hi @smurf,

We have re-written and renamed the SliverRemover in FME 2018 (to AreaGapAndOverlapCleaner). Please try cleaning your polygons with this new version - I think you should get better results.

I have now upgraded to 2018, my results are much improved but Im still finding it closing holes in donut shaped polygons that are below my tolerance even when there is another polygon filling the hole. I would expect it not to touch these as there is no gap or overlap but it seems to be closing them. I have better results now but still not the desired results.

 

 

Userlevel 2
Badge +17
I have now upgraded to 2018, my results are much improved but Im still finding it closing holes in donut shaped polygons that are below my tolerance even when there is another polygon filling the hole. I would expect it not to touch these as there is no gap or overlap but it seems to be closing them. I have better results now but still not the desired results.

 

 

Hi @smurf,

 

The tolerance setting defines the minimum distance between point before they are considered coincident. Any polygon smaller than the tolerance would be considered a point.

 

 

The tolerance setting should have quite a small value, or set to Automatic.

 

 

We recently added tolerance to many of our transformers in order to deal with vertices not being considered matched because they were a very small distance apart, often due to binary rounding.

 

 

If you wish to fill larger gaps between the polygons, please set Advanced Parameters - Fill All Gaps to Yes.

 

 

Badge
Hi @smurf,

 

The tolerance setting defines the minimum distance between point before they are considered coincident. Any polygon smaller than the tolerance would be considered a point.

 

 

The tolerance setting should have quite a small value, or set to Automatic.

 

 

We recently added tolerance to many of our transformers in order to deal with vertices not being considered matched because they were a very small distance apart, often due to binary rounding.

 

 

If you wish to fill larger gaps between the polygons, please set Advanced Parameters - Fill All Gaps to Yes.

 

 

HI Dave,

 

 

What I'm seeing is that I have donut hole that is filled by another polygon so there is no gap or overlap and it is attempting to close it, there is another polygon in the donut hole therefore I wouldn't expect it to try and close it. I will try with 0 tolerance, will it only fix overlaps then?

 

 

Reply