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

栅格使用colorizer updateColorizer 矢量使用renderer updateRenderer

简单符号系统

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

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.updateColorizer("RasterUniqueValueColorizer")
                sym.updateRenderer("UniqueValueRenderer")
                #渲染字段 栅格使用sym.colorizer.field = 'Count' 
                #唯一值 不用list
                sym.renderer.field = ['Condition'] #因为可基于多个字段建立一组唯一值。因此,fields 属性将使用列表,即使其中只使用了一个字段。
                #读取每个字段,赋予不同的颜色 栅格使用sym.Colorizer
                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])
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
arcpy是ArcGIS软件中的Python库,它可以用于自动化执行地理处理任务和地理数据处理。而数据驱动模块是arcpy中的函数之一,它可以通过指定数据源和模板来生成批量制图。 数据驱动模块的批量制图分为以下几步: 1. 定义数据源:使用arcpy中的函数获取需要制图的数据源,可以是数据库、文件夹中的文件或其他数据源。 2. 配置模板:使用arcpy中的函数指定制图所使用的模板,模板是包含地图布局、符号化样式和标注设置的地图文档。 3. 设置制图参数:使用arcpy中的函数设置制图过程中的一些参数,如地图范围、图层的可见性、图例的位置等。 4. 创建制图循环:使用arcpy中的循环语句(如for循环或while循环),遍历数据源中的每个数据,然后依次进行制图操作。 5. 制图操作:在每次循环中,使用arcpy中的函数将数据源中的数据加载到模板中,进行符号化、设置标注等操作,并输出制图结果。 6. 保存制图结果:使用arcpy中的函数将每次制图的结果保存为地图文档文件(.mxd),或者导出为图片文件等。 通过以上步骤的循环执行,可以实现批量制图的功能。整个制图过程可以根据实际需求进行自定义,如根据时间或名称对数据进行筛选、根据属性字段设置符号化样式等。 arcpy结合数据驱动模块的批量制图可以大大提高制图效率和准确性,尤其对于需要大量制图的情况下非常实用。它可以帮助用户在地理信息处理和制图领域实现自动化批量操作,节省大量时间和人力成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕南路GISer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值