Fonctionnement des outils Polygones voisins et Polygones voisins deux par deux

Cette rubrique décrit comment les outils Polygones voisins et Polygones voisins deux par deux recherchent des voisins et remplissent la table en sortie.

Rechercher des relations de voisinage et calculer des statistiques

Les relations de voisinage sont définies comme suit :

  • Voisins superposés : polygones dont tout ou partie des zones se superposent.
  • Voisins contigus : polygones qui ont des limites communes ou adjacentes.
  • Voisins nodaux : polygones qui se touchent en un point (pour l’outil Polygones voisins, les limites se touchent ou se croisent ; pour l’outil Polygones voisins deux par deux, les limites se touchent).

Pour l’outil Polygones voisins, les polygones voisins sont détectés à l’aide des mêmes règles que pour les polygones dans l’outil Intersection.

Pour l’outil Polygones voisins deux par deux, les polygones voisins sont détectés à l’aide des mêmes règles que pour les polygones dans l’outil Intersection deux par deux.

Les deux outils suivent un chemin hiérarchique pour identifier le type de voisin et les statistiques à enregistrer dans la table en sortie. Les relations de voisinage sont les suivantes, par ordre hiérarchique décroissant : voisins superposés, voisins contigus et voisins nodaux. Une fois qu’un voisin de niveau supérieur est détecté, l’outil calcule et stocke les informations sur la relation. L’analyse des relations de niveau inférieur est ignorée. Les outils utilisent le processus suivant :

  1. Sélectionner un polygone à utiliser comme entité source.
  2. Trouver tous les polygones qui intersectent le polygone source (trouver les voisins).
  3. Pour le premier voisin trouvé, analyser ce qui suit pour le polygone source :
    • Lorsque le polygone voisin est un voisin superposé et que le paramètre Inclure les superpositions de zones est sélectionné, les opérations suivantes sont effectuées :
      1. Ajouter le champ AREA dans la table en sortie.
      2. Calculer la surface de superposition.
      3. Enregistrer la surface calculée dans le champ AREA de la table en sortie.
      4. Enregistrer 0 dans le champ LENGTH de la table en sortie.
      5. Enregistrer 0 dans le champ NODE_COUNT de la table en sortie.

        L’analyse des voisins superposés est terminée.

      6. Analyser le polygone voisin suivant.
    • Lorsque le polygone voisin est un voisin contigu, les opérations suivantes sont effectuées :
      1. Calculer la longueur de la limite coïncidente.
      2. Enregistrer la longueur calculée dans le champ LENGTH de la table en sortie.
      3. Enregistrer 0 dans le champ NODE_COUNT de la table en sortie.

        L’analyse des voisins contigus est terminée.

      4. Analyser le polygone voisin suivant.
    • Lorsque le polygone voisin est un voisin nodal, les opérations suivantes sont effectuées :
      1. Déterminer le nombre de fois que le polygone voisin croise et touche le polygone source en un point (dans le cas de l’outil Polygones voisins deux par deux, seul le toucher est pris en compte).
      2. Enregistrer cette valeur dans le champ NODE_COUNT de la table en sortie.
      3. Enregistrer 0 dans le champ LENGTH de la table en sortie.

        L’analyse des voisins nodaux est terminée.

      4. Analyser le polygone voisin suivant.

Une fois les relations de voisinage identifiées, l’outil utilise la valeur du paramètre Signaler par champs pour déterminer la façon de signaler les relations de voisinage et les statistiques dans la table en sortie. La valeur du paramètre Signaler par champs permet d’identifier des polygones uniques ou des groupes de polygones et de communiquer leurs informations de voisinage par polygones ou groupes de polygones uniques. Les polygones du même groupe possèdent le même jeu de valeurs de champ.

Exemples de paramètre Signaler par champs

Les sous-sections ci-dessous présentent des exemples d’utilisation du paramètre Signaler par champs :

