Describe
Zusammenfassung
Die Describe-Funktion gibt ein Describe-Objekt zurück, das Eigenschaften wie Datentyp, Felder, Indizes usw. umfasst. Ihre Eigenschaften sind dynamisch. Dies bedeutet, dass je nach beschriebenem Datentyp unterschiedliche Describe-Eigenschaften zur Verfügung stehen.
Describe-Eigenschaften sind in einzelne Eigenschaftengruppen unterteilt. Jedes einzelne Dataset erhält die Eigenschaften von mindestens einer dieser Gruppen. Beim Beschreiben einer Geodatabase-Feature-Class können Sie beispielsweise auf die Eigenschaften der Eigenschaftengruppen GDB FeatureClass, FeatureClass, Table und Dataset zugreifen. Alle Daten erhalten unabhängig vom Datentyp immer die generischen Eigenschaften des Describe-Objekts.
Beschreibung
Viele Datentypen enthalten Eigenschaften aus anderen Eigenschaftsgruppen. Beim Beschreiben einer Geodatabase-Feature-Class können Sie beispielsweise auf die Eigenschaften der Eigenschaftengruppen GDB FeatureClass, FeatureClass, Table und Dataset zugreifen.
Hinweis:In einigen Fällen verfügt das von Describe zurückgegebene Objekt nicht über alle für das Objekt dokumentierten Eigenschaften. Beispielsweise verfügt das Describe-Objekt für einen Layer im Inhaltsverzeichnis von ArcMap nicht über den Layer-Eigenschaftensatz. Diese Eigenschaft ist nur bei der Beschreibung einer LYR-Datei vorhanden.
Wenn Sie versuchen, auf eine Eigenschaft zuzugreifen, über die ein Describe-Objekt nicht verfügt, wird entweder ein Fehler ausgegeben oder ein leerer Wert (Kein, 0 oder -1, leere Zeichenfolge) zurückgegeben. Wenn Sie sich bei einer bestimmten Eigenschaft unsicher sind, können Sie diese mit der Python-Funktion hasattr() überprüfen.
Syntax
| Parameter | Erläuterung | Datentyp |
value |
The specified data element or geoprocessing object to describe. | String |
| Datentyp | Erläuterung |
| Describe |
Gibt ein Objekt mit den Eigenschaften des beschriebenen Datenelements zurück. Einige der zurückgegebenen Objekteigenschaften enthalten Literalwerte oder Objekte. |
Codebeispiel
Das folgende eigenständige Skript zeigt einige Eigenschaften für den Layer und das Describe-Objekt, die von einem Skriptparameter festgelegt wurden. Der Parameter wird möglicherweise entweder auf eine LYR-Datei oder auf einen Layer in ArcMap gesetzt.
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:", desc.name
if hasattr(desc, "layer"):
print "Layer name:", desc.layer.name
print "Layer data source:", desc.layer.catalogPath
print ".lyr file:", desc.catalogPath
else:
print "Layer name:", desc.name
print "Layer data source:", desc.catalogPath
if desc.fidSet != '':
print "Number of selected features:", str(len(desc.fidSet.split(";")))