Уплотнить (Densify) (Редактирование)
Резюме
Добавляет вершины вдоль линейных и многоугольных объектов. Инструмент произведет замену отрезков кривых (кривых Безье, дуг окружности, дуг эллипса) на линейные сегменты с множеством вершин.
Рисунок
Использование
-
Прямые линейные сегменты будут уплотнены со значением параметра Расстояние (Distance). Кривые будут упрощены посредством добавления вершин по значению параметров Расстояние (Distance), Максимальный угол отклонения (Maximum Deflection Angle) или Отклонение максимального сдвига (Maximum Offset Deviation).
Уплотнение производится посегментно.
При запуске инструмента Уплотнить (Densify) может быть использован только один метод уплотнения.
-
Пространственная привязка (Spatial Reference) данных очень важна для корректной работы инструмента. Пространственные объекты должны быть уплотнены с использованием нужной системы координат для поддержания корректной формы пространственных объектов.
-
Для каждой вершины исходного объекта, включая точку начала и конца, будет совпадающая вершина в результирующем объекте.
При уплотнении с помощью параметра Отклонение максимального сдвига (Maximum Offset Deviation), если входные объекты содержат дуги окружности, то максимальное значение сдвига будет ограничено таким образом, чтобы угол между двумя последовательными линейными сегментами в выходных данных не превышал десяти градусов. Значение этого угла может быть превышено, если вы используете параметр Максимальный угол отклонения (Maximum Deflection Angle).
Этот инструмент изменяет входные данные. Более подробно о стратегиях предотвращения неожиданных изменений данных см. в разделе Инструменты, не создающие выходных данных (Tools with no outputs).
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Класс пространственных объектов линий или полигонов, объекты которого будут уплотнены. | Feature Layer |
densification_method (дополнительно) |
Метод уплотнения пространственных объектов.
| String |
distance (дополнительно) |
Максимальное линейное расстояние между вершинами. Это расстояние всегда будет использоваться для линейных сегментов, а также для упрощения кривых. Значением по умолчанию является допуск данных xy. | Linear unit |
max_deviation (дополнительно) |
Максимальное расстояние, на которое может быть удален выходной сегмент от исходного. Этот параметр влияет только на кривые. Значением по умолчанию является допуск данных xy. | Linear unit |
max_angle (дополнительно) |
Максимальный угол, который может быть получен при пересечении входного и выходного объектов. Допустимый диапазон включает значения от 0 до 90. Значение по умолчанию — 10. Параметр влияет только на кривые. | Double |
Пример кода
В окне Python написан скрипт, где используется функция Densify в прямом режиме.
import arcpy
arcpy.Densify_edit("C:/data.gdb/lines", "ANGLE","", "", "0.75")
Ниже приводится код независимого скрипта, в котором используется функция Уплотнить (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])