Foreach

Доступно с лицензией Image Analyst.

Доступно с лицензией Spatial Analyst.

Краткая информация

Создает растровый объект, применяя растровую функцию или пользовательский шаблон функции для каждого среза многомерного набора растровых данных.

Обсуждение

Используйте функцию Foreach для применения растровой функции для каждого среза многомерного набора растровых данных. Для применения растровой функции одному срезу используйте функцию Subset перед использованием Foreach.

Эта функция создает растровый объект, содержащий переменные и измерения входного многомерного растра, обработанные растровой функцией. Набор растровых данных, на который ссылается растровый объект, является временным. Чтобы сделать его постоянным, можно вызвать метод растрового объекта save.

Синтаксис

Foreach (in_raster, raster_function, {raster_function_arguments})
ПараметрОписаниеТип данных
in_raster

Входной многомерный набор растровых данных.

Raster
raster_function

Имя растровой функции или путь к пользовательской растровой функции (файл .rft.xml), применяемой для каждого среза многомерного набора растровых данны.

String
raster_function_arguments

Параметры и значения, связанные с растровой функцией или цепочкой функций. Если не заданы, будут применены значения по умолчанию.

Например, растровая функция Tasseled Cap не требует аргументов; входными данными является один растр и нет необходимости задавать аргументы.

А растровая функция Arithmetic требует ввода 5 параметров: Raster, Raster2, Operation, Cellsize Type и Extent Type. Для использования функции Arithmetic с Apply Raster и Raster2 задаются для параметра in_raster, а остальные параметры имеют значения по умолчанию, поэтому, если для этих параметров ничего не указано, будут использоваться значения по умолчанию.

Дополнительные сведения об аргументах каждой растровой функции см. в разделе Объекты растровых функций.

Dictionary
Возвращаемое значение
Тип данныхОписание
Raster

Выходной многомерный растр.

Пример кода

Пример Foreach

Вычисление NDVI для каждого среза во временной серии сцен Landsat 7.

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})