需求:
将符号化后的img数据另存为图层文件(.lyr),基于此图层文件对tif数据进行符号化。
效果图:
具体实现:
import arcpy
mxd = arcpy.mapping.MapDocument(r"E:\testing\testanhui.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
lyr = arcpy.mapping.ListLayers(mxd, "anhui.tif", df)[0]
lyrFile = arcpy.mapping.Layer(r"E:\testing\anhui.lyr")
arcpy.mapping.UpdateLayer(df, lyr, lyrFile, True)
if lyr.symbologyType == "RASTER_CLASSIFIED":
lyr.symbology.reclassify()
arcpy.mapping.ExportToPDF(mxd, r"E:\testing\anhui.pdf")
del mxd, df, lyr, lyrFile
使用图层文件中存储的符号系统来更新地图文档中图层的符号系统时,可能会产生一些意想不到的结果(例如,分类间隔值与图层文件中的数据源统计匹配,但却与地图文档中的数据源统计不符。)但是,如果在 UpdateLayer 之后使用 reclassify() 方法,则最终结果将与使用图层文件符号系统中的颜色属性时一样,但其他特征将基于地图文档中图层的基础源数据。
如果正通过 Python 窗口对这些符号系统进行修改并通过 CURRENT 引用地图文档,则可能无法立即查看 ArcMap 应用程序中的更改。要刷新地图文档,请尝试使用 RefreshActiveView 和 RefreshTOC 函数。
参考资料:
http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#//00s30000005p000000