重分类 (3D Analyst)

摘要

重分类(或更改)栅格中的值。

使用情况

  • 如果要对值的范围重新分类,除两个输入范围的边界外,范围不应重叠。 发生重叠时,较低输入范围的最大值将包含在取值范围中,而较高输入范围的最小值将不包含在取值范围中。

    举例来说,如果指定了两个范围,比如将值 1 到 5 重新分类为 100,将 5 到 10 重新分类为 200,则小于或等于 5 的输入值将指定给输出值 100,而大于 5 的输入值(如 5.01)则会指定给 200。

  • 在工具对话框中,重分类参数中的分类唯一选项可用于根据输入栅格的值生成重映射表。 分类选项将打开一个对话框,并允许您从数据分类方法中选择一种方法,并指定类别数。 唯一选项将使用输入数据集中的唯一值填充重映射表。

  • 在重分类数据之前,建议对镶嵌数据集进行计算统计数据

  • 可通过工具对话框中的保存选项来保存重映射表,以供日后使用。 可将重映射保存为任意关系表格式。 使用加载选项可重新加载先前通过保存按钮创建的重映射表。

  • 建议只加载先前用重分类工具保存的表。 表的格式是特定的,且必须含有字段 FROMTOOUTMAPPING

  • 如果输入栅格具有属性列表,则它将用于创建初始重分类表。 如果输入栅格没有属性表,则可以使用“数据管理”工具箱中的构建栅格属性表工具来构建一个属性表,然后将栅格输入到重分类工具中。 此外,在输入栅格时,将首先应用范围像元大小等地理处理环境设置并扫描栅格,来创建重分类表。

    如果输入栅格是内容中的图层,则默认的重分类表将导入由图层符号系统指定的唯一值或分类中断值。 导入这些值时,将忽略当前的地理处理环境设置。 否则,必须使用唯一选项或分类选项来手动输入或生成重分类。

  • 重分类的重映射表经过修改后,如果选择新的输入栅格,则这些表将不会更新。 如果重分类不适合新的栅格,则可按以下方式之一重新初始化新重分类

    • 使用擦除选项删除所有重映射记录,然后手动添加新值。
    • 选择唯一选项或分类选项以生成新重分类。
  • 重分类工具用作模型的一部分时

    • 如果该工具的输入派生自某个尚未运行的工具,则重分类工具中的重映射参数将一直为空,直到运行了前面的工具且验证了该模型为止。 为避免这种情况,请始终先运行前面的工具,然后再将这些工具的输出变量作为输入连接到重分类工具。 也可以通过添加条目来创建自定义重分类表。
    • 若将重分类表显示为模型参数,则重分类字段必须显示为变量;但是,不需设置为模型参数。 如果该字段未显示为变量,则在模型工具对话框中,分类按钮和唯一值按钮将不可用。
  • 默认情况下,如果有多核处理器可用,此工具将使用多核处理。 最多可以使用 4 个核。

    要使用较少的核,请使用并行处理因子环境设置。

参数

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

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

Raster Layer
重分类字段

表示要进行重分类的值的字段。

Field
重分类

用于定义值的重分类方式的重映射表。 使用该表,其选项如下所示:

  • 可将输入栅格的值分类为值范围或单个值。 该表将分别以开始值、结束值或单个唯一值进行显示。 如果输入是内容中的图层,它将导入符号系统的唯一值或分类中断。
  • 指定将在输出栅格中分配的值。 只支持整数值。
  • 使用分类唯一选项根据输入栅格中的值生成重映射表。 分类选项将打开一个对话框,并允许您从数据分类方法中选择一种方法,并指定类别数。 唯一选项将使用输入数据集中的唯一值填充重映射表。
  • 对新值取反选项对新值列表反向排序(例如 1,2,3 重排序为 3,2,1)。
  • 如果要对表进行修改,可以在表的空白单元格中进行输入以添加新条目,然后按 Enter 键。 此操作将验证新条目并为后续输入创建一个新的空行。 要删除行,可以选中一行或多行,然后按 Delete 键。
  • 使用加载选项和保存选项可以保存重映射以供日后使用,并可将其用于其他输入数据或用于快速重复某一分析。
Remap
输出栅格

输出重分类栅格。

输出将始终为整型。

Raster Dataset
将缺失值更改为 NoData
(可选)

