重分类 (空间分析)

摘要

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

用法

语法

Reclassify (in_raster, reclass_field, remap, {missing_values})
参数说明数据类型
in_raster

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

Raster Layer
reclass_field

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

Field
remap

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

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

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

  • RemapRange ([[startValue, endValue, newValue],...])
    • startValue - 要指定给新输出值的值范围的下限。
    • endValue - 要指定给新输出值的值范围的上限。
    • newValue - 要指定给由起始值和结束值所定义的输入值范围的新值。
  • RemapValue ([[oldValue, newValue],...])
    • oldValue - 表示基础栅格中的原始值。
    • newValue - 经过重分类的新值。
Remap
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]])

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

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

# Save the output 
outReclassify.save("C:/sapyexamples/output/outreclass02")

环境

相关主题

许可信息

ArcView: 需要 Spatial Analyst 或 3D Analyst
ArcEditor: 需要 Spatial Analyst 或 3D Analyst
ArcInfo: 需要 Spatial Analyst 或 3D Analyst

7/10/2012