PROCÉDURE

calculer les centroïdes des entités

Last Published: October 13, 2021

Résumé

Cette opération peut être effectuée de plusieurs manières : Selon la façon dont les centroïdes doivent être calculés, plusieurs méthodes sont possibles : calculer les coordonnées XY centrales des entités, exécuter l’outil Feature to Point (Entité vers point) ou utiliser Python pour extraire les coordonnées des centroïdes. Les instructions ci-dessous décrivent chacune de ces méthodes.

Procédure

   
  • Utiliser l’outil Feature To Point (Entité vers point) (Gestion des données)

    Cette méthode se base sur le centre de gravité du polygone (le centre géométrique d’une entité). Pour les lignes, les polygones ou les entités à trois dimensions, il s’agit du centre de masse (ou centre de gravité), lequel peut se trouver à l’intérieur ou à l’extérieur de l’entité. Pour les multi-points, les polylignes ou les classes d’entités polylinéaires comprenant plusieurs parties, le centroïde est calculé à l’aide du centre moyen pondéré de toutes les parties d’entité.
     
    Remarque :
    Cet outil est disponible uniquement avec le niveau de licence Advanced Desktop ou ArcInfo.

    L’outil Feature To Point (Entité vers point) sert à créer une classe d’entités contenant des points générés depuis les emplacements représentatifs des entités en entrée. Les algorithmes dédiés à ce type de calcul spécifique sont propriétaires, mais mettent en jeu deux concepts de base.

    L’outil calcule le centroïde de l’entrée du multi-point, de la ligne ou du polygone en appliquant un algorithme basé sur le centre de gravité. Le calcul du centre de gravité fait appel au modèle de centre géométrique pour générer la nouvelle classe d’entités points. Pour les lignes, les polygones ou les entités à trois dimensions, il s’agit du centre de masse (ou centre de gravité), lequel peut se trouver à l’intérieur ou à l’extérieur de l’entité. Pour les multi-points, les polylignes ou les polygones comprenant plusieurs parties, le centroïde est calculé à l’aide du centre moyen pondéré de toutes les parties d’entité.

    Parmi les différents paramètres d’outil proposés, il existe une option permettant de calculer le centroïde compris dans les limites de la classe d’entités ; pour activer cette option, il suffit de cocher la case correspondant à « inside » (intérieur). L’activation de ce paramètre oblige l’outil à calculer un centroïde compris dans les limites de la classe d’entités. S’il figure initialement à l’extérieur des limites, le point est repositionné au niveau du centre de gravité supposé.
     
  • Utiliser Python pour calculer et générer des points centroïdes

    L’exemple suivant a recours au module d’accès aux données pour extraire facilement les coordonnées du centroïde par l’intermédiaire du jeton SHAPE@XY. Ces coordonnées sont alors utilisées pour créer une géométrie de point, laquelle est ensuite enregistrée dans une nouvelle classe d’entités.
     
    Remarque :
    Les curseurs d’accès aux données sont disponibles uniquement dans ArcGIS 10.1 ou une version ultérieure. Reportez-vous aux rubriques d’aide Lecture des géométries et Ecriture des géométries pour connaître les autres workflows possibles pour la version 10.
     
    Code :
    import arcpy
    
    input_fc = "C:\\temp\\geodatabase.gdb\\states"
    output_fc = "C:\\temp\\geodatabase.gdb\\state_centroids"
    
    cursor = arcpy.da.SearchCursor(input_fc, "SHAPE@XY")
    centroid_coords = []
    for feature in cursor:
        centroid_coords.append(feature[0])
    
    point = arcpy.Point()
    pointGeometryList = []
    
    for pt in centroid_coords:
        point.X = pt[0]
        point.Y = pt[1]
    
        pointGeometry = arcpy.PointGeometry(point)
        pointGeometryList.append(pointGeometry)
    
    arcpy.CopyFeatures_management(pointGeometryList, output_fc)

ID d’article:000011754

Obtenir de l’aide auprès des experts ArcGIS

Contacter le support technique

Télécharger l’application Esri Support

Accéder aux options de téléchargement

Informations associées

En savoir plus sur ce sujet