Упростить линию (Картография)

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

Упрощает линии посредством удаления лишних вершин с сохранением основной формы.

Иллюстрация

Иллюстрация инструмента Упростить линию
Примеры результатов применения алгоритмов упрощения показаны здесь для сравнения.

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

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

    Варианты значения параметра Алгоритм упрощения показаны ниже.

    • Алгоритм Сохранение критических точек (Дугласа-Пекера) ("POINT_REMOVE" в Python) находит и удаляет неосновные вершины для упрощения данных, чтобы отображать их в более мелких масштабах. Это самый быстрый алгоритм упрощения данного инструмента. Он часто используется для сжатия данных или грубого упрощения. Угловатость получившейся линии значительно возрастает при увеличении допуска.
    • Алгоритм Сохранение критических изгибов (Ванга-Мюллера) ("BEND_SIMPLIFY" в Python) выявляет и сглаживает относительно незначительные изгибы для упрощения данных, чтобы отображать их в более мелких масштабах. Он гораздо точнее обрабатывает входную геометрию, чем Сохранение критических точек (Дугласа-Пекера), но его работа занимает гораздо больше времени.
    • Алгоритм Сохранение взвешенной полезной площади (Жу-Джонса) ("WEIGHTED_AREA" в Python) определяет треугольник полезной площади для каждой вершины. Затем треугольники взвешиваются по набору определений, для оценки их однородности, асимметричности и выпуклости для каждой области. Взвешенные области указывают на избыточные вершины для удаления, позволяющие упростить линию, максимально возможно сохраняя при этом ее характеристики.
    • Алгоритм Сохранение полезных областей (Висвалингема-Уайетта) ("EFFECTIVE_AREA" в Python) находит треугольники полезной области для каждой вершины, чтобы направлять удаление вершин для упрощения линии, сохраняя при этом как можно точнее её характеристики.

  • Параметр Допуск упрощения определяет степень упрощения. Чем больше допуск, тем грубее будет полученная геометрия. Меньшие значения допусков позволяют получить геометрию, более точно представляющую входные данные. Поля MinSimpTol и MaxSimpTol добавятся к выходным данным, чтобы там хранился использованный допуск.

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

    При исправлении ошибок топологии, в предыдущих версиях этого инструмента до ArcGIS Pro 1.4, изменялся кластерный допуск для каждого объекта, и эти значения хранились в полях MinSimpTol и MaxSimpTol. Теперь значения в этих полях остаются неизменными и соответствует допуску, указанному в параметре Допуск упрощения. Не забудьте изменить существующие модели и скрипты, если они ссылаются на эти поля.

    • Для алгоритма Сохранение критических точек (Дугласа-Пекера) допуском является максимально допустимое перпендикулярное расстояние от каждой из вершин до новой созданной линии.
    • Для алгоритма Сохранение критических изгибов (Ванга-Мюллера) допуском является диаметр окружности, приближенной к значимому изгибу.
    • Для алгоритма Сохранение взвешенной полезной площади (Джоуи-Джонс) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами. Чем дальше треугольник отклоняется от равностороннего, тем больший вес он получает и тем меньше вероятность его удаления.
    • Для алгоритма Сохранение полезных областей (Визвалингам-Ватт) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами.

  • Используйте параметр Сохранить линии нулевой длины, чтобы создать выходной класс точечных пространственных объектов, который будет хранить конечные точки линий, меньших пространственного допуска данных. Создаются выходные точки; они используют те же имя и местоположение, как у параметра Выходной класс объектов, но с суффиксом _Pnt. В выходном классе линейных объектов содержатся все поля входного класса. Выходной класс точечных объектов не будет содержать этих полей.

  • Такие топологические ошибки, как самопересечения и перекрытия объектов, могут быть созданы при упрощении геометрии. У параметра Управление топологическими ошибками есть три варианта задания поведения в этих случаях:

    • Не выполнять проверку на топологические ошибки - топологические ошибки выявляться не будут. В этом случае обработка происходит быстрее. Используйте этот вариант обработки, только если вы уверены в топологической точности ваших данных.
    • Пометить топологические ошибки - топологические ошибки будут выявлены и помечены. Выходной класс объектов будет содержать поля InLine_FID и SimLnFlag. В поле InLine_FID будут храниться ID входных объектов. В поле SimLnFlag будет содержаться значение 1 при наличии топологической ошибки и 0 - при ее отсутствии.
    • Исправлять ошибки топологии - топологические ошибки не будут создаваться в выходных данных, а ошибки, существующие во входных данных, будут содержать вершины, вставленные в точки пересечения. Существующие топологические отношения между объектами, например, общие ребра, будут сохранены. В этом случае время обработки увеличивается. Выходной класс объектов будет содержать поля InLine_FID и SimLnFlag. В поле InLine_FID будут храниться ID входных объектов. Поле SimLnFlag будет содержать значение 1, если во входных данных присутствует топологическая ошибка, или значение 0 (ноль), если ошибки нет.
    Прежние версии:

    В версиях до ArcGIS Pro 1.4 инструмент обрабатывал топологические ошибки с помощью параметров Проверка на топологические ошибки и Исправлять ошибки топологии. Эти параметры пока присутствуют в синтаксисе скрипта для совместимости в скриптах и моделях, но на панели Геообработка скрыты и в данный момент не используются. Поле SimLnFlag использовалось для того, чтобы помечать топологические ошибки, возникшие в процессе работы инструмента. В этом поле отмечены ошибки, содержащиеся во входных данных.

  • Используйте параметр Входные слои барьеров для указания пространственных объектов, которые не должны пересекаться упрощаемыми линиями. Объектами-барьерами могут быть полигоны, линии или точки.

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

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

  • Внимание:

    Параметр среды Картографические разделы игнорируется, если для параметра Управление топологическими ошибками задано значение Не выполнять проверку на топологические ошибки или Пометить топологические ошибки.

