RasterItem
汇总
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')