การตัดแรสเตอร์ที่มีขอบเขตเวกเตอร์โดยใช้ QGIS?


58

ฉันกำลังใช้ QGIS ฉันต้องการคลิปเลเยอร์แรสเตอร์แรสเตอร์โดยใช้เลเยอร์ขอบเขตผู้ดูแลระบบที่เป็นข้อมูลเวกเตอร์ อย่างไรก็ตามเครื่องมือการประมวลผลทางภูมิศาสตร์ดูเหมือนจะใช้งานได้กับข้อมูลเวกเตอร์เท่านั้น

ฉันจะคลิปชั้นฝนนี้ได้อย่างไร


คุณหมายถึง "vector" จริงๆหรือไม่ที่จะปรากฏขึ้นสองครั้งในคำถามนี้?
whuber

@whuber - ไม่เฉพาะเจาะจง ... มันมีความสำคัญในฟอรัมนี้หรือไม่?
Kirk

ฉันไม่สามารถเข้าใจคำถามได้โดยไม่เปลี่ยน "เวกเตอร์" เป็น "แรสเตอร์" อันใดอันหนึ่ง ผมคิดว่าผมได้รับมันในขณะนี้: คุณพูดคุณคิดเครื่องมือ Geoprocessing เป็นเพียงบังคับเมื่อทุกองค์ประกอบข้อมูลเวกเตอร์ ความสับสนก็คือคุณบอกอย่างชัดเจนว่าเลเยอร์ขอบเขตอยู่ในรูปแบบเวกเตอร์และเนื่องจากเป็นแบบอย่างในทันทีมันทำให้คำถามไม่ชัดเจน
whuber

4
ฉันมีปัญหาเช่นเดียวกับคำถามเดิม - เครื่องมือการตัดโดยใช้ปลั๊กอิน gdal ใช้งานได้ แต่มันเป็นเพียงคลิปในรูปสี่เหลี่ยมผืนผ้า ..... แล้วถ้าคุณต้องการที่จะตัดมันเป็นเส้นขอบประเทศล่ะ?
Matt

คำตอบ:


36

ติดตั้งปลั๊กอิน GDAL จากนั้นใช้เครื่องมือ Clipper
ป้อนคำอธิบายรูปภาพที่นี่


10
ปลั๊กอิน "เครื่องมือกลี" "aka" เครื่องมือแรสเตอร์ "ติดตั้งโดยค่าเริ่มต้นตั้งแต่ qgis 1.5 ถ้าฉันไม่ผิด ไม่จำเป็นต้องติดตั้งด้วยตนเอง
Giovanni Manghi

ฉันพบว่าเครื่องมือนี้เพิ่มวงดนตรีลงในแรสเตอร์ มันใช้คำสั่ง dstalpha
BWill

2
ตามที่ Pablo ได้เขียนเครื่องมือ Clipper เป็นคำตอบ ใน qgis 1.7.0 ชื่อของปลั๊กอินคือ "GdalTools" เครื่องมือ (พร้อมด้วย "Clipper" ที่เรากำลังมองหา) จะถูกเพิ่มเข้าไปในเมนู Raster หลังจากเปิดใช้งานด้วย qgis plugin manager
แอมป์

1
โปรดอย่าว่าข้อมูลแรสเตอร์และเวคเตอร์ต้องถูกบันทึกบนดิสก์ใน CRS เดียวกัน ไฟล์ png อย่างง่ายและเลเยอร์ข้อความที่คั่นด้วย CRS ที่ตั้งค่าไว้ใน QGIS จะไม่ทำงาน
AndreJ

12

หากคุณมีความสนใจใช้งูใหญ่เป็นเอกสารที่ดีที่มีอยู่ใน GeospatialPython.com, ที่นี่

และแหล่งที่มา clipraster.py เป็นที่นี่

การตัด

กระบวนการ:

การตัดแรสเตอร์เป็นชุดของการคลิกปุ่มอย่างง่าย ๆ ในแพ็คเกจซอฟท์แวร์เชิงพื้นที่ระดับสูง ในแง่ของการประมวลผลภาพเชิงพื้นที่นั้นจริงๆแล้วมีขนาดใหญ่มากและมีอาเรย์หลายมิติ การสำรวจระยะไกลที่ง่ายที่สุดคือการดำเนินการทางคณิตศาสตร์ในอาร์เรย์เหล่านี้เพื่อดึงข้อมูลจากข้อมูล เบื้องหลังนี่คือสิ่งที่ซอฟต์แวร์กำลังทำอยู่ (ให้หรือทำตามขั้นตอน):

  1. แปลง vectorfilefile เป็นเมทริกซ์ซึ่งสามารถใช้เป็นหน้ากาก
  2. โหลดภาพเชิงพื้นที่ลงในเมทริกซ์
  3. โยนเซลล์รูปภาพใด ๆ ออกนอกขอบเขตรูปร่าง
  4. ตั้งค่าทั้งหมดนอกขอบเขต shapefile เป็นค่า NODATA (null)
  5. ตัวเลือก: ดำเนินการยืดฮิสโตแกรมบนภาพเพื่อสร้างภาพที่ดีขึ้น
  6. บันทึกภาพผลลัพธ์เป็นแรสเตอร์ใหม่

clipraster.pyลิงค์เสีย พิจารณาอัปเดต Tks
Andre Silva

1
@AndreSilva ฉันเดาว่ามันถูกย้ายไปที่code.google.com/archive/p/geospatialpython/downloads?page=2หรือgithub.com/GeospatialPython/Learn/blob/master/clipraster.zip
AndreJ

8

ฉันขอแนะนำให้ใช้gdalwarpเพราะคุณสามารถเพิ่มประสิทธิภาพของกระบวนการ

ตัวอย่างเช่นหากคุณต้องการตัดแรสเตอร์inraster.tifด้วย Shapefile extent.shp:

gdalwarp -cutline extent.shp -crop_to_cutline -of GTiff  -dstnodata 255 inraster.tif inraster_cropped.tif -co COMPRESS=LZW -co TILED=YES --config GDAL_CACHEMAX 2048 -multi

พารามิเตอร์สองตัวสุดท้ายช่วยให้คุณสามารถเร่งกระบวนการโดยใช้:

  1. การใช้งานแบบมัลติคอร์
  2. การตั้งค่าแคชให้กับฟังก์ชัน

1

ฉันไม่แน่ใจว่าจะทำอย่างไรใน QGIS อย่างไรก็ตามคุณสามารถใช้ซอฟต์แวร์ GIS โอเพ่นซอร์สอื่นเช่น GRASS หรือ GDALWarp เพื่อตัดภาพแรสเตอร์ของคุณ ดูคำตอบ keymirror และ geographika ด้านล่าง

สำหรับโซลูชันที่ใช้ ArcGIS Desktop คุณอาจต้องการดูการตัดแรสเตอร์โดยใช้รูปหลายเหลี่ยมหรือรูปหลายเหลี่ยม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.