Краткая информация
Упрощает линию посредством удаления ее лишних изгибов с сохранением основной формы.
Более подробно о том, как работает инструмент Упростить линию (Simplify Line)
Рисунок
Использование
Используется два метода упрощения:
- Метод Сохранения критических точек (Retain critical points) (POINT_REMOVEалгоритмPOINT_REMOVE в Python) более быстрый, но менее точный. Он заключается в удалении избыточных вершин. Используйте этот метод для сжатия данных или более грубое упрощение. Угловатость получившейся линии при увеличении допуска значительно возрастет, в связи с чем результат может выглядеть хуже оригинала.
- Метод Сохранения критических изгибов (Retain critical bends) (BEND_SIMPLIFY в Python) является более медленным, но, как правило, дает более надежные результаты. Метод заключается в удалении незначительных изгибов линий. Используйте этот метод для более точного упрощения.
Значение Допуск упрощения (Simplification tolerance) определяет степень упрощения. Это значение рекомендуется установить равным или более минимально допустимого расстояния между графическими элементами. При одинаковом допуске упрощения метод Сохранения критических точек (Retain critical points) дает менее точные и более упрощенные результаты по сравнению с методом Сохранения критических изгибов (Retain critical bends).
Инструмент создает два выходных класса объектов: класс линейных пространственных объектов, в котором сохраняются упрощенные линии, и класс точечных пространственных объектов для сохранения в нем точек, соответствующих линиям, которые в результате обработки стали "нулевыми". Имя и местоположение выходного класса точечных объектов вычисляются автоматически при добавлении суффикса _Pnt. В выходном классе линейных объектов имеются все поля, представленные во входном классе. Выходной класс точечных объектов не содержит ни одного из этих полей.
Предусмотрены разные варианты обработки топологических ошибок выходных данных:
- Параметр Проверка на топологические ошибки (Check for topological errors) выявляет ошибки топологии, получившиеся в результате процесса упрощения линий. Когда эта опция включена, параметр Исправлять ошибки топологии (Resolve topological errors) также будет включен. Проверка на топологические ошибки уменьшает скорость обработки.
- Выходной класс линейных объектов содержит два поля, в которых указывается, содержит ли объект топологическую ошибку. InLine_FID и SimLnFlag хранят, соответственно, идентификаторы агрегированных и исходных объектов. Значение 1 означает наличие ошибки; значение 0 означает, что ошибки не обнаружены.
- Метки останутся после исправления топологических ошибок. Для изучения объектов, имеющих топологические ошибки, используйте поле SimLnFlag.
Параметры Проверка на топологические ошибки (Check for topological errors) и Исправлять ошибки топологии (Resolve topological errors) не могут использоваться во время сессии редактирования. Выключите параметр Проверка на топологические ошибки (Check for topological errors), для того чтобы запустить инструмент во время сессии редактирования.
Синтаксис
SimplifyLine_cartography (in_features, out_feature_class, algorithm, tolerance, {error_resolving_option}, {collapsed_point_option}, {error_checking_option})
Параметр | Объяснение | Тип данных |
in_features | Линейные объекты, которые необходимо упростить. | Feature Layer |
out_feature_class | Создаваемый выходной класс линейных пространственных объектов. | Feature Class |
algorithm | Определяет используемый алгоритм упрощения линий.
| String |
tolerance | Допуск, определяющий степень упрощения. Должен быть указан допуск, значение которого больше нуля. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта.
| Linear unit |
error_resolving_option (дополнительно) | Определяет способ обработки топологических ошибок, которые могут появиться в процессе обработки (в том числе пересечения и перекрытия линий, а также образовавшиеся линии нулевой длины). Этот параметр применяется, когда error_checking_option = "CHECK" (значение по умолчанию).
| Boolean |
collapsed_point_option (дополнительно) | Определяет, необходимо ли сохранять найденные в процессе обработки линии нулевой длины в качестве точечных объектов. Эта опция применяется только в случае, когда выбран параметр NO_CHECK или заданы одновременно обе опции – и FLAG_ERRORS, и CHECK.
| Boolean |
error_checking_option (дополнительно) | Определяет способ обработки топологических ошибок, которые могут появиться в процессе обработки (в том числе пересечения и перекрытия линий, а также образовавшиеся линии нулевой длины).
| Boolean |
Пример кода
Пример инструмента SimplifyLine (окно Python)
Представленный скрипт Окна Python демонстрирует порядок непосредственного использования инструмента.
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SimplifyLine("roads.shp",
"C:/output/output.gdb/simplified_roads",
"POINT_REMOVE",
20)
SimplifyLine, пример 2 (автономный скрипт)
Этот автономный скрипт демонстрирует пример использования инструмента SimplifyLine.
# Name: SimplifyLine_Example2.py
# Description: Simplify line features from two feature classes, rivers and coastlines,
# while maintaining their connections
# 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
inRiverFeatures = "rivers"
inCoastlineFeatures = "coastlines"
mergedFeatures = "C:/data/PortlandOutput.gdb/merged_lines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/merged_lines_simplified"
tempLayer = "tempLyr"
outRiverFeatureClass = "C:/data/PortlandOutput.gdb/rivers_final"
outCoastlineFeatureClass = "C:/data/PortlandOutput.gdb/coastlines_final"
# Merge rivers and coastlines into one feature class,
# assuming that they have a common f-code field
# with value 40 for rivers and 80 for coastlines.
DM.Merge(inRiverFeatures, inCoastlineFeatures, mergedFeatures)
# Simplify all lines.
CA.SimplifyLine(mergedFeatures,
simplifiedFeatures,
"BEND_SIMPLIFY",
100,
"RESOLVE_ERRORS",
"KEEP_COLLAPSED_POINTS",
"CHECK")
# Select rivers and coastlines by their f-code values
# and put them in separate feature classes.
DM.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 40")
DM.CopyFeatures(tempLayer, outRiverFeatureClass)
DM.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 80")
DM.CopyFeatures(tempLayer, outCoastlineFeatureClass)
Параметры среды
- Текущая рабочая область (Current Workspace)
- Выходное значение Z по умолчанию (Default Output Z Value)
- Выходной домен M (Output M Domain)
- Выходной XY домен (Output XY Domain)
- Выходная система координат (Output Coordinate System)
- Экстент (Extent)
- Выходные данные содержат значения M (Output has M values)
- Выходные данные содержат Z значения (Output has Z values)
- Временная рабочая область (Scratch Workspace)
- Допуск XY (XY Tolerance)
Информация о лицензировании
- ArcGIS for Desktop Basic: Нет
- ArcGIS for Desktop Standard: Да
- ArcGIS for Desktop Advanced: Да