Извлечь по полигону (Extract by Polygon) (Spatial Analyst)
Резюме
Извлекает ячейки растра по полигону.
Использование
-
Извлечение происходит по полигону, заданному во входном классе объектов, вместо задания серии координат x,y, в инструменте Извлечь по маске (Extract By Mask).
-
Для определения, попадает ячейка в полигон или за пределы полигона, используется центр ячейки. Если центр ячейки в пределах дуг, образующих полигон, ячейка считается полностью в пределах полигона, даже если часть ячейки попадает за пределы полигона.
-
В полигоне не должно быть более 1 000 вершин. Вершины полигона должны быть заданы в строгом порядке по часовой стрелке. Первая и последняя вершины должны совпадать, для завершенного полигона, если будет использоваться несколько полигонов. Если последние точки не идентичные, полигон будет замкнут автоматически. Дуги, образующие полигон, могут пересекаться, но спиралевидные полигоны использовать не рекомендуется.
-
Ячейки, не попадающие в пределы окружности, в выходном растре получают значения NoData.
-
Если в качестве входных данных выбран многоканальный растр, выходной растр тоже будет многоканальным. Каждый отдельный канал входного многоканального растра будет проанализирован соответственно.
По умолчанию выходной формат – Esri Grid stack. Обратите внимание, что стек Esri Grid не может начинаться с цифры, использовать пробелы и быть более 9 символов в длину.
-
Если входные данные – это слой, созданный на основании многоканального растра, состоящего из более, чем трех каналов, в операции извлечения будут учитываться только те каналы, которые были загружены слоем (отображены символами). Следовательно, выходной многоканальный растр может состоять не более, чем из трех каналов, соответствующих тем, которые были использованы при отображении входного слоя.
-
Если входной растр целочисленный, выходной растр будет также целочисленным. Если входной растр с плавающей точкой, выходной растр также будет с плавающей точкой.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster |
Входной растр, ячейки которого будут участвовать в операции извлечения. | Raster Layer |
polygon [point,...] |
Полигон (или полигоны), определяющий область извлечения входного растра. Каждый полигон — это перечень вершин, определенных точечными классами. Если необходимо, класс Полигон (Polygon) может быть использован для определения перечня частей полигона. Точки задаются парами координат x,y. Форма объекта:
Обратите внимание, что последняя координата должна быть такой же, как первая, чтобы полигон замкнулся. | Point |
extraction_area (дополнительно) |
Определяет, будут ли извлечены ячейки внутри или снаружи полигона.
| String |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster |
Выходной растр, содержащий значения ячеек, извлечённые из входного растра. | Raster |
Пример кода
В этом примере из растра извлекаются ячейки на основе определенных координат полигона.
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")
В этом примере из растра извлекаются ячейки на основе определенных координат полигона.
# 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")