Détermination du nom du champ de la zone de forme


9

Je suis confronté à une variété de fichiers de polygones spatiaux (fichiers de formes, classes d'entités fichier / personal gdb, classes d'entités sde (certaines avec des vues spatiales)) et en fonction du type de fichier, j'obtiens une mulittude des noms de champ de classe d'entités Shape Area ( le champ requis, pas créé)

Ainsi, par exemple, les noms de champ varient de "Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"

J'écris un script python pour extraire la zone de tous ces types de classes d'entités et je fais quelque chose comme:

for field in arcpy.ListFields(fc):
    if field.name in ["Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"]:
         do something

Je me demande s'il existe un moyen plus intelligent d'extraire le champ de la zone de forme, au lieu de simplement énumérer toutes les façons dont il peut être nommé? Il ne semble pas y avoir de propriété de champ pour quelque chose comme Area. existe-t-il une autre façon de procéder?

Réponses:


12

Qu'en est-il des éléments suivants:

fc = "path to input feature class"
desc = arcpy.Describe(fc)
areafieldname = desc.areaFieldName

Devrait fonctionner sur différentes classes d'entités qui ont des champs de zone générés automatiquement. Cela exclura les fichiers de formes.


Merci Barbarossa. J'ai dû manquer cette propriété dans Décrire parce que je cherchais des moyens de décrire les champs et que celle-ci n'est pas apparue dans ma recherche. Cela fonctionne parfaitement.
Mike
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.