Извлечь по атрибутам (Spatial Analyst)

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

Извлекает ячейки растра на основе логического запроса.

Иллюстрация

Иллюстрация инструмента Извлечь по атрибутам
OutRas = ExtractByAttributes(InRas1, "Value > 0")

Использование

  • Дополнительные атрибуты входного растра, если имеются, будут перенесены в атрибутивную таблицу выходного растра без изменений. В зависимости от записываемого параметра, для некоторых атрибутивных значений может потребоваться пересчет.

  • Если для параметра Входной растр (in_raster в Python) указан многоканальный растр, будет обработаны все каналы.

    Чтобы обработать выбранные каналы многоканального растра, сначала создайте набор растровых данных, состоящий только из необходимых каналов, с помощью инструмента Объединить каналы. Затем используйте результат в качестве Входного растра (in_raster в Python)

    Выходным форматом по умолчанию является растр базы геоданных. Если в качестве выходного формата указан Esri Grid stack, название стека не должно начинаться с цифры, содержать пробелы и должно иметь длину не более девяти символов.

  • Если в ответ на условие Where получен ответ Истинно, исходное значение ячейки присваивается соответствующей ячейке выходного растра. Если получен ответ Ложно, ячейке выходного растра присваивается значение NoData.

  • Выражение Where использует SQL-запрос. Более подробно о создании запросов см. в следующих разделах:

  • Чтобы использовать в языке Python выражение условия {where_clause}, его следует заключить в кавычки. Например, "Value > 5000".

    Дополнительные сведения об указании запроса в Python см. в справке.

  • Если в запросе имеется элемент входного растра, отличный от Value, исходное значение ячейки входного растра будет присвоено ячейке выходного растра.

  • Если входной растр целочисленный, выходной растр будет также целочисленным. Если входной растр с плавающей точкой, выходной растр также будет с плавающей точкой.

  • См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.

Параметры

ПодписьОписаниеТип данных
Входной растр

Входной растр, ячейки которого извлекаются.

Raster Layer
Условие Where

Логическое выражение, которое выбирает поднабор ячеек растра.

Условие Where следует общим правилам построения выражений SQL. Его можно ввести напрямую, например, VALUE> 100, если нажать кнопку перехода в режим Редактирование SQL SQL-запрос. Если вы находитесь в Режиме редактирования условия Редактировать условие, вы можете начать построение выражения, нажав кнопку Режим Добавить условие.

SQL Expression

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной растр

Выходной растр, содержащий значения ячеек, извлеченные из входного растра.

Raster

ExtractByAttributes(in_raster, where_clause)
ИмяОписаниеТип данных
in_raster

Входной растр, ячейки которого извлекаются.

Raster Layer
where_clause

Логическое выражение, которое выбирает поднабор ячеек растра.

Выражение следует общим правилам построения выражений SQL. Примером where_clause может быть "VALUE> 100".

SQL Expression

Возвращаемое значение

ИмяОписаниеТип данных
out_raster

Выходной растр, содержащий значения ячеек, извлеченные из входного растра.

Raster

Пример кода

ExtractByAttributes. Пример 1 (окно Python)

В этом примере из растра извлекаются ячейки на основе логического запроса, где высота больше 1000 метров.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
attExtract = ExtractByAttributes("elevation", "VALUE > 1000") 
attExtract.save("c:/sapyexamples/output/attextract")
ExtractByAttributes пример 2 (автономный скрипт)

В этом примере из растра извлекаются ячейки на основе логического запроса, где высота больше 1000 метров.

# Name: ExtractByAttributes_Ex_02.py
# Description: Extracts the cells of a raster based on a logical query. 
# 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
inRaster = "elevation"
inSQLClause = "VALUE > 1000"

# Execute ExtractByAttributes
attExtract = ExtractByAttributes(inRaster, inSQLClause) 

# Save the output 
attExtract.save("c:/sapyexamples/output/attextract02")