Упростить прямыми линиями и дугами окружности (Редактирование)

Сводка

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

Иллюстрация

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

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

    Внимание:

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

  • Инструмент можно использовать для упрощения геометрии линейных и полигональных объектов, которые содержат скопления нежелательных вершин и осколки сегментов, например, после конвертации или какой-либо другой обработки данных. Цепочка сегментов нелинейных сегментов или ребер может быть заменена двух-точечной прямой линией, а серии сегментов, представляющих дуги – истинными кривыми. Инструмент вычисляет аппроксимацию и заменяет множественные сегменты или ребра прямыми линиями и дугами окружности в пределах максимально допустимого сдвига.

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

  • Существующие параметрические кривые, например кривые Безье, дуги окружности и сегменты дуги эллипса не изменяются.

    Примечание:

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

  • Используйте параметр Создать дуги окружности для построения истинных кривых в дополнении к прямым линиям. Есть 5 дополнительных параметров, Максимальный шаг угла дуги, Минимальное число вершин, Минимальный радиус, Максимальный радиус и Минимальный угол дуги, которые определяют, как дуги окружности вписываются в сегменты.

    • Максимальный шаг угла дуги (десятичные градусы) – максимальный угол дуги, используемый для построения дуг окружности. Угол дуги - центральный угол кривой-кандидата (кривой, которая будет построена). Шаг максимального угла дуги определяет верхний предел ширины поля поиска центрального угла при размещении вершин для построения окружностей. Если в каждом шаге максимального угла дуги найдено более одной вершины, все эти вершины вписываются в дуги окружности. Используйте минимальный угол дуги, чтобы плотно размещенные сегменты в дуги окружности и предотвратить избыточное упрощение больших сегментов. Используйте максимальный угол, чтобы вписать неплотно размещенные сегменты в дуги окружности. Допустимый диапазон составляет от 2 до 95 десятичных градусов. Значение по умолчанию равно 20 градусам.

      На рисунке ниже сегмент со значением центрального угла 90 градусов считается вписанным в дугу окружности. Если угол в 89 градусов указан в качестве максимального шага угла дуги, сегмент не учитывается, и выходные данные состоят из кривой и прямой линии (средняя схема). Если указан угол в 91 градус, сегмент используется для формирования дуги окружности, и в выходных данных будет только дуга (правая схема).

      Максимальный шаг угла дуги
      Максимальный шаг угла дуги используется для идентификации вершин, на основе которых будет сформирована дуга окружности.

    • Примечание:

      Параметр Максимальный шаг угла дуги не доступен, если опция Вписать в сегменты выбрана для параметра Тип переходных элементов.

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

Синтаксис

arcpy.edit.SimplifyByStraightLinesAndCircularArcs(in_features, max_offset, {fitting_type}, {circular_arcs}, {max_arc_angle_step}, {min_vertex_count}, {min_radius}, {max_radius}, {min_arc_angle}, {closed_ends}, {anchor_points})
ParameterОбъяснениеТип данных
in_features
[in_features,...]

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

Feature Layer
max_offset

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

Linear Unit
fitting_type
(Дополнительный)

Указывает, как выходные ребра и души окружности вписываются в геометрию входных объектов.

Если выбрано Вписать в сегменты, параметры Максимальный шаг угла дуги и Минимальное число вершин недоступны.

  • FIT_TO_VERTICESПромежуток между выходными ребрами объектов и вершинами входных объектов будет минимален. Выходные ребра и кривые будут подогнаны автоматически к позиции вершин входных объектов. Используется по умолчанию.
  • FIT_TO_SEGMENTSПромежуток между выходными ребрами объектов и вершинами входных объектов будет минимизирован. Выходные ребра и кривые будут подогнаны автоматически к геометрии входных объектов.
String
circular_arcs
(Дополнительный)

Указывает, будут ли созданы дуги окружности.

  • CREATEДуги окружности создаются. Используется по умолчанию.
  • NOT_CREATEДуговые сегменты не будут создаваться.
Boolean
max_arc_angle_step
(Дополнительный)

Максимальный шаг угла дуги (десятичные градусы), который будет использован для построения дуг окружности. Угол дуги определяет ширину визуального поля для каждого шага при размещении вершин для построения окружностей.. Угол дуги - центральный угол кривой-кандидата (кривой, которая будет построена). Если в пределах каждого максимального шага угла дуги найдены вершины, дуга будет построена. Например, если вершины и ребра разрежены, используйте большой шаг угла дуги. Допустимый диапазон составляет от 2 до 95 десятичных градусов. Значение по умолчанию равно 20 десятичные градусам. Параметр не доступен, если опция Вписать в сегменты выбрана для параметра Тип переходных элементов.

Double
min_vertex_count
(Дополнительный)

Минимальное количество вершин, необходимых для создания дугового сегмента. Значение должно быть больше 3. Значение по умолчанию равно 4. Параметр не доступен, если опция Вписать в сегменты выбрана для параметра Тип переходных элементов.

Long
min_radius
(Дополнительный)

Самый малый допустимый радиус выходных дуговых сегментов. Значение должно быть больше 0 и меньше, чем указано для Минимального радиуса. Если значение не указано, радиус выходной дуги окружности не отмечается (по умолчанию).

Linear Unit
max_radius
(Дополнительный)

Самый большой допустимый радиус выходных дуговых сегментов. Значение должно быть больше, чем указано для Минимального радиуса. Если значение не указано, радиус выходной дуги окружности не отмечается (по умолчанию).

Linear Unit
min_arc_angle
(Дополнительный)

Минимальный шаг угла дуги (десятичные градусы), который будет использован для построения дуг окружности. Минимальный угол дуги – это наименьший возможный центральный угол выходных дуг окружности. Если центральный угол любой выходной дуги будет меньше этого значения, она не будет создана. Допустимый диапазон составляет от 2 до 360 десятичных градусов. Значение по умолчанию равно 2 десятичные градусам.

Double
closed_ends
(Дополнительный)

Указывает, сохранять ли конечные точки для замкнутой линии. Замкнутая линия - линия, конечные точки которой совпадают (петля).

  • PRESERVEКонечные точки замкнутых линий сохраняются. Используется по умолчанию.
  • NOT_PRESERVEКонечные точки для замкнутых линий не сохраняются; они могут быть смещены или удалены.
Boolean
anchor_points
(Дополнительный)

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

Feature Layer

Производные выходные данные

NameОбъяснениеТип данных
out_feature_class

Обновленные объекты.

Векторный слой
out_feature_layers

Обновленные имена слоев.

Векторный слой

Пример кода

SimplifyByStraightLinesAndCircularArcs, пример 1 (окно Python)

Скрипт окна Python, демонстрирующий использование функции SimplifyByStraightLinesAndCircularArcs для упрощения линий.

import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.edit.SimplifyByStraightLinesAndCircularArcs_edit("myDensifiedLines", 
                                                       "1.5 feet")
SimplifyByStraightLinesAndCircularArcs, пример 2 (окно Python)

Скрипт окна Python, демонстрирующий использование функции SimplifyByStraightLinesAndCircularArcs для упрощения линий или полигонов с использованием точки якоря.

import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.edit.SimplifyByStraightLinesAndCircularArcs("myDensifiedPolygons;myDensifiedLines", 
                                                  "0.4 Meters", 
                                                  anchor_points="myAnchorPoints")

Информация о лицензиях

  • Basic: Нет
  • Standard: Да
  • Advanced: Да

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