Résoudre des conflits de bâtiments (Cartographie)

Synthèse

Résout les conflits de symboles entre bâtiments en fonction des entités d’interruption linéaires en déplaçant, en redimensionnant ou en masquant des bâtiments.

Illustration

Illustration de l’outil Résoudre les conflits de construction
Les bâtiments sont déplacés pour éviter les conflits et réorientés pour correspondre aux entités routes situées à proximité. Certains bâtiments sont redimensionnés ou masqués.

Utilisation

  • Cet outil évalue les conflits graphiques des entités symbolisées. L’étendue de symbologie et l’échelle de référence sont utilisées conjointement. Exécutez cet outil uniquement après avoir finalisé l’apparence des symboles et assurez-vous que l’échelle de référence correspond à l’échelle finale voulue.

    Pour en savoir plus sur cet outil, reportez-vous à la rubrique Fonctionnement de l'outil Résoudre des conflits de construction

  • Attention :

    Cet outil ne produit pas de couches en sortie, mais il permet de modifier la géométrie des classes d’entités source des couches en entrée. Il est recommandé d’effectuer une copie des entités en entrée avant d’exécuter cet outil.

  • La valeur du paramètre Champ d’invisibilité doit être présente et avoir le même nom pour toutes les classes d’entités en entrée. Les données doivent être de type entier long ou court. Les entités qui doivent rester visibles ont la valeur 0, celles qui doivent être supprimés de l'affichage la valeur 1. Utilisez un ensemble de définitions de couche ou une sélection pour afficher l’ensemble simplifié obtenu (à savoir, invisibility <> 1). Vous pouvez utiliser plusieurs champs d’invisibilité pour stocker des résultats (correspondant à des échelles en sortie différentes) sur la même classe d’entités.

  • Lorsque des couches de bâtiments de point sont utilisées comme couches en entrée, la propriété Angle de la couche de symboles ponctuels doit être définie sur un champ dans la classe d’entités. Ce champ stocke les ajustements de rotation. Si le symbole de bâtiment contient deux couches de symboles ponctuels ou plus ou si la couche de bâtiments contient deux symboles ou plus, définissez toutes les couches de symboles ponctuels dans la symbologie de la couche sur le même champ dans la table attributaire. Le paramètre Rotation horaire de la propriété Angle doit correspondre pour chaque couche de symboles ponctuels.

  • Avant l'évaluation des conflits, les bâtiments polygonaux sont agrandis à une taille minimale spécifiée par le paramètre Taille de bâtiment minimale autorisée. La taille minimale est mesurée en tant que distance linéaire le long du côté le plus court d'une emprise pivotée la mieux ajustée à l'entité. Pour examiner la taille finale des bâtiments dans les résultats en sortie, ajoutez un double champ ou un champ flottant intitulé RBC_SIZE à chacune des classes d’entités de bâtiment en entrée. Au cours de l’exécution de l’outil, ce champ sera mis à jour avec le plus petit côté d’une emprise pivotée autour de chaque entité.

  • Le paramètre Champ de hiérarchie est facultatif. S'il n'est pas spécifié, les bâtiments se verront affecter une importance relative selon le périmètre du bâtiment et leur proximité aux interruptions. Les bâtiments les plus grands les plus proches de plusieurs interruptions auront une importance plus grande que les plus petits bâtiments relativement éloignés d'une interruption. Vous pouvez utiliser un champ Hierarchy partiellement renseigné selon lequel une valeur hiérarchique est attribuée uniquement aux bâtiments significatifs. L’importance relative de toutes les autres entités (ayant une valeur de hiérarchie NULL) sera calculée en interne. Les données du champ doivent être de type entier long ou court.

  • Si le paramètre Champ de hiérarchie est utilisé, vous pouvez faire en sorte que les bâtiments demeurent visibles en leur affectant une valeur de hiérarchie égale à 0. Ils ne seront pas masqués par l'outil. Un bâtiment ayant une hiérarchie de 0 est considéré comme important en local. C’est pourquoi les bâtiments proches pourraient être compromis plus que la normale si ce bâtiment n’était pas visible. Les bâtiments ayant une hiérarchie de 0 peuvent cependant être transformés (déplacés, orientés ou redimensionnés) pour résoudre les conflits et respecter d’autres paramètres requis.

  • Attention :

    Un avertissement est émis si les entités en entrée ne figurent pas dans un système de coordonnées projetées. Cet outil s'appuie sur des unités de distance linéaire, qui créent des résultats inattendus dans un système de coordonnées non projetées. Il est recommandé d’exécuter cet outil sur des données dans un système de coordonnées projetées pour obtenir des résultats fiables. Une erreur se produit et l’outil ne fonctionne pas si le système de coordonnées manque ou s’il est inconnu.

  • Tous les bâtiments dont la géométrie est en conflit avec les interruptions (à savoir lorsque la géométrie réelle, et pas seulement la symbologie, des bâtiments chevauche celle d’une entité interruption telle qu’une route) ne seront pas déplacés de l’entité interruption. Ces bâtiments peuvent être marqués d'un indicateur en vue d'être masqués lors du traitement de la résolution des conflits, mais ne seront pas déplacés et un conflit demeurera.

  • Si la symbologie des entités interruptions n'est pas distribuée symétriquement dans la géométrie, c'est-à-dire, si le symbole est plus épais d'un côté de la ligne que de l'autre, une plus grande distance bâtiment-à-interruption peut apparaître sur le côté de l'interruption avec la symbologie plus mince.

  • Le traitement conjoint de grands jeux de données ou de plusieurs couches d'interruptions peut dépasser les limites de la mémoire. Dans ce cas, traitez les données de bâtiments en entrée par partition en identifiant une classe d'entités surfaciques pertinente dans le paramètre d'environnement Entités de partition. Les portions de données de bâtiments, définies par les limites des partitions, sont traitées séquentiellement. Les couches résultantes seront transparentes et cohérentes aux tronçons de partition. Reportez-vous à Fonctionnement de Résoudre des conflits de bâtiments pour plus d'informations sur l'exécution de cet outil avec le partitionnement.

Paramètres

ÉtiquetteExplicationType de données
Couches de bâtiments en entrée

Couches en entrée qui contiennent des entités de bâtiment susceptibles d’être en conflit, ou plus petites que la taille autorisée. Les bâtiments peuvent être des points ou des polygones. Les bâtiments seront modifiés pour résoudre les conflits impliquant d'autres bâtiments et des entités interruptions.

Lorsque des couches de bâtiments de point sont utilisées comme couches en entrée, la propriété Angle de la couche de symboles ponctuels doit être définie sur un champ dans la classe d’entités. Ce champ stocke les ajustements de rotation. Si la propriété Angle de plusieurs couches de symboles ponctuels du même symbole ponctuel est connectée au même champ, le paramètre Rotation horaire doit correspondre dans chacune de ces couches de symboles ponctuels.

Layer
Champ d’invisibilité

Champ d’entier long ou court qui stocke les valeurs d’invisibilité qui peuvent être utilisées pour supprimer des bâtiments de l’affichage afin de résoudre des conflits de symboles. Les bâtiments ayant une valeur de 1 sont supprimés de l’affichage, contrairement à ceux ayant une valeur de 0. Utilisez un ensemble de définitions sur la couche pour afficher uniquement les bâtiments visibles. Aucune entité n'est supprimée.

String
Couches de barrières en entrée

Couches qui contiennent les entités linéaires ou surfaciques qui constituent des interruptions en conflit avec les entités de bâtiment en entrée. Pour résoudre les conflits entre bâtiments et interruptions, les bâtiments seront modifiés. La valeur Orientation est Booléenne. Elle indique si les bâtiments seront orientés vers la couche d’interruptions.

La valeur Distance spécifie la distance à laquelle les bâtiments seront rapprochés ou éloignés de la couche d’interruptions. Vous devez fournir une unité avec la valeur.

  • Une valeur de distance de 0 alignera directement les bâtiments à la limite de la ligne d’interruption ou de la symbologie de contour.
  • Une valeur de distance nulle (non spécifiée) signifie que les bâtiments ne seront pas éloignés ou rapprochés des lignes d’interruption ou des contours sauf pour les mouvements nécessaires à la résolution des conflits.

Remarque :

Si aucune unité n’est fournie avec la valeur de distance (par exemple, 10 au lieu de 10 mètres), l’unité linéaire du système de coordonnées de l’entité en entrée est utilisée.

Value Table
Ecart entre bâtiments

Distance minimale autorisée entre des bâtiments symbolisés à l'échelle. Les bâtiments qui sont les plus proches les uns des autres seront déplacés ou masqués pour appliquer cette distance. La distance minimale autorisée est définie en fonction de l'échelle de référence (par exemple, 15 mètres à une échelle de 1:50 000). La valeur est 0 si l’échelle de référence n’est pas définie.

Linear Unit
Taille de bâtiment minimale autorisée

Taille minimale autorisée du côté le plus court de l'emprise pivotée la mieux adaptée autour de l'entité de bâtiment symbolisée dessinée à l'échelle de référence. Un bâtiment doté d'une emprise dont un côté est plus petit que cette valeur sera agrandi qu'il la touche. Il se peut que le redimensionnement ne soit pas proportionnel, ce qui provoque un changement dans la morphologie des bâtiments.

Linear Unit
Champ de hiérarchie
(Facultatif)

