【arcpy批量制图】自动化制图(符号系统)

  • Post author:
  • Post category:其他




简单符号系统

读取某一要素,为简单符号;改变其颜色、轮廓和尺寸

import arcpy.mp as map
try:
    aprx = map.ArcGISProject("CURRENT")
    for m in aprx.listMaps("Map"):
        for lyr in m.listLayers("Parcels"):
            if lyr.isFeatureLayer:
                sym = lyr.symbology
                #按名称设置
                sym.renderer.symbol.applySymbolFromGallery("机场跑道")
                #改变颜色
                sym.renderer.symbol.color ={'RGB': [255, 255, 190, 25]}
                #轮廓颜色
                sym.renderer.symbol.outlineColor ={'CMYK': [25, 50, 75, 25, 100]}
                #尺寸
                sym.renderer.symbol.size = 1.0
                lyr.symbology = sym
except Exception as e:
    print("Error: " + e.args[0])



渐变符号系统

1,列出工程已有的色带

aprx = arcpy.mp.ArcGISProject('CURRENT')
#列出色带名称
for cr in aprx.listColorRamps():
    print(cr.name)

2,设置分级色彩

import arcpy.mp as map
try:
    aprx=map.ArcGISProject("CURRENT")
    for m in aprx.listMaps("Map"):
        for lyr in m.listLayers("Parcels"):
            if lyr.isFeatureLayer:
                sym=lyr.symbology
                #设置渲染器
                sym.updateRenderer("GraduatedColorsRenderer")
                #渲染字段
                sym.renderer.classificationField = 'ACRES'
                #分类方法
                sym.renderer.classificationMethod ='NaturalBreaks'
                #类数
                sym.renderer.breakCount = 5
                sym.renderer.colorRamp =aprx.listColorRamps("热点图:深品红-黄")[0]
                lyr.symbology = sym
except Exception as e:
    print("ERROE:"+e.arg[0])



唯一值符号系统

import arcpy.mp as map
try:
    aprx=map.ArcGISProject("CURRENT")
    for m in aprx.listMaps("Streets and Railroads"):
        for lyr in m.listLayers("Street_Centerlines"):
            if lyr.isFeatureLayer:
                sym=lyr.symbology
                #设置渲染器
                sym.updateRenderer("UniqueValueRenderer")
                #渲染字段
                sym.renderer.fields = ['Condition']
                #读取每个字段,赋予不同的颜色
                for grp in sym.renderer.groups:
                    for itm in grp.items:
                        if itm.label == "Poor":
                            itm.symbol.color = {"RGB":[255, 0, 0, 100]}
                        elif itm.label == "Fair":
                            itm.symbol.color = {"RGB":[0, 92, 230, 100]}
                        elif itm.label == "Good":
                            itm.symbol.color = {"RGB":[38, 115, 0, 100]}
                lyr.symbology = sym
except Exception as e:
    print("ERROE:"+e.arg[0])



版权声明:本文为xza13155原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。