Fonctionnement de l'outil Voisinage du polygone

Fonctionnement de l'outil de géotraitement ArcGIS Voisinage du polygone qui permet de rechercher des voisins et de remplir la table en sortie.

Détails sur la détection de relations avec des polygones voisins et calcul des statistiques

Les relations avec les polygones voisins sont définies comme suit :

  • Voisins superposés - Polygones dont une partie des surfaces ou leur totalité se superpose.
  • Voisins au tronçon - Polygones dont les limites sont communes ou adjacentes.
  • Voisins aux nœuds - Polygones qui se touchent à un point donné (limite commune ou adjacente).

Il est possible de détecter des polygones voisins via des règles s'appliquant aux polygones qui sont identiques à l'outil Intersecter.

Remarque :

La discussion suivante suppose l'utilisation de la boîte de dialogue de l'outil : Reportez-vous à la documentation sur l'outil Voisinage du polygone pour connaître la syntaxe des scripts.

L'outil Voisinage du polygone suit un chemin hiérarchique pour déterminer le type de voisin et les statistiques à consigner dans la table en sortie. Les relations avec le polygone voisin, dans un ordre hiérarchique allant du plus élevé au moins élevé, sont celles de superposition, de tronçon coïncident et de voisin au nœud. Lorsqu'un voisin d'ordre supérieur est détecté, l'outil calcule et stocke les informations liées à la relation. Aucune analyse des relations de niveau inférieur n'est effectuée. Le workflow détaillé est le suivant :

  • Sélectionnez un polygone à utiliser comme entité source.
  • Trouvez tous les polygones qui intersectent le polygone source (recherche des voisins).
  • Lorsque le premier voisin est trouvé, analysez les points suivants pour le polygone source :
    • Si le polygone voisin est de type superposé et que la case à cocher Inclure les superpositions de zone est sélectionnée, effectuez les opérations suivantes :
      • Ajoutez le champ AREA à la table en sortie.
      • Calculez la surface de superposition.
      • Enregistrez la surface calculée à utiliser dans le champ AREA de la table en sortie.
      • Enregistrez 0 pour l'utiliser dans le champ LENGTH de la table en sortie.
      • Enregistrez 0 pour l'utiliser dans le champ NODE_COUNT de la table en sortie.
      • L'analyse des voisins superposés est terminée. Analysez le polygone voisin suivant.
    • Si le polygone voisin est un voisin au tronçon, effectuez les opérations suivantes :
      • Calculez la longueur de la limite coïncidente.
      • Enregistrez la longueur calculée à utiliser dans le champ LENGTH.
      • Enregistrez 0 pour l'utiliser dans le champ NODE_COUNT.
      • L'analyse des voisins au tronçon est terminée. Analysez le polygone voisin suivant.
    • Si le polygone voisin est un voisin au nœud, effectuez les opérations suivantes :
      • Identifiez le nombre de fois oùle polygone voisin croise et touche le polygone source en un point.
      • Enregistrez la valeur résultante pour l'utiliser dans le champ NODE_COUNT.
      • Enregistrez 0 pour l'utiliser dans le champ LENGTH.
      • L'analyse des voisins au nœud est terminée. Analysez le polygone voisin suivant.

Reportez-vous à la rubrique ci-dessous pour obtenir des exemples du processus susmentionné.

Lorsque les relations de voisinage ont été détectées, comme le décrit la procédure ci-dessus, l'outil utilise le paramètre Signaler par champ(s) pour déterminer comment consigner les relations de voisinage et les statistiques dans la table en sortie. Le paramètre Signaler par champ(s) permet d'identifier des polygones uniques ou des groupes de polygones et de communiquer leurs informations de voisinage par polygone unique ou groupes de polygones. Les polygones d'un même groupe présentent le même ensemble de valeurs de champ.

Exemple 1 du paramètre Signaler par champ(s) - Utilisation d'un champ à valeurs uniques pour chaque polygone

Lorsque vous devez trouver les voisins de chaque polygone en entrée, indiquez un champ en entrée qui présente une valeur unique pour chaque polygone. Dans cet exemple, la table en entrée des neuf polygones comporte un champ myCode qui contient une valeur unique pour chaque polygone.

