I am using Arc 10.1 and I am working on a script that takes a value from a field within one shape file and updates a field in another shape file based on its location. Basically I have smaller parcels that reside within larger areas and I want to assign the name of the larger area to a field within the smaller parcels.
The issue I am having is that when I run the script, every parcel ends up having the same "area". I believe its because its essentially writing each area to the parcel and then rewriting it again and again until there are no more areas to loop through. Can someone provide some advice?
#Make a feature layer for the neighourhoods
arcpy.MakeFeatureLayer_management(neighbourhood, "neighbourhoodLayer")
arcpy.MakeFeatureLayer_management(parcel, "parcelLayerTest1")
#Setup cursor to update new NBHD field
with arcpy.da.UpdateCursor(parcel, (parcelIDField,nbhdField)) as parRows:
for par in parRows:
# Create a query string for the current patrol zone
#parcelIDstring = par[0]
#queryString = '"' + str(parcelIDField) + '" =' + "'" + str(parcelIDstring) + "'"
#Select parcels based on location contained within neighbourhood
arcpy.SelectLayerByLocation_management("parcelLayerTest1", "HAVE_THEIR_CENTER_IN", neighbourhood)
nbhdTable = arcpy.SearchCursor(neighbourhood)
for nbhd in nbhdTable:
nbhdValue = nbhd.getValue("Neighbourh")
if nbhdValue:
par[1] = nbhdValue
parRows.updateRow(par)