Упростить полигоны (Simplify Polygon) (Картография)
Резюме
Упрощает полигоны посредством удаления лишних изгибов с сохранением основной формы.
Рисунок
![]()  | 
Использование
Используется два метода упрощения:
- Метод POINT_REMOVE - более быстрый из двух методов. Он заключается в удалении избыточных вершин. Используйте этот метод для сжатия и грубого их упрощения хорошо известных данных. Угловатость получившегося полигона после применения этого инструмента значительно возрастет, в связи с чем полигон может выглядеть не слишком реалистично.
 - Метод BEND_SIMPLIFY является более медленным, зато обычно позволяет получить более качественный результат. Метод заключается в удалении незначительных изгибов линий полигонов. Используйте этот метод для более точного упрощения.
 
- 
Параметр Минимальная площадь (Minimum Area) относится только к упрощенным полигонам. Все полигоны, площадь которых после процесса упрощения меньше этого показателя, будут удалены из выходного класса пространственных объектов. Для группы смежных полигонов, имеющих общие стороны, параметр относится к общей площади группы.
 - 
Инструмент создает два выходных класса объектов:класс полигональных пространственных объектов, в котором сохраняются упрощенные полигоны, и класс точечных пространственных объектов для сохранения в нем точек, соответствующих полигонам, которые в результате обработки стали «нулевыми». Имя и местоположение выходного класса точечных объектов вычисляются автоматически при добавлении суффикса _Pnt. Выходной класс полигональных объектов будет содержать все поля входного слоя, а выходной точечный слой не будет содержать никаких полей из числа входных.
 Части составных полигонов упрощаются отдельно.
Предусмотрено три варианта обработки топологических ошибок выходных данных:
- NO_CHECK: возникшие в результате процесса упрощения ошибки топологии не будут отмечаться. В этом случае обработка происходит быстрее. Используйте этот вариант обработки, когда вы уверены в топологической точности ваших данных.
 - FLAG_ERRORS: возникшие в результате процесса упрощения ошибки топологии будут помечены. Используйте эту опцию в том случае, когда вам необходимо только найти топологические ошибки, но не обязательно их исправлять. Эта опция не поддерживается во время сессии редактирования.
- Выходные полигональные данные будут иметь два новых поля для отображения, имеют ли объекты топологические ошибки. Параметры InPoly_FID и SimPlyFlag содержат, соответственно, идентификаторы входных объектов и топологические ошибки.
 - Поле InPoly_FID связывает упрощенные точки со входными полигонами.
 - Значение в поле SimPlyFlag, равное 1, означает наличие ошибки, значение 0 означает, что ошибки не обнаружены.
 - Метки останутся после исправления топологических ошибок. Для изучения объектов, имеющих топологические ошибки, используйте поле SimPlyFlag.
 
 -  RESOLVE_ERRORS: топологические ошибки, возникшие в результате процесса упрощения, исправляются. Увеличится время обработки.Опция недоступна во время сессии редактирования.
- Указанный допуск может оказаться подходящим для большинства полигонов, но все же не для всех: Если во время первой итерации процесса упрощения полигонов инструментом обнаружена ошибка топологии, соответствующие сегменты линий полигона (не весь полигон) будут заново размещены, а допуск - уменьшен.
 - Уменьшенный показатель допуска в этом случае составит 50% от исходного. Новый допуск будет использоваться для того, чтобы заново упростить эти сегменты. Процедура будет повторяться раз за разом до тех пор, пока не останется ни одной ошибки топологии объектов.
 - Количество полигонов в выходном классе объектов будет соответствовать количеству полигонов входного класса, при этом появятся два новых поля MaxSimpTol и MinSimpTol, в которых будут храниться максимальные и минимальные значения допусков, которые использовались в процессе упрощения каждого полигона. Если ошибки топологии не обнаружены, значения MaxSimpTol и MinSimpTol будут равны указанному значению допуска упрощения объектов.
 - Если указано относительно большое значение параметра Допуск упрощения (Simplification Tolerance), маленькие полигоны, расположенные вблизи больших, могут оказаться внутри больших. Такая ошибка пространственного отношения не будет определена программой.
 
 - Для опций NO_CHECK и FLAG_ERRORS в процессе упрощения может быть создана самопересекающаяся геометрия, которая будет автоматически исправлена. Например, если полигон имеет самопересечения, он будет таким образом превращен в составной полигон, что ни одна его часть не будет пересекать другую.Выглядеть при этом такой полигон по-прежнему будет как самопересекающийся.
 
Точечные объекты будут созданы в случаях, когда выбраны опции NO_CHECK или FLAG_ERRORS, а также если отмечен параметр Сохранить линии нулевой длины (Keep collapsed points). Если входной полигональный объект является составным, и одна из частей такого полигона превращается в объект нулевой длины, точка, отображающая эту часть полигона, также сохраняется в выходном точечном слое.
Синтаксис
| Параметр | Объяснение | Тип данных | 
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 и CHECK - одновременно. 
  | Boolean | 
Пример кода
Представленный скрипт Окна 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.
# 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")
