Сгладить линию (Картография)

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

Улучшает визуальное и картографическое качество линий посредством сглаживания их углов.

Более подробно о работе инструментов Упростить линию и Упростить полигон.

Иллюстрация

Примеры опций алгоритма Сгладить линию
Острые углы линии могут быть сглажены с помощью метода интерполяции PAEK или параметрической кривой.

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

  • Можно выбрать один из двух доступных методов сглаживания:

    • Метод Полиномиальная аппроксимация с использованием экспоненциального ядра (PAEK) (PAEK в Python) сглаживает линии на основе допуска сглаживания. Каждая сглаженная линия может иметь большее количество вершин, чем исходная. Параметр Допуск сглаживания определяет длину сдвига кривой и используется при вычислении координат новых вершин. Чем меньше длина, тем больше деталей сохранится и тем больше времени займет обработка.
    • Метод Интерполяции Безье (BEZIER_INTERPOLATION в Python) сглаживает линии без использования допуска путем создания аппроксимированных параметрических кривых, совпадающих с входными линиями.
  • Используйте параметр Входные барьерные слои для указания пространственных объектов, которые не должны пересекаться сглаженными линиями. Объектами-барьерами могут быть полигоны, линии или точки.

  • Обработка больших наборов входных данных может вызвать превышение ограничений использования оперативной памяти. В таком случае попытайтесь разделить входные данные на части, определив соответствующий полигональный класс пространственных объектов с помощью параметра среды Картографические разделы. Части данных, разделенные между собой границами разделов, будут последовательно обрабатываться отдельно друг от друга. Полученный класс объектов будет бесшовным и совпадать с границами разделов. Более подробно см. Генерализация больших наборов данных с использованием разделов.

    Внимание:

    Параметр среды Картографические разделы игнорируется, если для параметра Управление топологическими ошибками задано значение Не выполнять проверку на топологические ошибки (error_option = "NO_CHECK" в Python) или Пометить топологические ошибки (error_option = "FLAG_ERRORS" в Python).

  • Домены и подтипы копируются в выходные данные, даже если параметр среды Перенесение доменов, подтипов и правил атрибутов не отмечен.

  • Выходными данными будет топологически корректный линейный класс пространственных объектов. Все топологические ошибки входных данных будут помечены в выходном линейном классе пространственных объектов. Выходной класс пространственных объектов содержит два дополнительных поля: InLine_FID и SmoLnFlag, в которых содержатся соответственно идентификаторы входных пространственных объектов и топологические ошибки входных данных. Значение SmoLnFlag, равное 1, означает наличие топологической ошибки; 0 (ноль) означает, что ошибок нет.

    Прежние версии:

    До версии ArcGIS Pro 2.2 этого инструмента, параметр Сохранить конечную точку для колец (endpoint_option в Python) использовался для сохранения конечной точки полученного изолированного полигонального кольца. Этот параметр пока присутствует в синтаксисе инструмента для совместимости в скриптах и моделях, но в диалоговом окне инструмента он игнорируется и скрыт.

Параметры

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

Линейные объекты, которые необходимо сгладить.

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

Создаваемый выходной класс пространственных объектов.

Feature Class
Алгоритм сглаживания

Определяет алгоритм сглаживания.

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

Задаёт допуск, который будет использоваться алгоритмом Полиномиальная аппроксимация с экспоненциальным ядром (PAEK). Должен быть указан допуск, значение которого больше нуля. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта. Этот параметр недоступен, если используется алгоритм Интерполяция Безье.

Linear Unit
Сохранить конечную точку для замкнутых линий
(Дополнительный)

Этот параметр больше не используется. Ранее этот параметр использовался для того, чтобы задать, будут ли сохраняться концевые точки замкнутых линий. Этот параметр пока присутствует в синтаксисе скрипта для совместимости в скриптах и моделях, но в диалоговом окне инструмента скрыт.

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

  • Отмечено - конечные точки замкнутой линии сохраняются. Это значение по умолчанию
  • Не отмечено - Конечные точки замкнутой линии не сохраняются, они сглаживаются.
