<\/HEAD>
私は、Excel を取り込みテーブルとしてインポートし、必要な行を取得するクエリを実行して新しいテーブルにエクスポートするスクリプトを持っています。 その後、検索カーソルがテーブルを通過して値のリストを作成します。 それから値のリストをループし、その値を select by attribute の Where Clause の入力として使用して正しいポリゴンを選択します。 その許可ポリゴンは別のフィーチャクラスからポールを選択するために使用され、その後、選択に使われた値で名前付けされた新しいフィーチャクラスとしてそれらのポールがエクスポートされます。 問題は、値のリストから SelectLayerByAttribute_management ツールの where 句に値を渡すことです。 <\/P>
<\/P>
import <\/SPAN>arcpy
import <\/SPAN>datetime
# 変数
<\/SPAN>time = datetime.date.today()
raw = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\MRE_Table.xlsx"
<\/SPAN>mre_table = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\MRE_Tb"
<\/SPAN>permits = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\Permits"
<\/SPAN>Poles = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\Poles"
<\/SPAN>work_table = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\MRE_workTB"
<\/SPAN>geoDB = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb"
<\/SPAN>
<\/SPAN>arcpy.env.workspace = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb"
<\/SPAN>arcpy.env.overwriteOutput = True
<\/SPAN>
<\/SPAN>
<\/SPAN>try<\/SPAN>:
print<\/SPAN>("テーブル作成中: " <\/SPAN>+ mre_table)
arcpy.ExcelToTable_conversion(raw, <\/SPAN>mre_table, <\/SPAN>"Sheet1"<\/SPAN>)
mre_tview = arcpy.MakeTableView_management(mre_table, <\/SPAN>"MRE_TableView"<\/SPAN>)
arcpy.SelectLayerByAttribute_management(mre_tview, <\/SPAN>"NEW_SELECTION"<\/SPAN>, <\/SPAN>"Ticket_Number IS NOT NULL"<\/SPAN>, None<\/SPAN>)
arcpy.SelectLayerByAttribute_management(mre_tview, <\/SPAN>"REMOVE_FROM_SELECTION"<\/SPAN>, <\/SPAN>"Permit_Name = ' '"<\/SPAN>, None<\/SPAN>)
arcpy.CopyRows_management(mre_tview, <\/span>work_table)
permitview = arcpy.MakeFeatureLayer_management(permits, <\/span>"Permits_Layer")
poleview = arcpy.MakeFeatureLayer_management(Poles, <\/span>"Poles_Layer")
# 許可グリッドの select by attributes に渡す許可名のリストを作成
AllValues = []
with arcpy.da.SearchCursor(work_table, ("Permit_Name", "Ticket_Number")) as search:
for row in search:
if row[0] not in AllValues:
AllValues.append(row[0])
# リストをループし、ポリゴンを選択し、そのポリゴンを使って内部にあるポールを選択し、それらのポールを個別のフィーチャクラスにエクスポート
for Value in AllValues:
print(Value)
itsa = "permit_name = {}".format(Value)
print(itsa)
expression = str(itsa)
permitSelect = arcpy.SelectLayerByAttribute_management(permitview, "NEW_SELECTION", expression, None)
permitPoly = arcpy.MakeFeatureLayer_management(permitSelect, "permitPoly_" + Value)
poleSelect = arcpy.SelectLayerByLocation_management(poleview, "INTERSECT", permitPoly, "30 FEET", "NEW_SELECTION", )
arcpy.CopyFeatures_management(poleSelect , </ span > geoDB + < span Style =