Batch Transfer Attributes
Scenario:
Data_Cov
has the attributes we need in region subcoverages; the geometry is unwanted.Geometry_Cov
has the geometry we need, but no attribute data.
Isn’t there some way, for example, to copy the attributes of Data_Cov.region to Data_Cov.labelpoint and then do a point-in-polygon overlay with Geometry_Cov (aka IDENTITY)?
This should be an easy operation, but after days of experimenting and reading the docs the whole office (Gerry, Matt, Gary) was completely stumped.
What Doesn’t Work
- because the geometry of Data_Cov is unwanted the Workstation commands UNION, INTERSECT, IDENTITY, INTERSECT will not work.
- there are too many records to transfer for the Workstation ArcEdit TRANSFER commaned to be feasible
- ArcMap ‘spatial join’ was initially promising, but it ignores polygons which have non-coincident geometry.
- Using the ArcMap ‘spatial adjustment’ tool is not suitable as it is interactive. (See this ESRI Forum thread: transferring attributes from one feature to another)
The Solution
Instead of bringing the attributes to the geometry, bring the geometry to the attributes. Special thanks to the ESRI-L mailing list, again, and Andrew Makepeace, again:
- Transfer the wanted attributes from the region subcoverage to the polygons;
REGIONPOLY
- Delete the
data_cover
arcs - Put the
geometry_cover
arcs to thedata_cover
- Save, clean, and rebuild the regions.
Arc: REGIONPOLY data_cov data_poly regname Arc: ARCEDIT Arcedit: snapping off; nodesnap off; arcsnap off #!IMPORTANT! [1] Arcedit: EDITCOVER data_poly ARC Arcedit: SELECT all Arcedit: DELETE Arcedit: GET geometry_cov Arcedit: CLEAN 0.001 Arcedit: SAVE Arcedit: QUIT Arc: DROPITEM data_poly.pat data_poly.pat data_cov-id Arc: POLYREGION data_poly data_poly regname
[1] Turning the snaps off is important to preserve the good geometry as-is-where-is.