重分类 (空间分析)
摘要
重分类(或更改)栅格中的值。
用法
-
输入栅格必须具有有效的统计数据。如果统计数据不存在,则可使用“数据管理工具”工具箱中的计算统计数据工具来创建这些统计数据。
-
如果使用工具对话框,则可通过保存按钮来存储重映射表以供以后使用。使用加载按钮可打开先前通过保存按钮创建的重映射表。
-
建议只加载先前用重分类工具保存的表。表的格式是特定的,且必须含有字段 FROM、TO、OUT 和 MAPPING。
-
默认情况下,输入栅格将被分成重分类表中的九类。
-
如果输入栅格是图层,将从渲染器获取重分类的旧值。如果渲染器已经拉伸过,则重分类将默认为 255 类。
-
重分类的重映射表经过修改后,如果选择新的输入栅格,则这些值将不会更新。如果重分类不适合新的栅格,则可按如下方式重新初始化默认重分类:
- 编辑重分类字段的值或为其选择新值
- 重新启动该工具
-
该工具包含一个用来管理小数位数处理方式的精度控件。
-
将重分类工具用作模型的一部分时:
- 如果该工具的输入源自尚未运行的某个工具,则重分类工具中的重映射参数将一直为空,直到运行了前面的工具且验证了该模型。为避免发生这种情况,请始终先运行前面的工具,然后再将这些工具的输出变量作为输入连接到重分类工具。也可以通过添加条目来创建自定义重分类表。
- 如果将重分类表显示为模型参数,则重分类字段必须显示为变量。不过,不需要将重分类字段设置为模型参数。如果该字段未显示为变量,则在模型工具对话框中,分类按钮和唯一值按钮将不可用。
语法
Reclassify (in_raster, reclass_field, remap, {missing_values})
参数 | 说明 | 数据类型 |
in_raster |
要进行重分类的输入栅格。 | Raster Layer |
reclass_field |
表示要进行重分类的值的字段。 | Field |
remap |
重映射对象用于指定如何对输入栅格的值进行重分类。 有两种方法可以定义值在输出栅格中的重分类方式:RemapRange 和 RemapValue。可将输入值的范围指定给新的输出值,也可将单个值指定给新的输出值。 下面是重映射对象的格式。
| Remap |
missing_values (可选) |
指示重分类表中的缺失值是保持不变还是映射为 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