Решить конфликты зданий (Картография)

Сводка

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

Иллюстрация

Инструмент Решить конфликты зданий
Здания до и после работы инструмента Решить конфликты зданий

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

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

    Дополнительные сведения об этом инструменте см. в Как работает инструмент Решить конфликты зданий.

  • Внимание:

    Этот инструмент не создает новых выходных слоев, в изменяет геометрию исходных классов пространственных объектов входных слоев. Настоятельно рекомендуется делать копию ваших входных объектов до запуска этого инструмента.

  • Во всех входные классы пространственных объектов должно присутствовать Поле невидимости, имеющее одно и тоже название. Объектам, которые должны оставаться видимыми, присваивается значение 0, объектам, которые не должны отображаться, присваивается 1. Используйте определяющий запрос слоя или выборку для отображения получившегося упрощенного набора (т.е., invisibility <> 1). Вы можете использовать несколько полей невидимости для хранения нескольких различных результатов обработки одного и того же класса пространственных объектов в зависимости от требуемого масштаба выходной карты.

  • Перед оценкой конфликтов полигональные здания увеличиваются до минимального размера, определяемого параметром Минимальный допустимый размер здания. Минимальный размер – это длина короткой стороны наилучшего описывающего объект прямоугольника. Чтобы понять размер зданий на выходе, добавьте поле типа double или float с именем RBC_SIZE к любому входному классу пространственных объектов-зданий. В процессе работы инструмента это поле будет обновляться значениями самой короткой стороны ограничивающего прямоугольника, повернутого вокруг каждого объекта.

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

  • Если используется параметр Поле иерархии, зданиям, которые будут принудительно отображаться, присваивается нулевое значение иерархии (0). Эти здания не будут маскированы данным инструментом. Здание с нулевым значением иерархии считается важным, поэтому находящиеся вблизи здания будут оцениваться выше, чем было бы в случае, если бы они принудительно не отображались. Здания, имеющие нулевую иерархию, могут быть трансформированы (сдвинуты, повернуты или масштабированы) с целью разрешения конфликтов и их соответствия требуемым параметрам.

  • Внимание:

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

  • Все здания, которые конфликтуют с барьерами (имеется в виду не просто отображение с помощью символов, а фактическая геометрия объектов, которые перекрываются с барьерными объектами, например, дорогами), не будут сдвинуты относительно барьеров. Такие здания могут быть помечены для последующего разрешения конфликтов, но они не будут сдвинуты. Таким образом, конфликт останется.

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

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

Синтаксис

ResolveBuildingConflicts(in_buildings, invisibility_field, in_barriers, building_gap, minimum_size, {hierarchy_field})
ParameterОбъяснениеТип данных
in_buildings
[in_buildings,...]

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

Layer
invisibility_field

Поле, в котором сохраняются значения невидимости объектов, которые могут использоваться для того, чтобы не отображать то или иное здание, что поможет решить конфликты символов. Здания, имеющие значение, равное 1, не будут отображаться; имеющие нулевое значение – будут. Для показа только видимых зданий используйте определяющий запрос слоя. Объекты не удаляются.

String
in_barriers
[[Layer, Boolean, Linear Unit],...]

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

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

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

Примечание:

Если не указана единица измерения значения параметра Промежуток (например, указано 10 вместо 10 метров), будут использованы линейные единицы измерения системы координат входных данных.

Value Table
building_gap

Минимально допустимое расстояние между зданиями в масштабе карты. Здания, расположенные друг к другу ближе, будут смещены или скрыты, чтобы обеспечить соблюдение этого допуска. Минимально допустимое расстояние устанавливается на основании базового масштаба (то есть 15 метров в масштабе 1:50 000). Если базовый масштаб не установлен, значение равно нулю.

Linear Unit
minimum_size

Минимально допустимый размер короткой стороны повернутого прямоугольника, в который вписывается символ здания, отображаемый в базовом масштабе. Здания, имеющие описывающий их прямоугольник меньшего размера, чем задано параметром, будут увеличены. Изменение размеров может привести к некорректным изменениям структуры здания.

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

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

String

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

NameОбъяснениеТип данных
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: Да

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