指示重分类表中的缺失值是保持不变还是映射为 NoData。

  • 未选中 - 表明如果输入栅格的任何像元位置含有未在重映射表中出现或重分类的值,则该值应保持不变,并且应写入输出栅格中的相应位置。 这是默认设置。
  • 选中 - 表明如果输入栅格的任何像元位置含有未在重映射表中出现或重分类的值,则该值将在输出栅格中的相应位置被重分类为 NoData。
Boolean

返回值

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

输出重分类栅格。

输出将始终为整型。

Raster

arcpy.ddd.Reclassify(in_raster, reclass_field, remap, out_raster, {missing_values})
名称说明数据类型
in_raster

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

Raster Layer
reclass_field

表示要进行重分类的值的字段。

Field
remap

用于定义值的重分类方式的重映射列表。

重映射列表由三部分组成:“自”值、“至”值和“新”值。 重映射列表中的各行由分号来分隔,而这三部分则由空格分隔。 例如

"0 5 1;5.01 7.5 2;7.5 10 3"

重映射对象用于指定如何对输入栅格的值进行重分类。

有两种对输出栅格中的值进行重新分类的方法:RemapRangeRemapValue。 可将输入值的范围指定给新的输出值,也可将单个值指定给新的输出值。

下面是重映射对象的格式。

  • RemapRange (remapTable)
  • RemapValue (remapTable)
Remap
out_raster

输出重分类栅格。

输出将始终为整型。

Raster Dataset
missing_values
(可选)

指示重分类表中的缺失值是保持不变还是映射为 NoData。

  • DATA表明如果输入栅格的任何像元位置含有未在重映射表中出现或重分类的值,则该值应保持不变,并且应写入输出栅格中的相应位置。 这是默认设置。
  • NODATA表明如果输入栅格的任何像元位置含有未在重映射表中出现或重分类的值,则该值将在输出栅格中的相应位置被重分类为 NoData。
Boolean

返回值

名称说明数据类型
out_raster

输出重分类栅格。

输出将始终为整型。

Raster

代码示例

重分类示例 1(Python 窗口)

以下示例展示了对一个栅格进行重新分类的几种方式。

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

outReclass1 = Reclassify("landuse", "Value", 
                         RemapValue([[1,9],[2,8],[3,1],[4,6],[5,3],[6,3],[7,1]]))
outReclass1.save("C:/sapyexamples/output/landuse_rcls")

outReclass2 = Reclassify("slope_grd", "Value", 
                         RemapRange([[0,10,"NODATA"],[10,20,1],[20,30,2],
                                     [30,40,3],[40,50,4],[50,60,5],[60,75,6]]))
outReclass2.save("C:/sapyexamples/output/slope_rcls")

outReclass3 = Reclassify("pop_density", "Value", 
                         RemapRange([[10,10,1],[10,20,2],[20,25,3],
                                     [25,50,4],[50,]]), "NODATA")
outReclass3.save("C:/sapyexamples/output/popden_rcls")
重分类示例 2(独立脚本)

以下示例显示的是根据字符串型字段中的值对输入栅格进行重分类。

# Name: reclassify_example02.py
# Description: Reclassifies the values in a raster.
# Requirements: Spatial Analyst Extension

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

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

# Set local variables
inRaster = "landuse"
reclassField = "LANDUSE"
remap = RemapValue([["Brush/transitional", 0], ["Water", 1],["Barren land", 2]])

# Execute Reclassify
outReclassify = Reclassify(inRaster, reclassField, remap, "NODATA")

# Save the output 
outReclassify.save("C:/sapyexamples/output/outreclass02")
重分类示例 1(Python 窗口)

以下示例显示的是如何将栅格重新分成七类。

import arcpy
from arcpy import env  
env.workspace = "C:/sapyexamples/data"
arcpy.Reclassify_3d("C:/data/landuse", "VALUE", 
                    "1 9;2 8;3 1;4 6;5 3;6 2;7 1",
                    "C:/output/outremap","DATA")
重分类示例 2(独立脚本)

以下示例显示的是根据字符串型字段中的值对输入栅格进行重分类。

# Name: Reclassify_3d_Ex_02.py
# Description: Reclassifies the values in a raster.
# Requirements: 3D Analyst Extension

# Import system modules
import arcpy
from arcpy import env

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

# Set local variables
inRaster = "landuse"
field = "VALUE"
remapString = "1 9;2 8;3 1;4 6;5 3;6 2;7 1"
outRaster = "C:/output/reclass3d"

# Execute Reclassify
arcpy.ddd.Reclassify(inRaster, field, remapString, outRaster, "DATA")

相关主题