2013-07-17 17 views
-2

我想在ArcMAP中使用'按屬性選擇'編寫腳本。我想要做的是創建一個for循環,它將一個值傳遞給Select by Attribute表達式。我在想沿着線的東西: (X =多邊形的shape文件數)在Python中使用'for'循環傳遞變量以按屬性選擇

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屬性中似乎不喜歡'j'。

總體目標是隔離多邊形,使用按位置選擇來查找多邊形相交,找到兩者的面積,然後除以得到第二個覆蓋的主多邊形的百分比。

希望這個描述是非常明顯的得到一些幫助

+3

什麼是'「」」‘ID’> J‘’ 「」應該是什麼意思? – Izkata

+0

@interjay我知道它是什麼,但你的意圖是什麼? – Izkata

回答

0

我不知道ArcMap中任何東西,但你傳遞文本字符串「J」作爲比較,而不是變量j的價值。你大概的意思是:

arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION", "ID > %s" % j) 
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")