需要 Spatial Analyst 许可。
获得 Image Analyst 许可后可用。
描述
位置栅格数据的值用于确定要从输入栅格列表中的哪一个栅格获取输出像元值。
插图
使用方法
输入位置栅格(Python 中为 in_position_raster)的每个像元的值用于确定要使用哪一个输入获取输出栅格值。例如,如果输入位置栅格中的一个像元的值为 1,则将栅格列表中第一个输入的值用于输出像元值。如果位置输入的值为 2,则输出值将来自栅格列表中的第二个输入,依此类推。
输入栅格或常量值(Python 中为 in_rasters_or_constants)的顺序对此工具很重要。如果栅格的顺序发生变化,结果也将随之改变。
如果输入位置栅格上的像元值为零或负数,结果将为 NoData。如果位置值大于列表中的栅格数目,结果将为 NoData。
如果输入位置栅格是浮点型,则处理这些值之前将其截断为整型。
在位置栅格上值为 NoData 的任何像元在输出栅格上都将接收 NoData。
如果输入列表中有任何栅格是浮点型,输出栅格将为浮点型。如果它们都是整型,则输出栅格将为整型。
如果未选中以多波段方式处理参数(在 Python 中,process_as_multiband 被设置为 SINGLE_BAND),将仅使用多波段的第一个波段输入位置栅格(Python 中的 in_position_raster)。来自多波段的每个波段输入栅格或常量值(Python 中的 in_rasters_or_constants)将被单独处理为单波段栅格。
如果选中以多波段方式处理参数(在 Python 中,process_as_multiband 设置为 MULTI_BAND),每个多波段栅格输入都将作为多波段栅格处理。
输出中的波段数取决于输入位置栅格。如果输入位置栅格是单波段,则输出栅格上的波段数将与来自输入栅格或常量值的所有多波段栅格的最大波段数相同。如果输入位置栅格是多波段,则输出栅格将具有与输入位置栅格相同的波段数。
如果任何输入栅格或常量值是波段数少于输出栅格波段数的栅格,则缺失波段将被解释为填充了 NoData 的波段。如果输入位置栅格的像元值从缺失波段中选择值一,输出栅格将收到 NoData。如果任何输入栅格或常量值是常量,则将其解释为波段栅格,其中所有波段的像元值与常量相同,并且波段数与输出栅格相同。
语法
Pick(in_position_raster, in_rasters_or_constants, {process_as_multiband})
参数 | 说明 | 数据类型 |
in_position_raster | 定义要用于输出值的栅格位置的输入栅格。 输入可以是整型或浮点型栅格。 | Raster Layer |
in_rasters_or_constants [in_raster_or_constant,...] | 将从中选择输出值的输入的列表。 输入可以是整型栅格或浮点型栅格。也可使用数字作为输入。 | Raster Layer; Constant |
process_as_multiband (可选) | 指定如何处理输入多波段栅格波段。
| Boolean |
返回值
名称 | 说明 | 数据类型 |
out_raster | 输出栅格。 | Raster |
代码示例
此例根据多个输入栅格的顺序分配输出值。
import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/iapyexamples/data"
outPick = Pick("cost", ["degs", "negs", "fourgrd"], "SINGLE_BAND")
outPick.save("C:/iapyexamples/output/outpick.tif")
此例根据多个输入栅格的顺序分配输出值。
# Name: Pick_Ex_02.py
# Description: Assigns output values using one of a list of rasters
# determined by the value of an input raster.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.ia import *
# Set environment settings
env.workspace = "C:/iapyexamples/data"
# Set local variables
inPositionRas = "inzone_MB"
inRas01 = "Ras1_MB"
inRas02 = "Ras2_MB"
inRas03 = "Ras3_MB"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute Pick
outPick = Pick(inPositionRaster, [inRas01, inRas02, inRas03], "MULTI_BAND")
# Save the output
outPick.save("C:/iapyexamples/output/outpick")
许可信息
- Basic: 需要 Image Analyst 或 Spatial Analyst
- Standard: 需要 Image Analyst 或 Spatial Analyst
- Advanced: 需要 Image Analyst 或 Spatial Analyst