Генерализовать (Generalize) (Редактирование)
Краткая информация
Производит упрощение входных объектов с использованием алгоритма Дугласа-Пьюкера на основе значения максимального допуска. Выходные объекты будут содержать набор исходных входных вершин.
Рисунок
Использование
-
Этот инструмент использует тот же алгоритм, что и инструмент Упростить линию (Simplify Line) в методе Точечное удаление (point remove). Инструмент Упростить линию (Simplify Line) имеет больше параметров и создает новые выходные данные, а этот инструмент изменяет входной класс пространственных объектов.
-
Данный инструмент производит генерализацию объектов пообъектно. Секции линий и границ многоугольников, которые совпадали между объектами, могут не совпадать после применения этого инструмента.
-
Кривые Безье, дуги окружности, сегменты эллиптических дуг будут преобразованы в прямые линейные сегменты.
Данный инструмент не производит удаление записей или объектов. Если допуск больше многоугольника, многоугольник будет уменьшен до трех вершин.
Этот инструмент изменяет входные данные. Более подробно о стратегиях предотвращения неожиданных изменений данных см. в разделе Инструменты, не создающие выходных данных (Tools with no outputs).
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Полигональные или линейные объекты для генерализации. | Feature Layer |
tolerance (дополнительно) |
Допуск производит установку максимально допустимого сдвига, который, по сути и определяет степень генерализации. Данное значение ограничивает расстояние, на которое выходные объекты могут быть сдвинуты по сравнению с исходными. Вы можете выбрать произвольную единицу измерения. По умолчанию используются единицы объектов. | Linear unit |
Пример кода
Ниже приводится окно Python со скриптом, в котором используется функция Generalize в прямом режиме:
import arcpy
from arcpy import env
env.workspace = "C:\data\data.gdb"
arcpy.Generalize_edit("zones", "10 Feet")
Ниже приводится код автономного скрипта, в котором используется функция Generalize; в этом скрипте производится генерализация объектов, а затем их буферизация:
#Name: BufferZones.py
#Purpose: Simplify features using the Generalize tool and then Buffer them
#Author: ESRI
#Import script modules
import arcpy
from arcpy import env
try:
#Set the workspace
env.workspace = "C:/data/data.gdb"
#Set local parameters
inFeatures = "zones"
gTolerance = "4 Feet"
copFeatures = "zones_cp"
bufDist = "50 Miles"
bufOutput = "zones_buff"
#Since Generalize permanently updates the input, first make a copy of the original FC
arcpy.CopyFeatures_management (inFeatures, copFeatures)
#Use the Generalize tool to simplify the Buffer input to shorten Buffer processing time
arcpy.Generalize_edit(copFeatures, gTolerance)
#Buffer the output
arcpy.Buffer_analysis(copFeatures, bufOutput, bufDist, "", "", "", "")
except Exception, e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "Line %i" % tb.tb_lineno
print e.message