การบรรลุเป้าหมายนี้ค่อนข้างเป็นงานขั้นพื้นฐานใน GIS อย่างไรก็ตามวิธีการใน QGIS อาจไม่น่ารำคาญ โอกาสที่ดีที่สุดของคุณคือการใช้r.walk
ฟังก์ชั่นของ GRASS ซึ่งสร้างพื้นผิวแบบต้นทุน anisotropic (ความชัน + ความชัน + ปัจจัยอื่น ๆ )
ครั้งแรกที่คุณจะต้องสร้างแรงเสียดทานพื้นผิวเป็น input r.walk
ไปยัง ในกรณีของคุณอาจเป็นแรสเตอร์ที่มีค่าเดียว (1.0) ที่ตรงกับขอบเขตของ DEM ของคุณ คุณสามารถสร้างมันได้ด้วยr.mapcalculator
สูตร: A*0+1
โดยที่ A คือ DEM ของคุณ
ถัดไปคุณต้องเลือกชุดจุดเริ่มต้นจาก CSV ของคุณ เหล่านี้คือคะแนนพื้นผิวต้นทุนสะสมจะถูกคำนวณจาก คุณต้องสร้างพื้นผิวค่าใช้จ่ายส่วนบุคคลจากทุกจุดเริ่มต้น อาจเป็นการดีที่จะกำหนดจุดสิ้นสุดที่เกี่ยวข้องกับทุกจุดเริ่มต้นในขั้นตอนนี้ (ในแต่ละชั้นนอกหลักสูตร) หลังจากนั้นคุณสามารถรันr.walk
ด้วยอินพุตที่สร้างขึ้น จุดเริ่มต้นอาจอยู่ในเลเยอร์เดียวคุณสามารถวนซ้ำโดยใช้ลูกศรสีเขียวในกล่องโต้ตอบ
ในกรณีที่เหมาะสมที่สุดคุณมีพื้นผิวต้นทุนและจุดสิ้นสุดสำหรับทุกพื้นผิวต้นทุน ในทางทฤษฎีคุณสามารถหาเส้นทางที่มีค่าใช้จ่ายน้อยที่สุดr.drain
แต่สำหรับฉันแล้วมันเกิดข้อผิดพลาด (python ไม่สามารถนำเข้าไลบรารี QgisRaster) หากคุณทำงานในปัญหาเดียวกันคุณสามารถไปกับอัลกอริทึม "เส้นทางค่าใช้จ่ายน้อยที่สุด" ของ SAGA มันจะสร้างจุดและเลเยอร์บรรทัดสำหรับทุกจุดสิ้นสุดด้วยพื้นผิวต้นทุน (ใช้ปุ่มวนซ้ำอีกครั้ง) หลังจากคุณมีทุกบรรทัดคุณสามารถรวมมันเข้าไปในไฟล์รูปร่างเดียวด้วยเครื่องมือ "ผสานรูปร่างเลเยอร์" ของ SAGA
วิธีนี้อาจช้ามากเมื่อมีการเพิ่มคะแนนดังนั้นถ้าคุณมีจำนวนมากคุณอาจลองใช้วิธีอัตโนมัติด้วย python ยังคงมีเวลาอีกมากในการคำนวณ (โดยเฉพาะพื้นผิวต้นทุน) แต่คุณไม่ต้องสร้างเลเยอร์จุดสิ้นสุดจำนวนมากด้วยตนเอง