Foreach

获得 Image Analyst 许可后可用。

需要 Spatial Analyst 许可。

描述

通过将栅格函数或自定义函数模板应用于输入多维栅格中的每个剖切来创建栅格对象。

讨论

使用 Foreach 函数将栅格函数应用于多维栅格数据集中的每个剖切。要将栅格函数应用于单个剖切,请在使用 Foreach 之前使用 Subset 函数。

此函数将创建一个栅格对象,其中包含使用栅格函数处理的输入多维栅格的变量和尺寸。栅格对象所引用的栅格数据集是临时性的。要使其变为永久性数据集,可以调用栅格对象的 save 方法。

语法

Foreach (in_raster, raster_function, {raster_function_arguments})
参数说明数据类型
in_raster

输入多维栅格数据集。

Raster
raster_function

应用于输入多维栅格中的每个剖切的栅格函数的名称或自定义栅格函数的路径(.rft.xml 文件)。

String
raster_function_arguments

与栅格函数或函数链相关联的参数和值。如果未指定参数和值,则将使用默认值。

例如,缨帽栅格函数不需要任何参数;输入为单一栅格,因此无需指定参数。

但是,算术栅格函数需要 5 个输入参数:RasterRaster2OperationCellsize TypeExtent Type。要同时使用 Arithmetic 和 Apply 函数,需在 in_raster 参数中定义 RasterRaster2,并使其余参数保持为默认值,因此如果没有为这些参数指定任何内容,则将使用默认值。

有关每个栅格函数的函数参数信息,请参阅栅格函数对象

Dictionary
返回值
数据类型说明
Raster

输出多维栅格。

代码示例

Foreach 示例

计算 Landsat 7 场景时间序列中每个剖切的 NDVI。

import arcpy
from arcpy import env
from arcpy.sa import *

arcpy.CheckOutExtension("Spatial")

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Create multidimensional raster object from 
# Landsat7 time series data in a mosaic dataset
in_raster = Raster("Landsat7", True)

# Calculate NDVI for each scene in the time series
out_NDVI_raster = Foreach(
	in_raster, "NDVI", {'VisibleBandID':3,'InfraredBandID':4})