Polygones voisins (Analyse)
Récapitulatif
Crée une table avec des statistiques basées sur la contiguïté des polygones (superpositions, tronçons coïncidents ou nœuds).
En savoir plus sur le fonctionnement de l'outil Voisinage du polygone
Illustration
Utilisation
L'outil permet d'analyser la contiguïté, en récapitulant
- les surfaces de superposition (voisins superposés - en option)
- la longueur des tronçons coïncidents (voisins au nœud)
- le nombre de fois pendant lesquelles des limites se croisent ou se touchent en un point (voisin au nœud)
Seule la contiguïté de premier ordre est analysée et signalée par l'outil. Les relations n'y ayant pas trait ne sont pas examinées. Les voisins des voisins (contiguïté de deuxième ordre) ne sont pas examinés.
Le paramètre Signaler par champ(s) (in_fields dans les scripts) permet d'identifier des polygones uniques ou groupes de polygones et de communiquer leurs informations de voisinage par polygone unique ou groupes de polygones. Pour trouver les voisins de chaque polygone dans l'entrée, indiquez un ou plusieurs champs en entrée produisant une valeur unique ou un ensemble de valeurs (si vous utilisez plusieurs champs) pour chaque polygone.
Si les champs spécifiés identifient des groupes de polygones uniques, les informations sur le voisinage sont récapitulées et signalées par les groupes.
Reportez-vous à la rubrique Fonctionnement de l'outil Voisinage du polygone pour savoir comment utiliser ce paramètre.
Vous pouvez utiliser le paramètre Inclure les superpositions de zone si vous souhaitez analyser les relations de superposition de surfaces. Lorsque vous sélectionnez l'option Inclure les superpositions de zone, la table en sortie contient un champ appelé AREA qui contient la surface de superposition du voisin superposé en cours d'analyse. En l'absence de superposition, AREA a pour valeur 0.
Astuce:Le calcul de relations de superposition de surfaces est une opération sollicitant beaucoup de ressources, et les performances risquent d'être bien plus lentes que si vous déterminiez les relations de voisinage au nœud et au tronçon coïncident. Si vous savez que vos données ne présentent aucune entité superposée ou si vous ne souhaitez pas analyser les voisins superposés, désactivez la case à cocher Inclure les superpositions de zone dans la boîte de dialogue de l'outil ou attribuez la valeur NO_AREA_OVERLAP au paramètre area_overlap dans votre script.
Attention :Vous devez activer la case à cocher Inclure les superpositions de zone dans la boîte de dialogue ou attribuer la valeur AREA_OVERLAP au paramètre area_overlap dans un script pour obtenir les enregistrements des voisins figurant entièrement dans un polygone source. Si vous n'activez pas la case à cocher Inclure les superpositions de zone, la table en sortie ne contient pas les enregistrements des voisins figurant entièrement dans un polygone source.
Il n'y a aucune entrée dans la table en sortie pour les entités non voisines.
La case à cocher Inclure les deux côtés de la relation voisine de la boîte de dialogue de l'outil (paramètre both_sides dans le script) permet de contrôler les relations incluses dans la sortie. Pour signaler toutes les relations de contiguïté, y compris les relations réciproques, activez la case à cocher Inclure les deux côtés de la relation voisine (both_sides = "BOTH_SIDES"). Par exemple, si OID1 est un voisin d'OID2, une entrée est ajoutée dans la table en sortie pour OID1 ayant pour voisin OID2, et pour OID2 ayant pour voisin OID1. Si seul le premier côté de la relation vous intéresse, désactivez l'option Inclure les deux côtés de la relation voisine. Toujours avec cet exemple, mais en désactivant l'option Inclure les deux côtés de la relation voisine, seule l'entrée relative à OID1 ayant pour voisin OID2 est consignée dans la table en sortie.
L'option Output Linear Units spécifie les unités à utiliser pour la longueur de limite mitoyenne entre voisins. Par défaut, les unités utilisées sont les mêmes que celles définies par le système de coordonnées d'entités en entrée.
L'option Unités de surface en sortie est utilisée uniquement lorsque le paramètre Superposition de zone est activé (area_overlap = " = "AREA_OVERLAP"). Lorsque le paramètre Superposition de zone est activé, les unités utilisées pour calculer la superposition de surfaces de voisins sont spécifiées dans le paramètre Unités de surface en sortie. Par défaut, les unités utilisées sont les mêmes que celles définies par le système de coordonnées de l'entité en entrée.
La table en sortie contient les champs suivants :
- src_field(s) - Le préfixe, src, indique la source. Ce champ est utilisé par le paramètre Signaler par champ(s) ; par exemple, src_MYID. Vous spécifiez le nombre de champs souhaités dans le paramètre Signaler par champ(s).
- nbr_field(s) - Le préfixe, nbr, indique le voisin. Ce champ est utilisé par le paramètre Signaler par champ(s) ; par exemple, nbr_MYID. Tout comme avec les champs src, vous spécifiez le nombre de champs souhaités dans le paramètre Signaler par champ(s).
- AREA - Ce champ stocke la surface totale superposée entre un polygone source et un polygone voisin (voisins superposés). Ce champ est inclus dans la table en sortie uniquement si le paramètre Inclure les superpositions de zone est activé (area_overlap = "AREA_OVERLAP").
- LENGTH - Ce champ stocke la longueur totale des tronçons coïncidents entre un polygone source et un polygone voisin.
- NODE_COUNT - Ce champ stocke le nombre de croisements ou de contacts en un point entre un polygone source et un polygone voisin.
Si une sélection est définie sur les entités en entrée, seules les entités sélectionnées sont analysées.
Syntaxe
Paramètre | Explication | Type de données |
in_features |
Entités surfaciques en entrée. | Feature Layer |
out_table |
Table en sortie. | Table |
in_fields [in_fields,...] (Facultatif) |
Le ou les champs attributaires utilisés pour identifier des polygones uniques ou des groupes de polygones et les représenter dans la sortie. | Field |
area_overlap (Facultatif) | Détermine si les polygones superposés sont analysés et inclus dans la sortie.
| Boolean |
both_sides (Facultatif) | Détermine si les deux côtés des relations de voisinage sont incluses dans la sortie.
| Boolean |
cluster_tolerance (Facultatif) |
Distance minimale devant séparer des coordonnées pour qu'elles soient considérées comme égales. Par défaut, il s'agit de la tolérance XY des entités en entrée. | Linear unit |
out_linear_units (Facultatif) |
Unités permettant de signaler la longueur totale du tronçon coïncident entre des polygones voisins. Par défaut, il s'agit des unités des entités en entrée. | String |
out_area_units (Facultatif) |
Unités permettant de signaler la superposition de surfaces de polygones voisins. Par défaut, il s'agit des unités des entités en entrée. Ce paramètre n'est actif que si le paramètre area_overlap a la valeur AREA_OVERLAP. | String |
Exemple de code
Recherchez tous les districts électoraux voisins dans la province Nova Scotia.
import arcpy, sys
arcpy.env.overwriteOutput = True
arcpy.MakeFeatureLayer_management(r"C:\Data\Canada\CanadaElecDist.shp",r"Canada_ElectoralDist")
arcpy.SelectLayerByAttribute_management(r"Canada_ElectoralDist", "NEW_SELECTION", "\"PROVCODE\" = 'NS'")
print "Selected feature count: " + str(arcpy.GetCount_management(r"Canada_ElectoralDist"))
arcpy.PolygonNeighbors_analysis(r"Canada_ElectoralDist", "ENNAME", r"C:\Data\Output\NS_elec_neigh.dbf")
print arcpy.GetMessages()