Join data from another layer based on spatial location (based on max coverage)

04-10-2014 04:12 AM
Occasional Contributor
I'm using 'Data > Join Data' to join Join attribute data from another polygon layer based on spatial location.
Set at "Each polygon will be given the attributes of the polygon it falls completely inside of the layer being joined", you get what it says on the tin, but those polygons that share adjacent polygons result with <Null> attributes.

I would like to populate my main layer file with the attributes from the source polygon layer that have the largest coverage. In other words, the polygon that has the largest (MAX) coverage, is used in preference to the smaller areas.

The 'Join Data' feature doesn't allow for this functionality. :(

Does anyone know how to do this?
0 Kudos
1 Reply
Regular Contributor
Let's see if I understand the problem you're trying to solve.

  • You have one polygon layer containing, say, forested areas.  Let's call this layer FORESTED

  • And another polygon layer containing counties (large administrative areas).  Let's call this layer ADMIN

For each polygon in FORESTED, you want to find out which ADMIN polygon covers the most area of the FORESTED polygon.  That is, a FORESTED polygon may intersect with 3 different ADMIN areas, and you want to find out which of the 3 ADMIN areas takes up the most area in the FORESTED polygon.

If this is the case...

If you have version 10.1, use the Tabulate Intersection tool.

If you don't have 10.1, but an earlier version, then any of the 3 primary overlay tools, Intersect, Identity, and Union would do the trick... followed by the Summary Statistics tool to get the MAX area of the ADMIN polygons using the FORESTED_FID as the case field.
0 Kudos