Доступно с лицензией Spatial Analyst.
Краткая информация
Извлекает ячейки растра на основе логического запроса.
Иллюстрация
Использование
Если в ответ на условие Where получен ответ Истинно, исходное значение ячейки присваивается соответствующей ячейке выходного растра. Если получен ответ Ложно, ячейке выходного растра присваивается значение NoData.
Выражение Where использует SQL-запрос. Более подробно о создании запросов в Конструкторе запросов см. в следующих разделах:
Чтобы использовать в языке Python выражение условия {where_clause}, его следует заключить в кавычки. Например, "Value > 5000".
Дополнительные сведения об указании запроса в Python см. в справке.
Любые дополнительные поля (кроме Value (Значение) и Count (Число)) входного растра не будут включены в выходной растр.
Если какой-то другой элемент, отличный от Value входного растра будет указан в запросе, то для местоположения ячейки будет возвращаться исходное входное значение.
Если в качестве входного указан многоканальный растр, на выходе будет создан новый многоканальный растр. Соответственно, будет анализироваться каждый канал входного многоканального растра.
Выходным форматом по умолчанию является растр базы геоданных. Если в качестве выходного формата указан Esri Grid stack, его название не должно начинаться с цифры, содержать пробелы и должно иметь длину не более девяти символов.
Если входные данные – это слой, созданный на основании многоканального растра, состоящего из более, чем трех каналов, в операции извлечения будут учитываться только те каналы, которые были загружены слоем (отображены символами). В результате выходной многоканальный растр может иметь лишь три канала – в соответствии с используемыми для входного слоя каналами.
Если входной растр целочисленный, выходной растр будет также целочисленным. Если входной растр с плавающей точкой, выходной растр также будет с плавающей точкой.
См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
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"
# 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")
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst