分割 (Spatial Analyst)

需要 Spatial Analyst 许可。

需要 3D Analyst 许可。

摘要

按照区域(类)对输入像元值的范围进行分割或重分类。 可用的数据分类方法包括相等间隔、相等面积(分位数)、自然间断点、标准差(以平均值为中心)、标准差(平均值作为中断)、定义的间隔和几何间隔。

使用情况

  • 以下选项可用于分割方法参数。 它们生成具有不同特征的输出区域。

    • 等面积 - 输出栅格需要定义区域数量,并且每个区域中的像元数应相同。
    • 等间隔 - 输出栅格需要定义区域数量,每个区域包含的值范围应相同。
    • 自然间断几何间隔 - 输出栅格需要定义区域数量,每个区域中的像元数将由类间断决定。
    • 标准差(以平均值为中心)标准差(以平均值为间断)定义间隔 - 输出栅格的区域数由间隔大小参数值确定,每个区域中的像元数由类间断确定。

  • 根据指定的分割方法,必须指定输出区域数参数值或间隔大小参数值。

    • 使用等面积等间隔自然间断几何间隔等分割方法时,需要输出区域数参数。
    • 使用定义间隔标准差(以平均值为中心)标准差(以平均值为中断)分割方法时,需要间隔大小参数。

  • 您可以使用将 NoData 更改为输出值参数,在输出中使用整数值替换 NoData 值。 如果需要防止 NoData 像元与任何输出区域组合,请指定一个超出预期输出区域范围的整数值。 例如,对于范围从 1 到 5 的输出区域,指定一个小于 1 或大于 5 的值。 候选值包括 0、100 和 -99。 要将 NoData 值合并到现有区域中,请使用该区域的整数值。 如果未设置此参数,则输入 NoData 像元将在输出栅格中保留为 NoData。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
输入栅格

要进行重分类的输入栅格。

Raster Layer
输出区域数量
(可选)

输入栅格将被重新分类到的区域数。

分割方法参数值为等面积等间隔自然中断几何间隔时,需要此参数。

分割方法参数值为定义间隔标准差(以平均值为中心)标准差(以平均值为间断)时,输出区域数参数将处于非活动状态。 输出区域的数量将由间隔大小参数值决定。

Long
分割方法
(可选)

指定将输入栅格重新分类为区域的方式。

  • 相等间隔输入值的范围将被平均划分为指定数量的输出区域以确定类间断。 这是默认设置。
  • 相等面积输入像元的数量将被平均划分为指定数量的输出区域以确定类间断。 每个区域将具有相似数量的像元,表示相似的面积。
  • 自然间断点以最小化分类内方差和最大化分类间方差的方式确定类间断。 中断通常设置在数据值中变化相对较大的位置。
  • 标准差(以平均值为中心)类中断将以标准差为单位、以指定的间隔大小(例如 2、1 或 0.5)置于平均值的上方和下方,直到达到输入栅格的最小值和最大值。 平均值不用作中断,而是以两个类中断为中心。 一个中断在平均值之上的指定间隔大小的一半处,另一个中断在平均值之下的指定间隔大小的一半处。 使用 N-1 分母计算标准差,其中 N 是具有值的像素数量。
  • 标准差(以平均值为中断)将平均值用作类中断。 其他类中断将以标准差为单位、以指定的间隔大小(例如 2、1 或 0.5)置于平均值的上方和下方,直到达到输入栅格的最小值和最大值。 使用 N-1 分母计算标准差,其中 N 是具有值的像素数量。
  • 定义的间隔类中断将被设置为零和相对于零的指定间隔大小的倍数。 然后,它们将被裁剪到第一类和最后一类的输入数据的最小值和最大值。 对于包含零的值范围,将始终包含零作为中断点。
  • 几何间隔将基于具有几何系列的类间隔创建类中断。 在此模式中,当前值等于前一值除以几何系数。 分类器中的几何系数可以更改一次(可更改为其倒数),以便优化类范围。 该算法创建这些几何间隔的原理是,使每个类的元素数的平方和最小。 此方法可确保每个类中所拥有的值的数量大致相同,且间隔之间的变化一致。
String
输出的起始值
(可选)

将用于输出栅格数据集上区域(类)的起始值。

将为类分配整数值,从起始值开始逐渐加 1。

默认起始值为 1。

Long
将 NoData 更改为输出的值
(可选)

将 NoData 替换为输出中的值。

如果未设置此参数,则输出栅格中的 NoData 像元将继续保留为 NoData。

Long
间隔大小
(可选)

类之间间隔的大小。

分割方法参数被设置为定义间隔标准差(以平均值为中心)标准差(以平均值为中断)时,需要该参数。

如果使用定义间隔,则间隔大小表示的是用于计算类中断的类的实际值范围。

如果使用标准差(以平均值为中心)标准差(以平均值为间断),则间隔大小表示的是用于计算类中断的标准差的数量。

Double

返回值

标注说明数据类型
输出栅格

输出重分类栅格。

输出将始终为整型。

除了标准 ObjectIDValueCount 字段之外,输出栅格的属性表还将有两个新字段。 该 Value 字段指示类值。 ZoneMinZoneMax 字段分别记录用于生成类的最小值和最大值。

Raster

Slice(in_raster, {number_zones}, {slice_type}, {base_output_zone}, {nodata_to_value}, {class_interval_size})
名称说明数据类型
in_raster

要进行重分类的输入栅格。

Raster Layer
number_zones
(可选)

输入栅格将被重新分类到的区域数。

slice_type 参数的值为 EQUAL_AREAEQUAL_INTERVALNATURAL_BREAKSGEOMETRIC_INTERVAL 时,此参数为必选项。

