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

Сводка

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

Иллюстрация

Пример работы инструмента Упростить общие ребра
У 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).

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

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

Синтаксис

arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
ParameterОбъяснениеТип данных
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

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

NameОбъяснениеТип данных
out_feature_class

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

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

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

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

Пример кода

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

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

import arcpy
arcpy.env.workspace = "C:/data/LandUse.gdb"
arcpy.SimplifySharedEdges_cartography
arcpy.SimplifySharedEdges_cartography("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.SimplifySharedEdges_cartography(in_features, algorithm, tolerance, 
                                      shared_edge_features, minimum_area, 
                                      barriers)

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

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

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