RasterUniqueValueColorizer

描述

表示栅格唯一值着色器。

讨论

如果将当前着色器更改为 RasterUniqueValueColorizer,则必须先设置适当的 field 属性值。应用 field 之后,着色器将自动生成所有唯一值。无论出于什么原因,如果将新值添加到栅格中,都需要重置着色器,以便再次添加所有值。

您需要了解唯一值在着色器中的管理方式,以便在类结构中进行导航,以更改各个项目及其值。groups 属性将返回 ItemGroup 对象列表。每个 ItemGroup 表示一类具有自己 itemsheading。默认情况下,存在一个 ItemGroupitems 属性将返回 RasterItem 对象列表。具有 item 之后,您可更改属性,例如 labeldescription。您也可以修改每个项目的 colorvalues 属性是复数并返回列表的原因是您还可以在 ItemGroup 内将项目分组。因此,每个 item 可能有多个值。

以下是类结构的一种概述:

  • groups - 将返回 ItemGroup 对象列表
    • heading
    • items - 将返回 RasterItem 对象列表
      • color
      • description
      • label
      • values

属性

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

提供对 ColorRamp 对象的访问权限。

ColorRamp
field
(可读写)

着色器用于确定唯一的一组值的一个字段。

String
groups
(可读写)

包含唯一值的 ItemGroup 对象的列表。

List
noDataColor
(可读写)

一个布尔值,用于控制缺失值的显示。如果为 True,则显示缺失值。

Dictionary
type
(只读)

返回表示着色器类型的字符串。

String
useDefaultSymbol
(可读写)

控制未添加值显示的布尔值。如果为 True,将显示要素。

Boolean

代码示例

RasterUniqueValueColorizer 示例

以下脚本首先确认着色器为 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')