คุณลักษณะการฉายจากชั้นรูปหลายเหลี่ยมหนึ่งไปยังอีกใน QGIS?


16

ฉันมี 2 ชั้นรูปหลายเหลี่ยมซึ่งสามารถพบได้ที่นี่ สองชั้นซ้อนทับกัน ครั้งแรกประกอบด้วยแผนที่ของมณฑลเยอรมันในปี 1928 และครั้งที่สองเป็นจังหวัดในปี 2014

เลเยอร์ 2014 มีข้อมูลเกี่ยวกับประชากร (เรียกว่า Bev ในชุดข้อมูล) เป็นไปได้หรือไม่ที่จะคาดการณ์แอตทริบิวต์ของประชากรจากชั้นรูปหลายเหลี่ยมหนึ่งไปยังอีกชั้นหนึ่ง?

หากต้องการเฉพาะเจาะจงมากขึ้น:

พิจารณาสถานการณ์ที่ฉันมี 2 เขตในชั้นที่มีแอ็ตทริบิวต์ประชากร แต่ในพื้นที่เดียวกันบนชั้นอื่น ๆ มีเพียง 1 เขตเท่านั้น QGIS สามารถรวมประชากรของทั้งสองมณฑลและเขียนข้อมูลนี้ในเลเยอร์อื่นได้หรือไม่?

หากใช้งานได้จะมีวิธีในการทำอย่างไรเมื่อเลเยอร์ที่มีข้อมูลอยู่ในพื้นที่เฉพาะเพียง 1 เขต แต่มีอีก 2 เขตในอีกชั้นหนึ่งหรือไม่? ในกรณีนี้ฉันต้องการแยกสัดส่วนประชากรตามขนาดของเขต


คำตอบนี้จะช่วยให้คุณเริ่มต้นกับเวิร์กโฟลว์ทั่วไป: gis.stackexchange.com/a/136820/10919
Tom

ฉันคิดว่าลิงก์ที่กล่าวถึงข้างต้นเป็นจุดเริ่มต้นที่ดี แต่ (!) แสดงว่าประชากรมีการกระจายอย่างเท่าเทียมกันภายในรูปหลายเหลี่ยมที่ได้รับผลกระทบ ซึ่งไม่ใช่ความจริง
robert tuw

2
... ขอโทษที่พลาดเวลา จำกัด 5 นาที ที่จะดำเนินการต่อ: และถ้าคุณเปรียบเทียบทั้งสองไฟล์รูปร่างเหล่านี้มีความแตกต่างอย่างมีนัยสำคัญในระดับของรายละเอียด - ซึ่งส่งผลให้มากมายของเศษไม้รูปหลายเหลี่ยม ... ดู [link] ( dropbox.com/sh/7w97kjey33k7jdi/ AAARDwyyMryOBwjtY6IrFsh9a? dl = 0 ) ถ้าคุณมีข้อมูลใด ๆ เกี่ยวกับพื้นที่ที่ตัดสินว่าผลเวลาอาจจะดีขึ้นอย่างมีนัยสำคัญ
โรเบิร์ต TUW

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

คำตอบ:


8

Disclaimer:

  1. ฉันเชื่อว่าในกรณีนี้มันจะแม่นยำกว่าที่จะใช้ข้อมูลประชากรจาก 2014 เป็นเลเยอร์จุดที่มีรายละเอียดมากที่สุดเท่าที่จะทำได้ (เซนทรอยด์ของชานเมืองเมืองหมู่บ้าน ... )

  2. ถ้า BEV_ เป็นประชากรจริงๆแล้วมีค่าแปลก ๆ บางอย่างเช่นGEN = Uelzen, BEV_ = 92553 โดยที่รูปหลายเหลี่ยมนี้ถูกนำมาเปรียบเทียบกับพื้นที่รูปภาพดาวเทียมของ Google ที่มีขนาดโคลนในสนามฟุตบอลน้อยที่สุด

