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

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

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

Иллюстрация

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

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

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

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

  • Внимание:

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

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

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

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

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

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

  • Внимание:

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

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

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

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

Параметры

ПодписьОписаниеТип данных
Входные слои зданий

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

Когда точечные слои зданий используются в качестве входных, свойство Угол для слоя символа маркера должно быть задано как поле входного классе объектов. Это поле будет хранить настройки поворота. Если для нескольких слоев символов-маркеров в одном и том же точечном символе свойство Угол связано с одним и тем же полем, настройка Повернуть по часовой стрелке должна соответствовать каждому слою символов-маркеров.

Layer
Поле невидимости

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

String
Входные слои барьеров

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

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

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

Примечание:

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

Value Table
Пробел между зданиями

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

Linear Unit
Минимальный допустимый размер здания

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

Linear Unit
Поле иерархии
(Дополнительный)

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

String

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

ПодписьОписаниеТип данных
Выходные слои

Обновленные входные объекты.

Layer

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 определяет расстояние, на которое будут подвинуты здания в направлении барьеров или в противоположную сторону. Вместе со значением должна быть указана единица измерения.

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

Примечание:

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

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.cartography.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: Да

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