Skip to main content
Solved

Self-intersection of donuts and how to fix it

  • March 19, 2026
  • 3 replies
  • 68 views

maschinensturm
Contributor
Forum|alt.badge.img+5

Hi everybody,

 

I have a similar issue to the one the creator of this thread has: 

The difference is that I'm dealing with donuts. The workaround from Takashi (buffer issue location → dissolve → aggregate) doesn’t work with donuts. The reason why this doesn't work is explained here: 

The GeometryValidator reports self-intersections in the wrong place for donuts. If I buffer the issue location, part of the donut that doesn’t need to be buffered gets buffered, and the actual issue location remains a problem. I also tried the GeometryValidator repair function, but this didn’t work either.

 

Attached is an example workflow which uses some public data that I use in the real workflow. You can download this data here (to big to attach): https://daten.gdz.bkg.bund.de/produkte/vg/vg250_ebenen_0101/aktuell/vg250_01-01.utm32s.shape.ebenen.zip

The workflow shows one example of the problem and my current workaround. Unfortunately, I can’t share the real workflow. In the real workflow, however, many geometries are generalised and much more data is included, which makes the problem much more common.


Currently, my best workaround is to buffer whole donuts by 2.5 - 3.5m. This obviously impacts the data quality, but I can’t find a better solution to the problem except to fix it literally by hand in ArcGIS Pro. However, this is too time-consuming as it impacts around 100 features in my workflow and I have to redo the process a couple of times. Does anyone know of a better workaround for this issue?


Many thanks in advance and kind regards,

Henning

 

 

Best answer by ebygomm

In 2025.2, the issue is reported in the correct location for me

 

3 replies

ebygomm
Influencer
Forum|alt.badge.img+48
  • Influencer
  • Best Answer
  • March 19, 2026

In 2025.2, the issue is reported in the correct location for me

 


ebygomm
Influencer
Forum|alt.badge.img+48
  • Influencer
  • March 19, 2026

There have also been some changes to the geometry validator since that thread was posted. There is now an Area Boundary Style when checking for Self Intersections that allows you to choose between Touching Donut Holes and Pinched Polygons.

I’m not clear whether you are looking to convert Donut Polygons with a self intersection which are OGC Valid to Pinch Polygons which are not OGC valid, or whether you need to ensure there are no self intersections at all


maschinensturm
Contributor
Forum|alt.badge.img+5

Hi ​@ebygomm,

Thanks for the quick reply!

I’m using FME 2025.0.3. These are the settings I have for the GeometryValidator in this version:

I have to ensure there are no self-intersections at all. I’ll see if I can quickly update to 2025.2 on one machine specifically for this workspace.
If not, are there any other possibilities that I could try?
Thanks and kind regards

EDIT: I installed version 2026.1, and it now works as intended. It really was a version issue.