Polygon (arcpy)
Краткая информация
Объект Polygon – замкнутая форма, определенная соединенной последовательностью пар координат XY.
Обсуждение
Во многих рабочих потоках геообработки может потребоваться запустить определенную операцию, используя информацию о координатах и геометрии, при этом не желая проходить процесс создания нового (временного) класса пространственных объектов, отображения класса пространственных объектов с помощью курсоров, использования класса пространственных объектов, и последующего удаления временного класса пространственных объектов. Чтобы упростить геообработку, вместо этого можно использовать в качестве входных и выходных данных объекты геометрии. Объекты геометрии можно создавать с нуля, используя классы Геометрия (Geometry), Мультиточка (Multipoint), PointGeometry, Полигон (Polygon) или Полилиния (Polyline) classes.
Синтаксис
Параметр | Объяснение | Тип данных |
inputs |
Координаты, используемые для создания объекта. В качестве данных можно использовать объекты Точка или Массив. | Object |
spatial_reference |
Пространственная привязка новой геометрии. (Значение по умолчанию — None) | SpatialReference |
has_z |
Статус Z: Истина, если в геометрии используются Z-значения, и Ложь, если нет. (Значение по умолчанию — False) | Boolean |
has_m |
Статус М: Истина, если в геометрии используются М-значения, и Ложь, если нет. (Значение по умолчанию — False) | Boolean |
Свойства
Свойство | Объяснение | Тип данных |
JSON (только чтение) | Возвращает представление геометрии JSON в виде строки. Подсказка: Возвращаемая строка может быть конвертирована в словарь с помощью функции Python json.loads. | String |
WKB (только чтение) | Возвращает WKB-представление для геометрии OGC. Он обеспечивает портативное представление значения геометрии в виде непрерывного потока байтов. | Bytearray |
WKT (только чтение) | Возвращает -представление для геометрии OGC. Он обеспечивает портативное представление значения геометрии в виде текстовой строки. | String |
area (только чтение) |
Площадь объекта полигона. Пусто для всех других типов объектов. | Double |
centroid (только чтение) |
Возвращается истинное положение центроида, если он расположен внутри объекта, иначе возвращается точка надписи. Возвращает точечный объект. | Point |
extent (чтение и запись) |
Экстент геометрии. | Extent |
firstPoint (только чтение) |
Первая точка координат геометрии. | Point |
hullRectangle (только чтение) |
Строка пар координат прямоугольника, образующего выпуклую оболочку, разделенная пробелами. | String |
isMultipart (только чтение) |
Истина (True), если частей геометрии более одной. | Boolean |
labelPoint (только чтение) |
Точка расположения надписи. labelPoint всегда расположен в объекте или на нем. | Point |
lastPoint (только чтение) |
Последняя координата объекта. | Point |
length (только чтение) |
Длина линейного объекта. Ноль для точечных и мультиточечных объектов. | Double |
length3D (чтение и запись) | 3D-длина линейного объекта. Ноль для точечных и мультиточечных объектов. | Double |
partCount (только чтение) |
Количество частей пространственного объекта. | Integer |
pointCount (только чтение) |
Общее количество точек объекта. | Integer |
spatialReference (только чтение) | Пространственная привязка геометрии. | SpatialReference |
trueCentroid (только чтение) |
Центр гравитации пространственного объекта. | Point |
type (только чтение) |
Тип геометрии: полигон, полилиния, точка, мультиточка, мультипатч, размер или аннотация. | String |
Обзор метода
Метод | Объяснение |
boundary () |
Выстраивает границы геометрии. |
buffer (distance) |
Выстраивает полигон на заданном расстоянии от геометрии. |
clip (envelope) |
Выстраивает пересечение геометрии и заданного экстента. |
contains (second_geometry) |
Показывает, если базовая геометрия содержит сравнение геометрии. содержит (contains) является обратной ситуацией находится в (within). На этом рисунке показаны только отношения True. |
convexHull () |
Выстраивает геометрию минимального ограничивающего полигона, внешние углы которого выпуклые. |
crosses (second_geometry) |
Указывает на то, что две геометрии пересекаются в геометрии меньшего типа формы. Две полилинии пересекаются, если только они имеют точки соприкосновения, по крайней мере, одна из которых не является конечной точкой. Полилиния и полигон пересекаются, если они имеют общую линию или точку (для вертикальной линии) внутри полигона, который не эквивалентен всей полилинии. На этом рисунке показаны только отношения True. |
cut (cutter) |
Разбивает эту геометрию на части слева от режущей полилинии и справа от нее. При разрезании полилиния или полигон разбивается в месте пересечения с режущей полилинией. Каждая часть классифицируется как слева или справа от режущей линии. Данная классификация опирается на ориентацию режущей линии. Части целевой полилинии, которые не пересекают разрезающую полилинию, возвращаются как часть справа от результата для входной полилинии. Если геометрия не разрезается, то геометрия слева будет пустой (None). |
difference (other) |
Выстраивает геометрию, состоящую из региона, уникального для базовой геометрии, но не являющуюся частью другой геометрии. Ниже иллюстрируются результаты, где красный полигон является исходной геометрией. |
disjoint (second_geometry) |
Указывает, что базовая и сопоставляемая геометрия не имеют общих точек. Две геометрии пересекаются, если disjoint возвращает False. На этом рисунке показаны только отношения True. |
distanceTo (other) |
Возвращает минимальное расстояние между двумя геометриями. Если геометрии пересекаются, минимальное расстояние будет равно нулю. Обе геометрии должны иметь одинаковую проекцию. |
equals (second_geometry) |
Указывает, имеют ли основная и сравнительная геометрии одинаковый тип формы и определяют ли они один и то же набор точек на плоскости. Сравнение производится только в 2D; значения M и Z не учитываются. На этом рисунке показаны только отношения True. |
getArea ({type}, {units}) |
Возвращает площадь пространственного объекта, определяемую по типу измерения. |
getLength ({measurement_type}, {units}) |
Возвращает длину пространственного объекта, определяемую по типу измерения. |
getPart ({index}) |
Возвращает массив точечных объектов для определенной части геометрии или массы, содержащий несколько массивов, один для каждой части. |
intersect (other, dimension) |
Строит геометрию, являющуюся геометрическим пересечением двух входных геометрий. Для создания различных типов формы можно использовать разную размерность. Пересечением двух геометрий с одинаковым типом формы будет геометрия, содержащая только перекрывающиеся области исходных геометрий. Для ускорения процесса проверьте, не являются ли данные две геометрии непересекающимися, перед вызовом intersect . |
measureOnLine (in_point, {as_percentage}) |
Возвращает измерение расстояния от начальной точки этой линии до in_point |
overlaps (second_geometry) |
Показывает, если пересечение двух геометрий имеет тот же тип формы, что и входная геометрия и не эквивалентно любой из входных геометрий. На этом рисунке показаны только отношения True. |
positionAlongLine (value, {use_percentage}) |
Возвращает точку на линии на указанном расстоянии от начала линии. |
projectAs (spatial_reference, {transformation_name}) |
Проецирует геометрию и дополнительно применяет географическое преобразование. Для проецирования геометрия должна иметь пространственную привязку, значение UnknownCoordinateSystem не допускается. Новая система пространственной привязки, переданная методу, задает выходную систему координат. Если пространственная привязка неизвестна, координаты изменены не будут. Z-значения и измерения не меняются методом ProjectAs. |
queryPointAndDistance (in_point, {as_percentage}) |
Находит точку на полилинии, ближайшую к in_point, и расстояние между этими точками. Также возвращает информацию о стороне линии, на которой находится in_point, а также расстояние до ближайшей точки. |
snapToLine (in_point) |
Возвращает новую точку на основе in_point, замкнутой на этой геометрии. |
symmetricDifference (other) |
Строит геометрию, являющуюся геометрическим объединением двух геометрий с вычитанием пересечения этих геометрий. Обе входные геометрии должны быть одного типа. |
touches (second_geometry) |
Указывает на то, что границы геометрии пересекаются. Две геометрии соприкасаются, если пересечение геометрий не является пустым, а пересечение их внутренних частей пусто. Например, точка касается полилинии, только, если точка совпадает с одной из конечных точек полилинии. На этом рисунке показаны только отношения True. |
union (other) |
Строит геометрию, являющуюся теоретико-множественным объединением входных геометрий. Обе объединяемые геометрии должны быть одного типа. |
within (second_geometry) |
Показывает, если базовая геометрия находится внутри сравнения геометрии. операторнаходится в (within) является обратным оператору содержит (contains). На этом рисунке показаны только отношения True. |
Методы
Тип данных | Объяснение |
Object |
Границей полигона является полилиния. Границей полилинии является мультиточка, соответствующая конечным точкам линии. Границей точки или мультиточки является пустая точка или мультиточка. |
Параметр | Объяснение | Тип данных |
distance |
Буферное расстояние. Буферное расстояние измеряется в тех же единицах, что и буферизуемая геометрия. Отрицательное расстояние можно указать только для геометрии полигонов. | Double |
Тип данных | Объяснение |
Polygon |
Полигональная геометрия с буферизацией. |
Параметр | Объяснение | Тип данных |
envelope |
Объект экстента, используемый для определения экстента обрезания. | Extent |
Тип данных | Объяснение |
Object |
Выходная геометрия, обрезанная до определенного экстента. |
Параметр | Объяснение | Тип данных |
second_geometry |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean |
Возвращенное логическое значение True указывает, что данная геометрия содержит вторую геометрию. |
Тип данных | Объяснение |
Object |
Получившаяся геометрия. Выпуклой оболочкой точки является сама эта точка. |
Параметр | Объяснение | Тип данных |
second_geometry |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает пересечение двух геометрий в геометрии меньшего типы формы. |
Параметр | Объяснение | Тип данных |
cutter |
Геометрия разрезающей полилинии | PolyLine |
Тип данных | Объяснение |
Geometry |
Перечень двух геометрий |
Параметр | Объяснение | Тип данных |
other |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Object |
Получившаяся геометрия. |
Параметр | Объяснение | Тип данных |
second_geometry |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает, что у двух геометрий нет общих точек. |
Параметр | Объяснение | Тип данных |
other |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Double |
Расстояние между двумя геометриями. |
Параметр | Объяснение | Тип данных |
second_geometry |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean |
Полученное логическое значение Истина (True) указывает на то, что обе эти геометрии имеют одинаковый тип формы и определяют один и тот же набор точек на плоскости. |
Параметр | Объяснение | Тип данных |
type | На результаты измерений PLANAR влияет проецирование географических данных на двухмерную поверхность, т. е. кривизна земной поверхности не учитывается. Как вариант, по желанию можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME и PRESERVE_SHAPE .
(Значение по умолчанию — GEODESIC) | String |
units | Единицы, в которых будет рассчитываться площадь. Ключевые слова площадных единиц измерения: ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | String |
Тип данных | Объяснение |
Double |
Площадь геометрии объекта. По умолчанию в системах координат проекции площадь возвращается в единицах системы координат, а для географических систем координат площадь возвращается в квадратных метрах. |
Параметр | Объяснение | Тип данных |
measurement_type |
На результаты измерений PLANAR влияет проецирование географических данных на двухмерную поверхность, т. е. кривизна земной поверхности не учитывается. Как вариант, по желанию можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME и PRESERVE_SHAPE .
(Значение по умолчанию — GEODESIC) | String |
units | Единицы, в которых рассчитывается длина. Ключевые слова линейных единиц измерения:CENTIMETERS | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | YARDS | String |
Тип данных | Объяснение |
Double |
Длина объекта. По умолчанию, в системах координат проекции длина возвращается в единицах системы координат, а для географических систем координат длина возвращается в квадратных метрах. |
Параметр | Объяснение | Тип данных |
index |
Значение индекса геометрии. | Integer |
Тип данных | Объяснение |
Array |
getPart возвращает массив точечных объектов для конкретной части геометрии при указанном индексе. Если индекс не указан, возвращается массив, содержащий массивы точечных объектов для каждой части геометрии. |
Параметр | Объяснение | Тип данных |
other |
Вторая геометрия. | Object |
dimension | Топологическая размерность (тип формы) итоговой геометрии.
| Integer |
Тип данных | Объяснение |
Object |
Новая геометрия (точка, мультиточка, полилиния или полигон), являющаяся геометрическим пересечением двух входных геометрий. |
Параметр | Объяснение | Тип данных |
in_point |
Точка (PointGeometry или Point), которая используется для измерения расстояния от начальной точки полилинии. | PointGeometry |
as_percentage | Если False, измерение возвращается как расстояние; если True, измерение возвращается в процентном отношении. (Значение по умолчанию — False) | Boolean |
Тип данных | Объяснение |
Double |
Расстояние или процентное отношение. |
Параметр | Объяснение | Тип данных |
second_geometry |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Полученное логическое значение True указывает, что пересечение двух этих геометрий имеет такой же размер, как одна из входных геометрий. |
Параметр | Объяснение | Тип данных |
value |
Расстояние вдоль линии. Если расстояние меньше нуля, возвращается начальная точка линии. Если расстояние больше длины линии, возвращается конечная точка линии. | Double |
use_percentage | Расстояние можно указать как фиксированную единицу измерения или отношение к длине линии. Если значение равно True, value используется как процент; если значение равно False, value используется как расстояние. Для обозначения процентов значение должно быть выражено числом двойной точности (double) в диапазоне от 0,0 (0 %) до 1,0 (100 %). (Значение по умолчанию — False) | Boolean |
Тип данных | Объяснение |
PointGeometry |
Точка на линии на указанном расстоянии от начала линии. |
Параметр | Объяснение | Тип данных |
spatial_reference |
Новая пространственная привязка. Это может быть объект SpatialReference или имя системы координат. | SpatialReference |
transformation_name | Имя географического преобразования. | String |
Тип данных | Объяснение |
Object |
Проецированная геометрия. |
Параметр | Объяснение | Тип данных |
in_point |
Входная точка (PointGeometry или Point). | PointGeometry |
as_percentage | Если False, измерение возвращается как расстояние; если True, измерение возвращается в процентном отношении. (Значение по умолчанию — False) | Boolean |
Тип данных | Объяснение |
tuple |
Возвращает кортеж (tuple), включающий следующее:
|
Параметр | Объяснение | Тип данных |
in_point |
Точка (PointGeometry или Point), которую надо замкнуть на линии. | PointGeometry |
Тип данных | Объяснение |
PointGeometry |
Замкнутая точка. |
Параметр | Объяснение | Тип данных |
other |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Object |
Получившаяся геометрия. |
Параметр | Объяснение | Тип данных |
second_geometry |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает, что границы геометрий пересекаются. |
Параметр | Объяснение | Тип данных |
other |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Object |
Получившаяся геометрия. |
Параметр | Объяснение | Тип данных |
second_geometry |
Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает, что данная геометрия содержится внутри второй геометрии. |
Пример кода
Создайте полигональный класс объектов с нуля.
import arcpy
# A list of features and coordinate pairs
feature_info = [[[1, 2], [2, 4], [3, 7]],
[[6, 8], [5, 7], [7, 2], [9, 5]]]
# A list that will hold each of the Polygon objects
features = []
for feature in feature_info:
# Create a Polygon object based on the array of points
# Append to the list of Polygon objects
features.append(
arcpy.Polygon(
arcpy.Array([arcpy.Point(*coords) for coords in feature])))
# Persist a copy of the Polyline objects using CopyFeatures
arcpy.CopyFeatures_management(features, "c:/geometry/polygons.shp")