วิธีสร้างกราฟพื้นที่ที่ต่อเนื่องกันใน QGIS หรือ R


21

นี่คือสิ่งที่ฉันต้องการบรรลุ (ด้านขวา):

http://junkcharts.typepad.com/.a/6a00d8341e992c53ef0162fd6913e8970d-pi

ฉันกำลังมองหาเครื่องมือหรือวิธีการแปลงรูปร่างไฟล์ (ที่มี QGIS หรือ R) เป็นแบบฟอร์มนี้ และโปรดระวัง: มันไม่ใช่แค่การตัดตารางหกเหลี่ยมหรือตารางหกเหลี่ยม! แต่ละรูปหกเหลี่ยมควรแสดงจำนวนการวัดที่เท่ากัน (เช่นหกเหลี่ยมแต่ละอันแทน 5,000 ต้น)

บางทีคุณอาจรู้เกี่ยวกับ scapetoad! http://scapetoad.choros.ch/ ดังนั้นโดยทั่วไปฉันต้องการสร้างผลลัพธ์ที่คล้ายกับ scapetoad - แต่มีกริดที่ จำกัด มากขึ้น (?)

แก้ไข: การกล่าวถึง QGis และ R ไม่ใช่ข้อ จำกัด - เป็นเพียงที่ที่ฉันกำลังมองหาวิธีแก้ปัญหา แน่นอนว่าฉันมีความสุขกับเครื่องมือวิธีการหรือคำแนะนำ!


4
ชื่อในภาพที่คุณอ้างอิงชื่อสำหรับคุณ (อย่างน้อยโดยทั่วไป); ชื่อของหน้า scapetoad นั้นก็คือ "cartogram" โดยเฉพาะอย่างยิ่งมันเป็นcartogram พื้นที่ (ต่อเนื่อง)ที่ใช้องค์ประกอบหกเหลี่ยม
whuber

ข้อมูลอ้างอิงนี้มีประโยชน์มากสำหรับฉันในการทำเช่นนี้ใน [r]!
jsta

คำตอบ:


7

ขั้นตอนที่น่าพอใจมากขึ้นเล็กน้อย:

  1. จัดทำ cartogram ด้วยวิธี 'แบบอิงการแพร่' (เช่น scapetoad)

    ใน QGis:

  2. สร้างเลเยอร์หกเหลี่ยม [ปลั๊กอิน> Qmarxan> สร้างตารางการวางแผน] (ใช้จำนวนรูปหกเหลี่ยมที่เหมาะสม / ต้องการ) แก้ไข:ขึ้นอยู่กับวัตถุประสงค์ของแผนที่ตาราง Qmarxans อาจมีคุณภาพที่น่าสงสัย mmqgisปลั๊กอินก่อให้เกิดผลลัพธ์ที่ดีมาก (รูปหลายเหลี่ยมจัดได้อย่างสมบูรณ์แบบ)

  3. เข้าร่วมเลเยอร์หกเหลี่ยมกับ cartogram [Vector> เครื่องมือการจัดการข้อมูล> เข้าร่วมคุณสมบัติตามสถานที่]

  4. ตอนนี้เลเยอร์หกเหลี่ยมใหม่จะมีคุณสมบัติ / คุณลักษณะทั้งหมดจาก cartogram และสามารถเข้าถึงแต่ละหน่วยย่อยได้ทีละรายการ

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

  6. การรวมรูปหกเหลี่ยมของหน่วยย่อยเข้ากับหนึ่งหน่วย: 1. เลือกรูปหกเหลี่ยมทั้งหมดของหน่วยย่อย (ถ้ามีมาก: ใช้ตารางแอตทริบิวต์สำหรับการเลือก) 2. 'toggle edit'> 'รวมคุณสมบัติที่เลือกไว้'

ส่วนใหญ่ข้อบกพร่อง b) ยังคงอยู่ - แต่ a) ได้รับการแก้ไขและในระดับหนึ่ง c) ไม่ใช่ปัญหาใหญ่อีกต่อไปวิธีการนี้ใช้เวลาไม่นาน b / c

แก้ไข:ขั้นตอนที่ 4 (และสีที่ตามมา) นำไปสู่ผลลัพธ์นี้ (รูปหกเหลี่ยมโปร่งใสด้านบนส่วนบนของภาพวาดของกราฟโทแกรม 'แบบกระจาย' ด้านล่าง): ภาพประกอบของ "ปัญหาชายแดน"

รูปหกเหลี่ยมสีเขียวสดใสนำหนึ่งแถวไปยัง ...

ความคิดใด ๆ ที่เป็นไปได้ที่จะบรรลุการปรับแต่งที่ดีขึ้น / ที่กำหนดเองของ "คุณสมบัติการเข้าร่วม"? - ฉันกำลังมองหาวิธีที่จะให้อัลกอริทึมบางชนิดของเกณฑ์ (เช่น:> 50% ของพื้นที่)


ฉันสามารถรับรองวิธีนี้ได้สำเร็จ ไม่ได้ผลเป็นที่น่าพอใจในการรวมหกเหลี่ยมเข้ากับรูปหลายเหลี่ยมซึ่งมีการทับซ้อนกันมากที่สุด ฉันสงสัยว่าจะต้องมี postgresql / postgis (เข้าร่วมคุณลักษณะตามสถานที่ซึ่งตรงกับที่พบครั้งแรกซึ่งอาจไม่เหมาะสม)
Steven Kay

2

ในขณะเดียวกันฉันจะแสดงความคิดของฉันจนถึงตอนนี้:

  1. จัดทำ cartogram ด้วยวิธี 'แบบอิงการแพร่' (เช่น scapetoad)

    ใน QGis:

  2. สร้างเลเยอร์จุด [เวกเตอร์> เครื่องมือวิจัย> คะแนนปกติ]

  3. คลิปจุด - เลเยอร์กับ cartogram

  4. สร้างเลเยอร์หกเหลี่ยม [ปลั๊กอิน> Qmarxan> สร้างตารางการวางแผน] (ใช้จำนวนรูปหกเหลี่ยมที่เหมาะสม / ต้องการ)

  5. นับคะแนนต่อรูปหลายเหลี่ยม [Vector> เครื่องมือวิเคราะห์> คะแนนในรูปหลายเหลี่ยม]

  6. ในคุณสมบัติเลเยอร์ของเลเยอร์หกเหลี่ยม: ใช้การติดฉลากตามกฎ (หรือการตัด) [ตัวกรอง: "PKTCNT"> = 1]

นั่นคือทั้งหมดที่ฉันมี

ข้อบกพร่องคือ:

a) นี่เป็นเพียงรูปร่างโดยรวม (หน่วยย่อยจะต้องได้ผลอีกครั้ง ... )

b) จำนวน Hexagons ค่อนข้างเชื่อมโยงโดยพลการกับการวัดจริงและแย่กว่านั้น

c) ถ้าฉันต้องการเปลี่ยนหน่วยของการวัด (เช่นแทนที่จะเป็น 5'000 ต้นต่อหกเหลี่ยมตอนนี้ฉันต้องการ 100'000 ต้นต่อหกเหลี่ยม = ลดความซับซ้อน / รายละเอียดเพิ่มเติม) ฉันต้องทำขั้นตอนทั้งหมดอีกครั้ง

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