Параметры

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

Входные линейные объекты, которые будут упрощены.

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

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

Feature Class
Алгоритм упрощения

Определяет используемый алгоритм упрощения линий.

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

Степень упрощения, которая будет применена. Вы можете выбрать предпочитаемые единицы измерения; в противном случае будут использоваться единицы входных данных. Поля MinSimpTol и MaxSimpTol добавятся к выходным данным, чтобы там хранился использованный во время обработки допуск.

  • Для алгоритма Сохранение критических точек (Дугласа-Пекера) допуском является максимально допустимое перпендикулярное расстояние от каждой из вершин до вновь созданной линии.
  • Для алгоритма Сохранение критических изгибов (Ванга-Мюллера) допуском является диаметр окружности, приближенной к значимому изгибу.
  • Для алгоритма Сохранение взвешенной полезной площади (Джоуи-Джонс) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами. Чем дальше треугольник отклоняется от равностороннего, тем больший вес он получает и тем меньше вероятность его удаления.
  • Для алгоритма Сохранение полезных областей (Визвалингам-Ватт) квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами.
Linear Unit
Исправлять ошибки топологии
(Дополнительный)
Прежние версии:

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

Boolean
Сохранить линии нулевой длины
(Дополнительный)

Определяет, будет ли создан выходной класс точечных объектов, который будет представлять конечные точки любых линий, удалённых по причине их меньшей допуска длины. Создаются выходные точки; они используют те же имя и местоположение, как у параметра Выходной класс объектов, но с суффиксом _Pnt.

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

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

Boolean
Входные слои барьеров
(Дополнительный)

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

Feature Layer
Управление топологическими ошибками
(Дополнительный)

Задает способ обработки топологических ошибок. Топологические ошибки могут иметь место в процессе упрощения -это пересечения или перекрытия линий.

  • Не выполнять проверку на топологические ошибкиОшибки топологии не идентифицируются Это значение по умолчанию
  • Пометить топологические ошибкиТопологические ошибки будут отмечены.
  • Исправлять ошибки топологииТопологические ошибки будут исправлены.
String

Производные выходные данные

ПодписьОписаниеТип данных
Линии, сжатые в точки

Если отмечен параметр Сохранить линии нулевой длины, то создается выходной класс точечных объектов, который будет хранить конечные точки линий, меньших пространственного допуска данных.

