RasterClassifyColorizer

摘要

表示栅格分类着色器。

说明

这些属性的行为类似于应用程序中显示的选项。例如,更改分类数会自动调整间隔值及其标注。如果更改 RasterClassBreakupperBound 属性,则 classificationMethod 会自动更改为 ManualInterval。您同样需要相应地手动更新 labels 属性。

属性

属性说明数据类型
breakCount
(可读写)

表示与当前分类方法配合使用的分类数的整数。

Integer
classBreaks
(可读写)

RasterClassBreak 对象列表,用于提供对诸如 labelcolor 等单个属性的访问权限。

List
classificationField
(可读写)

表示用于图层分类方法的有效字段名称的字符串。

String
classificationMethod
(可读写)

表示有效分类方法的字符串。 有效值如下:

  • DefinedInterval定义的间隔
  • EqualInterval相等间隔
  • GeometricInterval几何间隔
  • ManualInterval手动间隔
  • NaturalBreaks自然间断点分级法 (Jenks)
  • Quantile分位数
  • StandardDeviation标准差
String
colorRamp
(可读写)

提供对 ColorRamp 对象的访问权限。

ColorRamp
lowerBound
(可读写)

一个双精度值,表示要显示的符号化 classificationField 的最小值。

注:

lowerBound 的值只能设置为第一个类中断范围内的值,否则其将会失败。 通过更改 upperBound 属性,可以在最后的类中断中修改最大值。

Double
noDataColor
(可读写)

一个布尔值,用于控制缺失值的显示。 如果为 True,则显示缺失值。

Dictionary
type
(只读)

返回表示渲染器类型的字符串。

String

代码示例

RasterClassifyColorizer 示例 1

以下脚本首先测试图层的符号系统是否支持 colorizer 属性,然后确认渲染器是否为 RasterClassifyColorizer。接下来,它更改为 classificationFieldbreakCount。最后,将 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

以下脚本用于对使用栅格分类着色器的栅格图层的符号系统进行修改。它设置 classificationFieldbreakCountnoDataColor。接下来,它遍历每个栅格类间断点,并修改 upperBoundlabeldescriptioncolor 属性。每个间断点的标签都被格式化为包含小于或等于符号和千位分隔符。每个栅格类间断点的 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')