Describe

Résumé

La fonction Describe renvoie un objet Describe avec plusieurs propriétés, telles que le type de données, des champs, des index et bien d'autres encore. Ses propriétés sont dynamiques, ce qui signifie que différentes propriétés Describe pourront être utilisées en fonction du type de données décrit.

Les propriétés Describe sont organisées en séries de groupes de propriétés. Tout jeu de données particulier acquiert les propriétés d'au moins un de ces groupes. Par exemple, lors de la description d'une classe d'entités de géodatabase, vous pouvez accéder aux propriétés des groupes de propriétés GDB FeatureClass (Classe d'entités GDB), FeatureClass (Classe d'entités), Table, et Dataset (Jeu de données). Toutes les données, quel que soit leur type, acquièrent toujours les propriétés générales de l'objet Describe.

Discussion

De nombreux types de données comprennent des propriétés d'autres groupes de propriétés. Par exemple, lors de la description d'une classe d'entités de géodatabase, vous pouvez accéder aux propriétés des groupes de propriétés GDB FeatureClass (Classe d'entités GDB), FeatureClass (Classe d'entités), Table, et Dataset (Jeu de données).

Consultez arcpy.da.Describe, qui renvoie la même information mais sous forme de dictionnaire.

Remarque :

Dans certains cas, l'objet renvoyé par Describe ne comportera pas toutes les propriétés qui sont documentées pour lui. Ainsi, la propriété layer ne sera pas définie pour l'objet Describe pour une couche dans une carte. Pour que cette propriété existe, vous devez décrire un fichier .lyr.

Si vous essayez d'accéder à une propriété qu'un objet Describe ne possède pas, celui-ci générera une erreur ou renverra une valeur nulle (None, 0 ou -1, ou une chaîne vide). En cas de doute concernant une propriété particulière, vous pouvez utiliser la fonction Python hasattr() pour vérifier.

Syntaxe

Describe (value, {datatype})
ParamètreExplicationType de données
value

The specified data element or geoprocessing object to describe.

String
datatype

The type of data. This is only necessary when naming conflicts exists, for example, if a geodatabase contains a feature dataset (FeatureDataset) and a feature class (FeatureClass) with the same name. In this case, the data type is used to clarify which dataset you want to describe.

(La valeur par défaut est None)

String
Valeur renvoyée
Type de donnéesExplication
Describe

Renvoie un objet possédant des propriétés détaillant l'élément de données décrit. Certaines propriétés des objets renvoyés contiendront des valeurs littérales ou des objets.

Exemple de code

Exemple de propriétés Describe (script autonome)

Le script autonome suivant affiche certaines couches et propriétés d'objet Describe à partir d'une couche définie par un paramètre de script. Le paramètre peut être défini sur un fichier de couche ou une couche dans une carte.

import arcpy

# Get the layer as a parameter and describe it.
#
# The layer could be a layer in ArcMap (like "some_layer")
# Or, it could be a .lyr file (like "C:/data/some.lyr")
#
layerString = arcpy.GetParameterAsText(0)
desc = arcpy.Describe(layerString)

# Print selected layer and describe object properties
# 
print("Name: {}".format(desc.name))
if hasattr(desc, "layer"):
    print("Layer name: {}".format(desc.layer.name))
    print("Layer data source: {}".format(desc.layer.catalogPath))
    print(".lyr file: {}".format(desc.catalogPath))
else:
    print("Layer name: {}".format(desc.name))
    print("Layer data source: {}".format(desc.catalogPath))

if desc.FIDSet != '':
    print("Number of selected features: {}".format(len(desc.FIDSet.split(";"))))