Feature Class

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

Входные линейные объекты, которые будут упрощены.

Feature Layer
out_feature_class

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

Feature Class
algorithm

Определяет используемый алгоритм упрощения линий.

  • POINT_REMOVEКритические точки, которые образуют главную форму линии, будут сохранены, а все остальные точки удаляются (Дуглас – Пекер). Это значение по умолчанию
  • BEND_SIMPLIFYКритические изгибы будут сохранены, а лишние изгибы будут удалены из линии (Ванг – Мюллер).
  • WEIGHTED_AREAВершины, которые формируют треугольники эффективной площади, взвешенные согласно треугольной геометрии - будут сохранены (Жу – Джонс).
  • EFFECTIVE_AREAВершины, которые формируют треугольники эффективной площади (Висвалингема – Уайетт) - будут сохранены.
String
tolerance

Степень упрощения, которая будет применена. Вы можете выбрать предпочитаемые единицы измерения; в противном случае будут использоваться единицы входных данных. Поля MinSimpTol и MaxSimpTol добавятся к выходным данным, чтобы там хранился использованный во время обработки допуск.

  • Для алгоритма POINT_REMOVE допуском является максимально возможное расстояние по перпендикуляру, опущенному из каждой из вершин, до вновь созданной линии.
  • Для алгоритма BEND_SIMPLIFY допуском является диаметр окружности, приближенной к значимому изгибу.
  • Для алгоритма WEIGHTED_AREA квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами. Чем дальше треугольник отклоняется от равностороннего, тем больший вес он получает и тем меньше вероятность его удаления.
  • Для алгоритма EFFECTIVE_AREA квадрат допуска – это площадь значительного треугольника, заданного тремя соседними вершинами.
Linear Unit
error_resolving_option
(Дополнительный)
Прежние версии:

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

Boolean
collapsed_point_option
(Дополнительный)

Определяет, будет ли создан выходной класс точечных объектов, который будет представлять конечные точки любых линий, удалённых по причине их меньшей допуска длины. Создаются выходные точки с именем и местоположением, как у параметра out_feature_class объектов, но с суффиксом _Pnt.

  • KEEP_COLLAPSED_POINTSПроизводный выходной класс точечных объектов создается для хранения конечных точек удаленных линий нулевой длины. Это значение по умолчанию
  • NO_KEEPПроизводный выходной класс точечных объектов не создается.
Boolean
error_checking_option
(Дополнительный)
Примечание:

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

Boolean
in_barriers
[in_barriers,...]
(Дополнительный)

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

Feature Layer
error_option
(Дополнительный)

Задает способ обработки топологических ошибок. Топологические ошибки могут иметь место в процессе упрощения -это пересечения или перекрытия линий.

  • NO_CHECKОшибки топологии не идентифицируются Это значение по умолчанию
  • FLAG_ERRORSТопологические ошибки будут отмечены.
  • RESOLVE_ERRORSТопологические ошибки будут исправлены.
String

Производные выходные данные

ИмяОписаниеТип данных
out_point_feature_class

Если параметр collapsed_point_option задан как KEEP_COLLAPSED_ POINTS, то создается выходной класс точечных объектов, который будет хранить конечные точки линий, меньших пространственного допуска данных.

Feature Class

Пример кода

SimplifyLine, пример 1 (окно Python)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.cartography.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
 
# Set environment settings
arcpy.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.
arcpy.management.Merge(inRiverFeatures, inCoastlineFeatures, mergedFeatures)

# Simplify all lines.
arcpy.cartography.SimplifyLine(mergedFeatures, 
                simplifiedFeatures, 
                "BEND_SIMPLIFY", 
                100, 
                "KEEP_COLLAPSED_POINTS")
 
# Select rivers and coastlines by their f-code values 
# and put them in separate feature classes.
arcpy.management.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 40")
arcpy.management.CopyFeatures(tempLayer, outRiverFeatureClass)

arcpy.management.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 80")
arcpy.management.CopyFeatures(tempLayer, outCoastlineFeatureClass)

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

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

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