Краткая информация
Упрощает полигоны посредством удаления лишних изгибов с сохранением основной формы.
Иллюстрация
![Упрощение полигона Упрощение полигона](GUID-F7671E5D-F985-4874-843A-28F1E9AEF784-web.gif)
Использование
Используется два метода упрощения:
- Метод POINT_REMOVE – более быстрый из двух алгоритмов. Он заключается в удалении избыточных вершин. Используйте этот метод для сжатия и более грубого упрощения хорошо известных данных. Угловатость получившегося полигона после применения этого инструмента значительно возрастет, в связи с чем полигон может выглядеть менее реалистично, чем входной.
- Метод BEND_SIMPLIFY является более медленным, зато обычно позволяет получить более качественный результат. Метод заключается в удалении незначительных изгибов контуров полигонов. Используйте этот метод для точного упрощения.
Параметр Минимальная площадь относится только к упрощенным полигонам. Все полигоны, площадь которых после процесса упрощения меньше этого показателя, будут удалены из выходного класса пространственных объектов. Для группы смежных полигонов, имеющих общие стороны, параметр относится к общей площади группы.
Инструмент создает два выходных класса объектов: класс полигональных пространственных объектов, в котором сохраняются упрощенные полигоны, и класс точечных пространственных объектов для сохранения в нем точек, соответствующих полигонам, которые в результате обработки стали «нулевыми». Имя и местоположение выходного класса точечных объектов вычисляются автоматически при добавлении суффикса _Pnt. Выходной класс полигональных объектов будет содержать все поля входного слоя, а выходной точечный слой не будет содержать никаких полей из числа входных.
Части составных полигонов упрощаются отдельно.
Предусмотрено три варианта обработки топологических ошибок выходных данных:
- Не выполнять проверку на топологические ошибки (error_option = 'NO_CHECK'NO_CHECK в Python) : полученный в процессе упрощения результат не будет проверяться на топологические ошибки. В этом случае обработка происходит быстрее. Используйте этот вариант обработки, когда вы уверены в топологической точности ваших данных. Используется по умолчанию.
- Отметить ошибки (error_option = 'FLAG_ERRORS' в Python): полученный в процессе упрощения результат будет проверен на топологические ошибки и объекты с топологическими ошибками будут помечены. Используйте эту опцию в том случае, когда вам необходимо только найти топологические ошибки, но не обязательно их исправлять. Эта опция не поддерживается во время сессии редактирования.
- Выходные полигональные данные будут иметь два новых поля для отображения, имеют ли объекты топологические ошибки. Параметры InPoly_FID и SimPlyFlag содержат, соответственно, идентификаторы входных объектов и топологические ошибки.
- Поле InPoly_FID связывает упрощенные точки со входными полигонами.
- Значение в поле SimPlyFlag, равное 1, означает наличие ошибки, значение 0 означает, что ошибки не обнаружены.
- Метки останутся после исправления топологических ошибок. Для изучения объектов, имеющих топологические ошибки, используйте поле SimPlyFlag.
- Исправлять ошибки топологии (error_option = 'RESOLVE_ERRORS' в Python): исправляет топологические ошибки, возникшие в результате процесса упрощения. В этом случае время обработки увеличивается. Эта опция не поддерживается во время сессии редактирования.
- Указанный допуск может оказаться подходящим для большинства полигонов, но все же не для всех: Если во время первой итерации процесса упрощения полигонов инструментом обнаружена ошибка топологии, соответствующие сегменты линий полигона (не весь полигон) будут заново размещены, а допуск – уменьшен.
- Новый допуск на 50% меньше будет использоваться для того, чтобы заново упростить эти сегменты. Процедура будет повторяться раз за разом до тех пор, пока не останется ни одной ошибки топологии объектов.
- Выходной класс полигональных объектов будет содержать такое же количество полигонов, что и входной класс объектов. Он будет содержать два новых поля MaxSimpTol и MinSimpTol, в которых будут храниться максимальные и минимальные значения допусков, которые использовались в процессе упрощения каждого полигона. Если ошибки топологии не обнаружены, значения MaxSimpTol и MinSimpTol будут равны указанному значению допуска упрощения объектов.
- Для опций NO_CHECK и FLAG_ERRORS в процессе упрощения может быть создана самопересекающаяся геометрия, которая будет автоматически исправлена. Например, если полигон имеет самопересечения, он будет таким образом превращен в составной полигон, что ни одна его часть не будет пересекать другую.Выглядеть при этом такой полигон по-прежнему будет как самопересекающийся.
Точечные объекты будут созданы в случаях, когда выбраны опции NO_CHECK или FLAG_ERRORS, а также если отмечен параметр Сохранить линии нулевой длины. Если входной полигональный объект является составным, и одна из частей такого полигона превращается в объект нулевой длины, точечный объект, отображающий эту часть полигона, также сохраняется в выходном точечном слое.
Синтаксис
SimplifyPolygon_cartography (in_features, out_feature_class, algorithm, tolerance, {minimum_area}, {error_option}, {collapsed_point_option})
Параметр | Объяснение | Тип данных |
in_features | Полигональные объекты, которые необходимо упростить. | Feature Layer |
out_feature_class | Создаваемый выходной класс полигональных пространственных объектов. | Feature Class |
algorithm | Определяет используемый алгоритм упрощения полигонов.
| String |
tolerance | Допуск, определяющий степень упрощения. Должен быть указан допуск, значение которого больше нуля. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта.
| Linear unit |
minimum_area (Дополнительный) | Определяет минимальную площадь полигонов, которые будут сохранены. Значение по умолчанию равно нулю; в этом случае сохраняются все полигоны. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта. | Areal unit |
error_option (Дополнительный) | Определяет способ обработки топологических ошибок, которые могут появиться в процессе обработки (в том числе пересечения и перекрытия линий, а также образовавшиеся линии нулевой длины).
| String |
collapsed_point_option (Дополнительный) | Определяет, необходимо ли сохранять найденные в процессе обработки линии нулевой длины в качестве точечных объектов. Эта опция применяется в случае, когда указан NO_CHECK или FLAG_ERRORS.
| Boolean |
Пример кода
SimplifyPolygon, пример 1 (Окно Python)
Представленный скрипт Окна Python демонстрирует порядок непосредственного использования инструмента.
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SimplifyPolygon("soils.shp", "C:/output/output.gdb/simplified_soils", "POINT_REMOVE", 100)
SimplifyPolygon, пример 2 (автономный скрипт)
Этот автономный скрипт демонстрирует пример использования инструмента SimplifyPolygon.
# Name: SimplifyPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
import arcpy.management as DM
import arcpy.cartography as CA
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables
inLakeFeatures = "lakes"
eliminatedFeatures = "C:/data/PortlandOutput.gdb/lakes_eliminated"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/lakes_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/lakes_smoothed"
# Eliminate small islands in lake polygons.
DM.EliminatePolygonPart(inLakeFeatures, eliminatedFeatures, 100, "OR", 0, "CONTAINED_ONLY")
# Simplify lake polygons.
CA.SimplifyPolygon(eliminatedFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 200, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
# Smooth lake polygons.
CA.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "FLAG_ERRORS")
Параметры среды
- Текущая рабочая область (Current Workspace)
- Выходное значение Z по умолчанию (Default Output Z Value)
- Выходной домен M (Output M Domain)
- Выходной XY домен (Output XY Domain)
- Выходная система координат (Output Coordinate System)
- Экстент (Extent)
- Выходные данные содержат значения M (Output has M values)
- Выходные данные содержат Z значения (Output has Z values)
- Временная рабочая область (Scratch Workspace)
- Допуск XY (XY Tolerance)
Информация о лицензиях
- ArcGIS Desktop Basic: Нет
- ArcGIS Desktop Standard: Да
- ArcGIS Desktop Advanced: Да