查找输入列表中满足指定条件的值

有两个本地工具,可以根据从一组输入栅格得到的值列表中哪个值或哪些值满足指定条件来指定像元的输出值。这两个工具是频数取值等级

频数取值

频数取值工具可以为每个位置确定在通过输入栅格标识出的输入值中第 n 个出现频率最高的值。该工具需要输入栅格列表和频数值来标识第 n 个出现频率最高的值,其中频数值可能是常量或栅格。

示例

例如,如果指定的频数值是 2,那么对于每个像元,应该输出由输入栅格得到的值列表中出现频率第二高的值。如果特定位置的输入值如下

频数取值

InRas1

InRas2

InRas3

InRas4

InRas5

2

3

3

5

3

5

频数取值的输入像元值示例

那么,这些值将按照下面的方式进行排序:

输入栅格

3

InRas1

3

InRas2

3

InRas4

5

InRas3

5

InRas5

排序后的值列表

因此,列表中出现频率最高的值是 3,出现了三次;出现频率第二高的值是 5,出现了两次。由于指定的频数值是 2,所以对于该像元位置该工具的输出是 5。

再比如,下面的图示标识出了三个输入栅格的出现频率第二高的值。

频数插图
OutRas = Popularity(2, [InRas1, InRas2, InRas3])

只要某个输入栅格上的某个位置的像元是 NoData,该位置就将接收 NoData 输出。

如果某个特定位置没有出现频率第二高的值,那么像元位置将接收 NoData。符合下列条件时就会发生这种情况:

  • 所有的值都是唯一的。
  • 不同的值的数量相等。

等级

等级工具可以为每个像元创建一个输入栅格中的值的内部参数列表。参数列表中的值按照从小到大的顺序排列。将输出由输入等级栅格定义的等级顺序位置上的值(第 n 小的值)。

示例

例如,输入等级栅格是 RankRas,输入栅格列表是 InRas1InRas2InRas3InRas4RankRas 栅格的所有像元值都是常数 3,这表明将返回第三小的值。

InRas1

InRas2

InRas3

InRas4

4

6

3

8

等级工具的输入值示例

这些值的等级排列情况如下:

位置

像元值

1

3

2

4

3

6

4

8

等级顺序参数列表

由于等级输入中的值所定义的位置是第三个位置 (3),所以该像元的输出值将会是 6。

相关主题

5/10/2014