使用 ASCII 文件重分类的工作原理

可以使用将生成 ASCII 文本文件的任何编辑器创建 ASCII 重映射文件。 以下是关于对要使用的 ASCII 文件进行正确格式化的几点论述。

对于使用 ASCII 文件重分类使用 ASCII 文件重分类工具,输入重映射文件必须按特定方式进行格式化。 这种文件可以使用能够生成 ASCII 文本文件的任何编辑器进行创建。

以下列表列出了有关对 ASCII 文件进行正确格式化的详细信息:

  • 可以使用 # 符号作为起始字符输入注释行。 输入的注释数不受限制。
  • 每个分配行都可将输入栅格内的某一个值或一定范围内的值映射为输出值。 分配行只接受数值。
  • ASCII 重映射文件中所有分配行的格式都必须相同。 支持两种格式:一种用于对指定的输入值逐个进行重新分类,另一种用于对一定范围内的输入值进行重新分类。

    要将单个值重新分类为其他值,应先指定该值,后接空格,然后是冒号 (:),再空格,最后是要分配到输出的像元上的值。

    一般来说,用于单个输入值的分配行应如下所示:

    in_value : out_value

    用于多个值的分配行应如下所示:

    5 : 20
    根据此分配行,输入栅格中值为 5 的位置在输入栅格中将被赋予值 20。

  • 对于单个输入值分配行而言,如果输入值并非直接指定的值,则输出将为原始输入值或 NODATA,具体取决于缺失值复选框的设置(数据或 NoData)。

    例如,假设某一分配表由两行组成:

    5 : 100
    7 : 200

    如果输入值为 2,则输出值将为 2 或 NoData,具体取决于缺失值复选框的设置(“数据”或 NoData)。 如果输入值为 5,则输出将为 100。 如果输入值为 6,则输出将为 6 或 NoData。

  • 如果要对一定范围内的值进行重新分类,则应先指定范围中的最小值,后跟空格,然后是范围中的最大值,后接冒号 (:),再加空格,最后接输出值。

    一般来说,用于一定范围内的值的分配行应如下所示:

    in_min_value in_max_value : out_value

    用于多个值的分配行应如下所示:

    5 10 : 50

    其中,输入栅格上的值 5、6、7、8、9 和 10 在输出栅格上将被赋予值 50。 值 3 将被赋予值 3 或 NoData。 值 12 将被赋予值 12 或 NoData。

  • 要进行映射的值(单个值或一定范围内的值)必须以升序排列,即最小值列在最前面。
  • in_min_value 或 in_max_value 的值可以是整型数字也可以是浮点型数字。 如果重映射表中的输出分配值 (out_value) 为浮点型值,则将对其进行截断。 使用 ASCII 文件重分类的输出栅格始终为整型。
  • 除了两个输入范围的边界之外,值的输入范围不应重叠。 发生重叠时,较低输入范围的最大值将包含在取值范围中,而较高输入范围的最小值将不包含在取值范围中;例如:

    1 3 : 4   (where  1 <= value <= 3, values remapped to 4)
    3 5 : 6   (where  3 <  value <= 5, values remapped to 6)
    5 7 : 8   (where  5 <  value <= 7, values remapped to 8)

相关主题