0

現在、1 つずつ手動で作成するのではなく、20 ~ 30 のマップを自動的に作成する目的で ArcPy マッピングを使用しようとしています。問題は、コードを実装しても何も起こらず、エラーも発生しないことです。私は次のことを達成しようとしています:

  • 各レイヤーのシンボルを「GRADUATED_COLORS」として作成し、既に視覚化した 1 つのレイヤーと同じシンボルを作成します。
  • 各レイヤーのクラス ブレーク値は、自然なブレークに基づいています。
  • その後、それぞれをJPEGとして保存します

以下は、ArcMap 10.2 python ウィンドウでこれを行っているコードです。どんな助けでも素晴らしいでしょう。

mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.ListDataFrames(mxd) [0]
lyrs = arcpy.mapping.ListLayers(mxd, df)
lyrFile = arcpy.mapping.Layer("C://Users/Me/Desktop/Fires_Global_ALL/sep03_12_Grid10min_asia.shp")

lyr ファイルは、必要なシンボルを使用して ArcMap で視覚化したファイルです。

for lyr in lyrs:
    arcpy.mapping.UpdateLayer( df, lyr, lyrFile)
arcpy.RefreshActiveView()
arcpy.RefreshTOC()
4

1 に答える 1

0

2 つの問題が確認できます。\

まず、df = arcpy.ListDataFrames(mxd)[0] は arcpy.mapping.ListDataFrames(mxd)[0] である必要があります。

次に、おそらく主な問題は、arcpy.mapping.ListLayers(mxd, df) が現在ワイルドカードとして df を渡していることです。次の構文を参照してください。

ListLayers (map_document_or_layer, {wildcard}, {data_frame})

データフレーム内のすべてのレイヤーを期待どおりに返すには、追加の空白のワイルドカード引数、つまり arcpy.mapping.ListLayers(mxd, "", df) を入力する必要があります。

http://resources.arcgis.com/en/help/main/10.2/index.html#//00s30000002n000000を参照してください。

于 2014-01-07T16:42:15.157 に答える