Ajouter des attributs géométriques (Gestion des données)
Récapitulatif
Ajoute des champs attributaires aux entités en entrée représentant les caractéristiques spatiales ou géométriques ainsi que l'emplacement de chaque entité, tels que la longueur ou la surface et les coordonnées x, y, z et m.
Utilisation
Cet outil offre une méthode simple et efficace d'automatiser l'ajout d'attributs de géométrie. Vous pouvez également utiliser la boîte de dialogue Calculer la géométrie ou l'outil de géotraitement Calculer un champ.
-
Un ou plusieurs champs attributaires sont ajoutés aux entités en entrée selon les options spécifiées dans le paramètre Propriétés de géométrie. Si les champs existent déjà dans les entités en entrée, les valeurs qu'ils contiennent sont remplacées. Reportez-vous au tableau suivant pour déterminer les champs qui sont ajoutés pour chaque propriété de géométrie :
Propriété de géométrie
Champ(s) ajouté(s)
AREA
POLY_AREA : surface du polygone.
AREA_GEODESIC
AREA_GEO : surface géodésique du polygone.
CENTROID
CENTROID_X : coordonnée x du centroïde.
CENTROID_Y : coordonnée y du centroïde.
CENTROID_Z : coordonnée z du centroïde. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs z.
CENTROID_M : coordonnée m du centroïde. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs m.
CENTROID_INSIDE
INSIDE_X : coordonnée x d'un point central dans ou sur l'entité en entrée.
INSIDE_Y : coordonnée y d'un point central dans ou sur l'entité en entrée.
INSIDE_Z : coordonnée z d'un point central dans ou sur l'entité en entrée. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs z.
INSIDE_M : coordonnée m d'un point central dans ou sur l'entité en entrée. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs m.
EXTENT
EXT_MIN_X : coordonnée x minimale de l'entité.
EXT_MIN_Y : coordonnée y minimale de l'entité.
EXT_MAX_X : coordonnée x maximale de l'entité.
EXT_MAX_Y : coordonnée y maximale de l'entité.
LENGTH
LENGTH : longueur de la ligne.
LENGTH_GEODESIC
LENGTH_GEO : longueur géodésique de la ligne.
LENGTH_3D
LENGTH_3D : longueur 3D de la ligne.
LINE_BEARING
BEARING : relèvement du début à la fin de la ligne. Les valeurs sont comprises entre 0 et 360, où 0 correspond au nord, 90 à l'est, 180 au sud, 270 à l'ouest, et ainsi de suite.
LINE_START_MID_END
START_X : coordonnée x du premier point de la ligne ou de la bordure du polygone.
START_Y : coordonnée y du premier point de la ligne ou de la bordure du polygone.
START_Z : coordonnée z du premier point de la ligne ou de la bordure du polygone. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs z.
START_M : coordonnée m du premier point de la ligne ou de la bordure du polygone. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs m.
MID_X : coordonnée x du point situé au milieu de la ligne ou de la bordure du polygone.
MID_Y : coordonnée y du point situé au milieu de la ligne ou de la bordure du polygone.
MID_Z : coordonnée z du point situé au milieu de la ligne ou de la bordure du polygone. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs z.
MID_M : coordonnée m du point situé au milieu de la ligne ou de la bordure du polygone. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs m.
END_X : coordonnée x du dernier point de la ligne ou de la bordure du polygone.
END_Y : coordonnée y du dernier point de la ligne ou de la bordure du polygone.
END_Z : coordonnée z du dernier point de la ligne ou de la bordure du polygone. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs z.
END_M : coordonnée m du dernier point de la ligne ou de la bordure du polygone. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs m.
PART_COUNT
PART_COUNT : nombre de parties qui composent l'entité.
PERIMETER_LENGTH
PERIMETER : périmètre ou longueur de la bordure du polygone.
PERIMETER_LENGTH_GEODESIC
PERIM_GEO : périmètre ou longueur géodésique de la bordure du polygone.
POINT_COUNT
PNT_COUNT : nombre de points qui composent l'entité.
POINT_X_Y_Z_M
POINT_X : coordonnée x du point.
POINT_Y : coordonnée y du point.
POINT_Z : coordonnée z du point. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs z.
POINT_M : coordonnée m du point. Ce champ est ajouté uniquement si les entités en entrée prennent en charge les valeurs m.
Les calculs de longueur et de surface sont exprimés dans les unités du système de coordonnées spécifié, sauf si vous sélectionnez des unités différentes dans les paramètres Unité de longueur et Unité de surface.
Les champs attributaires que cet outil ajoute sont comme ceux que vous pouvez ajouter à une couche d'entités. Vous pouvez remplacer les valeurs de champ, ou supprimer ou renommer les champs. Les valeurs de ces champs ne sont pas automatiquement recalculées une fois les mises à jour terminées. Si vous modifiez les entités, vous devez à nouveau exécuter cet outil pour mettre à jour les valeurs de champ.
Si les entités en entrée comportent une sélection, seules les valeurs des entités sélectionnées sont calculées dans les champs ajoutés ; toutes les autres entités sont nulles.
Cet outil fonctionne avec les classes d'entités points, multipoints, polylignes, surfaciques et annotations. L'annotation est traitée comme une classe d'entités surfaciques.
Cet outil modifie les données en entrée. Reportez-vous à la rubrique Outils sans sortie pour obtenir plus d'informations, ainsi que des stratégies pour éviter les mouvements de données indésirables.
Syntaxe
Paramètre | Explication | Type de données |
Input_Features |
Les nouveaux champs attributaires sont ajoutés aux entités en entrée pour stocker les propriétés, telles que la longueur, la surface ou les coordonnées x, y, z et m. | Feature Layer |
Geometry_Properties [Geometry_Properties,...] |
Détermine les propriétés de géométrie ou de forme qui seront calculées dans les nouveaux champs attributaires.
| String |
Length_Unit |
Unité de calcul de la longueur.
| String |
Area_Unit |
Unité de calcul de la surface.
| String |
Coordinate_System |
Système de coordonnées dans lequel sont calculées les coordonnées, la longueur et la surface. Le système de coordonnées des entités en entrée est utilisé par défaut. | Coordinate System |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil AddGeometryAttributes.
import arcpy
arcpy.env.workspace = r"C:\data\City.gdb"
arcpy.AddGeometryAttributes_management("roads", "LENGTH;LINE_START_MID_END")
Calculez le rectangle d'emprise de chaque entité linéaire et générez une grille de 10 x 10 dans cette emprise.
# Name: GridCreation.py
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = r"C:\data\City.gdb"
arcpy.env.outputCoordinateSystem = arcpy.Describe("roads").spatialReference
# Set local variables
in_features = "roads"
properties = "EXTENT"
length_unit = ""
area_unit = ""
coordinate_system = ""
# Generate the extent coordinates using Add Geometry Properties tool
arcpy.AddGeometryAttributes_management(in_features, properties, length_unit,
area_unit,
coordinate_system)
# Use Search Cursor to walk through each feature and generate grids
with arcpy.da.SearchCursor(in_features, ["OID@", "EXT_MIN_X", "EXT_MIN_Y",
"EXT_MAX_X", "EXT_MAX_Y"]) as sCur:
for row in sCur:
minX, minY, maxX, maxY = row[1], row[2], row[3], row[4]
arcpy.CreateFishnet_management("fishnet_{0}".format(row[0]),
number_rows = 10,
number_columns = 10,
template = "{0} {1} {2} {3}".format(minX, maxX, minY, maxY),
origin_coord = "{0} {1}".format(minX, minY),
y_axis_coord = "{0} {1}".format(minX, maxY),
corner_coord = "{0} {1}".format(maxX, maxY),
geometry_type = "POLYGON",
labels = "NO_LABELS")