RasterUniqueValueColorizer

Сводка

Представляет палитру уникальных значений растра.

Описание

Если вы изменяете текущую палитру на RasterUniqueValueColorizer, сначала необходимо задать соответствующее значение свойства field. После применения вашего field, палитра автоматически создаст все уникальные значения. Если по каким-либо причинам в растр добавляются новые значения, то необходимо сбросить палитру, чтобы все значения были добавлены заново.

Вам необходимо разобраться, как в палитре происходит управление уникальными значениями, чтобы вы могли выполнять навигацию по структуре класса для изменения отдельных элементов и их значений. Свойство groups возвращает список объектов ItemGroup. Каждый объект ItemGroup представляет категорию items, каждый из которых имеет собственный heading. По умолчанию, имеется один ItemGroup. Свойство items возвращает список объектов RasterItem. После того, как у вас есть item, можно изменить свойства, такие как label и description. Вы также можете изменить color для каждого элемента. Причиной того, что свойство values является множественным и возвращает список является то, что вы можете группировать объекты внутри 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. Далее он итерирует каждый RasterItem в каждой ItemGroup и проверяет значение label, равное Water. В итоге, он задает цвет, который будет синим в RGB, с 50% прозрачностью.

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')