Singlepart to Multipart

512
3
Jump to solution
05-01-2021 03:53 AM
FinbarGillen
Occasional Contributor

Hi,

I have a dataset of polygons.. a large quantity of these share a common ID.

The goal is to have a final dataset with one row per ID but also preserve the polygon boundaries (dissolve tool will not work in this case).

Was looking for singlepart to multipart tool where I could group by an ID field but can't find any... has anyone done this in ArcPy and would be willing to share their code? If there is a tool that I have missed even better.

Thanks!

0 Kudos
1 Solution

Accepted Solutions
JayantaPoddar
MVP Esteemed Contributor

Polygons having common end vertices, when dissolved, will get their boundaries merged for a single-feature.

That said, check if the following workaround works for you (Be careful: This workflow will contain induced errors).

Step-1: Create a negative buffer 

JayantaPoddar_0-1619871929767.png

Step-2:

Use Dissolve on the buffered polygon FC.

On a smaller scale, the dissolved/ buffered polygon looks fine.

JayantaPoddar_2-1619872300262.png

 

But when zoomed into the boundary (1:10 here), you can see the gaps.

JayantaPoddar_3-1619872492486.png

N.B.: Use these steps at your own discretion ;)

 



Think Location

View solution in original post

3 Replies
JayantaPoddar
MVP Esteemed Contributor

Polygons having common end vertices, when dissolved, will get their boundaries merged for a single-feature.

That said, check if the following workaround works for you (Be careful: This workflow will contain induced errors).

Step-1: Create a negative buffer 

JayantaPoddar_0-1619871929767.png

Step-2:

Use Dissolve on the buffered polygon FC.

On a smaller scale, the dissolved/ buffered polygon looks fine.

JayantaPoddar_2-1619872300262.png

 

But when zoomed into the boundary (1:10 here), you can see the gaps.

JayantaPoddar_3-1619872492486.png

N.B.: Use these steps at your own discretion ;)

 



Think Location
DavidPike
MVP Frequent Contributor

Multipart polygons cannot share edges.  IMHO the method Jayanta describes is the only pragmatic approach to this. 

FinbarGillen
Occasional Contributor

Thanks for the reply guys! Will use the accepted solution above for now! 

0 Kudos