Boolean
Управление топологическими ошибками
(Дополнительный)

Определяет способ обработки топологических ошибок, которые могут появиться в процессе обработки (например, пересечения и наложения линий).

  • Не выполнять проверку на топологические ошибкиОшибки топологии не идентифицируются Это значение по умолчанию
  • Пометить топологические ошибкиЕсли топологические ошибки обнаруживаются, они отмечаются.
  • Исправлять ошибки топологииЕсли топологические ошибки находятся, они исправляются.
String
Входные слои барьеров
(Дополнительный)

Входные данные, содержащие пространственные объекты, которые будут выполнять роль барьеров для сглаживания. Получившиеся сглаженные линии не будут касаться или пересекать объекты-барьеры. Например, при сглаживании изолиний входные объекты точек высот, указанные как барьеры, не позволяют сглаженным изолиниям проходить через эти точки. Выходные данные не будут нарушать форму рельефа.

Feature Layer

arcpy.cartography.SmoothLine(in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option}, {in_barriers})
ИмяОписаниеТип данных
in_features

Линейные объекты, которые необходимо сгладить.

Feature Layer
out_feature_class

Создаваемый выходной класс пространственных объектов.

Feature Class
algorithm

Определяет алгоритм сглаживания.

  • PAEKЭто аббревиатура, означающая полиномиальную аппроксимацию с использованием экспоненциального ядра. Вычисляется сглаженная линия, которая не будет проходить через вершины исходной линии. Это значение по умолчанию
  • BEZIER_INTERPOLATIONСтроит между вершинами параметрические кривые (кривые Безье). Полученные линии проходят через вершины исходных линий. Этот алгоритм не требует указания допуска. Кривые Безье в выходных данных будут аппроксимированы.
String
tolerance

Допуск, используемый алгоритмом PAEK. Должен быть указан допуск, значение которого больше нуля. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта. Если используется алгоритм сглаживания BEZIER_INTERPOLATION, необходимо ввести 0 в качестве заполнителя.

Linear Unit
endpoint_option
(Дополнительный)

Этот параметр больше не используется. Ранее этот параметр использовался для того, чтобы задать, будут ли сохраняться концевые точки замкнутых линий. Этот параметр пока присутствует в синтаксисе скрипта для совместимости в скриптах и моделях, но в диалоговом окне инструмента скрыт.

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

  • FIXED_CLOSED_ENDPOINTКонечные точки замкнутой линии сохраняются. Это значение по умолчанию
  • NO_FIXEDКонечные точки замкнутой линии не сохраняются, они сглаживаются.
Boolean
error_option
(Дополнительный)

Определяет способ обработки топологических ошибок, которые могут появиться в процессе обработки (например, пересечения и наложения линий).

  • NO_CHECKОшибки топологии не идентифицируются Это значение по умолчанию
  • FLAG_ERRORSЕсли топологические ошибки обнаруживаются, они отмечаются.
  • RESOLVE_ERRORSЕсли топологические ошибки находятся, они исправляются.
String
in_barriers
[in_barriers,...]
(Дополнительный)

Входные данные, содержащие пространственные объекты, которые будут выполнять роль барьеров для сглаживания. Получившиеся сглаженные линии не будут касаться или пересекать объекты-барьеры. Например, при сглаживании изолиний входные объекты точек высот, указанные как барьеры, не позволяют сглаженным изолиниям проходить через эти точки. Выходные данные не будут нарушать форму рельефа.

Feature Layer

Пример кода

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

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

import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SmoothLine("contours.shp", "C:/output/output.gdb/smoothed_contours", "PAEK", 100)
SmoothLine, пример 2 (автономный скрипт)

В следующем автономном скрипте показано использование функции SmoothLine.

# Name: SmoothLine_Example2.py
# Description: Simplify and then Smooth coastlines

# Import system modules
import arcpy
import arcpy.cartography as CA

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

# Set local variables
inCoastlineFeatures = "coastlines"
barriers = "C:/data/Portland.gdb/Structures/buildings"
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", barriers)

# Smooth coastlines.
CA.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", 
              "FLAG_ERRORS", barriers)

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

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

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