Доступно с лицензией Spatial Analyst.
Краткая информация
Извлекает ячейки растра с использованием полигона путем задания его вершин.
Иллюстрация
Использование
Извлечение происходит по полигону, заданному во входном классе объектов, вместо задания серии координат x,y, в инструменте Извлечь по маске.
Полигональный объект класса полигонов может состоять из одной части или из нескольких частей. В последнем случае все полигоны должны быть смежными, чтобы они могли быть очерчены одним полигоном. Для извлечения данных полигональным объектом, содержащим несколько не связанных между собой частей, воспользуйтесь инструментом Извлечь по маске.
Для определения, попадает ячейка в полигон или за пределы полигона, используется центр ячейки. Если центр ячейки в пределах дуг, образующих полигон, ячейка считается полностью в пределах полигона, даже если часть ячейки попадает за пределы полигона.
В полигоне не должно быть более 1 000 вершин. Вершины полигона должны быть заданы в строгом порядке по часовой стрелке. Начальная и конечная вершины должны быть одинаковыми, чтобы закрывать полигон. Это является особенно важным при использовании нескольких полигонов. В таком случае, если последняя точка каждого полигона не совпадает со стартовой вершиной, полигоны можно замкнуть автоматически, соединив ее с первой вершиной. Однако это может привести к неожиданному результату, так что такой способ нужно применять аккуратно.
Дуги, образующие полигон, могут пересекаться, но спиралевидные полигоны использовать не рекомендуется.
Не выбранным ячейкам присваивается значение NoData.
Если в качестве входного указан многоканальный растр, на выходе будет создан новый многоканальный растр. Соответственно, будет анализироваться каждый канал входного многоканального растра.
Выходным форматом по умолчанию является растр базы геоданных. Если в качестве выходного формата указан Esri Grid stack, его название не должно начинаться с цифры, содержать пробелы и должно иметь длину не более девяти символов.
Если входные данные – это слой, созданный на основании многоканального растра, состоящего из более, чем трех каналов, в операции извлечения будут учитываться только те каналы, которые были загружены слоем (отображены символами). В результате выходной многоканальный растр может иметь лишь три канала – в соответствии с используемыми для входного слоя каналами.
Если входной растр целочисленный, выходной растр будет также целочисленным. Если входной растр с плавающей точкой, выходной растр также будет с плавающей точкой.
См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
ExtractByPolygon (in_raster, polygon, {extraction_area})
Параметр | Объяснение | Тип данных |
in_raster | Входной растр, ячейки которого извлекаются. | Raster Layer |
polygon [point,...] | Полигон (или полигоны), определяющий область извлечения входного растра. Каждый полигон – это список вершин, определенных точечными Point классами. Точки представляют собой пары координат x,y, заданных в тех же единицах карты, что и входной растр. Форма объекта простого полигона следующая:
Дополнительно можно указать группу из нескольких полигонов с помощью класса Polygon, чтобы задать список частей полигона. Помните, что для этого все части должны быть смежными, то есть иметь общий периметр. В этом случае форма объекта будет представлять собой список следующего вида:
Во всех случаях последняя координата каждой части полигона должна быть такой же, как первая, чтобы эта часть была замкнутой. | Point |
extraction_area (Дополнительный) | Определяет, будут ли извлечены ячейки внутри или снаружи полигона.
| String |
Возвращаемое значение
Название | Объяснение | Тип данных |
out_raster | Выходной растр, содержащий значения ячеек, извлеченные из входного растра. | Raster |
Пример кода
ExtractByPoints, пример 1 (окно Python)
В этом примере из растра извлекаются ячейки на основе определенных координат полигона.
import arcpy
from arcpy import env
from arcpy.sa import *
polyPoints = [arcpy.Point(743050, 4321275), arcpy.Point(743100, 4321200),
arcpy.Point(743500, 4322000),arcpy.Point(742900, 4321800)]
env.workspace = "C:/sapyexamples/data"
extPolygonOut = ExtractByPolygon("soil", polyPoints, "INSIDE")
extPolygonOut.save("c:/sapyexamples/output/extpoly")
ExtractByPolygon, пример 2 (автономный скрипт)
В этом примере из растра извлекаются ячейки на основе определенных координат полигона.
# Name: ExtractByPolgyon_Ex_02.py
# Description: Extracts the cells of a raster based on a polygon.
# 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 = "soil"
polyPoints = [arcpy.Point(743050, 4321275), arcpy.Point(743100, 4321200),
arcpy.Point(743500, 4322000),arcpy.Point(742900, 4321800)]
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ExtractByPolygon
extPolygonOut = ExtractByPolygon(inRaster, polyPoints, "INSIDE")
# Save the output
extPolygonOut.save("c:/sapyexamples/output/extpoly02")
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst