RasterItem

Краткая информация

RasterItem предоставляет доступ к информации уровня элемента для RasterUniqueValueColorizer.

Обсуждение

Класс RasterItem позволяет изменить свойства, такие как field и color.

Свойство color возвращает словарь Python. Этот словарь имеет отдельный ключ, который соответствует имени цветовой модели, а значением является список цветовых свойств. Например, так выглядит RGB представление для красного: {'RGB' : [255, 0, 0, 100]}. Свойства изменяются в зависимости от цветовой модели. Последним параметром для всех цветовых моделей является альфа или значение непрозрачности. Альфа, или значение непрозрачности, имеет поведение, противоположное прозрачности в пользовательском интерфейсе приложения. Если в словаре задать это значение равным 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. Далее он итерирует каждый 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')