I have a feature layer of locations of invasive plants (polygons). Those were entered by several different people, so there is a lot of overlays:

overlapping polygons

What I want to do is to dissolve all the overlapping polygons from one plant and one year, if their center lay within each other (like in the tool "Select layer by Location" -> HAVE_THEIR_CENTER_IN).

For this purpose I want to select all the polygons, that have their center in another one, as well as all the polygons that overlap with anotherone's center. So if A's center overlaps B, I want to select both A & B.

After this selection I plan to use the "Dissolve"-Tool, without any field specified and "Create multipart Features" unticked.

Unfortunately when I use "Select layer by location" and choose my layer both as Input Feature layer and as Selecting features, or when I leave Selecting features empty, it always selects all the polygons (I guess since they all overlap with themselves).

How can I select those polygons which have their center within another? It would be great if it would be a pure Modelbuilder/Toolbox solution without Python scripts, since my coworker (who will also need the model) doesn't know any Python.

  • So if the center of polygon A lies within polygon B, but the center of polygon B doesn't lie within A, what should happen?
    – GISGe
    Jan 5, 2018 at 12:50
  • And what if A and B have their center in each other, B and C too, but not A and C?
    – GISGe
    Jan 5, 2018 at 12:59
  • Hi GISGe, thanks for your very good question. I would like to select them all. So if: A has its center in B: select A & B C has its center in D, D its in E: select C, D & E my goal is to use dissolve (without any field, and with multipart feature unticked) once I have them all selected.
    – Ananucaa
    Jan 5, 2018 at 13:02
  • But you will still have overlapping polygons when the center criteria is not met. Why don't you just use Dissolve with create multiparts unchecked? How are you going to use those polygons afterwards?
    – GISGe
    Jan 5, 2018 at 13:09
  • the whole point is to dissolve only those polygons that overlap "a lot", since their we assume that it is one continuous patch of plants. If two polygons only overlap at the border, we assume its two seperate patches that were recorded a bit unprecise.
    – Ananucaa
    Jan 5, 2018 at 13:12

1 Answer 1


Here are a few steps for a partial solution. It won't work if groups "strongly overlapping" polygons touch each other. You could "clean" the data a little by unioning and then deleting small part, but this will rely on a threshold. It uses standard geoprocessing tools that you can combine in a model builder if you wish.

start by creating the centroid of each polygon (feature to point, with the inside option)

Then use spatial join from the points with the polygons to count the number of polygons touching each centroid.

Third, select the centroids with more than one polygon (select by attribute on the join_count field)

Fourth, select all polygons that intersect the selected points

Fifth, dissolve the selected polygons

Finally, inverse the selection and add those polygons to the dissolved ones.

  • It worked (with the exception that you mentioned). Thank you!
    – Ananucaa
    Jan 10, 2018 at 9:45

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.