Champ d’entier long ou court qui contient le classement hiérarchique de l’importance des entités, où 1 correspond à « très important ». Plus les entiers sont grands, moins l’importance est grande. Une valeur de 0 force le bâtiment à rester visible. Le bâtiment peut toutefois être quelque peu déplacé pour résoudre des conflits. Si ce paramètre n'est pas utilisé, l'importance des entités sera évaluée par l'outil selon la longueur du périmètre et la proximité aux entités interruptions.

String

Sortie obtenue

ÉtiquetteExplicationType de données
Couches en sortie

Entités en entrée mises à jour.

Layer

arcpy.cartography.ResolveBuildingConflicts(in_buildings, invisibility_field, in_barriers, building_gap, minimum_size, {hierarchy_field})
NomExplicationType de données
in_buildings
[in_buildings,...]

Couches en entrée qui contiennent des entités de bâtiment susceptibles d’être en conflit, ou plus petites que la taille autorisée. Les bâtiments peuvent être des points ou des polygones. Les bâtiments seront modifiés pour résoudre les conflits impliquant d'autres bâtiments et des entités interruptions.

Lorsque des couches de bâtiments de point sont utilisées comme couches en entrée, la propriété Angle de la couche de symboles ponctuels doit être définie sur un champ dans la classe d’entités. Ce champ stocke les ajustements de rotation. Si la propriété Angle de plusieurs couches de symboles ponctuels du même symbole ponctuel est connectée au même champ, le paramètre Rotation horaire doit correspondre dans chacune de ces couches de symboles ponctuels.

Layer
invisibility_field

Champ d’entier long ou court qui stocke les valeurs d’invisibilité qui peuvent être utilisées pour supprimer des bâtiments de l’affichage afin de résoudre des conflits de symboles. Les bâtiments ayant une valeur de 1 sont supprimés de l’affichage, contrairement à ceux ayant une valeur de 0. Utilisez un ensemble de définitions sur la couche pour afficher uniquement les bâtiments visibles. Aucune entité n'est supprimée.

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

Couches qui contiennent les entités linéaires ou surfaciques qui constituent des interruptions en conflit avec les entités de bâtiment en entrée. Pour résoudre les conflits entre bâtiments et interruptions, les bâtiments seront modifiés. La valeur Orientation est Booléenne. Elle indique si les bâtiments seront orientés vers la couche d’interruptions.

La valeur Distance spécifie la distance à laquelle les bâtiments seront rapprochés ou éloignés de la couche d’interruptions. Vous devez fournir une unité avec la valeur.

  • Une valeur de distance de 0 alignera directement les bâtiments à la limite de la ligne d’interruption ou de la symbologie de contour.
  • Une valeur de distance nulle (non spécifiée) signifie que les bâtiments ne seront pas éloignés ou rapprochés des lignes d’interruption ou des contours sauf pour les mouvements nécessaires à la résolution des conflits.

Remarque :

Si aucune unité n’est fournie avec la valeur de distance (par exemple, 10 au lieu de 10 mètres), l’unité linéaire du système de coordonnées de l’entité en entrée est utilisée.

Value Table
building_gap

Distance minimale autorisée entre des bâtiments symbolisés à l'échelle. Les bâtiments qui sont les plus proches les uns des autres seront déplacés ou masqués pour appliquer cette distance. La distance minimale autorisée est définie en fonction de l'échelle de référence (par exemple, 15 mètres à une échelle de 1:50 000). La valeur est 0 si l’échelle de référence n’est pas définie.

Linear Unit
minimum_size

Taille minimale autorisée du côté le plus court de l'emprise pivotée la mieux adaptée autour de l'entité de bâtiment symbolisée dessinée à l'échelle de référence. Un bâtiment doté d'une emprise dont un côté est plus petit que cette valeur sera agrandi qu'il la touche. Il se peut que le redimensionnement ne soit pas proportionnel, ce qui provoque un changement dans la morphologie des bâtiments.

Linear Unit
hierarchy_field
(Facultatif)

Champ d’entier long ou court qui contient le classement hiérarchique de l’importance des entités, où 1 correspond à « très important ». Plus les entiers sont grands, moins l’importance est grande. Une valeur de 0 force le bâtiment à rester visible. Le bâtiment peut toutefois être quelque peu déplacé pour résoudre des conflits. Si ce paramètre n'est pas utilisé, l'importance des entités sera évaluée par l'outil selon la longueur du périmètre et la proximité aux entités interruptions.

String

Sortie obtenue

NomExplicationType de données
out_layers

Entités en entrée mises à jour.

Layer

Exemple de code

Exemple 1 d’utilisation de l’outil ResolveBuildingConflicts (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction ResolveBuildingConflicts en mode immédiat.

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")
Exemple 2 d’utilisation de l’outil ResolveBuildingConflicts (script autonome)

Ce script autonome montre un exemple d’utilisation de la fonction 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)

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Oui

Rubriques connexes