Извлечь по полигону (Spatial Analyst)

Доступно с лицензией Spatial Analyst.

Краткая информация

Извлекает ячейки растра с использованием полигона путем задания его вершин.

Подсказка:

Инструмент Извлечь по маске предоставляет улучшенную функциональность или производительность.

Иллюстрация

Иллюстрация инструмента Извлечь по полигону
OutRas = ExtractByPolygon(InRas1,[Point(1.4,0.4),Point(1.4,4.6),Point(3.6,4.6),Point(5.6,2.6),Point(3.6,0.4),Point(1.4,0.4)],"INSIDE")

Использование

  • Дополнительные атрибуты входного растра, если имеются, будут перенесены в атрибутивную таблицу выходного растра без изменений. В зависимости от записываемого параметра, для некоторых атрибутивных значений может потребоваться пересчет.

  • Если для параметра Входной растр (in_raster в Python) указан многоканальный растр, будет обработаны все каналы.

    Чтобы обработать выбранные каналы многоканального растра, сначала создайте набор растровых данных, состоящий только из необходимых каналов, с помощью инструмента Объединить каналы. Затем используйте результат в качестве Входного растра (in_raster в Python)

    Выходным форматом по умолчанию является растр базы геоданных. Если в качестве выходного формата указан Esri Grid stack, название стека не должно начинаться с цифры, содержать пробелы и должно иметь длину не более девяти символов.

  • Извлечение происходит по полигону, заданному во входном классе объектов, вместо задания серии координат x,y, в инструменте Извлечь по маске.

  • Полигональный объект класса полигонов может состоять из одной части или из нескольких частей. В последнем случае все полигоны должны быть смежными, чтобы они могли быть очерчены одним полигоном. Для извлечения данных полигональным объектом, содержащим несколько не связанных между собой частей, воспользуйтесь инструментом Извлечь по маске.

  • Для определения, попадает ячейка в полигон или за пределы полигона, используется центр ячейки. Если центр ячейки в пределах дуг, образующих полигон, ячейка считается полностью в пределах полигона, даже если часть ячейки попадает за пределы полигона.

  • В полигоне не должно быть более 1 000 вершин. Вершины полигона должны быть заданы в строгом порядке по часовой стрелке. Начальная и конечная вершины должны быть одинаковыми, чтобы закрывать полигон. Это является особенно важным при использовании нескольких полигонов. В таком случае, если последняя точка каждого полигона не совпадает со стартовой вершиной, полигоны можно замкнуть автоматически, соединив ее с первой вершиной. Однако это может привести к неожиданному результату, так что такой способ нужно применять аккуратно.

    Дуги, образующие полигон, могут пересекаться, но спиралевидные полигоны использовать не рекомендуется.

  • Не выбранным ячейкам присваивается значение NoData.

  • Если входной растр целочисленный, выходной растр будет также целочисленным. Если входной растр с плавающей точкой, выходной растр также будет с плавающей точкой.

  • См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.

Параметры

ПодписьОписаниеТип данных
Входной растр

Входной растр, ячейки которого извлекаются.

Raster Layer
Полигон

Полигон (или полигоны), заданный последовательностью вершин (координат x,y), определяющий извлекаемую область входного растра. Последняя координата части полигона должна быть такой же, как первая, чтобы полигон замкнулся.

При задании нескольких полигонов они должны быть смежными. Вводите несколько полигонов – один за другим. Убедитесь, что вы замыкаете каждую часть путем задания последней координаты, идентичной первой.

Точки задаются в тех же единицах карты, что и входной растр.

Point
Область извлечения
(Дополнительный)

Определяет, будут ли извлечены ячейки внутри или снаружи полигона.

  • ВнутриЯчейки, расположенные внутри входного полигона, должны быть выбраны и записаны в выходной растр. Все ячейки за пределами входного полигона будут иметь значения NoData в выходном растре.
  • СнаружиЯчейки, расположенные за пределами входного полигона, должны быть выбраны и записаны в выходной растр. Всем ячейкам, расположенным внутри полигона, будет присвоено значение NoData.
String

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной растр

Выходной растр, содержащий значения ячеек, извлеченные из входного растра.

Raster

ExtractByPolygon(in_raster, polygon, {extraction_area})
ИмяОписаниеТип данных
in_raster

Входной растр, ячейки которого извлекаются.

Raster Layer
polygon
[point,...]

Полигон (или полигоны), определяющий область извлечения входного растра.

Каждый полигон — это список вершин, определенных точечными Point классами. Точки представляют собой пары координат x,y, заданных в тех же единицах карты, что и входной растр.

Форма объекта простого полигона следующая:

  • [point(x1,y1), point(x2,y2), ..., point(xn,yn), point(x1,y1]

Дополнительно можно указать группу из нескольких полигонов с помощью класса Polygon, чтобы задать список частей полигона. Помните, что для этого все части должны быть смежными, то есть иметь общий периметр. В этом случае форма объекта будет представлять собой список следующего вида:

  • [point(x1,y1), point(x2,y2), ..., point(xn,yn), point(x1,y1), point(x'1,y'1), point(x'2,y'2), ..., point(x'n,y'n), point(x'1,y'1), ...]

Во всех случаях последняя координата каждой части полигона должна быть такой же, как первая, чтобы эта часть была замкнутой.

Point
extraction_area
(Дополнительный)

Определяет, будут ли извлечены ячейки внутри или снаружи полигона.

  • INSIDEЯчейки, расположенные внутри входного полигона, должны быть выбраны и записаны в выходной растр. Все ячейки за пределами входного полигона будут иметь значения NoData в выходном растре.
  • OUTSIDEЯчейки, расположенные за пределами входного полигона, должны быть выбраны и записаны в выходной растр. Всем ячейкам, расположенным внутри полигона, будет присвоено значение NoData.
String

Возвращаемое значение

ИмяОписаниеТип данных
out_raster

Выходной растр, содержащий значения ячеек, извлеченные из входного растра.

Raster

Пример кода

ExtractByPolygon, пример 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)]

# 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

Связанные разделы