我正在尝试使用ArcMAP中的“按属性选择”编写脚本。我想要做的是创建一个for循环,将值传递给Select by Attribute表达式。我正在思考以下问题: (x = shapefile中的多边形数量)
for j in range(0,x,1):
arcpy.MakeFeatureLayer_management ("layer", "temp")
arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION",""" "ID" > j""")
arcpy.CopyFeatures_management("temp","SlopeG5")
我应该能够处理的其余脚本,但是当我运行它时,我得到错误代码000358,说表达式无效。 ArcMap似乎不喜欢select by attributes中的'j'。
总体目标是隔离多边形,使用按位置选择来查找相交的多边形,找到两者的面积,然后除以得到第二个所覆盖的主多边形的百分比。
希望这个描述足够清楚,以获得一些帮助
答案 0 :(得分:0)
我对ArcMap一无所知,但你传递文字字符串“j”作为比较,而不是变量j
的值。你可能意味着:
arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION", "ID > %s" % j)
答案 1 :(得分:0)
看起来这就是您打算做的事情 - 将j
的值插入字符串中:
for j in range(0,x,1):
arcpy.MakeFeatureLayer_management ("layer", "temp")
arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION",'"ID" > %s' % j)
arcpy.CopyFeatures_management("temp","SlopeG5")