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.
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(";")))