Select to view content in your preferred language

copying attributes between spatial layers

1517
4
Jump to solution
07-25-2022 02:21 PM
pkorst_coa
Occasional Contributor

Hello,

ArcGIS Pro 2.92

I have two spatial features:

- Points having attribute column "parcel" with null values.

- Polygons having attribute column "pnum" containing numeric values.

Need to populate (in bulk) the point's "parcel" attribute with the "pnum" attribute of the intersecting polygon. 

spatialjoinspatialjoin

Spatial join Intersect goes OK and creates a new spatial-join layer.  Then I use the calculate-field tool to copy "parcel" from "pnum."  It copies the numbers into the spatial-join layer. I "save" the changes. But it DOES NOT populate attributes in actual features. 

The point feature's "parcel" attribute remains unpopulated.  Why? 

I need to populate the attribute in the point feature.  Suggestions?

Thank you.

 

 

0 Kudos
1 Solution

Accepted Solutions
pkorst_coa
Occasional Contributor

Thanks for the suggestions.

I was able to resolve this by implementing the extra step of outputting the PointLayer_SpatialJoin data to a new table before performing a join between PointLayer and the new table based on ObjectIDs, and then calculating the field.  

My organization has not upgraded to Pro 3.0 yet. 

View solution in original post

0 Kudos
4 Replies
DanPatterson
MVP Esteemed Contributor

reverse the order of the inputs in the spatial join using "contains" (polygons contains points rather points within polygon)


... sort of retired...
0 Kudos
pkorst_coa
Occasional Contributor

I gave that a go. Thanks.

Unfortunately, the p
oint features "parcel" attribute still did not receive the "parnum" values.     😞


 

 

0 Kudos
HeatherSmith
Esri Contributor

@pkorst_coa I am not sure I understand the problem. Maybe this is what is happening:

- You used the Spatial Join tool and it created a new layer, we'll pretend it's called PointLayer_SpatialJoin.

- You were able to populate the parcel field of PointLayer_SpatialJoin with the numbers you need, but you instead wanted to populate the parcel field of your original PointLayer.

If that is the case, you have two options: 

1. Replace PointLayer with PointLayer_SpatialJoin. They are exactly the same except that PointLayer_SpatialJoin has the extra new information that you need. There's no need to keep hanging on to PointLayer.

2. Upgrade to Pro 3.0 and use the new "Add Spatial Join" tool instead of the "Spatial Join" tool. This will join the prenum field to your original PointLayer instead of creating a new layer, so you can calculate the prenum field on your original PointLayer. Steps and more explanation can be found here: https://learn.arcgis.com/en/projects/borrow-attributes-with-a-spatial-join/ 

If that is not the issue, then it might help to tell us more about what you mean by save the changes and actual features. I was able to populate the parcel attribute in my test, so I'm guessing I misunderstood some aspect of your workflow.

0 Kudos
pkorst_coa
Occasional Contributor

Thanks for the suggestions.

I was able to resolve this by implementing the extra step of outputting the PointLayer_SpatialJoin data to a new table before performing a join between PointLayer and the new table based on ObjectIDs, and then calculating the field.  

My organization has not upgraded to Pro 3.0 yet. 

0 Kudos