How to join a field to a polygon layer when there are multiple records associated with each polygon

09-30-2021 03:14 PM
New Contributor II

Hello, I am a student working on an analysis project and was hoping someone might be able to help me. I have a polygon layer that I have created with a fairly empty attribute table, and am currently adding information to the table such as whether the polygon intersects with urban areas, food deserts, etc. I am also trying to add information about the land use within each polygon, but am running into a little bit of trouble. I have intersected my polygon layer with a land use layer, but because there are multiple land uses within some of the polygons, this is where I am struggling. Normally, I would simply use the "Join Field" tool to add the land use information to my polygon layer, but because there are multiple land uses associated with each polygon and therefore multiple records associated with each of the original polygons, I am unable to do this the way that I want. What I want is for the land use type that has the greatest area within the polygon to be the land use description associated with that polygon. I first attempted to use "Dissolve" to accomplish this, but because the land use information isn't numerical, there didn't appear to be a way for me to have the land use with the largest area per polygon chosen to be carried over after the tool was finished running.

In case that is confusing or hard to follow, hopefully this example will make sense. If I had a layer called Polygons and a record within that table with an OBJECTID of 1, and I intersected it with a land use layer, the resulting data layer might have two land uses associated with that polygon, and therefore two records where the FID_Polygons field would have 1 listed for both of them, but different land uses for them, and different acreages for them. If one of those records encompasses 1 acre of land of the original polygon, and the other record encompasses 2 acres of land of the original polygon, then I would want the land use associated with the second record to be the information that gets joined back to the original Polygons data layer. Selecting just the records with the largest areas for each FID_Polygons is where I am running into trouble and have gotten stuck. Thank you in advance for any advice!

I am using ArcGIS Pro version 2.6.0.

0 Kudos
2 Replies
MVP Esteemed Contributor

many to 1 is a relate

Overview of joins and relates—ArcGIS Pro | Documentation


... sort of retired...
MVP Regular Contributor

Right, I would use a relationship for this work. Have a primary key in each polygon (PK) this could be the object id (oid)*. Then each land use polygon that intersects your main polygon would get the same value as a foreign key (FK). Then you link the two features classes together with a one to many relationship.

*side note: I never use oid for this work they are unreliable and hard to maintain. I would make Global IDs or use some other attribute. But for a school project oid might be fine.