Упростить полигон (Картография)

Краткая информация

Упрощает полигоны посредством удаления лишних вершин с сохранением основной формы.

Иллюстрация

Иллюстрация инструмента Упростить полигон
Примеры результатов применения алгоритмов упрощения показаны здесь для сравнения.

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

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

    Варианты значения параметра Алгоритм упрощения показаны ниже.

    • Алгоритм Сохранение критических точек (Дугласа-Пекера) ("POINT_REMOVE" в Python) находит и удаляет неосновные вершины для упрощения данных, чтобы отображать их в более мелких масштабах. Это самый быстрый алгоритм упрощения данного инструмента. Он часто используется для сжатия данных или грубого упрощения. Угловатость получившегося контура полигона значительно возрастает при увеличении допуска.
    • Алгоритм Сохранение критических изгибов (Ванга-Мюллера) ("BEND_SIMPLIFY" в Python) выявляет и сглаживает относительно незначительные изгибы для упрощения данных, чтобы отображать их в более мелких масштабах. Он гораздо точнее обрабатывает входную геометрию, чем Сохранение критических точек (Дугласа-Пекера), но его работа занимает гораздо больше времени.
    • Алгоритм Сохранение взвешенной полезной площади (Жу-Джонса) ("WEIGHTED_AREA" в Python) определяет треугольник полезной площади для каждой вершины. Затем треугольники взвешиваются по набору определений, для оценки их однородности, асимметричности и выпуклости для каждой области. Взвешенные области указывают на избыточные вершины для удаления, позволяющие упростить контур полигона, максимально возможно сохраняя при этом его характеристики.
    • Алгоритм Сохранение полезных областей (Висвалингэм-Уайатт) ("EFFECTIVE_AREA" в Python) идентифицирует треугольники полезной области для каждой вершины, чтобы направлять удаление вершин для упрощения границ полигонов, сохраняя при этом как можно точнее её характеристики.

  • Параметр Допуск упрощения определяет степень упрощения. Чем больше допуск, тем грубее будет полученная геометрия. Меньшие значения допусков позволяют получить геометрию, более точно представляющую входные данные. Поля MinSimpTol и MaxSimpTol добавятся к выходным данным, чтобы там хранился использованный допуск.

    • Для алгоритма Сохранение критических точек (Дугласа-Пекера) допуском является максимально допустимое перпендикулярное расстояние от каждой из вершин до вновь созданной линии.
    • Для алгоритма Сохранение критических изгибов (Ванга-Мюллера) допуском является диаметр окружности, приближенной к значимому изгибу.
    • Для алгоритма Сохранение взвешенной полезной площади (Джоуи-Джонс) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами. Чем дальше треугольник отклоняется от равностороннего, тем больший вес он получает и тем меньше вероятность его удаления.
    • Для алгоритма Сохранение полезных областей (Визвалингам-Ватт) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами.

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

  • Части составных полигонов упрощаются отдельно.

  • Используйте параметр Сохранить линии нулевой длины, чтобы создать выходной класс точечных объектов, которые будут представлять полигоны, удалённые из-за того, что их размеры меньше минимальной площади. Создаются выходные точки; они используют те же имя и местоположение, как у параметра Выходной класс объектов, но с суффиксом _Pnt. В выходном полигональном классе пространственных объектов имеются все поля, представленные во входном классе. Выходной класс точечных объектов не будет содержать этих полей.

  • Такие топологические ошибки, как самопересечения и перекрытия объектов, могут быть созданы при упрощении геометрии. У параметра Управление топологическими ошибками есть три варианта задания поведения в этих случаях:

    • Не выполнять проверку на топологические ошибки - топологические ошибки выявляться не будут. В этом случае обработка происходит быстрее. Используйте этот вариант обработки, только если вы уверены в топологической точности ваших данных.
    • Пометить топологические ошибки - топологические ошибки будут выявлены и помечены. Выходной класс объектов будет содержать поля InPoly_FID и SimPgnFlag. В поле InPoly_FID будут храниться ID входных объектов. В поле SimPgnFlag будет содержаться значение 1 при наличии топологической ошибки и 0 - при ее отсутствии.
    • Исправлять ошибки топологии - топологические ошибки не будут создаваться в выходных данных, а ошибки, существующие во входных данных, будут содержать вершины, вставленные в точки пересечения. Существующие топологические отношения между объектами, например, общие ребра, будут сохранены. В этом случае время обработки увеличивается. Выходной класс объектов будет содержать поля InPoly_FID и SimPgnFlag. В поле InPoly_FID будут храниться ID входных объектов. Значения поля SimPgnFlag следующие:
      • 0 = есть ошибки топологии.
      • 1 = во входных данных есть ошибки топологии.
      • 2 = объекты были разделены при делении на части и теперь после упрощения их площадь меньше минимальной. Флаг может отображаться только на одной части разделенного объекта. Все эти объекты будут сохранены в выходном классе объектов. Подобная ситуация возникает только при использовании параметра среды Картографические разделы.
    Прежние версии:

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

  • Используйте параметр Входные слои барьеров для указания пространственных объектов, которые не должны пересекаться упрощаемыми полигонами. Объектами-барьерами могут быть полигоны, линии или точки.

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

  • Обработка больших наборов входных данных может вызвать превышение ограничений использования оперативной памяти. В таком случае попытайтесь разделить входные данные на части, определив соответствующий полигональный класс пространственных объектов с помощью параметра среды Картографические разделы. Части данных, разделенные между собой границами, будут последовательно обрабатываться отдельно друг от друга. Полученный выходной класс объектов будет бесшовным и соответствовать границам частей. Более подробно см. Генерализация больших наборов данных с использованием разделов.

    Внимание:

    Параметр среды Картографические разделы игнорируется, если для параметра Управление топологическими ошибками задано значение Не выполнять проверку на топологические ошибки или Пометить топологические ошибки.

