Cara klip fitur vektor sejauh dataset raster yang ada menggunakan arcpy

9

Saya memiliki dataset raster yang terpotong dengan polylines (dari alat kontur) overlay (lihat terlampir). Saya mencoba untuk klip polylines ke set data raster, yang tampaknya cukup sederhana, tapi saya sudah mencoba beberapa hal dan sepertinya tidak bisa membuatnya berfungsi. Saya akhirnya akan perlu kode ini menggunakan arcpy tapi saya pikir untuk saat ini, hanya dorongan ke arah yang benar untuk alat yang akan mencapai ini akan membantu saya untuk saat ini.

Terima kasih.

PS Saya menggunakan ArcInfo 10.0

clipPolylinesToRasterExtent

niklas24
sumber

Jawaban:

12

Anda bisa menggunakan luas dataset sebagai geometri poligon dengan alat klip, seperti dalam contoh Menggunakan geometri dalam alat geoprosesing .

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
sumber
Terima kasih!! Sebelum saya melihat posting ini, setidaknya saya bisa melakukannya secara manual di dalam Arc, tapi sepertinya cara saya sedikit berbelit-belit. Saya membuat dummy shapefile dan kemudian membangun poligon dengan alat editor yang menguraikan batas data raster. Kemudian saya menjalankan alat klip pada polyline menggunakan dummy shapefile ini seperti apa yang seharusnya klip mereka juga. Saya mendapat kesalahan, tetapi kemudian saya menggunakan fitur untuk poligon dan menggunakan hasil ini sebagai shapefile untuk polylines yang akan dipasangkan dan berhasil !! Saya akan membutuhkan arcpy jadi terima kasih untuk itu !! :-)
niklas24
2

Ada cara sederhana untuk melakukan ini.

Pertama, dapatkan luasnya gambar raster.

mengaturnya sebagai properti sejauh lingkungan

Kemudian gunakan fitur salin alih-alih analisis klip, misalnya

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