Utiliser un champ avec des valeurs uniques pour chaque polygone individuel

Pour trouver les voisins de chaque polygone dans l’entrée, indiquez un champ en entrée ayant une valeur unique pour chaque polygone. Dans cet exemple, la table en entrée des neuf polygones contient un champ myCode, dont la valeur est unique pour chaque polygone.

Données en entrée

La table ci-dessous montre le résultat de l’utilisation du champ myCode comme valeur du paramètre Signaler par champs. Les préfixes des noms de champ source et voisin sont src_myCode et nbr_myCode.

Table en sortie

Utiliser un champ avec des valeurs définissant des groupes de polygones uniques

Pour identifier des groupes de polygones uniques et signaler les informations de voisinage par groupes, indiquez un champ ayant des valeurs uniques pour la classification. Les informations sur le voisinage sont résumées en fonction des relations entre les groupes uniques. Dans cet exemple, les groupes de polygones uniques sont identifiés en utilisant le champ myClass comme valeur du paramètre Signaler par champs.

Données en entrée

Le résultat ci-dessous est produit lorsque le champ myClass est utilisé comme valeur du paramètre Signaler par champs :

  • Pour le groupe A et les autres polygones du groupe A, la longueur totale des tronçons coïncidents est 1 200, valeur provenant des six tronçons coïncidents des polygones du groupe A.
    Remarque :

    La table en sortie contient un seul enregistrement pour chaque combinaison unique de valeurs de polygone source et voisin spécifiées à l’aide du paramètre Signaler par champs. Étant donné que le groupe A est utilisé comme source et le voisin, comme un côté de la relation, et que dans la relation inverse le groupe A est également la source et le voisin, le total des deux côtés de la relation de voisinage se trouve dans un seul enregistrement.

  • Entre le groupe A et le groupe B, seuls deux tronçons sont coïncidents pour une longueur totale de 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 pour une longueur totale de 300. C’est également le cas entre le groupe C et le groupe A.
  • Pour le groupe B et les autres polygones du groupe B, contrairement au groupe A, aucune relation de voisinage n’a été trouvée, il n’y a donc rien dans la sortie.

Table en sortie

Utiliser plusieurs champs avec des valeurs combinées définissant des groupes de polygones uniques

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

Données en entrée

Lorsque deux champs, myZone et myClass, sont spécifiés comme valeur du paramètre Signaler par champs, 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 montre les informations de voisinage relatives à ces groupes. Les huit premières lignes représentent les groupes uniques de valeurs Z1 combinées aux valeurs du champ myClass en tant que groupes sources et leurs groupes voisins dans Z1 et Z2 :

  • Le groupe source Z1-A possède six tronçons coïncidents dans le groupe (comme le groupe A dans l’exemple précédent) et la longueur totale des tronçons coïncidents est 600.
  • Le groupe source Z1-A est un voisin contigu du groupe voisin Z1-C, et la longueur totale des tronçons coïncidents est 200.
  • Le groupe source Z1-A est un voisin contigu du groupe voisin Z2-A, et la longueur totale des tronçons coïncidents est 300.
  • Le groupe source Z1-A n’est pas un voisin contigu du groupe voisin Z1-B, mais la limite de celui-ci touche le groupe source Z1-A au niveau d’un nœud, ce qui en fait un voisin nodal. Par conséquent, la valeur du champ LENGTH est 0 et la valeur du champ NODE_COUNT est 1.

Table en sortie

Données en entrée avec et sans polygones superposés

Les exemples ci-dessous décrivent en détail la façon dont les relations de voisinage sont analysées, par ordre hiérarchique décroissant, lors de l’exécution des données en entrée avec et sans superposition de zones. Ces exemples utilisent un champ unique pour la valeur du paramètre Signaler par champs, contenant des valeurs uniques pour chaque polygone. Dans chaque exemple, les différences entre les outils Polygones voisins et Polygones voisins deux par deux sont indiquées.

