So schneiden Sie ein Vektor-Feature mithilfe von arcpy in den Umfang eines vorhandenen Raster-Datasets

9

Ich habe einen abgeschnittenen Raster-Datensatz mit überlagerten Polylinien (aus dem Konturwerkzeug) (siehe Anhang). Ich versuche, die Polylinien auf den Umfang des Raster-Datasets zu beschränken, was einfach zu sein scheint, aber ich habe mehrere Dinge ausprobiert und kann es anscheinend nicht zum Laufen bringen. Ich werde dies irgendwann mit arcpy codieren müssen, aber ich denke vorerst, nur ein Schubs in die richtige Richtung, welches Tool dies erreichen wird, wird mir vorerst helfen.

Vielen Dank.

PS Ich verwende ArcInfo 10.0

clipPolylinesToRasterExtent

niklas24
quelle

Antworten:

12

Sie können die Dataset-Ausdehnung als Polygongeometrie mit dem Clip-Werkzeug verwenden, wie im Beispiel Verwenden von Geometrien in Geoverarbeitungswerkzeugen .

import arcpy

pnt_array = arcpy.Array()
extent = arcpy.Raster(in_raster).extent
pnt_array.add(extent.lowerLeft)
pnt_array.add(extent.lowerRight)
pnt_array.add(extent.upperRight)
pnt_array.add(extent.upperLeft)

poly = arcpy.Polygon(pnt_array)

arcpy.Clip_analysis(in_lines, poly, "out_dataset")
om_henners
quelle
Vielen Dank!! Bevor ich diesen Beitrag gesehen habe, konnte ich ihn zumindest manuell in Arc ausführen, aber es scheint, als ob mein Weg etwas verworren ist. Ich habe ein Dummy-Shapefile erstellt und dann mit den Editor-Werkzeugen ein Polygon erstellt, das die Grenze der Rasterdaten umreißt. Dann habe ich das Clip-Tool auf den Polylinien ausgeführt und dieses Dummy-Shapefile als das verwendet, was es auch schneiden soll. Ich habe einen Fehler erhalten, aber dann habe ich das Feature für das Polygon verwendet und das Ergebnis als Shapefile für die Polylinien verwendet, an denen abgeschnitten werden soll, und es hat funktioniert !! Ich werde arcpy brauchen, also danke dafür !! :-)
niklas24
2

Es gibt einen einfachen Weg, dies zu tun.

Ermitteln Sie zuerst den Umfang des Rasterbilds.

Legen Sie es als Eigenschaft für den Umgebungsumfang fest

Verwenden Sie dann beispielsweise die Kopierfunktion anstelle der Clipanalyse

arcpy.env.extent = arcpy.Extent(-107.0, 38.0, -104.0, 40.0)
...some code here to ...
arcpy.CopyFeatures_management(shapefile,outFeatureClass)
Shabeerali
quelle