Упростить общие ребра (Картография)

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

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

Иллюстрация

Пример работы инструмента Упростить общие ребра
У Input 1 и Input 2 упрощены все ребра. Общие ребра полигонов и Общие ребра линий упрощаются только вдоль ребер, общих для Input 1 и Input 2.

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

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

    • Алгоритм Сохранение критических точек (Дугласа-Пекера) (algorithm='POINT_REMOVE' в Python) работает путём выявления и удаления относительно излишних вершин для упрощения данных, чтобы отображать их в мелких масштабах. Это самый быстрый алгоритм упрощения в данном инструменте. Этот алгоритм часто используется для сжатия данных или грубого упрощения. Угловатость получившихся линий значительно возрастает при увеличении допуска. Данный алгоритм основан на алгоритме Дугласа-Пекера: Douglas, David and Peucker, Thomas, "Algorithms for the reduction of the number of points required to represent a digitized line or its caricature," The Canadian Cartographer. 10(2), 112–22 (1973).
    • Алгоритм Сохранение критических изгибов (Ванга-Мюллера) (algorithm='BEND_SIMPLIFY' в Python) работает путём выявления и сглаживания относительно незначительных изгибов для упрощения данных, чтобы отображать их в мелких масштабах. Он гораздо добросовестнее обрабатывает входную геометрию, чем алгоритм Сохранение критических точек (Дугласа-Пекера), но его работа занимает гораздо больше времени. Данный алгоритм основан на алгоритме, описанном в работе Wang, Zeshen and Müller, Jean-Claude, "Line Generalization Based on Analysis of Shape Characteristics," Cartography and Geographic Information Systems 25(1), 3–15 (1998).
    • Алгоритм Сохранение взвешенной полезной площади (Джоуи-Джонс) (algorithm='WEIGHTED_AREA' в Python) определяет треугольник полезной площади для каждой вершины. Затем эти треугольники взвешиваются по набору определений, для оценки их однородности, асимметричности и выпуклости для каждой области. Взвешенные области указывают на избыточные вершины для удаления, позволяющие упростить линию, максимально возможно сохраняя при этом ее характеристики. Данный алгоритм основан на алгоритме, описанном в работе Zhou, Sheng and Jones, Christopher B., Shape-Aware Line Generalisation with Weighted Effective Area, in Fisher, Peter F. (Ed.), Developments in Spatial Handling: 11th International Symposium on Spatial Handling, 369–80 (2005).
    • Алгоритм Сохранение полезных областей (Визвалингам-Ватт) (algorithm='EFFECTIVE_AREA' в Python) идентифицирует треугольники полезной области для каждой вершины, чтобы направлять удаление вершин для упрощения линии, сохраняя при этом как можно точнее её характеристики. Этот алгоритм основан на алгоритме, указанном в работах Visvalingam, M. и Whyatt, J. D., "Line Generalisation by Repeated Elimination of the Smallest Area," Cartographic Information Systems Research Group (CISRG) Discussion Paper 10, The University of Hull (1992).

  • Инструмент изменяет параметры Входные объекты и Объекты с общими ребрами. Он не создает новые выходные данные.

  • Упрощение применяется ко всем ребрам Входных объектов и только тем ребрам Объектов с общими ребрами, которые имеют общие ребра с Входными объектами. Ребра Объектов с общими ребрами, которые не являются общими с хотя бы одним Входным объектом, не упрощаются.

Параметры

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

Линейные или полигональные объекты для упрощения.

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

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

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

Определение степени упрощения. Если единицы измерения не заданы, используются единицы измерения входных данных.

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

Линейные или полигональные объекты, общие ребра которых будут упрощены. Другие ребра упрощаться не будут.

Feature Layer
Минимальная площадь
(Дополнительный)

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

Areal Unit
Входные слои барьеров
(Дополнительный)

Точечные, линейные или полигональные объекты, действующие для упрощения как барьеры. Упрощаемые объекты не будут касаться или пересекаться с объектами-барьерами.

Feature Layer

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

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

Сглаженные входные объекты.

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

Объекты с общими ребрами.

Векторный слой

arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
ИмяОписаниеТип данных
in_features
[in_features,...]

Линейные или полигональные объекты для упрощения.

Feature Layer
algorithm

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

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

Определение степени упрощения. Если единицы измерения не заданы, используются единицы измерения входных данных.

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

Линейные или полигональные объекты, общие ребра которых будут упрощены. Другие ребра упрощаться не будут.

Feature Layer
minimum_area
(Дополнительный)

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

Areal Unit
in_barriers
[in_barriers,...]
(Дополнительный)

Точечные, линейные или полигональные объекты, действующие для упрощения как барьеры. Упрощаемые объекты не будут касаться или пересекаться с объектами-барьерами.

Feature Layer

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

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

Сглаженные входные объекты.

Векторный слой
out_shared_edge_feature_class

Объекты с общими ребрами.

Векторный слой

Пример кода

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

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

import arcpy
arcpy.env.workspace = "C:/data/LandUse.gdb"
arcpy.cartography.SimplifySharedEdges("Water;Parks;", 
                                      "POINT_REMOVE", 
                                      "10 Meters", 
                                      "Commercial;Highways;Buildings", 
                                      "0 SquareMeters")
SimplifySharedEdges, пример (автономный скрипт)

В этом автономном скрипте показан пример использования инструмента SimplifySharedEdges.

# Name: SimplifySharedEdges_standalone_script.py
# Description: Simplifies input features while maintaining topological 
#              relationships along shared edges. For features included as 
#              shared_edge_features (4th argument of 
#              SimplifySharedEdges_cartography()) only the edges that are shared 
#              with in_features (1st argument) are simplified. 

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/LandUse.gdb"

# Set local variables
in_features = "Water;Parks"
algorithm = "POINT_REMOVE"
tolerance = "10 Meters"
shared_edge_features = "Commercial;Highways;Buildings"
minimum_area = "0 SquareMeters"
barriers = None

# Execute Simplify Shared Edges
arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, 
                                      shared_edge_features, minimum_area, 
                                      barriers)

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

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

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