Mehr

Erstellen Sie eine Reihe von Punkten entlang mehrerer Polylinien gleichzeitig in ArcMap?


Ich habe eine Reihe von Polylinien, die lineare Vegetation (Schutzgürtel usw.) darstellen. Ich muss diese in eine Reihe von Punkten mit gleichem Abstand umwandeln, um sie zu einem anderen Shapefile hinzuzufügen, das die Punktvegetation (einzelne Bäume) darstellt. Ich sollte auch erwähnen, dass ich ungefähr 300 Polylinien habe, um dies zu tun, also möchte ich sie alle auf einmal tun können. Die Polylinien variieren in der Länge, aber unabhängig von der Länge möchte ich Punkte am Anfang und am Ende jeder Linie und dann alle 10 m platzieren.

Ich könnte mir vorstellen, dass dies ein Python-Skript erfordert. Von denen ich nicht weiß, wie man schreibt.

Weiß jemand, wie ich das in ArcMap 10 tun kann?

Ich habe mir eine ähnliche Frage angesehen, die zuvor für jemanden gepostet wurde, der 6 Punkte auf 70.000 Zeilen unterschiedlicher Länge erstellen wollte, und habe dieses Python-Skript gefunden:

import arcpy points = [] for row in arcpy.da.SearchCursor("YourInputLinesFileHere", ["[email protected]"]): length = row[0].length für i in range(0,6): point = row[0 ].positionAlongLine(length/5*i) points.append(point) arcpy.CopyFeatures_management(points, 'YourOutputPointsFileHere')

Ich weiß also, dass es mit Python möglich sein muss, bin aber nicht genug damit vertraut, um dies zu manipulieren.


Versuchen Sie dies im Python-Fenster in ArcMap:

points = [] for row in arcpy.da.SearchCursor('C:/Temp/line.shp', ["[email protected]"]): # ändere dies in deine Quellzeilen-Layerlänge = int(row[0].length ) for i in xrange(0, length + 10, 10): # unter der Annahme, dass die Einheiten in Metern für den Raumbezugspunkt des Features sind point = row[0].positionAlongLine(i) points.append(point) arcpy.CopyFeatures_management(points, 'C :/Temp/points.shp') # ändern Sie dies, wo Sie diese Ebene speichern möchten

Sie können dies mit dem Werkzeug Punkte konstruieren im Bearbeitungsmodus erreichen.

Wenn Sie dies für mehrere Features tun müssen, können Sie das Werkzeug Verdichten verwenden und dann Feature-Scheitelpunkte zu Punkten verwenden. Beachten Sie, dass dies davon ausgeht, dass Sie derzeit Linien und keine Polylinien haben, da ALLE Scheitelpunkte (auch einer nicht in Ihrem angegebenen Verdichtungsabstand) ebenfalls zu Punkten werden.

Siehe auch Punkte im Intervall 0,125 Dezimalgrad mit ArcPy erstellen? für ein Python-Beispiel, um diesen Vorgang durchzuführen, und Verwenden von "Punkten konstruieren" auf allen Linien in einem Shapefile (Arcpy) für ein benutzerdefiniertes Werkzeug.


Schau das Video: How to create new polyline in Arc Gis (Oktober 2021).