[GRASS-user] remove holes from polygon

Hi GRASS list,

I am kind of lost and hope someone can point me in the right direction.

Is there a way to automatically (not by manually editing the dataset)
remove all holes in all areas of a vector dataset (I guess that are
polygons without a category within polygons with a category).

Thanks a lot
  robert

On 8/10/20 18:11, Robert Nuske wrote:

Hi GRASS list,

I am kind of lost and hope someone can point me in the right direction.

Is there a way to automatically (not by manually editing the dataset)
remove all holes in all areas of a vector dataset (I guess that are
polygons without a category within polygons with a category).

What do you mean by remove ? Fill them as separate polygons ? Make them part of the containing polygon ?

If the latter and if the holes are all smaller than existing polygons, one possible path I see is making them into actual areas using v.centroids and then merge them with the outside polygon using v.clean with the tool=rmarea.

Moritz

Hi Moritz

Is there a way to automatically (not by manually editing the dataset)
remove all holes in all areas of a vector dataset (I guess that are
polygons without a category within polygons with a category).

What do you mean by remove ? Fill them as separate polygons ? Make them part of the containing polygon ?

The holes shall become parts of the bigger containing polygon.

I dreamed there could be a way to drop "rings" which do not have categories. Or something like PostGIS' ST_ExteriorRing.

If the latter and if the holes are all smaller than existing polygons, one possible path I see is making them into actual areas using v.centroids and then merge them with the outside polygon using v.clean with the tool=rmarea.

Interesting, that could work.

I ended up using a slight variation, using dissolve instead of clean to not having to come up with a minimum area:

v.centroids in=poly_with_holes out=poly_centroids

v.category in=poly_centroids option=del cat=-1 out=poly_no_cat
v.category input=poly_no_cat output=poly_same_cat option=add step=0

v.dissolve in=poly_same_cat out=poly_no_holes

Thank you very much Moritz!
   Robert