Ich habe ArcGIS Desktop 10.2 und meine Herausforderung besteht darin, die Anzahl der Eckpunkte in jedem Polygon für alle Funktionen wie diese zu extrahieren:
Ich habe viele Flurstücke in meiner Feature-Class und möchte die Anzahl der Scheitelpunkte für alle Features separat extrahieren. Anschließend möchte ich die XY-Koordinaten für alle Scheitelpunkte anzeigen.
Für weitere Informationen möchte ich nur Scheitelpunkte für jedes Polygon konvertieren und die Nummer jedes Scheitelpunkts anzeigen. Wenn ich also ein Polygon mit 4 Scheitelpunkten habe, möchte ich ein Polygon in Scheitelpunkte konvertieren und die Anzahl dieser Scheitelpunkte anzeigen (1,2,3,4,5), dann Anzeige von xy für jeden Scheitelpunkt, ich denke, die eigentliche Herausforderung ID, wie alle Polygone in Scheitelpunkte konvertiert und jede Anzahl von Scheitelpunkten ab 1 Nummer.
Antworten:
Der folgende Code kombiniert die anderen Antworten und fügt ein Bit hinzu, um die Eckpunkte zu nummerieren.
Die Punkte sind in Zeichnungsreihenfolge beschriftet. Der letzte Punkt (unter dem ersten) hat keine Beschriftung und kann gelöscht werden, indem alle Punkte mit Nullwerten oder eindeutigen "DRAW_ORDER" -Werten ausgewählt werden, wenn sie nicht für die Rekonstruktion benötigt werden. Mit einer Definitionsabfrage können die überlappenden Punkte aus der Anzeige entfernt werden.
XY-Daten sind vorhanden, aber ich überlasse dies Ihren Beschriftungs- / Anzeigewünschen. Siehe Aarons Antwort zum Hinzufügen eines XY-Felds zur Beschriftung.
Ich spielte auch mit FeatureClass, um Array zu numpieren, aber ich beendete dies zuerst.
quelle
Der einfachste Weg, dies zu tun, besteht darin, der Attributtabelle des Parzellen-Layers ein neues Ganzzahlfeld hinzuzufügen. Führen Sie dann den Feldrechner mit dem folgenden Ausdruck aus:
Das
!Shape!.pointCount
gibt die Gesamtanzahl der Scheitelpunkte in dem Feature zurück. Der erste Scheitelpunkt jedes Teils wird jedoch am Ende wiederholt, um das Feature zu schließen. Subtrahieren Sie dazu für jedes Teil einen Scheitelpunkt mit-!Shape!.partCount
.Beachten Sie, dass Sie den Python-Parser verwenden müssen, damit dieser Ausdruck funktioniert.
quelle
SearchCursor
Methode in Aarons Antwort oder ein Geoverarbeitungswerkzeug wie Feature-Stützpunkte zu Punkten verwenden (für dieses Werkzeug ist jedoch eine ArcGIS for Desktop Advanced-Lizenz erforderlich).dmahr bot eine gute Lösung zum Zählen von Eckpunkten. Verwenden Sie den folgenden Arbeitsablauf, um jeden Punkt nicht programmgesteuert mit den XY-Koordinaten zu kennzeichnen:
Berechnen Sie das Feld "XY" im Feldrechner, wobei XY =
str (! x!) + "," + str (! y!)
Beschriften von Features. Klicken Sie mit der rechten Maustaste auf Ebene> Beschriftungen> Beschriftungsfeld: XY
Dies führt zu folgenden Ergebnissen:
Sie können diese Aktionen auch programmgesteuert
explode_to_points
mit einem Suchcursor ausführen (als Start).quelle
Wenn man kein neues Feld berechnen und nur eine Anzahl von Eckpunkten pro Ebene erhalten möchte sehr schnell zurückerhalten (zum Zwecke der Verallgemeinerung, z. B. wenn Sie die Datensätze im Web verfügbar machen), können Sie ein benutzerdefiniertes Skript-Tool in a erstellen Toolbox oder machen Sie den Code als Python-Add-In verfügbar.
Benutzerdefinierter Skript-Tool-Code:
Python-Add-In-Code (wählen Sie eine Ebene im Inhaltsverzeichnis aus, um die Scheitelpunkte zu zählen):
quelle