Краткая информация
Улучшает визуальное и картографическое качество линий посредством сглаживания их углов.
Рисунок
Использование
Можно выбрать один из двух методов сглаживания:
- Метод Полиномиальная аппроксимация с использованием экспоненциального ядра (Polynomial Approximation with Exponential Kernel (PAEK) (PAEK в Python) сглаживает линии на основе допуска сглаживания. Каждая сглаженная линия может иметь большее количество вершин, чем исходная. Параметр Допуск сглаживания (Smoothing Tolerance) определяет длину сдвига кривой и используется при вычислении координат новых вершин. Чем меньше длина, тем больше деталей сохранится и тем больше времени займет обработка.
- Метод Интерполяции Безье (Bezier interpolation) (BEZIER_INTERPOLATION в Python) сглаживает линии без использования допуска посредством создания параметрических кривых, соответствующих входным линиям. Если выходными данными является шейп-файл, кривые Безье будут приблизительно аппроксимированы, т.к. шейп-файл не поддерживает хранение подобных данных.
Сглаживание может вызвать топологические ошибки, например, пересечения линий. Для обнаружения этих ошибок используйте опцию Пометить ошибки (Flag errors) (FLAG_ERRORS в Python) параметра Исправлять топологические ошибки (Handle Topological Errors). Будут созданы два поля – InLine_FID и SmoLnFlag, содержащие, соответственно, идентификаторы входных объектов и ошибки топологии. Значение в поле SmoLnFlag, равное 1, означает наличие топологической ошибки; нулевое значение соответствует корректной топологии. Поле InLineFID связывает выходные линии со входными. Опция Пометить ошибки (Flag errors) не может использоваться во время сеанса редактирования.
В процессе сглаживания может быть создана некорректная геометрия (самопересекающаяся), которая будет только исправлена, но не улучшена. К примеру, самопересекающаяся линия будет преобразована в составную линию, но будет по-прежнему выглядеть, как самопересекающаяся.
Синтаксис
SmoothLine_cartography (in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option})
Параметр | Объяснение | Тип данных |
in_features | Линейные объекты, которые необходимо сгладить. | Feature Layer |
out_feature_class | Создаваемый выходной класс пространственных объектов. | Feature Class |
algorithm | Определяет алгоритм сглаживания.
| String |
tolerance | Устанавливает допуск, используемый алгоритмом PAEK. Должен быть указан допуск, значение которого больше нуля. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта. Необходимо ввести «0» при использовании алгоритма сглаживания BEZIER_INTERPOLATION. | Linear unit |
endpoint_option (дополнительно) | Определяет, следует ли сохранять концевые точки замкнутых линий. Эта опция доступна только для алгоритма PAEK.
| Boolean |
error_option (дополнительно) | Определяет способ обработки топологических ошибок, которые могут появиться в процессе обработки (например, пересечения линий).
| String |
Пример кода
Пример инструмента SmoothLine (Окно Python)
Представленный скрипт Окна Python демонстрирует порядок непосредственного использования инструмента SmoothLine.
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SmoothLine("contours.shp", "C:/output/output.gdb/smoothed_contours", "PAEK", 100)
Пример инструмента SmoothLine (автономный скрипт)
Этот автономный скрипт демонстрирует пример использования инструмента SmoothLine.
# Name: SmoothLine_Example2.py
# Description: Simplify and then Smooth coastlines
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables
inCoastlineFeatures = "coastlines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/coastlines_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/coastlines_smoothed"
# Simplify coastlines.
CA.SimplifyLine(inCoastlineFeatures, simplifiedFeatures, "POINT_REMOVE", 50, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
# Smooth coastlines.
CA.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", "FLAG_ERRORS")
Параметры среды
- Текущая рабочая область (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: Да