Извлечь по атрибутам (Spatial Analyst)
Краткая информация
Извлекает ячейки растра на основе логического запроса.
Рисунок
Использование
-
Если в ответ на запрос по атрибуту (Where clause) получен ответ Истинно, исходное значение ячейки присваивается соответствующей ячейке выходного растра. Если в ответ на запрос по атрибуту получен ответ Ложно, ячейке выходного растра присваивается значение NoData.
-
Любые дополнительные поля (кроме Value (Значение) и Count (Число)) входного растра не будут включены в выходной растр.
-
Если другое поле (не Value (Значение)) фигурирует в атрибутивном запросе (Where clause) входного растра, исходное значение ячейки входного растра будет присвоено ячейке выходного растра.
-
Если в качестве входных данных выбран многоканальный растр, выходной растр тоже будет многоканальным. Каждый отдельный канал входного многоканального растра будет проанализирован соответственно.
По умолчанию выходной формат – Esri Grid stack. Обратите внимание, что стек Esri Grid не может начинаться с цифры, использовать пробелы и быть более 9 символов в длину.
-
Если входные данные – это слой, созданный на основании многоканального растра, состоящего из более, чем трех каналов, в операции извлечения будут учитываться только те каналы, которые были загружены слоем (отображены символами). Следовательно, выходной многоканальный растр может состоять не более, чем из трех каналов, соответствующих тем, которые были использованы при отображении входного слоя.
-
Если входной растр целочисленный, выходной растр будет также целочисленным. Если входной растр с плавающей точкой, выходной растр также будет с плавающей точкой.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster |
Входной растр, ячейки которого будут участвовать в операции извлечения. | Raster Layer |
where_clause | Логическое выражение, которое выбирает поднабор ячеек растра. Выражение следует за главной формой выражения SQL. Более подробно об основах SQL для выражений запроса, применяемых в ArcGIS и построении запроса в Python см. в документации соответствующих разделов. | SQL Expression |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster |
Выходной растр, содержащий значения ячеек, извлечённые из входного растра. | Raster |
Пример кода
В этом примере из растра извлекаются ячейки на основе логического запроса, где высота больше 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")
В этом примере из растра извлекаются ячейки на основе логического запроса, где высота больше 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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ExtractByAttributes
attExtract = ExtractByAttributes(inRaster, inSQLClause)
# Save the output
attExtract.save("c:/sapyexamples/output/attextract02")