Параметры

ПодписьОписаниеТип данных
Входные объекты

Входные полигональные объекты, которые будут упрощены.

Feature Layer
Выходной класс пространственных объектов

Упрощённый выходной класс полигональных объектов. В нем будут содержаться все поля входного класса объектов. Выходными данными будет топологически корректный полигональный класс пространственных объектов. Инструмент не вводит топологические ошибки, но все топологические ошибки входных данных будут помечены в выходном полигональном классе пространственных объектов.

Выходной класс пространственных объектов будет содержать поля InPoly_FID и SimPgnFlag, в которых содержатся, соответственно, идентификаторы входных пространственных объектов и топологические ошибки входных данных.

Значения атрибута SimPgnFlag могут быть такими:

  • SimPgnFlag = 0 означает, что ошибки отсутствуют.
  • SimPgnFlag = 1 означает, что присутствуют топологические ошибки.
  • SimPgnFlag = 2 указывает на объекты, которые были разделены при делении на части и теперь после упрощения меньше минимальной площади. Флаг может отображаться только на одной части разделенного объекта. Все эти объекты будут сохранены в выходном классе объектов. Подобная ситуация возникает только при использовании параметра среды Картографические разделы.

Feature Class
Алгоритм упрощения

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

  • Сохранение критических точек (Дуглас-Пекер)Критические точки, которые образуют главную форму контура полигона, сохраняются, а все остальные точки будут удалены (Дуглас – Пекер). Это значение по умолчанию
  • Сохранение критических изгибов (Ванг-Мюллер)Критические изгибы будут сохранены, а лишние изгибы будут удалены из линии (Ванг – Мюллер).
  • Сохранение взвешенной полезной площади (Джоуи-Джонс)Вершины, которые формируют треугольники эффективной площади, взвешенные согласно треугольной геометрии - будут сохранены (Жу – Джонс).
  • Сохранение полезных областей (Визвалингам – Ватт)Вершины, которые формируют треугольники эффективной площади (Висвалингема – Уайетт) - будут сохранены.
String
Допуск упрощения

