Polyline (arcpy)

Резюме

Объект Polyline – фигура, определяемая одним или более путями, где путь представляет собой последовательность соединённых сегментов.

Обсуждение

Во многих рабочих потоках геообработки может потребоваться запустить определенную операцию, используя информацию о координатах и геометрии, при этом не желая проходить процесс создания нового (временного) класса пространственных объектов, отображения класса пространственных объектов с помощью курсоров, использования класса пространственных объектов, и последующего удаления временного класса пространственных объектов. Чтобы упростить геообработку, вместо этого можно использовать в качестве входных и выходных данных объекты геометрии. Объекты геометрии можно создавать с нуля, используя классы Геометрия (Geometry), Мультиточка (Multipoint), PointGeometry, Полигон (Polygon) или Полилиния (Polyline) classes.

Синтаксис

Polyline (inputs, {spatial_reference}, {has_z}, {has_m})
ПараметрОбъяснениеТип данных
inputs

Координаты, используемые для создания объекта. В качестве данных можно использовать объекты Точка или Массив.

Object
spatial_reference

Пространственная привязка новой геометрии.

(Значение по умолчанию — None)

SpatialReference
has_z

Статус Z: Истина, если в геометрии используются Z-значения, и Ложь, если нет.

(Значение по умолчанию — False)

Boolean
has_m

Статус М: Истина, если в геометрии используются М-значения, и Ложь, если нет.

(Значение по умолчанию — False)

Boolean

Свойства

СвойствоОбъяснениеТип данных
JSON
(только чтение)

Возвращает представление геометрии JSON в виде строки.

ПодсказкаПодсказка:

Выведенная строка может быть конвертирована в словарь посредством функции Python eval.

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
trueCentroid
(только чтение)

Центр гравитации пространственного объекта.

Point
type
(только чтение)

Тип геометрии: полигон, полилиния, точка, мультиточка, мультипатч, размер или аннотация.

String

Обзор метода

МетодОбъяснение
boundary ()

Выстраивает границы геометрии.

Оператор границ
buffer (distance)

Выстраивает полигон на заданном расстоянии от геометрии.

Оператор буфера
clip (envelope)

Выстраивает пересечение геометрии и заданного экстента.

Оператор вырезания
contains (second_geometry)

Показывает, если базовая геометрия содержит сравнение геометрии.

содержит (contains) является обратной ситуацией находится в (within).

На этом рисунке показаны только отношения True.

Возможные отношения содержит (contains)
convexHull ()

Выстраивает геометрию минимального ограничивающего полигона, внешние углы которого выпуклые.

Оператор ConvexHull
crosses (second_geometry)

Указывает на то, что две геометрии пересекаются в геометрии меньшего типа формы.

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

На этом рисунке показаны только отношения True.

Возможные отношения пересечения (crosses)
difference (other)

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

Оператор разности
disjoint (second_geometry)

Указывает, что базовая и сопоставляемая геометрия не имеют общих точек.

Две геометрии пересекаются, если disjoint возвращает False.

На этом рисунке показаны только отношения True.

Возможные отношения дизъюнктный (disjoint)
distanceTo (other)

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

Обе геометрии должны иметь одинаковую проекцию.

equals (second_geometry)

Указывает, имеют ли основная и сравнительная геометрии одинаковый тип формы и определяют ли они один и то же набор точек на плоскости. Сравнение производится только в 2D; значения M и Z не учитываются.

На этом рисунке показаны только отношения True.

Возможные отношения тождества (equals)
getArea (type)

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

getLength (measurement_type)

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

getPart ({index})

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

intersect (other, dimension)

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

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

Оператор пересечения

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

overlaps (second_geometry)

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

На этом рисунке показаны только отношения True.

Возможные отношения наложения
positionAlongLine (value, {use_percentage})

Возвращает точку на линии на указанном расстоянии от начала линии.

projectAs (spatial_reference, {transformation_name})

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

Для проецирования геометрия должна иметь пространственную привязку, значение UnknownCoordinateSystem не допускается. Новая система пространственной привязки, переданная методу, задает выходную систему координат. Если пространственная привязка неизвестна, координаты изменены не будут. Z-значения и измерения не меняются методом ProjectAs.

symmetricDifference (other)

Строит геометрию, являющуюся геометрическим объединением двух геометрий с вычитанием пересечения этих геометрий.

Обе входные геометрии должны быть одного типа.

оператор symmetricDifference
touches (second_geometry)

Указывает на то, что границы геометрии пересекаются.

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

На этом рисунке показаны только отношения True.

Возможные отношения касания (touches)
union (other)

Строит геометрию, являющуюся теоретико-множественным объединением входных геометрий.

Обе объединяемые геометрии должны быть одного типа.

Оператор Union
within (second_geometry)

Показывает, если базовая геометрия находится внутри сравнения геометрии.

операторнаходится в (within) является обратным оператору содержит (contains).

На этом рисунке показаны только отношения True.

Возможные отношения находится в (within)

Методы

boundary ()
Возвращено значение
Тип данныхОбъяснение
Object

Границей полигона является полилиния. Границей полилинии является мультиточка, соответствующая конечным точкам линии. Границей точки или мультиточки является пустая точка или мультиточка.

buffer (distance)
ПараметрОбъяснениеТип данных
distance

Буферное расстояние.

Буферное расстояние измеряется в тех же единицах, что и буферизуемая геометрия.

Отрицательное расстояние можно указать только для геометрии полигонов.

Double
Возвращено значение
Тип данныхОбъяснение
Polygon

Полигональная геометрия с буферизацией.

clip (envelope)
ПараметрОбъяснениеТип данных
envelope

Объект экстента, используемый для определения экстента обрезания.

Extent
Возвращено значение
Тип данныхОбъяснение
Object

Выходная геометрия, обрезанная до определенного экстента.

contains (second_geometry)
ПараметрОбъяснениеТип данных
second_geometry

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Boolean

Возвращенное логическое значение True указывает, что данная геометрия содержит вторую геометрию.

convexHull ()
Возвращено значение
Тип данныхОбъяснение
Object

Получившаяся геометрия. Выпуклой оболочкой точки является сама эта точка.

crosses (second_geometry)
ПараметрОбъяснениеТип данных
second_geometry

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Boolean

Возвращенное логическое значение True указывает пересечение двух геометрий в геометрии меньшего типы формы.

difference (other)
ПараметрОбъяснениеТип данных
other

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Object

Получившаяся геометрия.

disjoint (second_geometry)
ПараметрОбъяснениеТип данных
second_geometry

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Boolean

Возвращенное логическое значение True указывает, что у двух геометрий нет общих точек.

distanceTo (other)
ПараметрОбъяснениеТип данных
other

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Double

Расстояние между двумя геометриями.

equals (second_geometry)
ПараметрОбъяснениеТип данных
second_geometry

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Boolean

Полученное логическое значение Истина (True) указывает на то, что обе эти геометрии имеют одинаковый тип формы и определяют один и тот же набор точек на плоскости.

getArea (type)
ПараметрОбъяснениеТип данных
type

На результаты измерений PLANAR влияет проецирование географических данных на двухмерную поверхность, т. е. кривизна земной поверхности не учитывается. Как вариант, по желанию можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME и PRESERVE_SHAPE .

  • GEODESICКратчайшее расстояние между двумя любыми точками поверхности земли на сфероиде (эллипсоиде). Одна из областей применения геодезических линий – определение кратчайшего расстояния между двумя городами для траектории полета самолета. Также называется ортодромической линией, если в основе измерений лежит сфероид или эллипсоид.
  • GREAT_ELLIPTICЛиния на сфероиде (эллипсоиде), определяемая пересечением поверхности плоскостью, проходящей через центр сфероида, начальную и конечную точки сегмента. При использовании на сфере также называется ортодромией.
  • LOXODROMEЛоксодромия не является кратчайшим расстоянием между двумя точками, а задает линию постоянного пеленга или азимута. Маршруты ортодромии часто разбиваются на ряд линий локсодромии, что упрощает навигацию. Также называется локсодромой.
  • PLANARПлоскостные измерения используют двухмерную декартову математику для вычисления длин и площадей. Эта опция доступна только тогда, когда измерения производятся в системе координат проекции, и двухмерная плоскость этой системы координат будет использоваться как основание для измерений.
  • PRESERVE_SHAPEЭтот тип вычисляет площадь или длину геометрию на поверхности эллипсоида Земли для геометрии, заданной в системе координат проекции или географической системе координат. Эта опция сохраняет форму геометрии в своей системе координат.
String
Возвращено значение
Тип данныхОбъяснение
Double

Площадь геометрии объекта. Значения площади всегда выражается в квадратных метрах.

getLength (measurement_type)
ПараметрОбъяснениеТип данных
measurement_type

На результаты измерений PLANAR влияет проецирование географических данных на двухмерную поверхность, т. е. кривизна земной поверхности не учитывается. Как вариант, по желанию можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME и PRESERVE_SHAPE .

  • GEODESICКратчайшее расстояние между двумя любыми точками поверхности земли на сфероиде (эллипсоиде). Одна из областей применения геодезических линий – определение кратчайшего расстояния между двумя городами для траектории полета самолета. Также называется ортодромической линией, если в основе измерений лежит сфероид или эллипсоид.
  • GREAT_ELLIPTICЛиния на сфероиде (эллипсоиде), определяемая пересечением поверхности плоскостью, проходящей через центр сфероида, начальную и конечную точки сегмента. При использовании на сфере также называется ортодромией.
  • LOXODROMEЛоксодромия не является кратчайшим расстоянием между двумя точками, а задает линию постоянного пеленга или азимута. Маршруты ортодромии часто разбиваются на ряд линий локсодромии, что упрощает навигацию. Также называется локсодромой.
  • PLANARПлоскостные измерения используют двухмерную декартову математику для вычисления длин и площадей. Эта опция доступна только тогда, когда измерения производятся в системе координат проекции, и двухмерная плоскость этой системы координат будет использоваться как основание для измерений.
  • PRESERVE_SHAPEЭтот тип вычисляет площадь или длину геометрию на поверхности эллипсоида Земли для геометрии, заданной в системе координат проекции или географической системе координат. Эта опция сохраняет форму геометрии в своей системе координат.
String
Возвращено значение
Тип данныхОбъяснение
Double

Длина линейного объекта. Значения длины всегда выражается в метрах.

getPart ({index})
ПараметрОбъяснениеТип данных
index

Значение индекса геометрии.

Integer
Возвращено значение
Тип данныхОбъяснение
Array

getPart возвращает массив точечных объектов для конкретной части геометрии при указанном индексе. Если индекс не указан, возвращается массив, содержащий массивы точечных объектов для каждой части геометрии.

intersect (other, dimension)
ПараметрОбъяснениеТип данных
other

Вторая геометрия.

Object
dimension

Топологическая размерность (тип формы) итоговой геометрии.

  • 1Геометрия с нулевой размерностью (точка или мультиточка).
  • 2Одномерная геометрия (полилиния).
  • 4Двумерная геометрия (полигон).
Integer
Возвращено значение
Тип данныхОбъяснение
Object

Новая геометрия (точка, мультиточка, полилиния или полигон), являющаяся геометрическим пересечением двух входных геометрий.

overlaps (second_geometry)
ПараметрОбъяснениеТип данных
second_geometry

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Boolean

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

positionAlongLine (value, {use_percentage})
ПараметрОбъяснениеТип данных
value

Расстояние вдоль линии.

Если расстояние меньше нуля, возвращается начальная точка линии. Если расстояние больше длины линии, возвращается конечная точка линии.

Double
use_percentage

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

Если значение равно True, value используется как процент; если значение равно False, value используется как расстояние.

(Значение по умолчанию — False)

Boolean
Возвращено значение
Тип данныхОбъяснение
PointGeometry

Точка на линии на указанном расстоянии от начала линии.

projectAs (spatial_reference, {transformation_name})
ПараметрОбъяснениеТип данных
spatial_reference

Новая пространственная привязка. Это может быть объект SpatialReference или имя системы координат.

SpatialReference
transformation_name

Имя географического преобразования.

String
Возвращено значение
Тип данныхОбъяснение
Object

Проецированная геометрия.

symmetricDifference (other)
ПараметрОбъяснениеТип данных
other

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Object

Получившаяся геометрия.

touches (second_geometry)
ПараметрОбъяснениеТип данных
second_geometry

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Boolean

Возвращенное логическое значение True указывает, что границы геометрий пересекаются.

union (other)
ПараметрОбъяснениеТип данных
other

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Object

Получившаяся геометрия.

within (second_geometry)
ПараметрОбъяснениеТип данных
second_geometry

Вторая геометрия.

Object
Возвращено значение
Тип данныхОбъяснение
Boolean

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

Пример кода

Пример полилинии

Создать линейный класс пространственных объектов из данных заново.

import arcpy

# A list of features and coordinate pairs
#
coordList = [[[1,2], [2,4], [3,7]],
            [[6,8], [5,7], [7,2], [9,5]]]

# Create empty Point and Array objects
#
point = arcpy.Point()
array = arcpy.Array()

# A list that will hold each of the Polyline objects 
# 
featureList = []

for feature in coordList:
    # For each coordinate pair, set the x,y properties and add to the 
    #  Array object.
    #
    for coordPair in feature:
        point.X = coordPair[0]
        point.Y = coordPair[1]
        array.add(point)

    # Create a Polyline object based on the array of points
    #
    polyline = arcpy.Polyline(array)

    # Clear the array for future use
    #
    array.removeAll()

    # Append to the list of Polyline objects
    #
    featureList.append(polyline)

# Create a copy of the Polyline objects, by using featureList as input to 
#  the CopyFeatures tool.
#
arcpy.CopyFeatures_management(featureList, "c:/geometry/polylines.shp")

Связанные темы

9/10/2013