Подпись | Описание | Тип данных |
Входные объекты | Входные полигональные объекты. | Feature Layer |
Выходной класс объектов | Выходной класс линейных объектов. | Feature Class |
Идентифицировать и хранить информацию о соседних полигонах (Дополнительный) | Указывает, будут ли отношения между соседними полигонами идентифицироваться и сохраняться в выходных данных.
| Boolean |
Краткая информация
Создает класс линейных объектов, конвертированных из границ полигонов. Вы можете задать параметры инструмента, чтобы анализировались общие сегменты и ID полигональных объектов. Или можно задать параметры инструмента, чтобы для каждого входного полигона создавался замкнутый линейный объект.
Иллюстрация

Использование
Если параметр Идентифицировать и сохранять информацию о соседних полигонах отмечен, то будут анализироваться отношения между соседними полигонами. Границы конвертируются в линии с учетом пересечений и общих сегментов. К выходным данным будут добавлены следующие поля:
- LEFT_FID— ID объекта входного полигона слева от выходной линии.
- RIGHT_FID— ID объекта входного полигона справа от выходной линии.
Ниже детально проанализирован сам процесс и варианты выходных данных:
- В полигональной геометрии, выходная граница всегда строится в направлении по часовой стрелке. Если полигон имеет отверстие, граница отверстия (или внутренняя граница) всегда сохраняется в направлении против часовой стрелки. Таким образом, для полигона, у которого нет соседей слева (с внешней стороны) от его внешней границы и слева (с внутренней стороны) от границы отверстия, результирующие линии будут иметь значение -1 для значения поля LEFT_FID и идентификатор полигонального объекта как значение поля RIGHT_FID.
- Если полигон содержит другой полигон, будет создана одна выходная линия в направлении по часовой стрелке, представляющая общую границу, где значение поля LEFT_FID установлено на идентификатор объекта внешнего полигона, а RIGHT_FID установлено на идентификатор объекта внутреннего полигона.
- Если два полигона имеют общую часть границы, будет создана одна выходная линия, представляющая общий сегмент. Направление линии будет произвольным, и значения полей LEFT_FID и RIGHT_FID будут установлены на идентификатор левого и правого полигональных объектов соответственно.
- Если полигон перекрывает другой полигон, будут созданы две выходные линии, представляющие каждую границу пересечения дважды. Первая линия представляет внешнюю границу одного из перекрывающихся полигонов, и значение ее поля LEFT_FID — это идентификатор объекта пересекаемого полигона, а RIGHT_FID будет ее собственным идентификатором полигонального объекта. Вторая линия проходит в противоположном направлении, разбивая другой полигон, таким образом, значения полей LEFT_FID и RIGHT_FID будут такими же, как и другой идентификатор полигонального объекта.
- Входные составные объекты не сохраняются; выходные линии будут простыми.
Для всех входных объектов, которые являются параметрическими (истинными) кривыми, выходные линии останутся истинными кривыми, даже если они разбиты.
Для обработки очень больших наборов данных используется разбивка на листы, для повышения производительности и масштабируемости.
Если параметр Идентифицировать и сохранять информацию о соседних полигонах не отмечен, все входные полигоны будут конвертированы в отдельные линейные объекты. Любые составные полигоны будут конвертированы в составные линии.
Поле ORIG_FID будет добавлено к выходным данным с идентификатором объекта каждой входной линии. Атрибуты входных объектов будут сохранены в выходных данных.
Параметры
arcpy.management.PolygonToLine(in_features, out_feature_class, {neighbor_option})
Имя | Описание | Тип данных |
in_features | Входные полигональные объекты. | Feature Layer |
out_feature_class | Выходной класс линейных объектов. | Feature Class |
neighbor_option (Дополнительный) | Указывает, будут ли отношения между соседними полигонами идентифицироваться и сохраняться в выходных данных.
| Boolean |
Пример кода
Пример скрипта окна Python для использования функции PolygonToLine в режиме прямого запуска.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.PolygonToLine("Habitat_Analysis.gdb/vegtype",
"C:/output/Output.gdb/vegtype_lines",
"IGNORE_NEIGHBORS")
Этот автономный скрипт - это пример использования функции PolygonToLine.
# Name: PolygonToLine_Example2.py
# Description: Use the PolygonToLine function to convert polygons to lines,
# and report how many shared or overlapping boundary lines
# were found.
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/landcovers.gdb"
# Create variables for the input and output feature classes
inFeatureClass = "bldgs"
outFeatureClass = "bldgs_lines"
# Run PolygonToLine to convert polygons to lines using default neighbor_option
arcpy.management.PolygonToLine(inFeatureClass, outFeatureClass)
# Select lines that have LEFT_FID values greater than -1
arcpy.management.MakeFeatureLayer(outFeatureClass, "selection_lyr",
"\"LEFT_FID\" > -1")
result = arcpy.management.GetCount("selection_lyr")
if result[0] == "0":
print("No overlapping or shared boundary lines were found.")
else:
print(f"{result[0]} overlapping or shared boundary lines were found.")
Параметры среды
Информация о лицензиях
- Basic: Нет
- Standard: Нет
- Advanced: Да