Skip to main content

I would like to fill the holes or patch the gaps that are not really holes (see image), but in the output I don’t get any attributes. Why is that, and what is the best method? I try Areaamalgamator but ii cannot retrieve the attributs in output…

thank you

 

Hi ​@marionmahot ,

You can use the Generate List option in the AreaAmalgamator (Amalgamation Mode: Self Amalgamation) to save the attributes of input feature into a list attribute and propagate it to output feature. To restore the original attributes from the list, consider using ListExploder or ListIndexer.


Hi ​@takashi,

Thank you but I’m trying to use the areaamalgamator but I’m not getting the expected results. My goal is to fill the interior holes, but I would like to avoid such strong modifications to the outer boundaries (see 1 in the image: the result is shown in red, the source in grey — ideally I would like the contour shown in green, but the output is overly generalized).

Depending on the method used, the holes may or may not be filled (see 2 in the image), but in both cases the resulting boundaries are not satisfactory. In some cases, I need to fill interior holes of around 7000–8000 m². However, when applying these same values to exterior areas, the outer boundaries are excessively simplified (see 3 in the image).

Do you know of an alternative method or approach that would allow hole filling without such aggressive boundary generalization?

Thank you

 


You can use DonutHoleExtractor to easily fill (remove) “real” holes - the island-like shapes highlighted by blue in the screenshot below. I understand the challenge is how you can fill the peninsula-like shapes highlighed by green.

How do you determine if a peninsula should be filled? You mentioned about a criteria of area 7000-8000 m², but I think another criteria - the maximum width of the neck of the peninsula would be requied. How do you think of this?

Also, it would be better if you could share a sample data with us, to consider a solution specifically.

 


Yes, indeed, setting a maximum width constraint would be better — I would suggest around 1000 m as the upper limit. I’m attaching an example.

Thank you so much


I created an experimental workspace. A combination of AreaAmalgamator and Dissolver was able to be used to extract areas to be filled. See the attachment to learn more.

Source Polygon
Areas to Fill - blue: real holes, red: pseudo holes (7,000+ m2)
Result after Filling

[Updated the attachment to v2]


@takashi thank you so much, perfect. 😊