Skip to main content
Question

Bug in negative buffering


chau
Contributor
Forum|alt.badge.img+3
  • Contributor

We have noticed that when we do negative buffering on various polygons the results are sometimes missing parts (red: original, yellow: buffer):

In the above example we expect a slightly smaller yellow polygon inside the the area marked with black.

The workbench (attached, including input data) used to create the above example looks like this (the validator is set to all):

We are still using FME 2016 in production due to various reasons and the above is indeed made using FME 2016. In the above example the bufferer rejects the input geometry (INVALID_GEOMETRY_TYPE), though the yellow part is still the result from the rejected port and apparently looks fine except from the missing area.

We have tried the same workbench in FME 2018 and though it doesn't reject the geometry the same part is still missing:

5 replies

erik_jan
Contributor
Forum|alt.badge.img+18
  • Contributor
  • May 11, 2018

Please submit this case to www.safe.com/support


takashi
Influencer
  • May 11, 2018

Hi @chau, I was able to reproduce the issue with a simplified donut geometry. Bufferer with negative buffer amount seems to always drop a peninsula-like part that sticks out into the hole. Hope someone from Safe takes a closer look at this: negative-buffer-on-donut.fmwt (FME 2018.0.0.2)

This could be a workaround: separate the source donut into its outershell and holes, perform buffering separately, then re-build a donut from the resulting buffers.


chau
Contributor
Forum|alt.badge.img+3
  • Author
  • Contributor
  • May 11, 2018
erik_jan wrote:

Please submit this case to www.safe.com/support

It is done.

 

 


chau
Contributor
Forum|alt.badge.img+3
  • Author
  • Contributor
  • May 11, 2018
takashi wrote:

Hi @chau, I was able to reproduce the issue with a simplified donut geometry. Bufferer with negative buffer amount seems to always drop a peninsula-like part that sticks out into the hole. Hope someone from Safe takes a closer look at this: negative-buffer-on-donut.fmwt (FME 2018.0.0.2)

This could be a workaround: separate the source donut into its outershell and holes, perform buffering separately, then re-build a donut from the resulting buffers.

Hi @takashi, thanks for reproducing. I too hope that they can fix it, so we can have more faith in the Bufferer in the future :) We have already made a custom transformer which buffers the outershell and the holes separately and clipping the results together in the end. But performance wise we expect this to be considerably slower than a purpose build Bufferer

 


fmelizard
Safer
Forum|alt.badge.img+18
  • Safer
  • May 25, 2020
erik_jan wrote:

Please submit this case to www.safe.com/support

@erik_jan @chau @takashi This problem was fixed via FMEENGINE-15661 for FME 2020.0


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings