Ich möchte ein Array von Punkten als 3D-Polygon ausgeben lassen.
Z.B.: coordList = [[x1, y1, z1][x2, y2, z2]...]
Die Methode heißt arcpy.Polygon(coordList). Ich versuch dies schon seit Tagen und bekomme es nicht hin.
Kann mir jemand weiterhelfen?
arcpy Polygon erzeugen
@M-Dot_G-Punkt: Was hast Du denn versucht? Die Dokumentation enthält doch ein Beispiel.
-
- User
- Beiträge: 8
- Registriert: Sonntag 27. September 2015, 20:57
Ich habe genau versucht das Beispiel umzusetzen.
Fehler:
point.X = coordPair[0]
TypeError: 'float' object has no attribute '__getitem__'
Fehler:
point.X = coordPair[0]
TypeError: 'float' object has no attribute '__getitem__'
Code: Alles auswählen
coordList = [[431270.1, 648432.02, 199.92], [431258.9, 648415.4, 199.91], [431269.4, 648412.59, 200.0]]
point = arcpy.Point()
array = arcpy.Array()
featureList = []
for feature in coordList:
for coordPair in feature:
point.X = coordPair[0]
point.Y = coordPair[1]
point.Z = coordPair[2]
array.add(point)
array.add(array.getObject(0))
polygon = arcpy.Polygon(array)
array.removeAll()
featureList.append(polygon)
arcpy.CopyFeatures_management(featureList, "e:/polygons.shp")
@M-Dot_G-Punkt: Das diese Fehlermeldung kommt sollte man eigentlich erwarten. Du iterierst über die Listen mit den drei Zahlen, dann über jede einzelne Zahl und versuchst dann auf das erste Element einer Zahl zuzugreifen. Zahlen haben aber keine Elemente, das sind skalare Werte und keine Container. Was hätte denn da auch das Ergebnis sein sollen?
Lass Dir Zwischenergebnisse ausgeben und überprüfe ob das vom Wert und vom Typ (`type()`-Funktion) Deinen Erwartungen entspricht und wenn nicht überlege warum das so ist.
Gute Namen helfen auch zu verstehen was man so macht. `coordPair` klingt für mich nach einem Paar (*zwei*) von Koordinaten. Da ist aber nix von der Länge zwei.
Lass Dir Zwischenergebnisse ausgeben und überprüfe ob das vom Wert und vom Typ (`type()`-Funktion) Deinen Erwartungen entspricht und wenn nicht überlege warum das so ist.
Gute Namen helfen auch zu verstehen was man so macht. `coordPair` klingt für mich nach einem Paar (*zwei*) von Koordinaten. Da ist aber nix von der Länge zwei.