Exemple 1 - Données en entrée.

La table ci-dessous illustre le résultat de l'utilisation du champ myCode comme valeur du paramètre Signaler par champ(s). Vous remarquerez les préfixes des noms de champs source et voisin : src_myCode et nbr_myCode.

Exemple 1 - Table en sortie.

Exemple 2 du paramètre Signaler par champ(s) - Utilisation d'un champ dont les valeurs définissent des groupes de polygones uniques

Lorsque vous devez identifier des groupes de polygones uniques et communiquer les informations liées au voisinage par groupes, vous pouvez spécifier un champ qui transmet des valeurs uniques de classification. Les informations sur le voisinage sont récapitulées en fonction de la relation qui associe les groupes uniques. Dans cet exemple, les groupes de polygones uniques sont identifiés par le champ en entrée myClass en tant que valeur du paramètre Signaler Par champ(s).

Exemple 2 - Données en entrée.

Vous trouverez ci-dessous les résultats de l'utilisation du champ myClass en tant que paramètre Signaler par champ(s).

  • Pour les polygones du groupe A, la longueur totale des tronçons coïncidents est égale à 1 200, laquelle provient des six tronçons coïncidents des polygones du groupe A.
    Remarque :

    La table en sortie contient également un enregistrement unique pour chaque combinaison unique de valeurs de polygone source et voisin utilisée dans le paramètre Signaler par champ(s). Puisque le groupe A est utilisé comme source et le voisin comme un côté de la relation, et que la relation inversée correspond également au groupe A en tant que source et voisin, le total des deux côtés de la relation de voisinage figure dans un enregistrement.

  • Entre le groupe A et le groupe B, il existe uniquement deux tronçons coïncidents d'une longueur totale équivalente à 200. C'est également le cas entre le groupe B et le groupe A.
  • Entre le groupe A et le groupe C, il existe trois tronçons coïncidents d'une longueur totale équivalente à 300. C'est également le cas entre le groupe C et le groupe A.
  • Pour les polygones du groupe B, aucune relation de voisinage n'est détectée, contrairement au groupe A. Ainsi, rien n'est signalé dans la sortie.

Exemple 2 - Données en sortie.

Exemple 3 du paramètre Signaler par champ(s) - Utilisation de plusieurs champs avec des valeurs combinées qui définissent des groupes de polygones uniques

Dans cet exemple, les valeurs du champ myZone représentent une classification des polygones. Les valeurs du champ myClass représentent une autre classification.

Exemple 3 - Données en entrée.

Lorsque vous spécifiez deux champs, myZone et myClass, comme valeur du paramètre Signaler par champ(s), les valeurs combinées des deux champs produisent les groupes de polygones uniques suivants :

  • Groupe Z1-A
  • Groupe Z1-C
  • Groupe Z2-A
  • Groupe Z2-B
  • Groupe Z2-C