Степень упрощения, которая будет применена. Вы можете выбрать предпочитаемые единицы измерения; в противном случае будут использоваться единицы входных данных. Поля MinSimpTol и MaxSimpTol добавятся к выходным данным, чтобы там хранился использованный во время обработки допуск.

  • Для алгоритма Сохранение критических точек (Дугласа-Пекера) допуском является максимально допустимое перпендикулярное расстояние от каждой из вершин до вновь созданной линии.
  • Для алгоритма Сохранение критических изгибов (Ванга-Мюллера) допуском является диаметр окружности, приближенной к значимому изгибу.
  • Для алгоритма Сохранение взвешенной полезной площади (Джоуи-Джонс) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами. Чем дальше треугольник отклоняется от равностороннего, тем больший вес он получает и тем меньше вероятность его удаления.
  • Для алгоритма Сохранение полезных областей (Визвалингам-Ватт) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами.
Linear Unit
Минимальная площадь
(Дополнительный)

Минимальная сохраняемая площадь полигона. Значение по умолчанию равно нулю; в этом случае сохраняются все полигоны. Вы можете выбрать предпочитаемые единицы измерения указанного значения; в противном случае будут использоваться единицы входных данных.

Areal Unit
Управление топологическими ошибками
(Дополнительный)

Задает способ обработки топологических ошибок. Топологические ошибки могут иметь место в процессе упрощения -это пересечения или перекрытия линий.

  • Не выполнять проверку на топологические ошибкиОшибки топологии не идентифицируются Это значение по умолчанию
  • Пометить топологические ошибкиТопологические ошибки будут отмечены.
  • Исправлять ошибки топологииТопологические ошибки будут исправлены.
String
Сохранить линии нулевой длины
(Дополнительный)

Показывает, создавать ли выходной класс точечных пространственных объектов, в котором будут храниться центроиды полигонов, удалённых по причине того, что они были меньше значения параметра Минимальная площадь. Создаются выходные точки; они используют те же имя и местоположение, как у параметра Выходной класс объектов, но с суффиксом _Pnt.

  • Отмечено - буден создан производный выходной класс точечных объектов, в котором будут храниться центроиды полигонов, удалённых по причине того, что они были меньше минимальной площади. Это значение по умолчанию
  • Не отмечено - производный выходной класс точечных объектов не создается.
Boolean
Входные слои барьеров
(Дополнительный)

Входные слои, содержащие пространственные объекты, которые должны работать как барьеры для упрощения. Выходные упрощённые полигоны, которые не касаются и не пересекают объекты-барьеры. Например, при упрощении лесных районов результирующие упрощённые полигоны лесных территорий не будут касаться объектов-дорог, которые были заданы как барьеры.

Feature Layer

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

ПодписьОписаниеТип данных
Полигоны, сжатые в точки

Если отмечен параметр Сохранить линии нулевой длины, то создается выходной класс точечных объектов, которые будут представлять полигоны, удалённые из-за того, что их размеры меньше минимальной площади.

Feature Class

arcpy.cartography.SimplifyPolygon(in_features, out_feature_class, algorithm, tolerance, {minimum_area}, {error_option}, {collapsed_point_option}, {in_barriers})
ИмяОписаниеТип данных
in_features

Входные полигональные объекты, которые будут упрощены.

Feature Layer
out_feature_class

Упрощённый выходной класс полигональных объектов. В нем будут содержаться все поля входного класса объектов. Выходными данными будет топологически корректный полигональный класс пространственных объектов. Инструмент не вводит топологические ошибки, но все топологические ошибки входных данных будут помечены в выходном полигональном классе пространственных объектов.

Выходной класс пространственных объектов будет содержать поля InPoly_FID и SimPgnFlag, в которых содержатся, соответственно, идентификаторы входных пространственных объектов и топологические ошибки входных данных.

Значения атрибута SimPgnFlag могут быть такими:

  • SimPgnFlag = 0 означает, что ошибки отсутствуют.
  • SimPgnFlag = 1 означает, что присутствуют топологические ошибки.
  • SimPgnFlag = 2 указывает на объекты, которые были разделены при делении на части и теперь после упрощения меньше минимальной площади. Флаг может отображаться только на одной части разделенного объекта. Все эти объекты будут сохранены в выходном классе объектов. Подобная ситуация возникает только при использовании параметра среды Картографические разделы.

