Skip to main content

Hi FME Guys

 

I'm struggling with a data situation that occurs frequently in my daily work. When I have a polygon feature it may occur that this polygon is composed from "thin" and "thick" sections. See below a screenshot of such a situation.

I'm now looking for a way to

  1. identify affected polygon features
  2. identify "thin" sections from this feature
  3. remove the thin sections or at least cut them from the "thick" parts.

Each solution should keep existing Z-values as I'm dealing with 3D data.

 

Any ideas how to achieve the desired result?

You can try the AreaAmalgamator to generate triangles in the narrow sections, then use the (dissolved) triangles to clip the original feature.


I have worked out something that looks like to work for your example:


I have worked out something that looks like to work for your example:

Thanks for your solution, the crucial point is the tolerance in Intersector Transformer, How could I control it, so the algorithm fits for multiple solution like the one I attached. They are in principle the same but the thickness of the "thin" section may vary.


Hi @whkarto, if you could specify the maximum width of the thin parts, this workflow might help you .

[Edit] Removed an excess transformer.


Hi @whkarto, if you could specify the maximum width of the thin parts, this workflow might help you .

[Edit] Removed an excess transformer.

Hi @Takashi Iijima​ , I want to detect thin parts in landcover data which has no overlaps or gaps, I tried your method above and I only got a lot overlapping polygons from DonutHoleExtractor, thin parts of polygons are not flagged, is there anything wrong? Here's a sample I tested.

DonutHoleExtractor


Hi @Takashi Iijima​ , I want to detect thin parts in landcover data which has no overlaps or gaps, I tried your method above and I only got a lot overlapping polygons from DonutHoleExtractor, thin parts of polygons are not flagged, is there anything wrong? Here's a sample I tested.

DonutHoleExtractor

Hi @bobo​ Hm, perhaps your threshold for Generalizer has to be set lower before the Buffer. A look into your workspace would be helpful! Since this is a older thread I would suggest posting a new question with your workspace attached!


Reply