我目前正在尝试使用 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()
我能看到的两个问题。
首先,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 ie arcpy.mapping.ListLayers(mxd, ", df),以按预期返回数据帧中的所有图层。
见 http://resources.arcgis.com/en/help/main/10.2/index.html#//00s30000002n000000