等级 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

逐个像元地对一组输入栅格中的值进行分级,并根据等级输入栅格的值确定返回哪些值。

插图

等级工具输入和输出值示例
OutRas = Rank(ConstRas, [InRas1, InRas2, InRas3])

使用情况

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

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

  • 如果任何输入栅格上的某个像元位置包含 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。 如果任何输入栅格是常量,则将其解释为波段栅格,其中所有波段的像元值与常量相同,并且波段数与输出栅格相同。

  • 如果所有输入均为具有相同数量变量的多维栅格数据,则该工具将对具有相同维度值的所有剖切片执行运算。 输出将是 CRF 格式的多维栅格。 输入中的变量必须至少具有一个常见维度和一个常见维度值以供此工具进行处理,否则将发生错误。

    如果所有输入均具有一个变量但名称不同,请在执行运算之前取消选中匹配多维变量地理处理环境(在 Python 中设置 arcpy.env.matchMultidimensionalVariable = False)。

    如果其中一个或多个输入为多维栅格,而其他输入为常量,则该工具将使用常量值对所有变量的所有剖切片执行运算,并且输出将为多维栅格。

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

参数

标注说明数据类型
输入等级栅格数据或常量值

用于定义要返回的等级位置的输入栅格。

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

Raster Layer; Constant
输入栅格

将从中获得指定等级位置的栅格像元值的输入栅格列表。

例如,考虑三个输入栅格中的像元值为 17、8 和 11 的特定位置。 该位置的等级值将被定义为 3。 该工具将先对输入值进行排序。 由于所要请求的等级值为 3,因此输出值将为 17。

Raster Layer
以多波段方式处理
(可选)

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

  • 未选中 - 来自多波段栅格输入的每个波段将作为单波段栅格单独处理。 这是默认设置。
  • 选中 - 每个多波段栅格输入都将作为多波段栅格进行处理。 将使用其他输入的相应波段编号对来自一个输入的每个波段执行该运算。
Boolean

返回值

标注说明数据类型
输出栅格

输出栅格。

对于输出栅格上的每个像元,输入栅格上的值按从低到高的顺序排列,输入等级栅格的值用于选择哪一个将成为输出值。

Raster

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
(可选)

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

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

返回值

名称说明数据类型
out_raster

输出栅格。

对于输出栅格上的每个像元,输入栅格上的值按从低到高的顺序排列,输入等级栅格的值用于选择哪一个将成为输出值。

Raster

代码示例

等级 (Rank) 示例 1(Python 窗口)

本示例将对多个输入 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")
等级 (Rank) 示例 2(独立脚本)

本示例将对多个输入 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

相关主题