Сводка
Разрешает конфликты символов зданий относительно объектов линейных барьеров, передвигая, меняя размер или скрывая здания.
Иллюстрация
Использование
Этот инструмент оценивает графические конфликты для символов объектов. Экстент символов и базовый масштаб используются во взаимосвязи друг с другом. Запускайте этот инструмент только после того, как вы закончили настройку отображения символов и убедились, что базовый масштаб соответствует окончательному выходному масштабу.
Дополнительные сведения об этом инструменте см. в Как работает инструмент Решить конфликты зданий.
Значение параметра Поле невидимости должно присутствовать и иметь одинаковое имя во всех входных классах объектов. Объектам, которые должны оставаться видимыми, присваивается значение 0, объектам, которые не должны отображаться, присваивается 1. Используйте определяющий запрос слоя или выборку для отображения получившегося упрощенного набора (то есть invisibility <> 1). Вы можете использовать несколько полей невидимости для хранения нескольких различных результатов в одном классе пространственных объектов (для различных выходных масштабов).
Перед оценкой конфликтов полигональные здания увеличиваются до минимального размера, определяемого параметром Минимальный допустимый размер здания. Минимальный размер – это длина короткой стороны наилучшего описывающего объект прямоугольника. Чтобы понять размер зданий на выходе, добавьте поле типа double или float с именем RBC_SIZE к любому входному классу пространственных объектов-зданий. В процессе работы инструмента это поле будет обновляться значениями самой короткой стороны ограничивающего прямоугольника, повернутого вокруг каждого объекта.
Параметр Поле иерархии является дополнительным. Если он не указан, важность строений будет определяться исходя из значения их периметра, а также расположения относительно барьеров. Здания большего размера, расположенные недалеко от более чем одного барьера, будут оцениваться как более важные, чем меньшие здания, расположенные дальше от барьера. Вы можете использовать частично заполненное поле Hierarchy, в котором только наиболее важные здания имеют атрибутивное значение иерархии, а остальные объекты (с нулевым значением иерархии) имеют вычисленный показатель важности.
Если используется параметр Поле иерархии, вы можете сделать здания видимыми, присвоив им значение иерархии 0 (ноль). Эти здания не будут маскированы данным инструментом. Здание с нулевым значением иерархии считается важным, поэтому находящиеся вблизи здания будут оцениваться выше, чем было бы в случае, если бы они не отображались. Здания, имеющие значение иерархии, равное нулю, все равно могут быть трансформированы (подвинуты, повернуты или изменены в размерах) в целях разрешения конфликтов и обеспечения соответствия другим необходимым параметрам.
Все здания, которые конфликтуют с барьерами (имеется в виду фактическая геометрия объектов, перекрывающихся с барьерными объектами, например, дорогами, а не их символы), не будут сдвинуты относительно барьеров. Такие здания могут быть помечены для последующего разрешения конфликтов, но они не будут сдвинуты. Таким образом, конфликт останется.
Если символы барьерных объектов распределены не симметрично относительно геометрии – то есть символ с одной стороны линии толще, чем с другой – может образоваться большой просвет здание-барьер, со стороны, где символ тоньше.
Одновременная обработка большого объема данных или многих слоев барьеров может вызвать превышение ограничений использования памяти. В таком случае попытайтесь разделить входные данные зданий на разделы, определив соответствующий полигональный класс пространственных объектов с помощью параметра среды Объекты разделов. Обработка данных зданий будет производиться последовательно по частям, определяемым границами разделов. Полученные слои будут бесшовными и согласованными на границах разделов. Более подробные сведения об использовании этого инструмента в сочетании с разделением на части см. в разделе Как работает инструмент Разрешить конфликты зданий.
Синтаксис
arcpy.cartography.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: Да
Связанные разделы
- Общий обзор Группы инструментов Конфликты графики
- Разрешение конфликтов и генерализация
- Автоматизирование урегулирования конфликтов и процессов генерализации с процессами геообработки
- Как работает инструмент Решить конфликты зданий
- Упростить здание
- Агрегировать полигоны
- Генерализация больших наборов данных с использованием сегментов
- Создать картографические разделы
- Картографические разделы (параметр среды)
- Очертить области застройки