Уплотнить (Редактирование)

Сводка

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

Иллюстрация

Иллюстрация работы инструмента Уплотнить
Кривая уплотняется в линейные сегменты с учетом Смещения, Расстояния или Угла.

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

    Внимание:

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

  • Прямые линейные сегменты будут уплотнены со значением параметра Расстояние. Вершины будут добавляться с интервалом, не превышающим заданного расстояния. Кривые будут упрощены посредством добавления вершин по значению параметров Расстояние, Максимальный угол отклонения или Отклонение максимального сдвига.

  • Уплотнение производится посегментно.

  • При запуске инструмента Уплотнить может быть использован только один метод уплотнения.

  • Пространственная привязка данных важна для корректной работы инструмента. Уплотняйте данные с использованием нужной системы координат для поддержания корректной формы пространственных объектов.

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

  • Параметр Максимальное количество вершин задает максимальное число вершин в каждом уплотненном выходном сегменте. Если для операции уплотнения требуется больше вершин, чем заданное значение, сегменты будут выровнены таким образом, чтобы количество вершин не было превышено (+/- 1). Если указано некорректное значение (0 или меньше), то ограничения для линейных сегментов не будет , а для изогнутых сегментов инструмент будет использовать значение по умолчанию - 12000.

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

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

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

Синтаксис

arcpy.edit.Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
ParameterОбъяснениеТип данных
in_features

Класс пространственных объектов линий или полигонов, объекты которого будут уплотнены.

Feature Layer
densification_method
(Дополнительный)

Определяет используемый метод уплотнения.

  • DISTANCEПрямые линии и кривые будут уплотняться с использованием указанного расстояния. Это значение по умолчанию.
  • OFFSETКривые будут уплотнены с использованием заданного максимального отклонения смещения.
  • ANGLEКривые будут уплотнены с использованием заданного максимального угла отклонения.
String
distance
(Дополнительный)

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

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

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

Максимальное расстояние, на которое может быть удален выходной сегмент от исходного. Этот параметр влияет только на кривые. Значением по умолчанию является функция допуска данных x,y.

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

Максимальный угол, на который выходные объекты могут отклоняться от входных. Допустимым является диапазон от 0 до 90. Значение по умолчанию 10. Этот параметр влияет только на кривые.

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

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

Long

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

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

Уплотненные входные объекты.

Класс пространственных объектов

Пример кода

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

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

import arcpy
arcpy.Densify_edit("C:/data.gdb/lines", "ANGLE", "", "", 0.75)
Densify, пример 2 (автономный скрипт)

Автономный скрипт, в котором функция Densify используется как часть рабочего процесса, где применяется инструмент редактирования Snap.

# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer
#              boundary to ensure common boundary is coincident
# import system modules 
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Make backup copy of climate regions feature class, 
# since modification with the Editing tools below is permanent.
climateBackup = "backups/climate.shp"
arcpy.CopyFeatures_management('climate.shp', climateBackup)
# Densify climate regions feature class to make sure there are enough 
# vertices to match detail of vegetation layer when layers are snapped.
arcpy.Densify_edit('climate.shp', "DISTANCE", "10 Feet") 
# Snap climate regions feature class to vegetation layer vertices and 
# edge. First, snap climate region vertices to the nearest vegetation 
# vertex within 30 Feet. Second, snap climate region vertices to the 
# nearest vegetation edge within 20 Feet.
snapEnv1 = ["Habitat_Analysis.gdb/vegtype", "VERTEX", "30 Feet"]    
snapEnv2 = ["Habitat_Analysis.gdb/vegtype", "EDGE", "20 Feet"]       
arcpy.Snap_edit('climate.shp', [snapEnv1, snapEnv2])

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

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

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