Données en entrée ne contenant pas de polygones superposés

Les données en entrée utilisées dans les deux cas suivants contiennent des polygones non superposés.

Paramètre d’inclusion de superposition de zones non sélectionné

Les quatre polygones en entrée ci-dessous ne sont pas superposés. Lorsque l’outil est exécuté avec le paramètre Inclure la superposition de zones non sélectionné, il vérifie uniquement les voisins contigus et nodaux, dans cet ordre. Avec le polygone 1 utilisé comme polygone source à titre d’exemple, trois polygones voisins sont détectés, et les informations suivantes sont signalées dans la table en sortie ci-dessous :

  • Le polygone 2 possède un tronçon coïncident avec le polygone 1, il s’agit donc d’un voisin contigu. La longueur du tronçon coïncident, 100, est inscrite dans le champ LENGTH. L’analyse des voisins nodaux est ignorée, et la valeur du champ NODE_COUNT est 0. C’est également le cas du polygone 4.
  • Le polygone 5 n’a pas de tronçon coïncident avec le polygone 1, et la valeur du champ LENGTH est 0. Toutefois, le polygone 5 touche le polygone 1 en un point, il s’agit donc d’un voisin nodal de ce dernier. La valeur de son champ NODE_COUNT est 1.

Données en entrée avec table en sortie

Paramètre d’inclusion de superposition de zones sélectionné

Lorsque le paramètre Inclure la superposition de zones est sélectionné, la table en sortie contient le champ AREA. La valeur de tous les champs AREA est 0, étant donné qu’aucun polygone n’est superposé. L’analyse des voisins contigus et nodaux se poursuit. Les valeurs des champs LENGTH et NODE_COUNT sont les mêmes que dans l’exemple relatif au paramètre Signaler par champs.

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 superposés.

Paramètre d’inclusion de superposition de zones non sélectionné

Parmi les quatre polygones, des voisins superposés, contigus ou nodaux existent une seule fois entre des combinaisons de deux polygones. Lorsque le paramètre Inclure la superposition de zones n’est pas sélectionné, l’outil vérifie uniquement les voisins contigus et nodaux, dans cet ordre, et la sortie ne contient pas le champ AREA. Avec le polygone 1 utilisé comme polygone source à titre d’exemple, trois polygones voisins sont détectés, et les informations suivantes sont signalées dans la table en sortie ci-dessous :

  • Les polygones 2 et 5 possèdent un tronçon coïncident avec le polygone 1, dont la longueur (20) est inscrite dans le champ LENGTH. L’analyse des voisins nodaux est ignorée, bien que le polygone 2 croise le polygone 1 en un point. La valeur du champ NODE_COUNT est 0.
  • Le polygone 4 possède un tronçon coïncident avec le polygone 1, dont la longueur (100) est inscrite dans le champ LENGTH.

Données en entrée et table en sortie

Paramètre d’inclusion de superposition de zones sélectionné

Avec le polygone 1 utilisé comme polygone source à titre d’exemple, trois polygones voisins sont détectés, et les informations suivantes sont signalées dans la table en sortie ci-dessous lorsque le paramètre Inclure la superposition de zones est sélectionné :

  • Le polygone 2 est superposé au polygone 1 et la surface de superposition, 1 600, est inscrite dans le champ AREA. L’analyse des voisins contigus et nodaux est ignorée, bien que le polygone 2 possède un tronçon coïncident avec le polygone 1 et qu’il croise celui-ci en un point. La valeur des champs LENGTH et NODE_COUNT est 0.
  • Le polygone 4 possède un tronçon coïncident avec le polygone 1, dont la longueur (100) est inscrite dans le champ LENGTH.
  • Le polygone 5 possède un tronçon coïncident avec le polygone 1, dont la longueur (20) est inscrite dans le champ LENGTH. L’analyse des voisins nodaux est ignorée, bien qu’il croise le polygone 1 en un point (en effet, l’outil Polygones voisins deux par deux ne tient compte que du toucher). La valeur du champ NODE_COUNT est 0.

