Краткая информация
Разрешает конфликты символов зданий относительно объектов линейных барьеров, передвигая или скрывая здания.
Иллюстрация
Использование
Этот инструмент работает на основе оценки графических конфликтов для символов объектов. Экстент символов и базовый масштаб рассматриваются во взаимосвязи друг с другом. Запускайте этот инструмент только после того, как вы закончили настройку отображения символов и убедились, что базовый масштаб соответствует окончательному выходному масштабу.
Дополнительные сведения об этом инструменте см. в Как работает инструмент Решить конфликты зданий.
Во всех входные классы пространственных объектов должно присутствовать Поле невидимости, имеющее одно и тоже название. Объектам, которые должны оставаться видимыми, присваивается значение 0, объектам, которые не должны отображаться, присваивается 1. Используйте определяющий запрос слоя или выборку для отображения получившегося упрощенного набора (т.е., invisibility <> 1). Вы можете использовать несколько полей невидимости для хранения нескольких различных результатов обработки одного и того же класса пространственных объектов в зависимости от требуемого масштаба выходной карты.
Перед оценкой конфликтов полигональные здания увеличиваются до минимального размера, определяемого параметром Минимальный допустимый размер здания. Минимальный размер – это длина короткой стороны наилучшего описывающего объект прямоугольника. Чтобы понять размер зданий на выходе, добавьте поле типа double или float с именем RBC_SIZE к любому входному классу пространственных объектов-зданий. В процессе работы инструмента это поле будет обновляться значениями самой короткой стороны ограничивающего прямоугольника, повернутого вокруг каждого объекта.
Параметр Поле иерархии является дополнительным. Если он не указан, важность строений будет определяться исходя из значения их периметра, а также расположения относительно барьеров. Здания большего размера, расположенные недалеко от более чем одного барьера, будут оцениваться как более важные, чем меньшие здания, расположенные дальше от барьера. Вы можете использовать частично заполненное Поле иерархии, в котором только наиболее важные здания имеют атрибутивное значение иерархии, а остальные объекты (с нулевым значением иерархии) имеют вычисленный показатель важности.
Если используется параметр Поле иерархии, зданиям, которые будут принудительно отображаться, присваивается нулевое значение иерархии (0). Эти здания не будут маскированы данным инструментом. Здание с нулевым значением иерархии считается важным, поэтому находящиеся вблизи здания будут оцениваться выше, чем было бы в случае, если бы они принудительно не отображались. Здания, имеющие нулевую иерархию, могут быть трансформированы (сдвинуты, повернуты или масштабированы) с целью разрешения конфликтов и их соответствия требуемым параметрам.
Все здания, которые конфликтуют с барьерами (имеется в виду не просто отображение с помощью символов, а фактическая геометрия объектов, которые перекрываются с барьерными объектами, например, дорогами), не будут сдвинуты относительно барьеров. Такие здания могут быть помечены для последующего разрешения конфликтов, но они не будут сдвинуты. Таким образом, конфликт останется.
Если символы барьерных объектов распределены не симметрично относительно геометрии – то есть символ с одной стороны линии толще, чем с другой – может образоваться большой просвет здание-барьер, со стороны, где символ тоньше.
Одновременная обработка большого объема данных или многих слоев барьеров может вызвать превышение ограничений использования памяти. В таком случае попытайтесь разделить входные данные зданий на разделы, определив соответствующий полигональный класс пространственных объектов с помощью параметра среды Объекты разделов. Обработка данных зданий будет производиться последовательно по частям, определяемым границами разделов. Полученные слои будут бесшовными и согласованными на границах разделов. Более подробные сведения об использовании этого инструмента в сочетании с разделением на части см. в разделе Как работает инструмент Разрешить конфликты зданий.
Синтаксис
ResolveBuildingConflicts(in_buildings, invisibility_field, in_barriers, building_gap, minimum_size, {hierarchy_field})
Параметр | Объяснение | Тип данных |
in_buildings [in_buildings,...] | Входные слои с объектами зданий, которые могут находиться в конфликте или имеют размер меньше допустимого. Здания могут быть представлены точечными или полигональными объектами. Здания будут изменены с целью разрешения конфликтов с другими зданиями и объектами барьеров. | Layer |
invisibility_field | Поле, в котором сохраняются значения невидимости объектов, которые могут использоваться для того, чтобы не отображать то или иное здание, что поможет решить конфликты символов. Здания, имеющие значение, равное 1, не будут отображаться; имеющие нулевое значение – будут. Для показа только видимых зданий используйте определяющий запрос слоя. Объекты не удаляются. | String |
in_barriers [[Layer, Boolean, Linear Unit],...] | Слои, которые содержат линейные или полигональные объекты, являющиеся барьерами по отношению к входным объектам зданий. Здания будут изменены для разрешения конфликтов между зданиями и барьерами. Значение Orient является булевым и определяет, должны ли здания быть сориентированными относительно слоя барьеров. Gap определяет расстояние, на которое могут быть подвинуты здания в направлении барьеров или в противоположную сторону. Вместе со значением должна быть указана единица измерения.
| Value Table |
building_gap | Минимально допустимое расстояние между зданиями в масштабе карты. Здания, расположенные друг к другу ближе, будут смещены или скрыты, чтобы обеспечить соблюдение этого допуска. Минимально допустимое расстояние устанавливается на основании базового масштаба (то есть 15 метров в масштабе 1:50 000). Если базовый масштаб не установлен, значение равно нулю. | Linear Unit |
minimum_size | Минимально допустимый размер короткой стороны повернутого прямоугольника, в который вписывается символ здания, отображаемый в базовом масштабе. Здания, имеющие описывающий их прямоугольник меньшего размера, чем задано параметром, будут увеличены. Изменение размеров может привести к некорректным изменениям структуры здания. | Linear Unit |
hierarchy_field (Дополнительный) | Поле содержит ранжирование объектов в зависимости от их важности, причем значение, равное 1, соответствует наиболее важным объектам; с дальнейшим увеличением числа важность объектов снижается. Здания, имеющие нулевое значение, будут принудительно отображаться, хотя они могли бы быть перемещены для разрешения конфликтов. Если этот параметр не используется, важность объектов будет оцениваться исходя из периметра объекта и его близости к барьеру. | String |
Производные выходные данные
Имя | Объяснение | Тип данных |
out_layers | Обновленные входные объекты | Layer |
Пример кода
ResolveBuildingConflicts, пример 1 (окно Python)
Пример скрипта Python для использования инструмента ResolveBuildingConflicts в режиме прямого запуска.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.env.referenceScale = "50000"
arcpy.ResolveBuildingConflicts(["C:/data/footprints.lyr", "C:/data/bldg_points.lyr"],
"invisible",
[["C:/data/roads.lyr", "true", "5 Meters"],
["C:/data/trails.lyr", "false", "10 Meters"],
["C:/data/streams.lyr", "false", "5 Meters"]],
"10 meters",
"15 meters",
"bldg_hierarchy")
ResolveBuildingConflicts, пример 2 (автономный скрипт)
В этом автономном скрипте показан пример использования инструмента ResolveBuildingConflicts.
# Name: ResolveBuildingConflicts_standalone_script.py
# Description: Resolves the symbology conflicts between
# buildings and nearby barriers,
# in this case - roads
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
env.referenceScale = "50000"
# Set local variables
in_buildings = "C:/data/footprints.lyr;C:/data/bldg_pts.lyr"
invisibility_field = "invisible"
in_barriers = "'C:/data/roads.lyr' 'true' '5 Meters';\
'C:/data/trails.lyr' 'false' '10 Meters';\
'C:/data/streams.lyr' 'false' '5 Meters'"
building_gap = "10 meters"
minimum_size = "15 meters"
hierarchy_field = "bldg_hierarchy"
# Execute Resolve Building Conflicts
arcpy.ResolveBuildingConflicts(in_buildings,
invisibility_field,
in_barriers,
building_gap,
minimum_size,
hierarchy_field)
Параметры среды
Информация о лицензиях
- Basic: Нет
- Standard: Нет
- Advanced: Да
Связанные разделы
- Общий обзор Группы инструментов Конфликты графики
- Разрешение конфликтов и генерализация
- Автоматизирование урегулирования конфликтов и процессов генерализации с процессами геообработки
- Как работает инструмент Решить конфликты зданий
- Упростить здание
- Агрегировать полигоны
- Генерализация больших наборов данных с использованием сегментов
- Создать картографические разделы
- Картографические разделы (параметр среды)
- Очертить области застройки