Feature Class
algorithm

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

  • POINT_REMOVEКритические точки, которые образуют главную форму контура полигона, сохраняются, а все остальные точки будут удалены (Дуглас – Пекер). Это значение по умолчанию
  • BEND_SIMPLIFYКритические изгибы будут сохранены, а лишние изгибы будут удалены из линии (Ванг – Мюллер).
  • WEIGHTED_AREAВершины, которые формируют треугольники эффективной площади, взвешенные согласно треугольной геометрии - будут сохранены (Жу – Джонс).
  • EFFECTIVE_AREAВершины, которые формируют треугольники эффективной площади (Висвалингема – Уайетт) - будут сохранены.
String
tolerance

Степень упрощения, которая будет применена. Вы можете выбрать предпочитаемые единицы измерения; в противном случае будут использоваться единицы входных данных. Поля MinSimpTol и MaxSimpTol добавятся к выходным данным, чтобы там хранился использованный во время обработки допуск.

  • Для алгоритма POINT_REMOVE допуском является максимально возможное расстояние по перпендикуляру, опущенному из каждой из вершин, до вновь созданной линии.
  • Для алгоритма BEND_SIMPLIFY допуском является диаметр окружности, приближенной к значимому изгибу.
  • Для алгоритма WEIGHTED_AREA квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами. Чем дальше треугольник отклоняется от равностороннего, тем больший вес он получает и тем меньше вероятность его удаления.
  • Для алгоритма EFFECTIVE_AREA квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами.
Linear Unit
minimum_area
(Дополнительный)

Минимальная сохраняемая площадь полигона. Значение по умолчанию равно нулю; в этом случае сохраняются все полигоны. Вы можете выбрать предпочитаемые единицы измерения указанного значения; в противном случае будут использоваться единицы входных данных.

Areal Unit
error_option
(Дополнительный)

Задает способ обработки топологических ошибок. Топологические ошибки могут иметь место в процессе упрощения -это пересечения или перекрытия линий.

  • NO_CHECKОшибки топологии не идентифицируются Это значение по умолчанию
  • FLAG_ERRORSТопологические ошибки будут отмечены.
  • RESOLVE_ERRORSТопологические ошибки будут исправлены.
String
collapsed_point_option
(Дополнительный)

Показывает, создавать ли выходной класс точечных пространственных объектов, в котором будут храниться центроиды полигонов, удалённых по причине того, что они были меньше значения параметра minimum_area. Создаются выходные точки с именем и местоположением, как у параметра out_feature_class объектов, но с суффиксом _Pnt.

  • KEEP_COLLAPSED_POINTSБуден создан производный выходной класс точечных объектов, в котором будут храниться центроиды полигонов, удалённых по причине того, что они были меньше минимальной площади. Это значение по умолчанию
  • NO_KEEPПроизводный выходной класс точечных объектов не создается.
Boolean
in_barriers
[in_barriers,...]
(Дополнительный)

Входные слои, содержащие пространственные объекты, которые должны работать как барьеры для упрощения. Выходные упрощённые полигоны, которые не касаются и не пересекают объекты-барьеры. Например, при упрощении лесных районов результирующие упрощённые полигоны лесных территорий не будут касаться объектов-дорог, которые были заданы как барьеры.

Feature Layer

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

ИмяОписаниеТип данных
out_point_feature_class

Если значение параметра collapsed_point_option - KEEP_COLLAPSED_ POINTS, то создается точечный выходной класс пространственных объектов для хранения точек, представляющих собой полигоны, которые были удалены, так как их размер меньше минимально разрешенной площади.

Feature Class

Пример кода

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

В следующем скрипте окна Python показано, как используется функция SimplifyPolygon в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.cartography.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.

# Import system modules
import arcpy
 
# Set environment settings
arcpy.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.
arcpy.management.EliminatePolygonPart(inLakeFeatures, eliminatedFeatures, 100, 
                                      "OR", 0, "CONTAINED_ONLY")
 
# Simplify lake polygons
arcpy.cartography.SimplifyPolygon(eliminatedFeatures, simplifiedFeatures, 
                                  "POINT_REMOVE", 50, 200, "#", 
                                  "KEEP_COLLAPSED_POINTS")

# Smooth lake polygons
arcpy.cartography.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, 
                 "FLAG_ERRORS")

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

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

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