需要 Spatial Analyst 许可。
重分类工具使您能够使用重映射表或重分类表轻松快捷地重分类数据。此表的格式允许您将单个值、一定范围内的值、字符串或 NoData 映射到其他值或 NoData。利用重映射表的地理处理工具有使用 ASCII 文件重分类和使用表重分类工具。如果使用重分类工具,则可动态创建重分类表以供分析使用,或保存表以供以后使用。以下各部分将介绍用于创建这些重映射表的规则,并给出在重分类工具中使用这些规则的示例。
关于重映射表
重映射表可以是 ASCII 文件、地理数据库表或 INFO 表。使用 ASCII 文件重分类工具需要 ASCII 文件,使用表重分类需要采用表格形式。重映射表由两部分组成。第一部分是要重分类的特定像元值,第二部分是像元的重分类后的输出值。
ASCII 重映射表
通过 ASCII 表可以更加灵活地确定重分类后的值。可使用任何文本编辑器并按照以下段落中所讨论的格式规则定义重分类参数,从而创建该表。
ASCII 重映射表的最基本示例遵循仅使用中断值对栅格进行分类。
Value Symbol 3 1 5 2 10 3 15 4
- 在本示例中:
- 将值小于等于 3 的像元指定为符号 1。
- 将值大于 3 且小于等于 5 的像元指定为符号 2。
- 将值大于 5 且小于等于 10 的像元指定为符号 3。
- 将值大于 10 且小于等于 15 的像元指定为符号 4。
- 将值大于 15 的像元指定为 NoData。
ASCII 重映射表由注释(可选)、关键字(可选)和赋值语句(必选)组成。每条语句必须独占一行。注释是可用于提供附加信息的描述性文本。注释可在重映射表的任意位置显示,但必须以井号 (#) 开头。关键字用于确定重分类所作用于的参数。赋值语句用于将输出值分配给指定的单个输入像元值或一定范围内的输入像元值。
关键字将位于文件的开头,且在输入所有赋值语句之前。但是,注释可出现在任意位置,并可位于关键字之前。查找表中可包括两个可选关键字。第一个是 LOWEST-INPUT,该关键字用于确定栅格中进行重分类时将要考虑的最小像元值。LOWEST-INPUT 格式如下:最小输入 <值>,其中 <值> 是进行重分类时所要考虑的最小像元值。在要排除值低于指定值的像元时,可使用 LOWEST-INPUT。例如,在像元值范围为 1 到 20 的栅格中,将 LOWEST-INPUT 设置为 5 将排除那些值小于 5 的像元。如果未指定,则 LOWEST-INPUT 默认为输入栅格的最小值。
第二个可选关键字为 LOWEST-OUTPUT,它用于确定重分类值的最小输出值或起点。此关键字用于在赋值语句(本节稍后讲述)仅指定输入值的情况下自动设置输出重分类值;LOWEST-OUTPUT 的格式为最小输出 <值>,其中 <值> 是最小输出重分类值。如果未指定,LOWEST-OUTPUT 默认为 1。
赋值语句紧跟在关键字之后。可使用多种方法设置它们的格式。一般格式的赋值语句确定输入像元值与其重分类值之间的关系:
old input cell value : new output reclassified value
输入像元值可以是整数或实数;但输出重分类值只能是整数。
有多种方法可用于指定输入值及其关联的重分类值。使用示例可更好的解释这些方法。有关 ASCII 重映射表的其余讨论以几个重映射表来呈现,主要介绍如何根据表重分类输入像元值。所有示例均使用像元值介于 1 到 20 之间的栅格数据集。
示例
仅确定输入像元值
本例显示的是使用只包含输入像元值的赋值语句的重映射表。
# Example 1 # Remap table for cell value reclassification. LOWEST-INPUT 3 LOWEST-OUTPUT 2 5 6 7 15
输入像元值必须始终按升序进行存储。
与 INFO 重映射表相同,后续赋值语句隐式定义要进行重分类的像元值范围。因此,必须按升序存储输入像元值。每个范围对应的输出重分类值会自动根据使用 LOWEST-OUTPUT 指定的值进行计算。第一个范围的像元值将重分类为已为 LOWEST-OUTPUT 指定的值。下一个范围将重分类为 LOWEST-OUTPUT +1,依此类推,直到所有赋值语句都有一个重分类的值。任何落到指定范围之外的像元值都将被重分类为 NoData。
下表是对重分类的汇总:
输入像元值 | 输出重分类值 |
---|---|
小于 3 | NoData |
3 至 5 | 2(最小输出) |
大于 5 小于等于 6 | 3(最小输出 + 1) |
大于 6 小于等于 7 | 4(最小输出 + 2) |
大于 7 小于等于 15 | 5(最小输出 + 3) |
大于 15 | NoData |
如果尚未指定 LOWEST-INPUT,所有小于等于 5 的像元值将被重分类为 2。如果未将 LOWEST-OUTPUT 指定为 2,则重分类值将默认为 1。
特定输出值
您可通过向重映射表添加其他字段,为每个输入值或输入范围指定输出值。
输入像元值或值范围后首先接的是冒号 (:),然后是所需的输出重分类值。指定显式输出重分类值时,LOWEST-OUTPUT 将被忽略,例如:
# Example 3 # Remap table for cell value reclassification. LOWEST-INPUT 3 5 : 10 6 : 16 7 : 62 15 : 28
下表是对重分类的汇总:
输入像元值 | 输出重分类值 |
---|---|
小于 3 | NoData |
3 至 5 | 10 |
大于 5 小于等于 6 | 16 |
大于 6 小于等于 7 | 62 |
大于 7 小于等于 15 | 28 |
大于 15 | NoData |
显式输入范围
同样,也可为显式输入范围指定输出值:
# Example 4 # Remap table for cell value reclassification. 3 5 : 9 5 9 : 8 13 15 : 59
重分类总结如下:
输入像元值 | 输出重分类值 |
---|---|
小于 3 | NoData |
3 至 5 | 9 |
大于 5 小于等于 9 | 8 |
大于 9 小于等于 13 | NoData |
大于 13 小于等于 15 | 59 |
大于 15 | NoData |
无效的重映射表示例 - 混合使用单个输入值和范围
上面给出的所有示例都是有效的 ASCII 重映射表,可用于重分类像元值。这四种方法中的每种方法都显示了 ASCII 重映射表可使用的语法。四种类型的语法不能混合使用。例如,指定一条包含单个输入值的赋值语句,之后再接一条包含输入范围的赋值语句是无效的。
下面是一个无效的重映射表。在同一重映射表中不能同时指定单个输入像元值和输入范围。
# Invalid remap table for cell value reclassification LOWEST-INPUT 3 LOWEST-OUTPUT 2 5 6 9 11 15
无效的重映射表示例 - 混合使用指定的输出值
在重映射表中仅对某些赋值语句指定输出重分类值是无效的。如果指定了一个输出值,则必须在所有赋值语句中都指定。
下面是一个无效的重映射表(所有赋值语句都必须具有指定的输出值):
# Invalid remap table for cell value reclassification LOWEST-INPUT 3 5 : 10 6 7 : 62 15