La table en sortie ci-dessous indique les informations de voisinage liées aux groupes ci-dessus. Les huit premières lignes représentent les groupes uniques de valeurs Z1 combinées avec les valeurs du champ myClass correspondant aux groupes source et à leurs groupes voisins dans Z1 et Z2. Explication :

  • Le groupe source Z1-A présente six tronçons coïncidents au sein du groupe même (comme le groupe A dans l'exemple précédent). Ainsi, la longueur totale des tronçons coïncidents est égale à 600.
  • Le groupe source Z1-A est un voisin au tronçon du groupe voisin Z1-C. La longueur totale des tronçons coïncidents est égale à 200.
  • Le groupe source Z1-A est un voisin au tronçon du groupe voisin Z2-A. La longueur totale des tronçons coïncidents est égale à 300.
  • Le groupe source Z1-A n'est pas un voisin au tronçon du groupe voisin Z1-B, mais la limite du groupe voisin Z1-B touche le groupe source Z1-A au nœud. Il est donc un voisin au nœud. Ainsi, la valeur de LENGTH est égale à 0 et celle de NODE_COUNT est égale à 1.
  • Vous pouvez utiliser la même logique pour interpréter le reste des informations.

Exemple 3 - Table en sortie.

Exécution de PolygonNeighbors sur des données en entrée avec et sans polygones superposés

Les exemples suivants détaillent l'analyse de relations de voisinage dans un ordre hiérarchique du plus élevé au moins élevé lors de l'exécution de la commande sur des données en entrée avec et sans superposition de surfaces. Tous les exemples ci-dessous spécifient un champ unique dans le paramètre Signaler par champ(s) qui contient des valeurs uniques pour chaque polygone.

Exemple 1 - Données en entrée ne contenant aucun polygone superposé

Les données en entrée utilisées dans les deux cas suivants contiennent des polygones qui ne se superposent pas.

a. Case à cocher Inclure les superpositions de zone désactivée (par défaut)

Les quatre polygones en entrée ci-dessous ne se superposent pas. Si vous exécutez l'outil sans activer l'option Inclure les superpositions de zone, il ne recherche que les voisins au tronçon et au nœud dans cet ordre. En utilisant le polygone 1 comme polygone source par exemple, vous détectez trois polygones voisins et les informations suivantes sont consignées dans la table en sortie ci-dessous :

  • Le polygone 2 présente un tronçon coïncident avec le polygone 1. Il s'agit donc d'un voisin au tronçon. La longueur du tronçon coïncident, 100, est écrite dans le champ LENGTH. L'analyse du voisin au nœud n'a pas lieu et le champ NODE_COUNT se voit attribuer une valeur égale à 0. C'est également le cas pour le polygone 4.
  • Le polygone 5 ne présente aucun tronçon coïncident avec le polygone 1. Le champ LENGTH se voit attribuer une valeur égale à 0. Toutefois, le polygone 5 touche le polygone 1 en un point. Il est donc un voisin au nœud du polygone 1 et se voit attribuer une valeur égale à 1 dans le champ NODE_COUNT.

Exemple 1 - Données en entrée avec table en sortie.

b. Case à cocher Inclure les superpositions de zone activée

Dans ce cas, la table en sortie contient le champ AREA. Toutes les valeurs du champ AREA seront égales à 0, car aucun des polygones ne se superpose. L'analyse des voisins au tronçon et au nœud se poursuit et vous obtenez les mêmes valeurs dans les champs LENGTH et NODE_COUNT que dans l'exemple 1-a ci-dessus.

Exemple 2 - Données en entrée contenant des polygones superposés

Les données en entrée utilisées dans les deux cas suivants contiennent des polygones qui se superposent.

a. Case à cocher Inclure les superpositions de zone désactivée (par défaut)

Dans les quatre polygones suivants, on ne trouve de voisins superposés, au tronçon ou au nœud qu'une fois entre deux polygones. L'outil ne recherche que les voisins au tronçon et au nœud (dans cet ordre) et la sortie ne contient aucun champ AREA. En utilisant le polygone 1 comme polygone source par exemple, vous détectez trois polygones voisins et les informations suivantes sont consignées dans la table en sortie ci-dessous :

  • Les polygones 2 et 5 présentent un tronçon coïncident avec le polygone 1. La longueur du tronçon, égale à 20, est écrite dans le champ LENGTH. L'analyse du voisin au nœud n'a pas lieu même si le polygone 2 croise le polygone 1 en un point. Le champ NODE_COUNT se voit attribuer une valeur égale à 0.
  • Le polygone 4 présente un tronçon coïncident avec le polygone 1. La longueur du tronçon coïncident, égale à 100, est écrite dans le champ LENGTH.

Exemple 2a - Données en entrée et table en sortie.

b. Case à cocher Inclure les superpositions de zone activée

En utilisant le polygone 1 comme polygone source par exemple, vous détectez trois polygones voisins et les informations suivantes sont consignées dans la table en sortie ci-dessous :

  • Le polygone 2 se superpose au polygone 1. La surface de superposition, égale à 1 600, est écrite dans le champ AREA. L'analyse des voisins au tronçon et au nœud n'a pas lieu même si le polygone 2 présente un tronçon coïncident avec le polygone 1 et le croise en un point. Ainsi, les champs LENGTH et NODE_COUNT se voient attribuer une valeur égale à 0.
  • Le polygone 4 présente un tronçon coïncident avec le polygone 1. La longueur coïncidente du tronçon, égale à 100, est écrite dans le champ LENGTH.
  • Le polygone 5 présente un tronçon coïncident avec le polygone 1. La longueur du tronçon coïncident, égale à 20, est écrite dans le champ LENGTH. L'analyse du voisin au nœud n'a pas lieu même s'il croise le polygone 1 en un point. Le champ NODE_COUNT se voit attribuer une valeur égale à 0.

Exemple 2b - Données en entrée et table en sortie.

Exemple 3 - Données en entrée contenant des polygones qui intersectent plusieurs fois un autre polygone

Dans les données en entrée utilisées dans les cas suivants, deux polygones présentent plusieurs fois des voisins superposés, au tronçon et au nœud. Les valeurs des champs en sortie (AREA, LENGTH et NODE_COUNT) représentent la somme de toutes les occurrences de chaque type de voisin.

a. Case à cocher Inclure les superpositions de zone désactivée (par défaut)

Les deux polygones ci-dessous se superposent à deux endroits et présentent deux tronçons coïncidents. L'outil n'analyse pas la superposition entre les deux entités. Il détecte les deux tronçons coïncidents et consigne la somme des deux longueurs des tronçons coïncidents, égale à 40, dans le champ LENGTH. L'analyse des voisins au nœud n'a pas lieu et une valeur égale à 0 est entrée dans le champ NODE_COUNT. C'est le cas pour le polygone 1 source et pour le polygone 2 voisin, et vice-versa.

b. Case à cocher Inclure les superpositions de zone activée

Dans le cas des deux mêmes polygones ci-dessous, l'outil trouve deux superpositions de surfaces et consigne la somme des deux surfaces, égale à 800, dans le champ AREA. L'analyse des voisins au tronçon et au nœud n'a pas lieu. Ainsi, une valeur égale à 0 est entrée dans les champs LENGTH et NODE_COUNT. C'est le cas pour le polygone 1 source et pour le polygone 2 voisin, et vice-versa.

Exemple de données en entrée 3a et 3b et tables en sortie.

c. Case à cocher Inclure les superpositions de zone activée (par défaut) et absence de tronçons coïncidents entre deux polygones en entrée

L'outil ne trouve aucun tronçon coïncident et consigne 0 dans le champ LENGTH. Il poursuit l'analyse des voisins au nœud et repère deux croisements de limites. Ainsi, il consigne la valeur 2 dans le champ NODE_COUNT. C'est le cas pour le polygone 1 source et pour le polygone 2 voisin, et vice-versa, comme l'indique la table en sortie ci-dessous :

Exemple 3b - Données en entrée et table en sortie.

Exemple 4 - Cas spéciaux

Les données en entrée utilisées dans les deux cas spéciaux suivants peuvent sembler identiques, mais elles couvrent la surface différemment, comme cela est expliqué ci-dessous.

a. Polygone couvrant le trou d'un autre polygone

Dans ce cas, le polygone 2 présente un trou qui est recouvert par le polygone 1. Vous remarquerez que les deux polygones ne se superposent pas. L'analyse de voisins superposés n'est donc pas nécessaire. Lorsque le polygone 1 est le polygone source et que le polygone 2 présente un tronçon coïncident égal à 200 avec le polygone 1, la valeur est consignée dans le champ LENGTH. La valeur du champ NODE_COUNT est égale à 0. De la même façon, lorsque le polygone 2 est le polygone source, le polygone 1 présente un tronçon coïncident égal à 200 avec le polygone 2. Les valeurs résultantes du champ LENGTH sont identiques pour chaque enregistrement.

Exemple 4a - Données en entrée et table en sortie.

b. Polygone se superposant entièrement à un autre polygone

Dans ce cas, les polygones 1 et 2 se superposent. Vous devez activer la case à cocher Inclure les superpositions de zone pour que cette relation de voisinage figure dans l'analyse. Pour les polygones 1 (la source) et 2 (le voisin) et inversement, la zone de superposition égale à 2 500 est consignée dans la table en sortie ci-dessous.

Exemple 4b - Données en entrée et table en sortie.