Select to view content in your preferred language

Spatial join/intersect with overlapping polygons, return attributes from overlapping features into one field

157
5
Jump to solution
Thursday
AaronKoelker
Frequent Contributor

Hello. Say, for example, I have some points and overlapping zone polygons. What would be the most effective way to find the intersecting zones for each point and combine the zone names into one field on the point feature class? See example below: if the X point falls within three zones, and I'd want the Zone field for the point to list those zones as comma separated. 

AaronKoelker_0-1780591910006.png

I'm sure I could write something in python, but this feels like there may be a simpler solution with geoprocessing tools that I'm overlooking. I tried a Spatial Join, but it outputs a new point for each overlapping zone feature (even though I tried to set it to concatenate values in the field mappings). Intersect does the same thing. 

-Aaron
0 Kudos
2 Solutions

Accepted Solutions
RyanUthoff
MVP Regular Contributor

The spatial join tool should work. I just tried it and it worked for me. 

Make sure to set the join operation as one to one, then create a new field in the field map section.

From there, select your polygon table, select Concatenate as the action, and specify your zone field.

Then run the join and it should work.

RyanUthoff_0-1780593686315.png

RyanUthoff_1-1780593731825.png

End result:

RyanUthoff_2-1780593817051.png

 

 

View solution in original post

Robert_LeClair
Esri Esteemed Contributor

Most effective is a one-to-one Spatial Join and set the zone-name field’s Field Map merge rule to Concatenate.

Try these steps:

1. Run Spatial Join (Analysis) or Add Spatial Join (Data Management).
- Target features = Points
- Join features = Zone polygons
- Join operation = Join one to one
- Match option = Within (common for points-in-polygons)

2. Expand Field Map.
- Find the polygon field that has the zone name (e.g., `ZoneName`)
- Set Merge rule/Action = Concatenate
- Set Delimiter = `, `

Output: each point gets a single field like `ZoneA, ZoneB, ZoneC` when it falls in multiple overlapping zones.

I tested this on data setup exactly as your screen graphic and it worked for me.  Yes, it does create a new feature class but I guess you could copy/paste it to another point feature class?

View solution in original post

5 Replies
MikeVolz
Frequent Contributor

Might the Identity tool work here.

0 Kudos
AaronKoelker
Frequent Contributor

While Spatial Join worked when set up correctly as the other suggested, I did give this a try out of curiosity too. It returns a new point for every possible combination of zone pairs. So in my example I would've got nine points with zone fields that said: A, A | A, B | A, C | B, A, | B, B | B, C | C, A | C, B | C, C . 

-Aaron
0 Kudos
RyanUthoff
MVP Regular Contributor

The spatial join tool should work. I just tried it and it worked for me. 

Make sure to set the join operation as one to one, then create a new field in the field map section.

From there, select your polygon table, select Concatenate as the action, and specify your zone field.

Then run the join and it should work.

RyanUthoff_0-1780593686315.png

RyanUthoff_1-1780593731825.png

End result:

RyanUthoff_2-1780593817051.png

 

 

Robert_LeClair
Esri Esteemed Contributor

Most effective is a one-to-one Spatial Join and set the zone-name field’s Field Map merge rule to Concatenate.

Try these steps:

1. Run Spatial Join (Analysis) or Add Spatial Join (Data Management).
- Target features = Points
- Join features = Zone polygons
- Join operation = Join one to one
- Match option = Within (common for points-in-polygons)

2. Expand Field Map.
- Find the polygon field that has the zone name (e.g., `ZoneName`)
- Set Merge rule/Action = Concatenate
- Set Delimiter = `, `

Output: each point gets a single field like `ZoneA, ZoneB, ZoneC` when it falls in multiple overlapping zones.

I tested this on data setup exactly as your screen graphic and it worked for me.  Yes, it does create a new feature class but I guess you could copy/paste it to another point feature class?

AaronKoelker
Frequent Contributor

Thank you both @RyanUthoff and @Robert_LeClair , the issue was the "Join one to one" setting, I was using "one to many". Sort of confusing in this instance. 

-Aaron