Доступно с лицензией Spatial Analyst.
Краткая информация
Извлекает ячейки растра по полигону, с заданием его вершин.
Иллюстрация
Использование
Дополнительные атрибуты входного растра, если имеются, будут перенесены в атрибутивную таблицу выходного растра без изменений. В зависимости от природы записываемого параметра, для некоторых атрибутивных значений может потребоваться пересчет.
Если для параметра Входной растр (in_raster в Python) указан многоканальный растр, будет обработаны все каналы.
Чтобы обработать выбранные каналы многоканального растра, сначала создайте новый набор растровых данных, состоящий только из необходимых каналов, с помощью инструмента Объединить каналы, затем укажите полученный набор как Входной растр (in_raster в Python).
Выходным форматом по умолчанию является растр базы геоданных. Если в качестве выходного формата указан Esri Grid stack, его название не должно начинаться с цифры, содержать пробелы и должно иметь длину не более девяти символов.
Извлечение происходит по полигону, заданному во входном классе объектов, вместо задания серии координат x,y, в инструменте Извлечь по маске.
Полигональный объект класса полигонов может состоять из одной части или из нескольких частей. В последнем случае все полигоны должны быть смежными, чтобы они могли быть очерчены одним полигоном. Для извлечения данных полигональным объектом, содержащим несколько не связанных между собой частей, воспользуйтесь инструментом Извлечь по маске.
Для определения, попадает ячейка в полигон или за пределы полигона, используется центр ячейки. Если центр ячейки в пределах дуг, образующих полигон, ячейка считается полностью в пределах полигона, даже если часть ячейки попадает за пределы полигона.
В полигоне не должно быть более 1 000 вершин. Вершины полигона должны быть заданы в строгом порядке по часовой стрелке. Начальная и конечная вершины должны быть одинаковыми, чтобы закрывать полигон. Это является особенно важным при использовании нескольких полигонов. В таком случае, если последняя точка каждого полигона не совпадает со стартовой вершиной, полигоны можно замкнуть автоматически, соединив ее с первой вершиной. Однако это может привести к неожиданному результату, так что такой способ нужно применять аккуратно.
Дуги, образующие полигон, могут пересекаться, но спиралевидные полигоны использовать не рекомендуется.
Не выбранным ячейкам присваивается значение NoData.
Если входной растр целочисленный, выходной растр будет также целочисленным. Если входной растр с плавающей точкой, выходной растр также будет с плавающей точкой.
См. раздел Среда анализа и 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")
Параметры среды
Информация о лицензиях
- Basic: Требуется Spatial Analyst
- Standard: Требуется Spatial Analyst
- Advanced: Требуется Spatial Analyst