Hi,
I've written a script that narrows down a selection of points (cities) and then adds a field called CITYNAME to the feature class. I need to update the new CITYNAME field with the same values as the NAME field in the same feature class but it doesn't update them although it shows as having run successfully.
I need to do this so that I can spatially join this points (cities) dataset to polygons (counties) and lines (roads) because all three of them have the same fieldname called NAME.
I'm using ArcGIS v10.0 and any help would be appreciated as I've tried various methods like CalculateField and UpdateCursor to no avail.
Thanks,
Scotaidh
I've written a script that narrows down a selection of points (cities) and then adds a field called CITYNAME to the feature class. I need to update the new CITYNAME field with the same values as the NAME field in the same feature class but it doesn't update them although it shows as having run successfully.
I need to do this so that I can spatially join this points (cities) dataset to polygons (counties) and lines (roads) because all three of them have the same fieldname called NAME.
I'm using ArcGIS v10.0 and any help would be appreciated as I've tried various methods like CalculateField and UpdateCursor to no avail.
Thanks,
Scotaidh
Code:
# ExtractFeaturesByLocationAndAttribute.py EFLA.py
# Description: Extract features to a new feature class based on a Location and an attribute query
# then add field called CITYNAME and update it with the NAME field from the cities layer
# import system modules
import arcpy
from arcpy import env
import os
# set overwrite option
arcpy.env.overwriteOutput = True
# Put in error trapping in case an error occurs when running tool
try:
# Make a layer from the cities feature class
arcpy.MakeFeatureLayer_management("H:/working/Findsites.gdb/cities","citiesL")
# Select all cities that are within 30km of an interstate
arcpy.SelectLayerByLocation_management("citiesL", "WITHIN_A_DISTANCE", "H:/working/Findsites.gdb/interstates", "30 KILOMETERS", "NEW_SELECTION")
# Within the selection (done above) further select only those cities that have a university and low crime rate
arcpy.SelectLayerByAttribute_management("citiesL", "SUBSET_SELECTION", "UNIVERSITY = 1 AND CRIME_INDE <= 0.02")
# Make a layer from the counties feature class
arcpy.MakeFeatureLayer_management("H://working/Findsites.gdb/counties","countiesL")
# From the counties layer select only those counties with a large enough workforce and number of farms
arcpy.SelectLayerByAttribute_management("countiesL", "NEW_SELECTION", "AGE_18_64 >= 25000 AND NO_FARMS87 >= 500")
# Select all cities that intersect counties that meet work force and number of farms criteria
arcpy.SelectLayerByLocation_management("citiesL", "INTERSECT", "countiesL", "", "SUBSET_SELECTION")
# Write the selected features to a new featureclass
arcpy.CopyFeatures_management("citiesL", "H:/working/Findsites.gdb/CityList")
# create a new field called CITYNAME to replace NAME because other datasets have a NAME field
arcpy.AddField_management("H:/working/Findsites.gdb/CityList", "CITYNAME", "TEXT", "", "", "25")
expression1 = '!MP_VAL!'
arcpy.CalculateField_management(CityList, CITYNAME, expression1, "PYTHON", "")
#Calculate Field - update new CITYNAME field with NAME field
# arcpy.AddMessage("Calculating Updated Field...")
# Expression = "'{0}'".format(arcpy.GetValue(NAME))
# single quoted string literal
# arcpy.CalculateField_management(CityList, CITYNAME, Expression, "PYTHON")
except:
# If an error occurred print the message to the screen
print arcpy.GetMessages()