จะคำนวณพื้นที่ที่มีอิทธิพลใน QGIS ได้อย่างไร?


10

ฉันกำลังพยายามสร้างเลเยอร์รูปหลายเหลี่ยมที่แสดงรูปหลายเหลี่ยมที่สอดคล้องกับร้านค้าใกล้เคียงที่สุด

สำหรับชุดของที่ตั้งร้านค้า 30 แห่งผลลัพธ์ควรเป็นเลเยอร์รูปหลายเหลี่ยมที่มีคุณสมบัติ 30 รายการโดยหนึ่งแห่งสำหรับแต่ละร้านค้า คุณสมบัติแต่ละอย่างจะแสดงพื้นที่ที่ร้านค้านั้นใกล้เคียงที่สุด ตัวอย่างเช่นที่อยู่ภายในรูปหลายเหลี่ยม 12 หมายความว่าร้านค้า 12 ใกล้เคียงที่สุด

ฉันมีเลเยอร์ตำแหน่งร้านค้าและเลเยอร์ถนน OSM พร้อมคอลัมน์ความเร็วสูงสุด ชั้นรูปหลายเหลี่ยมที่เกิดขึ้นควรเป็นไปตามเลเยอร์ถนน OSM ไม่ใช่พื้นที่เชิงเส้น

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

นี้วิดีโอของซอฟต์แวร์ Maptitude ให้เป็นตัวอย่างที่สมบูรณ์แบบของสิ่งที่ฉันพยายามที่จะบรรลุ (เร็วไปข้างหน้าเพื่อ 01:55 ของวิดีโอ) หรือดูตัวอย่างด้านล่าง:

พื้นที่ที่มีคนทำแผนที่อยู่ใกล้กับโรงพยาบาลมากที่สุด

สำหรับโรงพยาบาลแต่ละแห่งมีพื้นที่ที่สอดคล้องกันซึ่งมีสิ่งใดในพื้นที่นั้นใกล้กับโรงพยาบาลที่ตั้งอยู่ในพื้นที่นั้น

ฉันจะทำซ้ำสิ่งนี้โดยใช้ QGIS ได้อย่างไร

คำตอบ:


8

หญ้าอัลกอริทึมv.net.allocสามารถผลิตซับเน็ต - คุณสามารถเรียกมันได้จากกล่องเครื่องมือประมวลผล (ทดสอบใน QGIS 2.16)

คุณจะต้องมีเลเยอร์จุด (สำหรับสิ่งอำนวยความสะดวก) และเลเยอร์บรรทัดที่มีค่าใช้จ่าย (ทั้งเวลา / ความยาว) มันจะสร้างเลเยอร์บรรทัดใหม่พร้อมฟิลด์ที่เรียกว่าcatเพิ่มซึ่งจะเป็นรหัสของสิ่งอำนวยความสะดวกที่ใกล้ที่สุด

นี่คือตัวอย่างจากการเดินไปผับที่ใกล้ที่สุด แต่ละส่วนของเส้นมีสีโดยcatใช้สีแบบสุ่ม: -

ตัวอย่าง v.net.alloc

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

ในการรับรูปหลายเหลี่ยมที่ไม่มีช่องว่างเช่นที่คุณแสดงด้านบนฉันนิ่งงัน หากคุณ 'แยกโหนด' บนผลลัพธ์และใช้ 'นูนออกมา' (จัดกลุ่มตาม cat) จะมีช่องว่างและทับซ้อนกัน

แก้ไข

คุณสามารถได้รับผลลัพธ์ที่ต้องการอย่างแน่นอน ตามที่คุณแนะนำไว้ในความคิดเห็นของคุณคุณสามารถทำสิ่งต่อไปนี้ ..

  • รันแยกโหนดบนเอาต์พุตของ v.net.alloc
  • เรียกใช้Voronoi รูปหลายเหลี่ยมบนชั้นของโหนดสกัด
  • เรียกใช้บัฟเฟอร์ระยะทางคงที่เพื่อให้แน่ใจว่ารูปหลายเหลี่ยมซ้อนกัน (เช่นบัฟเฟอร์ 1 เมตร)
  • เรียกใช้ละลายบนเลเยอร์บัฟเฟอร์โดยใช้ฟิลด์ 'cat'

นี่คือผลลัพธ์ ... มันไม่สมบูรณ์แบบบางครั้งคุณจะเห็นบางส่วนของเครือข่ายถนนหลงทางในรูปหลายเหลี่ยมเพื่อนบ้าน

ป้อนคำอธิบายรูปภาพที่นี่

มี 'กับดัก' ใน 2.16 GUI ใหม่สำหรับการละลาย ฉันตั้งค่าสนาม แต่มันดูเหมือนจะละลายทุกอย่าง คุณต้องจำไว้ว่าให้ยกเลิกการเลือกช่องทำเครื่องหมาย 'ละลายทั้งหมด' หรือการตั้งค่าฟิลด์จะถูกละเว้น


สิ่งนี้มีประโยชน์และฉันสามารถใช้ผลลัพธ์ในใบสมัครได้อย่างแน่นอน ฉันจะออกจากที่เปิดชั่วคราวเพื่อดูว่ามีวิธีที่จะจบลงด้วยรูปหลายเหลี่ยม เป็นไปได้ไหมว่าการใช้เครื่องมือ Voroni Polygons จะช่วยได้บ้าง?
ge0m3try

Voronoi บนสิ่งอำนวยความสะดวกของคุณจะให้การประมาณตามระยะทาง Euclidian "เป็นอีกาบิน"ดังนั้นมันจะข้ามเครือข่ายถนนของคุณอย่างมีประสิทธิภาพ
Steven Kay

ฉันอยากรู้อยากเห็นถ้าฉันจะแยกโหนดในผลลัพธ์ v.net.alloc, voroni นั้นแล้วละลายรูปหลายเหลี่ยมการลงคะแนนตามตัวระบุสิ่งอำนวยความสะดวกที่ไม่ซ้ำกัน ขนาดของชุดข้อมูลถนนมีขนาดใหญ่มากดังนั้นฉันจะไม่สามารถทดสอบได้อย่างรวดเร็ว แต่ในระหว่างนี้อาจมีความคิดบางอย่างเกี่ยวกับสาเหตุที่อาจไม่สามารถใช้งานได้
ge0m3try

อันที่จริงลางสังหรณ์ของคุณถูกต้อง - ลองเลย
Steven Kay

2
หมายเหตุสำคัญ: มีปัญหาเล็กน้อยกับเวิร์กโฟลว์นี้ที่ฉันได้คิดวิธีเอาชนะ เครื่องมือบัฟเฟอร์ระยะทางคงที่ไม่จำเป็น Dissolveเครื่องมือSAGA ดูเหมือนจะเร็วกว่า QGIS ที่เทียบเท่ากันมาก และดูเหมือนว่าเร็วกว่าที่จะแยกVoronoiเลเยอร์ทีละcatฟิลด์แล้วdissolveแต่ละพื้นที่แยกจากกัน Mergeพวกเขากลับมารวมกัน จากนั้นรัน GRASS v.cleanและเลือกเครื่องมือrmduplเพื่อลบโหนดที่ซ้ำกัน นี่เป็นสิ่งสำคัญกระบวนการอื่น ๆ เช่นการตัดการรวมเชิงพื้นที่ทั้งหมดจะไม่สามารถทำงานได้อย่างถูกต้องใน voronoi lauyer ที่ละลายแล้ว
ge0m3try
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.