切割片 (空间分析)

摘要

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

使用情况

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

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

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

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

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

参数

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

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

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

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

分割方法参数值为相等面积相等间隔自然间断点几何间隔时,此参数为必需项。

分割方法参数值为定义间隔标准差(以平均值为中心)标准差(以平均值为间断点)时,输出区域数参数将无效。 输出区域数将由间隔大小参数值确定。

Long
分割方法
(可选)

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

  • 相等间隔输入值范围将等分为指定数量的输出区域来确定类别间断点。 这是默认设置。
  • 等积输入像元的数量将等分为指定数量的输出区域来确定类别间断点。 每个区域将具有相似数量的像元,表示相似的面积。
  • 自然间断点类别间断点将以最小化类别内方差和最大化类别间方差的方式确定。 通常情况下,在数据值发生较大变化的位置设置间断点。
  • 标准差(以平均值为中心)类别间断点将在平均值上方和下方以指定的间隔大小(例如 2、1 或 0.5)放置,采用标准差单位,直到达到输入栅格的最小和最大值。 平均值将用作类别间断点。 一个间断点位于平均值上方的指定间隔大小的一半处,另一个间断点位于平均值下方的指定间隔大小的一半处。 标准差使用 n-1 的分母进行计算,其中 n 是具有值的像素数。
  • 标准差(平均值作为中断)平均值将作为类别ji间断点。 其他类别间断点将在平均值上方和下方以指定的间隔大小(例如 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_BREAKDEFINED_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平均值将作为类别ji间断点。 其他类别间断点将在平均值上方和下方以指定的间隔大小(例如 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")