>>>>> I want to remove islands smaller than a certain threshold from my
>>>>> vector map or if that is not possible all islands.
>>>>>
>>>>> I found some trick on an old manual page of v.extract. But this
>>>>> does not work anymore. Is there a new trick?
>>>> Did you have a look at v.clean:
>>>> https://grass.osgeo.org/grass77/manuals/v.clean.html
>>>> with tool=rmarea
>>> as far as I understood, rmarea does remove small areas but not
>>> islands (holes) within areas. At least i didn't find a way to remove
>>> islands with v.clean.
>> Ah, OK. Got that wrong, sorry.
>>
>> I don`t think holes have an area (but I may be wrong)....
>> So you might have to add a centroid first?
>> https://grass.osgeo.org/grass76/manuals/v.centroids.html
When you say "remove islands" do you mean to "fill" small holes, and
make them part of the surrounding polygon? If so, then this the
procedure works:
First buffer the original polygon by some distance "dist" that is big
enough to cover what you consider "small".
Then buffer again by "-dist".
The small holes get filled on the first buffer, and the original
polygons are restored without those holes with the negative distance by
the second buffer.
I guess you hint towards mathematical morphology (dilation+erosion) in
the vector world.
If there is no way to only treat the islands/holes (which i don't know
about), it will change the outer boundary as well. Fjord like structures
will vanish. Neighboring areas might even merge if close enough. And
since one can not control the buffer style of sharp edges (like in
postgis, geos), everything will become "rounder".
thanks
robert
_______________________________________________
grass-user mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-user