描述
RasterItem 可提供对 RasterUniqueValueColorizer 的项目级别信息的访问权限。
讨论
RasterItem 类允许您更改属性,如 field 和 color。
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 |
代码示例
以下脚本首先确认着色器为 RasterUniqueValueColorizer。接下来,它将 field 属性设置为使用名为 Class_name 的字段。它接着遍历每个 ItemGroup 中的各个 RasterItem,并检查等于 Water 的 label 值。最后,它将颜色设置为具有 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')