Сводка
Улучшает визуальное и картографическое качество линий посредством сглаживания их углов.
Более подробно о работе инструментов Упростить линию и Упростить полигон.
Иллюстрация
Использование
Можно выбрать один из двух доступных методов сглаживания:
- Метод Полиномиальная аппроксимация с использованием экспоненциального ядра (PAEK) (PAEK в Python) сглаживает линии на основе допуска сглаживания. Каждая сглаженная линия может иметь большее количество вершин, чем исходная. Параметр Допуск сглаживания определяет длину сдвига кривой и используется при вычислении координат новых вершин. Чем меньше длина, тем больше деталей сохранится и тем больше времени займет обработка.
- Метод Интерполяции Безье (BEZIER_INTERPOLATION в Python) сглаживает линии без использования допуска путем создания аппроксимированных кривых Безье, совпадающих с входными линиями.
Используйте параметр Входные барьерные слои для указания пространственных объектов, которые не должны пересекаться сглаженными линиями. Объектами-барьерами могут быть полигоны, линии или точки.
Обработка больших наборов входных данных может вызвать превышение ограничений использования оперативной памяти. В таких случаях попробуйте выполнить обработку входных данных по частям, определяя соответствующий полигональный класс пространственных объектов с помощью параметра среды Картографические части. Части данных, разделенные между собой границами разделов, будут последовательно обрабатываться отдельно друг от друга. Полученный класс объектов будет бесшовным и совпадать с границами разделов. Более подробно см. Генерализация больших наборов данных путем разделения на части.
Внимание:
Параметр среды Картографические разделы игнорируется, если для параметра Управление топологическими ошибками задано значение Не выполнять проверку на топологические ошибки (NO_CHECK в Python) или Пометить топологические ошибки (FLAG_ERRORS в Python).
Домены и подтипы копируются в выходные данные, даже если параметр среды Перенос доменов, подтипов и правил атрибутов не отмечен.
Выходными данными будет топологически корректный линейный класс пространственных объектов. Все топологические ошибки входных данных будут помечены в выходном линейном классе пространственных объектов. Выходной класс пространственных объектов содержит два дополнительных поля: InLine_FID и SmoLnFlag, в которых содержатся соответственно идентификаторы входных пространственных объектов и топологические ошибки входных данных. Значение SmoLnFlag в 1 означает наличие топологической ошибки, а 0 (ноль) означает, что ошибок нет.
Прежние версии:
До версии ArcGIS Pro 2.2 этого инструмента, параметр Сохранить конечную точку для колец (endpoint_option в Python) использовался для сохранения конечной точки полученного изолированного полигонального кольца. Этот параметр пока присутствует в синтаксисе инструмента для совместимости в скриптах и моделях, но в диалоговом окне инструмента он игнорируется и скрыт.
Синтаксис
arcpy.cartography.SmoothLine(in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option}, {in_barriers})
Parameter | Объяснение | Тип данных |
in_features | Линейные объекты, которые необходимо сгладить. | Feature Layer |
out_feature_class | Создаваемый выходной класс пространственных объектов. | Feature Class |
algorithm | Определяет алгоритм сглаживания.
| String |
tolerance | Устанавливает допуск, используемый алгоритмом PAEK. Должен быть указан допуск, значение которого больше нуля. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта. Если используется алгоритм сглаживания BEZIER_INTERPOLATION, необходимо ввести 0 в качестве заполнителя. | Linear Unit |
endpoint_option (Дополнительный) | Этот параметр больше не используется. Ранее этот параметр использовался для того, чтобы задать, будут ли сохраняться концевые точки замкнутых линий. Этот параметр пока присутствует в синтаксисе скрипта для совместимости в скриптах и моделях, но в диалоговом окне инструмента скрыт. Определяет, следует ли сохранять концевые точки замкнутых линий. Эта опция доступна только для алгоритма PAEK.
| Boolean |
error_option (Дополнительный) | Определяет способ обработки топологических ошибок, которые могут появиться в процессе обработки (например, пересечения и наложения линий).
| String |
in_barriers [in_barriers,...] (Дополнительный) | Входные данные, содержащие пространственные объекты, которые будут выполнять роль барьеров для сглаживания. Получившиеся сглаженные линии не будут касаться или пересекать объекты-барьеры. Например, при сглаживании изолиний входные объекты точек высот, указанные как барьеры, не позволяют сглаженным изолиниям проходить через эти точки. Выходные данные не будут нарушать форму рельефа. | Feature Layer |
Пример кода
Пример скрипта 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.
# 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)
Environments
Информация о лицензиях
- Basic: Нет
- Standard: Да
- Advanced: Да