0

我目前正在尝试使用 ArcPy 映射,目的是自动创建 20 - 30 个地图,而不是一个接一个地手动创建它们。问题是什么都没有发生,当我实现代码时也没有产生错误。我正在尝试完成以下任务:

  • 将每个图层的符号系统设置为“GRADUATED_COLORS”,并且与我已经可视化的一个图层的符号系统相同。
  • 让每一层的分类间隔值基于自然间隔。
  • 然后稍后将每个保存为 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

我可以看到两个问题。\

首先,df = arcpy.ListDataFrames(mxd)[0] 需要是 arcpy.mapping.ListDataFrames(mxd)[0]

其次,可能是主要问题, arcpy.mapping.ListLayers(mxd, df) 当前将 df 作为通配符传递,请参见以下语法:

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

您需要添加一个额外的空白通配符 arg 即 arcpy.mapping.ListLayers(mxd, "", df) 以按预期返回数据框中的所有图层。

请参阅http://resources.arcgis.com/en/help/main/10.2/index.html#//00s30000002n000000

于 2014-01-07T16:42:15.157 回答