[GIS] Spatially Joining Census Tracts to neighborhood shapefile

arcgis-10.3arcgis-desktopfeaturesspatial-join

I have a bunch of Census Tracts that I want to spatially join with larger neighborhood geographies so that the numeric fields of the Census Tracts are summed on the join.

A spatial join based on intersection won't work because some of the tracts intersect multiple neighborhoods. So I really want to join based on what neighborhood the centroid of the tract falls in.

However, when I run the spatial join tool with the center, it appears that center is only based on the target layer not the join layer. In older versions of ArcMap, I know I could run the Feature-to-Point tool to create a new feature of the tracts' centroids and then could run the spatial join that way. But this tool either doesn't exist anymore or isn't available with a basic license.

Does anyone have any workarounds? Or is there a better way to do this?

Best Answer

While Feature to Point won't work with a Basic License, you can overcome this limitation with a few steps.

  1. Add a set of X_COORDINATE and Y_COORDINATE double fields and a Long field called TRACT_FID to the Tracts table.
  2. Populate the coordinate fields using the geometry calculator or with a Python Calculation of !Shape.Centroid.X! and !Shape.Centroid.Y!. Populate the TRACT_FID field with the Tract ObjectID values to act as a Join field.
  3. Open the table and export it from the table view menu to create a standalone table.
  4. Use the Make XY Event Layer tool using the two fields as the coordinate fields.
  5. The new XY layer is the equivalent of the Feature to Points tool output. Use that layer as the Join input for the Spatial Join tool.
Related Question