หากคุณต้องการรับค่าตัวเลขตามอัตราส่วนของพื้นที่รูปหลายเหลี่ยมซ้อนทับกันระหว่างเลเยอร์ (L1 = counties_2014, L2 = จักรวรรดิเยอรมัน 1928):

  1. ก่อนการคำนวณใด ๆ ฉันแนะนำให้ใช้ระบบพิกัดที่คาดการณ์ไว้ในหน่วยเมตรตามลำดับหน่วยตารางเมตรสำหรับพื้นที่ ในกรณีนี้ฉันใช้ EPSG: 3857
  2. ใน L1 ใช้Field Calculatorสร้างคอลัมน์ " พื้นที่ " และเติมด้วย$ area
  3. Intersect layer - เครื่องมือ Vector / Geoprocessing / Intersect ... - อินพุต = L1, Intersect = L2
  4. ในเลเยอร์ที่ตัดกันให้ใช้เครื่องคิดเลขฟิลด์สร้างคอลัมน์สำหรับประชากรที่ปรับตามพื้นที่ใหม่ " PopArea " และเติมด้วย"ประชากร" * $ area / "Area"
  5. ละลายเลเยอร์ตัดกันด้วยกล่องเครื่องมือการประมวลผล - ค้นหารูปหลายเหลี่ยมที่ละลาย
    • เลือกคอลัมน์ค่ารูปหลายเหลี่ยมที่ไม่ซ้ำกันเช่น "ชื่อ" จาก L2
    • ตรวจสอบคำนวณนาที / สูงสุด / ผลรวม ...และคำนวณบน " PopArea "
    • เลเยอร์สุดท้ายจะมีคอลัมน์sum_dissซึ่งเป็นสิ่งที่คุณเป็นหลังจากนั้น (ในกรณีนี้โดยเฉพาะการปรับประชากรสำหรับ 1928 มณฑลจาก 2014)

ถ้าคุณทำได้ดีแล้วคุณควรจะมีคนกระจายไปประมาณ 77 ล้านคนจากพื้นที่ L2 จาก 81 ล้านใน L1

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


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

@Alex ฉันเชื่อว่าการใช้คะแนนหรือ centroids ในกรณีนี้มาจากมุมมองของฉันไกลเกินไปจากวิธีแก้ปัญหาฉันจะโทรเพียงพอเพราะการทับซ้อนแบบสุ่มมาก คุณจะหลวมข้อมูลมากเกินไป
Miro

9

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

  1. สร้างคะแนนสุ่มในเลเยอร์ 1928 (centroids อาจทำงานได้ดีขึ้นคุณจะต้องตรวจสอบ);
  2. ตัดเลเยอร์จุดกับเลเยอร์ 2014 (จุดเลเยอร์ควรเป็นเลเยอร์อินพุต)
  3. เข้าร่วมคุณสมบัติตามที่ตั้ง เลเยอร์เป้าหมายคือเลเยอร์ 2014 และเลเยอร์จุดเป็นชั้นเข้าร่วม ใช้ประกอบด้วยเป็นเพรดิเคตเรขาคณิต ปล่อยให้ข้อมูลสรุปของคุณลักษณะเป็นค่าเริ่มต้น (คุณลักษณะที่อยู่แรก) เก็บระเบียนทั้งหมดในกล่องแบบเลื่อนลงตารางการเข้าร่วม

ตรวจสอบว่าเลเยอร์เอาต์พุตถูกต้องหรือไม่

หากเป็นไปได้ให้เรียกใช้ผ่านกล่องเครื่องมือประมวลผลใน qgis (ไม่ต้องบันทึกแต่ละเลเยอร์ แต่แทนที่จะบันทึกเป็นเลเยอร์ชั่วคราว)

ไม่แน่ใจว่าคำถามข้อที่สองของคุณก่อให้เกิดอะไร คุณสามารถทำอย่างละเอียด?

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