Краткая информация
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 |
Пример кода
Следующий скрипт сначала проверяет, является ли палитра 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')