Сводка
Упрощает ребра входных объектов при сохранении топологических отношений с ребрами, общими для других объектов.
Иллюстрация
Использование
Этот инструмент задействует различные алгоритмы упрощения для разных целей. Более подробно о работе этих алгоритмов, см. Как работают инструменты Упростить линию и Упростить полигон.
- Алгоритм Сохранение критических точек (Дугласа-Пекера) (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 | Задает используемый алгоритм упрощения.
| String |
tolerance | Определение степени упрощения. Если единицы измерения не заданы, используются единицы измерения входных данных.
| 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 | Объекты с общими ребрами. | Векторный слой |
Пример кода
В следующем скрипте окна 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.
# 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)
Environments
Информация о лицензиях
- Basic: Нет
- Standard: Да
- Advanced: Да