I have three polygon layers in ArcGIS Pro (let’s call them A, B, and C). My goal is to:
Keep all features from Layer A in the final output.
Join attributes from Layers B and C only if they have an area of overlap with A.
Do not join features from B or C if they only touch the boundary of A (i.e., no actual area overlap).
For A features with no overlaps, I still want them included (can have nulls in the joined fields).
I was thinking of using the Intersect tool to isolate actual overlapping areas and then doing a Spatial Join or Join Field afterward. When I tried and did a spot check it looks like things are being joined when there is no actual overlap... Am I doing something wrong?
Solved! Go to Solution.
I would clear up your data first by removing any B and C features you don't need. Select Layer By Location (Data Management)—ArcGIS Pro | Documentation - For B and C, select and remove features which have this relationship with A - 'Boundary touches'. make copies of your data and delete records from those. name them something logical to refer back to e.g. B_doesNotTouchAboundary
For the spatial joins and one-to-many - you're possibly going to have a whole load of records if you run the operation twice for B and C on A. e.g. join 1 produces 10 'duplicate' features, join 2 then increases that to 100 (assuming 10 'duplicates' from each operation.
I would clear up your data first by removing any B and C features you don't need. Select Layer By Location (Data Management)—ArcGIS Pro | Documentation - For B and C, select and remove features which have this relationship with A - 'Boundary touches'. make copies of your data and delete records from those. name them something logical to refer back to e.g. B_doesNotTouchAboundary
For the spatial joins and one-to-many - you're possibly going to have a whole load of records if you run the operation twice for B and C on A. e.g. join 1 produces 10 'duplicate' features, join 2 then increases that to 100 (assuming 10 'duplicates' from each operation.
This worked well for a small dataset—thank you! However, I have so many boundaries that selecting them manually isn't practical.
What are you doing manually?