ฉันมีไฟล์แรสเตอร์ขนาดใหญ่ (129,600 คูณ 64,800 พิกเซล) ที่มีแหล่งน้ำทั่วโลก (1 บิตค่า 0 และ 1) และพยายามที่จะแยกมหาสมุทรและชายฝั่งน้ำจืด
ฉันได้ลองกับ ArcGIS และ QGIS เพื่อแปลงจาก raster เป็น polyline แต่ใช้เวลานาน
มีใครรู้วิธีที่ดีกว่า / เร็วกว่า (Python หรือ R) หรือเป็นเครื่องมือที่ดีกว่าสำหรับงานนี้หรือไม่?
ปรับปรุง
- R: rasterToContour อาจเร็วและแม่นยำ แต่ถ้าคุณมีชุดข้อมูลขนาดใหญ่มากเช่นฉัน (8,398,080,000 พิกเซล) คุณต้องมี RAM จำนวนมาก (มากกว่า 16GB) หรือบังคับ R เพื่อทำการประมวลผลเพิ่มเติมบนฮาร์ดไดรฟ์และมัน จะใช้เวลานานด้วย
- Python / GDAL: gdal_poligonize สร้างรูปหลายเหลี่ยมแทนโพลีน
อัปเดต 2
- R rasterToContour: rasterToContour ไม่ส่งผลลัพธ์ที่ต้องการ เมื่อเปรียบเทียบกับ ArcGIS (แรสเตอร์ถึงรูปหลายเหลี่ยมตามด้วยคุณสมบัติต่อบรรทัด) จะไม่แยกเค้าร่างพิกเซลที่แน่นอนดังที่แสดงในตัวอย่างด้านล่าง
อัพเดท 3
Python / GDAL: ฉันรัน gdal_polygonize จาก command line กับ ArcGIS ในชุดข้อมูลการทดสอบและผลลัพธ์ชัดเจนมาก:
- gdal: 49 วินาที
- ArcGIS: 1.84 วินาที