Geoverarbeitungswerkzeuge können alle Datentypen verwenden, z. B. Geodatabase-Feature-Classes, Shapefiles, Raster, Tabellen, Topologien und Netzwerke. Jedes Datenelement verfügt über bestimmte Eigenschaften, auf die Sie zugreifen, mit denen Sie den Ablauf eines Skripts steuern oder die Sie als Parameter eines Werkzeugs verwenden können. Der Ausgabe-Feature-Typ des Werkzeugs Überschneiden (Intersect) hängt beispielsweise vom Shape-Typ der Daten ab, die einander überschneiden sollen, d. h. Punkt, Linie oder Polygon. Wenn das Werkzeug Überschneiden (Intersect) in einem Skript für eine Liste von Eingabe-Datasets ausgeführt wird, muss es möglich sein, die Shape-Typen der Eingabe-Datasets zu erkennen, damit der richtige Ausgabe-Shape-Typ festgelegt werden kann. Sie können die Funktion Describe verwenden, um die Shape-Typen aller Eingabe-Datasets zu ermitteln.
Mit der Funktion Describe können die Eigenschaften eines Datasets bestimmt und die entsprechenden Entscheidungen getroffen werden. Im folgenden Beispiel verwendet das Skript die Funktion Describe beispielsweise zum Auswerten des Shape-Typs (Polylinie, Polygon, Punkt usw.) von Eingabedaten und zum Bestimmen des geeigneten Geoverarbeitungswerkzeugs.
import arcpy
inFC = arcpy.GetParameterAsText(0)
outFC = arcpy.GetParameterAsText(1)
# Describe a feature class
#
desc = arcpy.Describe(inFC)
# Get the shape type (Polygon, Polyline) of the feature class
#
type = desc.shapeType
# If the shapeType is Polygon convert the data to polylines
# using the FeatureToLine tool, otherwise just copy the
# data using the CopyFeatures tool.
#
if type == "Polygon":
arcpy.FeatureToLine_management(inFC, outFC)
else:
arcpy.CopyFeatures_management(inFC, outFC)
Die Funktion Describe 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.
- Eigenschaften von "Describe Object"
- ArcInfo Workstation-Elementeigenschaften
- ArcInfo Workstation-Tabelleneigenschaften
- CAD-Zeichnungs-Dataset-Eigenschaften
- CAD-FeatureClass-Eigenschaften
- Eigenschaften: Cadastral Fabric
- Coverage-FeatureClass-Eigenschaften
- Coverage-Eigenschaften
- Dataset-Eigenschaften
- dBASE-Tabelleneigenschaften
- Editor-Tracking-Eigenschaften
- FeatureClass-Eigenschaften
- Dateieigenschaften
- Ordnereigenschaften
- GDB-FeatureClass-Eigenschaften
- GDB-Tabellen-Eigenschaften
- Eigenschaften von "Geometrisches Netzwerk"
- LAS-Dataset-Eigenschaften
- Layer-Eigenschaften
- Kartendokument-Eigenschaften
- Mosaik-Dataset-Eigenschaften
- Network Analyst-Layer-Eigenschaften
- Netzwerk-Dataset-Eigenschaften
- PRJ-Datei-Eigenschaften
- Raster-Band-Eigenschaften
- Raster-Katalog-Eigenschaften
- Raster-Dataset-Eigenschaften
- RecordSet- und FeatureSet-Eigenschaften
- RelationshipClass-Eigenschaften
- RepresentationClass-Eigenschaften
- Schematic-Dataset-Eigenschaften
- Schematic-Diagramm-Eigenschaften
- Schematic-Ordner-Eigenschaften
- SDC-FeatureClass-Eigenschaften
- Shapefile-FeatureClass-Eigenschaften
- Tabelleneigenschaften
- TableView-Eigenschaften
- Textdateieigenschaften
- TIN-Eigenschaften
- Werkzeugeigenschaften
- Toolbox-Eigenschaften
- Topologie-Eigenschaften
- VPF-Coverage-Eigenschaften
- VPF-FeatureClass-Eigenschaften
- VPF-Tabellen-Eigenschaften
- Workspace-Eigenschaften
Verwenden von Eigenschaftensätzen
Einige Eigenschaften sind Mitglieder eines Eigenschaftensatzes. Die Toleranzen eines Coverages oder die Verbindungseigenschaften eines Workspaces werden beispielsweise als Eigenschaftensätze zurückgegeben. Eigenschaftensätze verfügen über benannte Eigenschaften, die aus dem Eigenschaftensatz aufgerufen werden können. Im folgenden Beispiel werden die Toleranzen eines Coverages (fuzzy, dangle, ticMatch, edit, nodeSnap, weed, grain und snap) in die Standardausgabe geschrieben:
import arcpy
# Describe a coverage feature class
#
desc = arcpy.Describe("D:/St_Johns/covs/freshwater")
# Create a property set of coverage tolerances
#
covTols = desc.tolerances
# Print each coverage tolerance
#
print(covTols.fuzzy)
print(covTols.dangle)
print(covTols.ticMatch)
print(covTols.edit)
print(covTols.nodeSnap)
print(covTols.weed)
print(covTols.grain)
print(covTols.snap)
Eigenschaftensätze werden typischerweise verwendet, wenn die Eigenschaften des beschriebenen Objekts variieren. Die Verbindungseigenschaften (Server, Instanz, Datenbank, Benutzer und Version) eines Enterprise-Geodatabase-Workspaces variieren entsprechend dem jeweiligen Typ der verwendeten ArcSDE-Datenbank. Daher empfiehlt sich hier ein Eigenschaftensatz ohne vordefinierte Menge von Werten.