Skip to main content

RasterClassifyColorizer

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

Представляет палитру классификации растра.

Обсуждение

Эти свойства действуют примерно так же, как и опции, использующиеся в приложении. Например, изменение числа классов автоматически перестроит граничные значения и их подписи. Если изменить свойство upperBound RasterClassBreak, classificationMethod автоматически изменится на ManualInterval. Также необходимо вручную обновить свойство labels соответственно.

Свойства

Имя Объяснение Тип данных

breakCount

(Чтение / Запись)

Целое число, представляющее количество классов, использующихся с текущим методом классификации.

Integer

classBreaks

(Чтение / Запись)

Список объектов RasterClassBreak, который обеспечивает доступ к отдельным свойствам, например, к label и color.

List

classificationField

(Чтение / Запись)

Строка, представляющая имя поля набора данных, использующегося для метода классификации.

String

classificationMethod

(Чтение / Запись)

Строка, представляющая корректный метод классификации. Корректными значениями являются следующие:

  • DefinedInterval—Заданный интервал

  • EqualInterval—Равные интервалы

  • GeometricInterval—Геометрические интервалы

  • ManualInterval—Интервал вручную

  • NaturalBreaks—Естественные границы

  • Quantile—Квантиль

  • StandardDeviation—Стандартное отклонение

String

colorRamp

(Чтение / Запись)

Предоставляет доступ к объекту ColorRamp.

ColorRamp

lowerBound

(Чтение / Запись)

Число с плавающей точкой, представляющее минимальное значение символа classificationField, которое должно быть отображено.

Примечание:

Значение lowerBound должно быть установлено только в пределах диапазона первого перерыва класса, в противном случае произойдет сбой. Максимальное значение изменяется в последнем перерыве класса путем изменения свойства upperBound.

Double

noDataColor

(Чтение / Запись)

Логический оператор, управляющий отображением пропущенных значений. Если установлено значение True, пропущенные значения отображаются.

Dictionary

type

(Только для чтения)

Возвращает строку, которая отображает тип способа отображения.

String

Пример кода

RasterClassifyColorizer, пример 1

В следующем скрипте сначала тестируется, поддерживают ли символы слоя свойство colorizer, затем подтверждается, что метод отображения – RasterClassifyColorizer. Далее он изменяет classificationField и breakCount. Наконец, ColorRamp меняется на цветовую шкалу с именем Голубой – фиолетовый.

import arcpy
import os
import sys

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

if hasattr(sym, 'colorizer'):
    if sym.colorizer.type == 'RasterClassifyColorizer':
        sym.colorizer.classificationField = 'Value'
        sym.colorizer.breakCount = 7
        sym.colorizer.colorRamp = p.listColorRamps('Cyan to Purple')[0]
        l.symbology = sym

p.saveACopy(relpath + r'\\SavedOutput.aprx')
RasterClassifyColorizer, пример 2

Следующий скрипт изменяет символы растрового слоя, использующего классифицированную палитру растра. Он задает 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')