วิธีการตัดฟีเจอร์เวกเตอร์ตามขอบเขตของชุดข้อมูลแรสเตอร์ที่มีอยู่โดยใช้อาร์คปี


9

ฉันมีชุดข้อมูลแรสเตอร์ที่ถูกตัดด้วย polylines (จากเครื่องมือรูปร่าง) ซ้อนทับ (ดูที่แนบมา) ฉันพยายามคลิป polylines เท่าชุดข้อมูล raster ซึ่งดูเหมือนง่ายพอ แต่ฉันลองหลายสิ่งหลายอย่างและดูเหมือนจะไม่สามารถใช้งานได้ ในที่สุดฉันจะต้องใช้รหัสนี้โดยใช้ arcpy แต่ตอนนี้ฉันคิดว่าเพียงสะกิดไปในทิศทางที่ถูกต้องว่าเครื่องมือใดที่จะทำให้สำเร็จสิ่งนี้จะช่วยฉันได้ในตอนนี้

ขอบคุณ

PS ฉันใช้ ArcInfo 10.0

clipPolylinesToRasterExtent

คำตอบ:


12

คุณสามารถใช้ขอบเขตชุดข้อมูลที่เป็นรูปทรงเรขาคณิตรูปหลายเหลี่ยมด้วยเครื่องมือคลิปในขณะที่รูปทรงเรขาคณิตที่ใช้ใน Geoprocessing เครื่องมือตัวอย่างเช่น

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")

ขอบคุณ!! ก่อนที่ฉันจะเห็นโพสต์นี้ฉันสามารถทำมันด้วยตัวเองได้อย่างน้อยภายในอาร์ค แต่แน่ใจว่าดูเหมือนว่าทางของฉันจะสับสนเล็กน้อย ฉันสร้างรูปร่างหุ่นจำลองแล้วสร้างรูปหลายเหลี่ยมด้วยเครื่องมือแก้ไขที่ระบุขอบเขตของข้อมูลแรสเตอร์ จากนั้นฉันก็เรียกใช้เครื่องมือคลิปบน polylines โดยใช้รูปร่างหุ่นจำลองนี้เป็นสิ่งที่ควรคลิปด้วย ฉันได้รับข้อผิดพลาด แต่จากนั้นฉันใช้ฟีเจอร์เพื่อสร้างรูปหลายเหลี่ยมและใช้ผลลัพธ์นี้เป็นรูปแบบไฟล์สำหรับให้ polylines ถูกตัดและมันใช้งานได้ !! ฉันจะต้อง arcpy ขอบคุณมากสำหรับสิ่งนั้น !! :-)
niklas24

2

มีวิธีง่าย ๆ ในการทำเช่นนี้

ก่อนอื่นให้ได้ภาพขอบเขตของภาพแรสเตอร์

ตั้งเป็นคุณสมบัติขอบเขตของสภาพแวดล้อม

จากนั้นใช้คุณสมบัติการคัดลอกแทนการวิเคราะห์คลิปตัวอย่างเช่น

arcpy.env.extent = arcpy.Extent(-107.0, 38.0, -104.0, 40.0)
...some code here to ...
arcpy.CopyFeatures_management(shapefile,outFeatureClass)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.