Question

Bug in negative buffering


Badge +1

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

Userlevel 2
Badge +16

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

Userlevel 2
Badge +17

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.

Badge +1

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

It is done.

 

 

Badge +1

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

 

Userlevel 4
Badge +13

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

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

Reply