Упростить здание (Картография)

Сводка

Упрощает границы полигонов зданий, сохраняя при этом их форму и размеры.

Иллюстрация

Иллюстрация инструмента Упростить здание

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

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

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

  • Используйте параметр Сохранить линии нулевой длины (collapsed_point_option в Python), чтобы создать выходной класс точечных объектов, который будет представлять точки зданий, удалённых из-за того, что их размеры меньше минимальной площади. Получаются выходные точки, у которых будут такие же же имя и местоположение, как в параметре Выходной класс пространственных объектов (out_feature_class в Python), но с суффиксом _Pnt. В выходном полигональном классе пространственных объектов имеются все поля, представленные во входном классе. Выходной класс точечных объектов не содержит ни одного из этих полей.

  • Выходной класс объектов будет иметь поле BLD_STATUS в целях отображения следующих статусов упрощения:

    • 1 - одно здание упрощено
    • 2 - одно здание упрощено и имеет форму и размер минимального ограничивающего прямоугольника
    • 3 - здание, имеющее размер, меньший значения допуска, возведенного в квадрат, упрощено и имеет форму и размер минимального ограничивающего прямоугольника.
    • 5 - здание не было упрощено
    Прежние версии:

    Для версий ArcGIS ранее 10 BLD_STATUS = 4, соответствует упрощенным или частично упрощенным зданиям, соединенным прямыми линиями. Значение BLD_STATUS, равное 4, больше не используется.

    Внимание:

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

  • Если используется параметр Проверить на пространственные конфликты, инструмент найдет пространственные конфликты и добавит к атрибутам выходного слоя новое поле с именем SimBldFlag, используемое для хранения пометок конфликтов. Значение, равное 0, означает отсутствие конфликтов; значение, равное 1, означает, что имеется конфликт.

    Внимание:

    Если во входном классе объектов уже существует поле SimBldFlag, то оно будет присутствовать и в выходном классе объектов, но иметь новые значения. Существующие значения будут переписаны даже, если параметр не отмечен (conflict_option = "NO_CHECK" в Python). При отсутствии отметки у пространственных конфликтов, это существующее поле будет перезаписано со значениями NULL. Если вы желаете сохранить существующие значения, создайте новое поле во входном классе и скопируйте в него значения из поля SimBldFlag.

  • Инструмент не может быть запущен во время сеанса редактирования.

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

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

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

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

Синтаксис

arcpy.cartography.SimplifyBuilding(in_features, out_feature_class, simplification_tolerance, {minimum_area}, {conflict_option}, {in_barriers}, {collapsed_point_option})
ParameterОбъяснениеТип данных
in_features

Полигоны зданий, которые будут упрощаться.

Feature Layer
out_feature_class

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

Feature Class
simplification_tolerance

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

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

Минимальная площадь упрощаемых зданий, которые остаются в выходном слое. Значение по умолчанию – 0; при этом значении остаются все здания из исходного набора. Вы можете выбрать единицы измерения; по умолчанию используются единицы измерения объекта.

Areal Unit
conflict_option
(Дополнительный)

Определяет, будет ли осуществляться проверка потенциальных конфликтов, таких как перекрывания или соприкосновение соседних зданий. К выходному классу объектов добавляется поле SimBldFlag для хранения пометок конфликтов. Значение, равное 0, означает отсутствие конфликтов; значение, равное 1, означает, что имеется конфликт.

  • NO_CHECKНаличие потенциальных конфликтов не проверяется; здания, полученные в результате обработки, могут пересекаться. Это значение по умолчанию.
  • CHECK_CONFLICTSПроверяется наличие потенциальных конфликтов; здания, имеющие конфликты, помечаются.
Boolean
in_barriers
[in_barriers,...]
(Дополнительный)

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

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

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

  • KEEP_COLLAPSED_POINTS Будет создан выходной точечный класс объектов, хранящий центры удаляемых зданий
  • NO_KEEP Выходной класс точечных объектов создан не будет. Это значение по умолчанию.
Boolean

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

NameОбъяснениеТип данных
out_point_feature_class

Выходной класс точечных объектов, хранящий точки, соответствующие зданиям, удаленным из-за того, что они оказались меньше значения параметра Минимальная площадь (minimum_area в Python). Этот параметр используется, только если параметр Сохранить линии нулевой длины отмечен (collapsed_point_option = "KEEP_COLLAPSED_POINTS"ы в Python).

Класс пространственных объектов

Пример кода

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

Пример скрипта окна Python для использования функции SimplifyBuilding в режиме прямого запуска.

import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SimplifyBuilding("buildings.shp", "C:/output/output.gdb/simplified_buildings", 10)
SimplifyBuilding, пример 2 (автономный скрипт)

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

# Name: SimplifyBuilding_Example2.py
# Description: Aggregate building features and then simplify them
# Import system modules
import arcpy
import arcpy.cartography as CA
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Buildings"
# Set local variables
inBuildingFeatures = "houses"
inBarrierFeatures = "roads"
aggregatedFeatures = "C:/data/PortlandOutput.gdb/residential_areas"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/residential_simplified"
# Aggregate house polygons.
CA.AggregatePolygons(inBuildingFeatures, aggregatedFeatures, 10, 100, 100, "ORTHOGONAL")
# Simplify residential building polygons.
CA.SimplifyBuilding(aggregatedFeatures, simplifiedFeatures, 10, 100, "CHECK_CONFLICTS", inBarrierFeatures, "KEEP_COLLAPSED_POINTS")

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

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

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