RasterClassBreak

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

Класс RasterClassBreak представляет границу класса растра, доступную в классе RasterClassifyColorizer.

Обсуждение

Он предоставляет доступ к свойствам отдельных границ классов, например, label и color.

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

Вы можете выполнять чтение всех поддерживаемых цветовых моделей, но изменять вы можете только поднабор. Ниже приведен список поддерживаемых цветовых моделей:

  • {'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
upperBound
(чтение и запись)

Получает и задает максимальное значение для границы класса.

Double

Пример кода

Пример RasterClassBreak

Следующий скрипт изменяет символы растрового слоя, использующего классифицированную палитру растра. Он задает classificationField, breakCount и noDataColor. Далее он выполняет итерации для каждой границы класса растра и изменяет свойства upperBound, label, description и color. Подписи каждой границы отформатированы, чтобы включать меньшее или равное количество символов и разделитель разрядов. Цвета HSV для каждой границы класса растра увеличиваются на тот же интервал.

# -*- coding: utf-8 -*-
import arcpy
import os
import sys
import locale
relpath = os.path.dirname(sys.argv[0])

p = arcpy.mp.ArcGISProject(relpath + r'\\RasterClassify.aprx')
m = p.listMaps('Map')[0]
l = m.listLayers('Raster1')[0]

sym = l.symbology
sym.colorizer.classificationField = "Value"
sym.colorizer.breakCount = 5
sym.colorizer.noDataColor = {'RGB': [255, 255, 255, 100]}

breakVal = 50
cv = 0
for brk in sym.colorizer.classBreaks:
    brk.upperBound = breakVal
    brk.label = "\u2264" + str(locale.format("%d", breakVal, grouping=True))
    brk.description = "Description " + str(cv)
    brk.color = {'HSV' : [cv, cv, cv, 100]}

    breakVal +=50
    cv += 40
    
l.symbology = sym

p.saveACopy(relpath + r'\\SavedOutput.aprx')