我对Python很陌生,并且正在尝试编写用于ArcGIS 10.1(arcpy)的脚本;基本的想法是添加一个新的字段(弗朗西斯),检查其他几个字段的值,如果有任何值为空(-99),那么输出0到弗朗西斯,否则运行一个简单的计算。但是,我得到这个错误,我有麻烦超越它:“value is Required”在arcpy.CalculateField
Traceback (most recent call last):
File "C:\gislab2\Python\take_home\part1\prelim_if2.py", line 28, in arcpy.CalculateField_management(Output_Feature_Class, "Francis", "", "PYTHON_9.3", "")
File "C:\Program Files\ArcGIS\Desktop10.1\arcpy\arcpy\management.py", line 3128, in CalculateField raise e
ExecuteError: Failed to execute. Parameters are not valid. ERROR 000735: Expression: Value is required Failed to execute (CalculateField).
下面的代码
# Import arcpy module
import arcpy
print "start your engines"
# Script arguments
Shapefile = "C:\\gislab2\\Python\\take_home\\USCancer2000.shp"
Field_Name = Francis
Output_Feature_Class = "C:\\gislab2\\Python\\take_home\\USCancer2000.shp"
# Local variables:
USCancer2000__2_ = Output_Feature_Class
# Process: Add Field
arcpy.AddField_management(Shapefile, "Francis", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
# Process: Calculate Field
arcpy.CalculateField_management(Output_Feature_Class, "Francis", "", "PYTHON_9.3", "")
##
### Process: If-then check for missing values
##
if "Cnt1"==-99:
Field_name=7
elif "Cnt2"==-99:
Field_name=7
elif "Cnt3"==-99:
Field_name=7
elif "Pop1"==-99:
Field_name==7
elif "Pop2"==-99:
Field_name=7
elif "Pop3"==-99:
Field_name=7
else:
Field_name=("Cnt1"+"Cnt2"+"Cnt3")/("Pop1"+"Pop2"+"Pop3")
print "done"
许多在此先感谢! david
可以显示堆栈跟踪 – karthikr 2013-04-04 23:47:15
回溯(最近通话最后一个): 文件 “C:\ gislab2 \ Python的\ take_home \ part1的\ prelim_if2.py” 28行,在 arcpy.CalculateField_management( Output_Feature_Class,“Francis”,“”,“PYTHON_9.3”,“”) CalculateField中的文件“C:\ Program Files \ ArcGIS \ Desktop10.1 \ arcpy \ arcpy \ management.py”,行3128 raise e ExecuteError:无法执行。参数无效。 错误000735:表达式:值是必需的 无法执行(CalculateField)。 >>>在此先感谢 –
2013-04-04 23:58:42
把它放在你的问题,它可以正确格式,人们可以阅读它! – kindall 2013-04-05 00:02:18