借助重分类工具,您可以使用重映射或重分类表快速轻松地对数据进行重分类。 此表的格式允许将单个值、值范围、字符串或 NoData 映射到另一个值或 NoData。 利用重映射表的地理处理工具为使用 ASCII 文件重分类和使用表重分类工具。 如果使用重分类工具,则可动态创建重分类表以供分析使用,或保存表以供以后使用。 以下部分将解释创建这些重映射表的规则,并给出其在重分类工具中的使用示例。
关于重映射表
重映射表可以是 ASCII 文件或地理数据库表。 使用 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