1

i have a dataset containing many polygons. In this dataset some polygons have other polygons (as a donut) inside of them. So those island polgons are contained by only one polygon but it originated from the same layer and has the same attributes. I want to select and merge them but i dont know how to select/find them. It is possible to select polygons based on the number of donuts inside of them?

enter image description here

  • Welcome to GIS SE! Would you be able to edit your Question to revise it with the GIS software and version that you are using, please? – PolyGeo Apr 15 '14 at 10:08
2

If your ultimate aim is to remove all of the islands and if the island polygons have the same attributes and assuming you are using ArcGIS then you can use the Dissolve tool and bypass the need to select them:

ArcGIS dissolve

QGIS has a tool also called dissolve which will also allow you to select and attribute field to base the dissolve on:

QGIS Dissolve

  • Thanks for the response. But if i use the Dissolve tool, i create one big polygon because there are no gaps between the polygons that have a 'island' inside of them and the polygons That dont have an island. I'm using ArcGIS 9.3 and 10.All polygons have shared boundaries. – user29219 Apr 15 '14 at 10:01
  • OK, this is where the Dissolve Field option is useful. You said the islands have the same attributes as those they sit in, but I assume they have different attributes for the other larger polygons? If so tick the relevant field and it will dissolve based on that rather than everything in the layer. – MAJ742 Apr 15 '14 at 10:12
  • The problem is that they ALL have the same attributes. The islands and the lager polygons that surround them. The reason for this that form the beginning there was one big polygon and i used the roads lines from The Netherland to cut them into smaller pieces. So each polygon has the same attributes... I think that the only solution is to somehow select on the basis of polygons that have a more parts inside of them. But is this possible? – user29219 Apr 15 '14 at 10:18
  • Sorry I didn't get back to you on this, but glad you found the answer. You should post your comment below as an answer and accept it as the solution to show that the question has been resolved. – MAJ742 Apr 16 '14 at 9:58
1

One solution would be to use the tool Select Layer by Location (Data Management).

  1. With nothing selected, run that tool from the Search or Catalog tab. Set the Input Feature Layer to your polygon layer and choose completely_within as your Relationship. This should select all of the donut holes.
  2. With those selected, run the tool again, still choosing your polygon layer as the input, but now change the relationship. Intersect should work, assuming your polygons don't overlap. This should result in all of the donuts and holes being selected.
  3. You can now run the Merge tool from the Editor toolbar. Since all attributes are the same, you don't care which one you preserve. The result will be a multipart feature, but you can just use the Explode tool on that to get back to separate polygons.

Two other related questions are Filling in Donut Polygons using ArcGIS for Desktop? and Removing only donut holes from polygons using ArcGIS Desktop?. Use of the Union or Eliminate Polygon Part tools are suggested there, among other methods, but I'm not sure they would be any faster or less complex than my solution and your specific question was about selecting.

  • 1
    thanks for all the solutions. Yesterday i used the tool 'Neighbors polygons' and it worked for me! The output is a table which shows how many shared lines segments a polygon has with iets neighbors. After this i just have to select the polygons that have a shared line segment with only ONE neighbor polygon. These are the island polygons because all of the polygons that are not island have two or more neighbors. – user29219 Apr 16 '14 at 6:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.