Given two tables each with unique attribute sets, how do I merge the attributes of one layer onto the other, or create a new layer containing the attributes from both?

The image shows my two layers: the white cells underlie the red cells. I would like the red cells to "sample" the attribute data form the white cells. I've tried to do a spatial join (right clicked first layer) but I get an empty table.

enter image description here


I tried intersect (green layer) but it generates a larger area than the red cells layer. enter image description here

UPDATE 2 - using centroids

enter image description here

  • 2
    Union, Identity or Intersect geoprocessing tools or spatial join... depending on how you want the non-overlapping polygons to be handled. Because two polygons rarely align perfectly it's best to convert one layer to centroids then spatial join to the other to join the attributes - if circumstances permit. Otherwise you'll have a significant number of sliver polygons created. Jun 15, 2016 at 0:04
  • @MichaelMiles-Stimson: Identity only seems to work on one input dataset, not two. I just want to pass the white layer data (spatially larger; more cells) to the red layer (spatially smaller; fewer cells). Intersect does something unexpected (to me) - see updated question.
    – val
    Jun 15, 2016 at 0:19
  • Identity resources.arcgis.com/en/help/main/10.2/index.html#//… the result is all of the input overlaid with the identity features with the identity features not intersecting are not included. Intersect resources.arcgis.com/en/help/main/10.2/index.html#/Intersect/… contains only areas common to both. Can you explain a bit more about your inputs and what you're trying to achieve and I'll try to put together a workflow with the minimum amount of detritus. Jun 15, 2016 at 0:39

1 Answer 1

  1. Convert the red cells to centroids (points, inside) preserving the unique ID.

  2. Spatial Join the red points to the white polygons. Start the join from the red points from step 1 to the white polygons. Now the red centroid points have all the white data in them. Using the right click spatial location join is fine.

  3. Now Attribute Join the red polygons to the red point using the Unique ID you preserved. Using the right click attributes join is fine.

You now have all the white info in the red polys.

If the red cells are larger than than white this will not work. In this scenario convert the white cells to centroids (inside points). Then start the spatial join (right click) from your red polygon to the new white points. At the bottom of the spatial join dialog choose the statistics you want, mean, min, max, etc.

  • Assuming the red cells are no larger than the white ones... what if the red areas are contiguous then only one overlapping feature will be attributed. The better option is to spatial join white to red with 'HAVE_THEIR_CENTER_IN' provided that the white polygons aren't multipart. Jun 15, 2016 at 0:52
  • yes, we do not quite have all the info do we. Looking at his top diagram I suspect he wants the second of my two options but you cannot quite tell. Those red could break or could be large polygons and we do not know the multipart status. Jun 15, 2016 at 0:54
  • I am hoping the red cells originate from the white cells... such that they match. However the attribute names have changed...so no way of linking back by attrib. Thought of using shape area but they seem too similar.
    – val
    Jun 15, 2016 at 0:56
  • just use two spatials then, still works. Or just add a Unique ID before converting to points, or just use the FID. All should work. Jun 15, 2016 at 0:57
  • Oh, that explains a lot, then this answer is just fine! definitely go the centroids route if you have an advanced license... polygons (even from the same source) don't often coalesce exactly resulting in many sliver (small thin) polygons which are a nightmare to clean up. Jun 15, 2016 at 0:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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