摘要
表示栅格分类着色器。
说明
这些属性的行为类似于应用程序中显示的选项。例如,更改分类数会自动调整间隔值及其标注。如果更改 RasterClassBreak 的 upperBound 属性,则 classificationMethod 会自动更改为 ManualInterval。您同样需要相应地手动更新 labels 属性。
属性
属性 | 说明 | 数据类型 |
breakCount (可读写) | 表示与当前分类方法配合使用的分类数的整数。 | Integer |
classBreaks (可读写) | RasterClassBreak 对象列表,用于提供对诸如 label 和 color 等单个属性的访问权限。 | List |
classificationField (可读写) | 表示用于图层分类方法的有效字段名称的字符串。 | String |
classificationMethod (可读写) | 表示有效分类方法的字符串。 有效值如下:
| String |
colorRamp (可读写) | 提供对 ColorRamp 对象的访问权限。 | ColorRamp |
lowerBound (可读写) | 一个双精度值,表示要显示的符号化 classificationField 的最小值。 注:lowerBound 的值只能设置为第一个类中断范围内的值,否则其将会失败。 通过更改 upperBound 属性,可以在最后的类中断中修改最大值。 | Double |
noDataColor (可读写) | 一个布尔值,用于控制缺失值的显示。 如果为 True,则显示缺失值。 | Dictionary |
type (只读) | 返回表示渲染器类型的字符串。 | String |
代码示例
以下脚本首先测试图层的符号系统是否支持 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')
以下脚本用于对使用栅格分类着色器的栅格图层的符号系统进行修改。它设置 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')