需要 Spatial Analyst 许可。
描述
逐个像元地对一组输入栅格中的值进行排名,并根据排名输入栅格中的值确定返回哪些值。
插图
使用方法
在输入栅格列表中,顺序无关紧要。但定义等级的栅格必须排在它们之前。
在输入栅格列表中可以指定任意数量的栅格。
如果某个像元位置在任意输入栅格中都含有 NoData,则该位置将在输出栅格中被分配 NoData。
如果任何像元位置的输入值都相同,则无论指定的等级为何,该像元位置的输出都将是该值。
如果等级栅格值大于输入栅格数,则将 NoData 分配给输出中的每个像元位置。
如果任意输入栅格都属于浮点型,则输出栅格也将为浮点型;否则它就是整型。
如果未选中以多波段方式处理参数(在 Python 中,process_as_multiband 被设置为 SINGLE_BAND),将仅使用多波段的第一个波段输入等级栅格或常量值(Python 中的 in_rank_raster_or_constant)。来自多波段的每个波段输入栅格(Python 中的 in_rasters)将被单独处理为单波段栅格。
如果选中以多波段方式处理参数(在 Python 中,process_as_multiband 设置为 MULTI_BAND),每个多波段栅格输入都将作为多波段栅格处理。
输出中的波段数取决于输入等级栅格或常量值。如果等级栅格是单波段,则输出栅格上的波段数将与来自输入栅格的所有多波段栅格的最大波段数相同。如果等级栅格是多波段,则输出栅格将具有与等级栅格相同的波段数。
如果任何输入栅格是波段数少于输出栅格波段数的栅格,则缺失波段将被解释为填充了 NoData 的波段。如果等级栅格的像元值从缺失波段中选择值一,输出栅格将收到 NoData。如果任何输入栅格是常量,则将其解释为波段栅格,其中所有波段的像元值与常量相同,并且波段数与输出栅格相同。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
Rank(in_rank_raster_or_constant, in_rasters, {process_as_multiband})
参数 | 说明 | 数据类型 |
in_rank_raster_or_constant | 用于定义要返回的等级位置的输入栅格。 可使用一个数字作为输入;但是,像元大小和范围必须先在环境中进行设置。 | Raster Layer; Constant |
in_rasters [in_raster,...] | 将从中获得指定等级位置的栅格像元值的输入栅格列表。 例如,考虑三个输入栅格中的像元值为 17、8 和 11 的特定位置。该位置的等级值将被定义为 3。该工具将先对输入值进行排序。由于所要请求的等级值为 3,因此输出值将为 17。 | Raster Layer |
process_as_multiband (可选) | 指定如何处理输入多波段栅格波段。
| Boolean |
返回值
名称 | 说明 | 数据类型 |
out_raster | 输出栅格。 对于输出栅格上的每个像元,输入栅格上的值按从低到高的顺序排列,输入等级栅格的值用于选择哪一个将成为输出值。 | Raster |
代码示例
此例对多个输入 Grid 栅格执行等级运算,并以 TIFF 栅格数据的形式输出结果。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outRank = Rank("cost", ["degs", "negs", "fourgrd"])
outRank.save("C:/sapyexamples/output/outrank.tif")
此例对多个输入 GRID 栅格执行等级运算,并以 Grid 栅格数据的形式输出结果。
# Name: Rank_Ex_02.py
# Description: Returns the value of a set of rasters based on
# a rank level specified by another raster
# 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
inRankRaster = "cost"
inRaster01 = "degs"
inRaster02 = "negs"
inRaster03 = "fourgrd"
# Execute Rank
outRank = Rank(inRankRaster, [inRaster01, inRaster02, inRaster03])
# Save the output
outRank.save("C:/sapyexamples/output/outrank")
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst