まずはPythonで新しく、私はArc GIS 9.3で作業します。Select_Analysisツール(PythonとArcGIS 9.3)のループ
"Select_Analysis"ツールでループを実現したいと思います。実際、私は街のすべてのバスステーションで構成される「駅」のレイヤーを持っています。 レイヤーには、ステーションがどのラインに位置しているかを説明するフィールド「rte_id」があります。
私は "rte_id" = 1、 "rte_id" = 2などのステーションを持つすべてのステーションを別々のレイヤーに保存したいと思います。したがって、ツールselect_analysisの使用。
私はループを作ることに決めました(私は70の異なる "rte_id"を持っています。しかし、それは動作しません、私は完全に失われています!ここで
は私のコードです:
import arcgisscripting, os, sys, string
gp = arcgisscripting.create(9.3)
gp.AddToolbox("C:/Program Files (x86)/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
stations = "d:/Travaux/NantesMetropole/Traitements/SIG/stations.shp"
field = "rte_id"
for i in field:
gp.Select_Analysis (stations, "d:/Travaux/NantesMetropole/Traitements/SIG/stations_" + i + ".shp", field + "=" + i)
i = i+1
print "ok"
そしてここでは、エラーメッセージです:
gp.Select_Analysis (stations, "d:/Travaux/NantesMetropole/Traitements/SIG/stations_" + i + ".shp", field + "=" + i)
TypeError: can only concatenate list (not "str") to list
あなたは私の問題を解決するための任意のアイデアを持っていますか?
ありがとうございます!フィールド名(「rte_id」) - ここ ジュリアン
ありがとうございました。私は最初の解決策を試しましたが(最も簡単です!)、うまくいきませんでした。私はそのエラーメッセージがあります:式= '{0} = {1}'。format(field、i) AttributeError: 'str'オブジェクトに 'format'属性がありません。それを訂正するために私は何ができますか? – Julien
申し訳ありませんが、フォーマット方法はPython 2.6以降でのみ利用できます。おそらくあなたは2.5を使用しています。あなたは次のようにしてみることができます:expression = field + '=' + str(i) –
私は式でフィールド名を二重引用符で囲む必要があると思います。結果は 'expression = '" rte_id "=' + str(i)' –