RasterItem

摘要

RasterItem 可提供对 RasterUniqueValueColorizer 的项目级别信息的访问权限。

说明

RasterItem 类允许您更改属性,如 fieldcolor

color 属性将返回一个 Python 字典。字典拥有与颜色模型名称匹配的单个键,且其值为颜色属性列表。例如,{'RGB' : [255, 0, 0, 100]} 为红色的 RGB 制图表达。属性根据颜色模型变化。所有颜色模型的最后一个参数是 alpha 或不透明度值。alpha 或不透明度值的行为与应用程序用户界面中的透明度值的行为相反。如果在字典中将该值设为 100,则其会在功能区的透明度控件中或在符号系统窗格中显示为 0%

您可以读取所有受支持颜色模型的值,但只能修改一个子集。以下是受支持的颜色模型列表:

  • {'CMYK' : [Cyan, Magenta, Yellow, Black, Alpha]} - 读/写
  • {'HSL' : [Hue, Saturation, Lightness, Alpha]} - 读/写
  • {'HSV' : [Hue, Saturation, Value, Alpha]} - 读/写
  • {'RGB' : [Red, Green, Blue, Alpha]} - 读/写
  • {'Lab' : [Lightness, a, b, Alpha]} - 只读
  • {'Grayscale' : [Gray, Alpha]} - 只读

属性

属性说明数据类型
color
(可读写)

使用 Python 字典获取并设置项目的颜色。

Dictionary
description
(可读写)

获取并设置项目的描述。

String
label
(可读写)

获取并设置项目的标签。

String
values
(只读)

获取与各个项目关联的值列表。当项目在组中分组时,有多个值。

List

代码示例

RasterItem 示例

以下脚本首先确认着色器为 RasterUniqueValueColorizer。接下来,它将 field 属性设置为使用名为 Class_name 的字段。它接着遍历每个 ItemGroup 中的各个 RasterItem,并检查等于 Waterlabel 值。最后,它将颜色设置为具有 50% 透明度的 RGB 蓝色。

import arcpy
import os
import sys
relpath = os.path.dirname(sys.argv[0])

p = arcpy.mp.ArcGISProject(relpath + r'\\RasterUniqueValue.aprx')
m = p.listMaps('Map')[0]
l = m.listLayers('*UniqueValue')[0]
sym = l.symbology

if sym.colorizer.type == "RasterUniqueValueColorizer":
    sym.colorizer.field = 'Class_name'
    for grp in sym.colorizer.groups:
        for itm in grp.items:
            if itm.label == "Water":
                itm.color = {'RGB': [0, 0, 255, 50]}

l.symbology = sym
p.saveACopy(relpath + r'\\SavedOutput.aprx')