Arbeiten mit Geometrie in Python
Für alle Simple-Feature-Classes ist ein Geometriefeld erforderlich, in der Regel (aber nicht immer) Shape genannt. Die Funktion Describe kann verwendet werden, um den Namen des Geometriefeldes aus einer Feature-Class unter Verwendung der shapeFieldName-Eigenschaft abzurufen. Der Wert des Geometriefeldes ist ein Geometrieobjekt, und ein Geometrieobjekt verfügt über eine Reihe von Eigenschaften, die das Feature beschreiben. Das folgende Beispiel zeigt, wie jeweils ein Geometrieobjekt für jedes Linien-Feature in einer Feature-Class erstellt und die Summe der Längen gebildet wird:
import arcpy inFeatures = "d:/base/data.gdb/roads" # Create search cursor # rows = arcpy.SearchCursor(inFeatures) # Calculate the total length of all roads # length = 0 shapeName = arcpy.Describe(inFeatures).shapeFieldName # For each row, tally the length of the feature # for row in rows: feat = row.getValue(shapeName) length += feat.length # Print the total length of all roads # print length
Eigenschaft |
Erklärung |
---|---|
area |
Die Fläche eines Polygons; leer für alle anderen Feature-Typen. |
centroid |
Der tatsächliche Schwerpunkt, wenn sich dieser innerhalb oder auf dem Feature befindet. Andernfalls wird der Label-Punkt zurückgegeben (gibt ein Punktobjekt zurück). |
extent |
Gibt ein Ausdehnungsobjekt zurück. |
firstPoint |
Die erste Koordinate des Features; gibt ein Punktobjekt zurück. |
hullRectangle |
Die Koordinatenpaare des Rechtecks für die konvexe Hülle. |
isMultipart |
"True", wenn die Anzahl der Teile für diese Geometrie größer als eins ist. |
labelPoint |
Der Punkt, an dem sich die Beschriftung befindet; gibt ein Punktobjekt zurück (labelPoint befindet sich immer in oder auf einem Feature). |
lastPoint |
Die letzte Koordinate des Features; gibt ein Punktobjekt zurück. |
length |
Die Länge des linearen Features; leer für die Feature-Typen "Point" und "Multipoint". |
partCount |
Die Anzahl der Geometrieteile des Features. |
pointCount |
Die Anzahl der Punktobjekte für den aktuellen Teil der Geometrie. |
trueCentroid |
Der Schwerpunkt für ein Feature; gibt ein Punktobjekt zurück. |
type |
Polygon, Polylinie, Punkt, Multipoint, Multipatch, Bemaßung, Annotation. |
Methode |
Erklärung |
---|---|
getPart({index}) |
Gibt ein Array von Punktobjekten für ein bestimmtes Teil der Geometrie oder ein Array mit mehreren Arrays (jeweils ein Array für jedes Teil der Geometrie) zurück. |