0

I have a polygon dataset with thousands of polygons of various area sizes that was created from running the Multipart to Singlepart tool. I need a quick way to select all the polygons below a specified size and merge them with a contiguous neighbour (single vertex connection) as long as that neighbour is above a specified size.

I've played around with Near and Eliminate etc but not giving me the full result I need. There are situations where only a single small polygon would be connected (e.g., on #1 and #2 would exist, and that is fine, but when there are multiple small ones connected to each other with only one of them connected to the largest one is where I'm running into issues. E.g., I want polygons #2, 3, and 4 (all smaller than specified value) to be joined to #1 (closes polygon greater than specified value). But currently the tools I'm using are joining 4 to 3 and 2 to 1.

enter image description here

6
  • 5
    Can I assume you're using ArcGIS by the names of the tools? Is your data geodatabase, shapefile or other? In this situation a picture might help, annotated to show which polygon is being merged into which. Is python or model builder an option? Are attributes important in this case? Commented Sep 16 at 4:10
  • 3
    There's a bunch of ways to do this including cursors and Dissolve. Once you identify logic to pool the features, this will be easy.
    – Vince
    Commented Sep 16 at 4:31
  • Thanks both - I'll add a picture to show where it's going awry. Cheers Commented Sep 19 at 2:13
  • There are situations where only a single small polygon would be connected (e.g., on #1 and #2 would exist, and that is fine, but when there are multiple small ones connected to each other with only one of them connected to the largest one is where I'm running into issues. E.g., I want polygons #2, 3, and 4 (all smaller than specified value) to be joined to #1 (closes polygon greater than specified value). But currently the tools I'm using are joining 4 to 3 and 2 to 1. Commented Sep 19 at 2:31
  • What GIS software are you using, edit your question and add a tag
    – Bera
    Commented Sep 19 at 5:15

1 Answer 1

0

How about this as a workflow to explore? It's more of a grow out from rather than chain into approach.

  1. Select your large polygon you want to merge into, that would be a select by attribute from a list of known polygon ID's
  2. Select all polygons that touch it, thats your select by location.
  3. Remove from the selection any polygon not smaller than your big polygon.
  4. If selection number remains unchanged then you have achieved your desired selection and merge.
  5. Keep on repeating steps 2-3 until selection number does not change, then merge.
  6. Move onto the next large polygon.

You could probably do this in modelbuilder but I would suspect you have better control over looping and determining selection number using python.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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