0

私は ArcGIS 10 で作業しており、レイヤー間の複数の結合を実現したいと考えています。しかし、その組合の仕事は少し特殊です。実際、コードの最初に示されているように、7 つのレイヤーがあります (これらのレイヤーには特定の分類があります)。

import arcpy
from arcpy import env

workspace_2 = "V:/DONNEES/1_referentiels/mnt/1_france/1_dep_17/ign/litto3d/Litto3D_livraison_2011_10_24/traitements_lienss/tests/Workspace_chev/"
M0 = workspace_2 + "0.shp"
M1 = workspace_2 + "1.shp"
M2 = workspace_2 + "2.shp"
M3 = workspace_2 + "3.shp"
M4 = workspace_2 + "4.shp"
M5 = workspace_2 + "5.shp"
M6 = workspace_2 + "6.shp"
M7 = workspace_2 + "7.shp"

そして、私の目標は、M0 - M4、M1 - M5、M2 - M6 などの結合を作成することです。つまり、ユニオンは4 つのレイヤーごとに作成する必要があります。だから私はループを作ることにしましたが、私は完全に道に迷ったことを認めなければなりません. 私はそれを試しましたが、うまくいきませんでした:

Union_1 = {"M0":M0, "M1":M1, "M2":M2, "M3":M3}
Union_2 = {"M4":M4, "M5":M5, "M6":M6, "M7":M7}

for i in Union_1:
    for j in Union_2:
        InFeatures = [Union_1[i], Union_2[j]]
        arcpy.Union_analysis (InFeatures, i + "_" + j + ".shp", "NO_FID", 0.0003, "")
        print "ok"

その結合プロセスをループするのを手伝ってくれませんか?

4

1 に答える 1

0

このループを実行する 1 つの方法は次のとおりです。

r = [m0, m1, m2, ..... , mN]
for n in range(0, len(r), 4):
   InFeatures = r[n:n+4]
   arcpy.Union_analysis (InFeatures, str(n) + "_" + str(n+4) + ".shp", "NO_FID", 0.0003, "")

これは、常に 4 つの連続した形状ファイルに対して union_analysis を実行しようとしている場合です。

于 2012-04-11T16:47:20.210 に答える