频数取值 (空间分析)
摘要
逐个像元地确定参数列表中具有特定频数级别的值。特定的频数级别(每个值的出现次数)由第一个参数指定。
插图
用法
-
该工具为每个位置计算输入栅格数据值的出现次数,然后排定它们的等级顺序,即,最高频数、次高频数,依此类推。它将返回由频数栅数据格值定义的指定第 n 高频数值的值。
-
在输入栅格列表中,顺序无关紧要。但定义频数位置的栅格必须排在它们之前。
-
在输入栅格列表中可以指定任意数量的栅格。
-
如果任何像元位置的输入值都相同,则无论指定的频数为何,该像元位置的输出值都与输入相同。
-
如果某个像元位置在任意输入栅格中都含有 NoData,则该位置将在输出栅格中被分配 NoData。
-
如果未找到表示第 n 高频数的单一值,则将 NoData 分配给输出栅格上的位置。这种情况会出现在某一位置的所有输入栅格值均不相同时,或者在两个或更多输入栅格值具有相同的出现次数且该次数为第 n 高频数时。返回输入栅格值之一(如扫描过程中遇到的第一个值)这种情况非常不可靠。您将不知道该值是否真正是第 n 高频数值。
-
如果频数值大于输入栅格数,则会将 NoData 分配给输出上的每个像元位置。
-
如果将 0 指定为频数值,输出值将为 NoData。
-
频数级别 1 是众数值,类似于像元统计的“众数”选项。
-
如果任意输入栅格都属于浮点型,则输出栅格也将为浮点型;否则它就是整型。
语法
参数 | 说明 | 数据类型 |
in_popularity_raster_or_constant |
定义要返回的频数位置的输入栅格。 可使用一个数字作为输入;但是,像元大小和范围必须先在环境中进行设置。 | Raster Layer | Constant |
in_rasters [in_raster,...] |
用于为每个像元位置计算值的频数的输入栅格列表。 | Raster Layer |
返回值
名称 | 说明 | 数据类型 |
out_raster |
输出栅格。 输出栅格中的每个像元都表示来自满足输入频数值的输入栅格的同一位置的值。 | Raster |
代码实例
此示例对多个输入栅格数据执行频数取值操作,并以 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")
此示例对多个输入栅格数据执行频数取值操作,并以 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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Popularity
outPopularity = Popularity(inPopularityRaster, [inRaster01, inRaster02, inRaster03])
# Save the output
outPopularity.save("C:/sapyexamples/output/outpop")