频数取值 (Spatial Analyst)

需要 Spatial Analyst 许可。

描述

逐个像元地确定参数列表中具有特定频数级别的值。特定的频数级别(每个值的出现次数)由第一个参数指定。

插图

频数取值图示
OutRas = Popularity(ValRas, [InRas1, InRas2, InRas3])

使用方法

  • 该工具为每个位置计算输入栅格数据值的出现次数,然后排定它们的等级顺序,即,最高频数、次高频数,依此类推。它将返回由频数栅格数据值定义的指定第 n 个高频数值的值。

  • 在输入栅格列表中,顺序无关紧要。但定义频数位置的栅格必须排在它们之前。

  • 在输入栅格列表中可以指定任意数量的栅格。

  • 如果任何像元位置的输入值都相同,则无论指定的频数为何,该像元位置的输出值都与输入相同。

  • 如果某个像元位置在任意输入栅格中都含有 NoData,则该位置将在输出栅格中被分配 NoData。

  • 如果未找到第 n 高频的单一值,则将 NoData 分配给输出栅格上的位置。这种情况会出现在某一位置的所有输入栅格值均不相同时,或者在两个或更多输入栅格值具有相同的出现次数且该次数为第 n 高频数时。返回输入栅格值之一(如扫描过程中遇到的第一个值)这种情况非常不可靠。您将不知道该值是否真正是第 n 高频的值。

  • 如果频数值大于输入栅格数,则会将 NoData 分配给输出中的每个像元位置。

  • 如果将 0 指定为频数值,输出值将为 NoData。

  • 频数级别 1 是众数值,类似于像元统计工具的“众数”选项。

  • 如果任意输入栅格都属于浮点型,则输出栅格也将为浮点型;否则它就是整型。

  • 如果未选中以多波段方式处理参数(在 Python 中,process_as_multiband 被设置为 SINGLE_BAND),将仅使用多波段的第一个波段输入频数栅格或常量值(Python 中的 in_popularity_raster_or_constant)。来自多波段的每个波段输入栅格(Python 中的 in_rasters)将被单独处理为单波段栅格。

  • 如果选中以多波段方式处理参数(在 Python 中,process_as_multiband 设置为 MULTI_BAND),每个多波段栅格输入都将作为多波段栅格处理。

    输出中的波段数取决于输入频数栅格或常量值。如果频数栅格是单波段,则输出栅格上的波段数将与来自输入栅格的所有多波段栅格的最大波段数相同。如果频数栅格是多波段,则输出栅格将具有与频数栅格相同的波段数。

    如果任何输入栅格是波段数少于输出栅格波段数的栅格,则缺失波段将被解释为填充了 NoData 的波段。如果频数栅格的像元值从缺失波段中选择值一,输出栅格将收到 NoData。如果任何输入栅格是常量,则将其解释为波段栅格,其中所有波段的像元值与常量相同,并且波段数与输出栅格相同。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

语法

Popularity(in_popularity_raster_or_constant, in_rasters, {process_as_multiband})
参数说明数据类型
in_popularity_raster_or_constant

用于定义要返回的频数位置的输入栅格。

可使用一个数字作为输入;但是,像元大小和范围必须先在环境中进行设置。

Raster Layer; Constant
in_rasters
[in_raster,...]

用于为每个像元位置计算值的频数的输入栅格列表。

Raster Layer
process_as_multiband
(可选)

指定如何处理输入多波段栅格波段。

  • SINGLE_BAND来自多波段栅格输入的每个波段将被单独处理为单波段栅格。这是默认设置。
  • MULTI_BAND每个多波段栅格输入都将作为多波段栅格进行处理。将使用其他输入的相应波段数对一个输入的每个波段执行操作。
Boolean

返回值

名称说明数据类型
out_raster

输出栅格。

输出栅格上的每个像元都表示来自满足输入频数值的输入栅格的同一位置的值。

Raster

代码示例

Popularity 示例 1(Python 窗口)

此示例对多个输入栅格数据执行频数取值操作,并以 IMG 栅格数据的形式输出结果。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outPopularity = Popularity("cost", ["degs", "negs", "fourgrd"])
outPopularity.save("C:/sapyexamples/output/outpop.img")
Popularity 示例 2(独立脚本)

此示例对多个输入栅格数据执行频数取值操作,并以 Grid 栅格数据的形式输出结果。

# Name: Popularity_Ex_02.py
# Description: Determines the value in an argument list that is
#              at a certain level of popularity 
# 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
inPopularityRaster = "cost"
inRaster01 = "degs"
inRaster02 = "negs"
inRaster03 = "fourgrd"

# Execute Popularity
outPopularity = Popularity(inPopularityRaster, [inRaster01, inRaster02, inRaster03])

# Save the output 
outPopularity.save("C:/sapyexamples/output/outpop")

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题