Données en entrée et table en sortie

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

Dans les données en entrée utilisées dans les exemples ci-dessous, des voisins superposés, contigus ou nodaux existent plusieurs fois entre deux polygones. Les valeurs des champs en sortie, AREA, LENGTH et NODE_COUNT, sont la somme de toutes les occurrences dans chaque type de voisin.

Paramètre d’inclusion de superposition de zones non sélectionné

Les deux polygones ci-dessous sont superposés en deux endroits et possèdent deux tronçons coïncidents. Lorsque le paramètre d’inclusion de superposition de zones n’est pas sélectionné, l’outil n’analyse pas la superposition entre les deux entités. Il détecte les deux tronçons coïncidents et inscrit la somme de leurs longueurs, 40, dans le champ LENGTH. L’analyse des voisins nodaux est ignorée, la valeur 0 est donc inscrite dans le champ NODE_COUNT. C’est le cas lorsque le polygone 1 est le polygone source et le polygone 2 le voisin, et inversement.

Paramètre d’inclusion de superposition de zones sélectionné

Pour les deux mêmes polygones ci-dessous, lorsque le paramètre Inclure la superposition de zones est sélectionné, l’outil trouve deux superpositions de zones et inscrit la somme des deux zones, 800, dans le champ AREA. L’analyse des voisins contigus nodaux est ignorée, et la valeur 0 est inscrite dans les champs LENGTH et NODE_COUNT. C’est le cas lorsque le polygone 1 est le polygone source et le polygone 2 le voisin, et inversement.

Données en entrée et tables en sortie

Paramètre d’inclusion de superposition de zones non sélectionné et aucun tronçon coïncident entre les polygones en entrée

Pour les deux outils dans ce scénario, aucun tronçon coïncident n’est détecté et la valeur 0 est inscrite dans le champ LENGTH. Les outils poursuivent l’analyse des voisins nodaux ; l’outil Polygones voisins détecte que les limites se croisent deux fois, alors que l’outil Polygones voisins deux par deux ne tient pas compte des relations de croisement et renvoie une sortie vide. Étant donné que l’outil Polygones voisins tient compte des relations de croisement, il inscrit la valeur 2 dans le champ NODE_COUNT. C’est le cas lorsque le polygone 1 est le polygone source et le polygone 2 le voisin, et inversement, comme indiqué dans la table en sortie suivante :

Données en entrée et table en sortie

Cas particuliers

Les données en entrée utilisées dans les deux cas particuliers suivants peuvent sembler identiques, mais la couverture des zones est différente, comme indiqué ci-dessous.

Polygone couvrant le trou d’un autre polygone

Dans ce cas, le polygone 2 possède un trou, couvert par le polygone 1. Les deux polygones ne sont pas superposés, il n’est donc pas nécessaire d’analyser les voisins superposés. Lorsque le polygone 1 est le polygone source et que le polygone 2 possède un tronçon coïncident de 200 avec le polygone 1, cette valeur est inscrite dans le champ LENGTH. La valeur du champ NODE_COUNT est 0. De même, lorsque le polygone 2 est le polygone source, le polygone 1 possède un tronçon coïncident de 200 avec le polygone 2. Les mêmes valeurs sont donc inscrites dans le champ LENGTH pour chaque enregistrement.

Données en entrée et table en sortie

Polygone recouvrant complètement un autre polygone

Dans ce cas, les polygones 1 et 2 sont superposés. Vous devez sélectionner le paramètre Inclure la superposition de zones pour que cette relation de voisinage soit détectée dans l’analyse. Lorsque le polygone 1 est le polygone source et le polygone 2 le voisin, et inversement, une zone de superposition de 2 500 est signalée dans la table en sortie suivante.

Données en entrée et table en sortie