slice_type 参数值为 STANDARD_DEVIATION_MEAN_CENTEREDSTANDARD_DEVIATION_MEAN_BREAK、或 DEFINED_INTERVAL 时,不支持 number_zones 参数。 输出区域的数量将由 class_interval_size 参数值决定。

Long
slice_type
(可选)

指定将输入栅格重新分类为区域的方式。

  • EQUAL_INTERVAL输入值的范围将被平均划分为指定数量的输出区域以确定类间断。 这是默认设置。
  • EQUAL_AREA输入像元的数量将被平均划分为指定数量的输出区域以确定类间断。 每个区域将具有相似数量的像元,表示相似的面积。
  • NATURAL_BREAKS以最小化分类内方差和最大化分类间方差的方式确定类间断。 中断通常设置在数据值中变化相对较大的位置。
  • STANDARD_DEVIATION_MEAN_CENTERED类中断将以标准差为单位、以指定的间隔大小(例如 2、1 或 0.5)置于平均值的上方和下方,直到达到输入栅格的最小值和最大值。 平均值不用作中断,而是以两个类中断为中心。 一个中断在平均值之上的指定间隔大小的一半处,另一个中断在平均值之下的指定间隔大小的一半处。 使用 N-1 分母计算标准差,其中 N 是具有值的像素数量。
  • STANDARD_DEVIATION_MEAN_BREAK将平均值用作类中断。 其他类中断将以标准差为单位、以指定的间隔大小(例如 2、1 或 0.5)置于平均值的上方和下方,直到达到输入栅格的最小值和最大值。 使用 N-1 分母计算标准差,其中 N 是具有值的像素数量。
  • DEFINED_INTERVAL类中断将被设置为零和相对于零的指定间隔大小的倍数。 然后,它们将被裁剪到第一类和最后一类的输入数据的最小值和最大值。 对于包含零的值范围,将始终包含零作为中断点。
  • GEOMETRIC_INTERVAL将基于具有几何系列的类间隔创建类中断。 在此模式中,当前值等于前一值除以几何系数。 分类器中的几何系数可以更改一次(可更改为其倒数),以便优化类范围。 该算法创建这些几何间隔的原理是,使每个类的元素数的平方和最小。 此方法可确保每个类中所拥有的值的数量大致相同,且间隔之间的变化一致。
String
base_output_zone
(可选)

将用于输出栅格数据集上区域(类)的起始值。

将为类分配整数值,从起始值开始逐渐加 1。

默认起始值为 1。

Long
nodata_to_value
(可选)

将 NoData 替换为输出中的值。

如果未设置此参数,则输出栅格中的 NoData 像元将继续保留为 NoData。

Long
class_interval_size
(可选)

类之间间隔的大小。

当将 slice_type 参数设置为 DEFINED_INTERVALSTANDARD_DEVIATION_MEAN_CENTEREDSTANDARD_DEVIATION_MEAN_BREAK 时,此参数为必需项。

如果使用 DEFINED_INTERVAL,则间隔大小表示的是用于计算类中断的类的实际值范围。

如果使用 STANDARD_DEVIATION_MEAN_CENTEREDSTANDARD_DEVIATION_MEAN_BREAK,则间隔大小表示的是用于计算类中断的标准差的数量。

Double

返回值

名称说明数据类型
out_raster

输出重分类栅格。

输出将始终为整型。

除了标准 ObjectIDValueCount 字段之外,输出栅格的属性表还将有两个新字段。 该 Value 字段指示类值。 ZoneMinZoneMax 字段分别记录用于生成类的最小值和最大值。

Raster

代码示例

Slice 示例 1(Python 窗口)

根据数据中固有的自然分组,将输入栅格重新分类为五个类。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"

outslice = Slice("elevation", 5, "NATURAL_BREAKS")
outslice.save("C:/sapyexamples/output/elev_slice.tif")
Slice 示例 2(Python 窗口)

使用等于 10 的定义间隔重新分类输入栅格。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"

outslice = Slice("elevation", "", "DEFINED_INTERVAL", "", "", 10)
outslice.save("C:/sapyexamples/output/elev_slice_02.tif")
Slice 示例 3(独立脚本)

根据数据中固有的自然分组,将输入栅格重新分类为 10 个类,并指定输出类的初始值为 -5。

# Name: Slice_Ex_03.py
# Description: Slices the input raster into 10 zones(classes) based on natural groupings inherent in the data.
#              Specify the starting value for output classes to be -5.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "elevation"
numberZones = 10
baseOutputZone = -5

# Execute Slice
outSlice = Slice(inRaster, numberZones, "NATURAL_BREAKS", baseOutputZone)

# Save the output
outSlice.save("C:/sapyexamples/output/elev_slice_03.tif")
Slice 示例 4(独立脚本)

将输入栅格重新分类为 10 个相同的区域类。 将 NoData 像元的输出值分配为 -99。

# Name: Slice_Ex_04.py
# Description: Slices the input raster into 10 zones(classes) based on equal area.
#              Assign NoData cells to have a value of -99 in the output.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "elevation"
numberZones = 10
baseOutputZone = 5
nodataToValue = -99
classIntervalSize = "" # or None

# Execute Slice
outSlice = Slice(inRaster, numberZones, "EQUAL_AREA", baseOutputZone, nodataToValue, classIntervalSize)

# Save the output
outSlice.save("C:/sapyexamples/output/elev_slice_04.tif")

许可信息

  • Basic: 需要 Spatial Analyst 或 3D Analyst
  • Standard: 需要 Spatial Analyst 或 3D Analyst
  • Advanced: 需要 Spatial Analyst 或 3D Analyst

相关主题