Bagaimana cara membuat cartograms area yang berdekatan di QGIS atau R?


21

Inilah yang ingin saya capai (di sebelah kanan):

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

Saya mencari alat atau metode untuk mengubah shapefile (dengan QGIS atau R) ke dalam formulir ini. Dan harap diperhatikan: Ini bukan hanya memotong kisi heksagonal atau kisi segi enam! Setiap segi enam harus mewakili jumlah yang sama ukuran (misalnya setiap segi enam mewakili 5.000 pohon).

Mungkin Anda tahu tentang scapetoad! http://scapetoad.choros.ch/ Jadi pada dasarnya saya ingin menghasilkan output yang mirip dengan scapetoad - tetapi dengan grid yang lebih terbatas (?).

sunting: Penyebutan QGis dan R bukanlah batasan - hanya saja saya mencari solusinya. Tentu saja saya senang dengan alat, metode, atau saran apa pun!


4
Judul pada gambar yang Anda referensi menamainya untuk Anda (setidaknya secara umum); begitu juga judul halaman scapetoad itu: itu adalah "cartogram." Lebih khusus lagi, ini adalah kartogram area (bersebelahan) yang menggunakan elemen heksagonal.
whuber

Referensi ini sangat berguna bagi saya untuk melakukan ini di [r]!
jsta

Jawaban:


7

Prosedur yang sedikit lebih memuaskan:

  1. Hasilkan kartogram pada metode 'berbasis difusi' (seperti scapetoad).

    Di QGis:

  2. Buat lapisan heksagonal [Plugin> Qmarxan> Buat Kotak Perencanaan] (gunakan jumlah hexagon yang sesuai / diinginkan). sunting: Tergantung pada tujuan peta, kisi Qmarxans bisa memiliki kualitas yang meragukan. The mmqgis Plugin menghasilkan hasil yang lebih baik (poligon menyelaraskan sempurna).

  3. Bergabung dengan lapisan heksagonal dengan cartogram [Vektor> Alat Pengelolaan Data> Gabung atribut berdasarkan lokasi]

  4. Sekarang layer heksagonal baru memiliki semua properti / atribut dari kartogram, dan dimungkinkan untuk mengakses setiap subunit secara individual.

  5. Untuk menjaga bentuk subunit yang lebih baik, beberapa tweeking manual dimungkinkan: Pilih segi enam dan ubah atribut secara langsung di tabel atribut. Langkah ini paling berhasil, jika lapisannya semi-transparan dan kartogram asli berbasis difusi ditunjukkan di bawah ini.

  6. Menggabungkan heksagon subunit ke satu unit: 1. Pilih semua hexagon subunit (jika banyak: gunakan tabel atribut untuk seleksi). 2. 'beralih edit'> 'menggabungkan fitur yang dipilih'.

Terutama kekurangan b) tetap - tetapi a) diselesaikan dan juga sampai taraf tertentu c) bukan masalah besar lagi, b / c metode ini tidak memakan banyak waktu.

Sunting: Langkah 4. (dan diwarnai sesudahnya) mengarah ke hasil ini (lapisan segi enam transparan di atas, kartogram 'berbasis difusi' di bawah): Ilustrasi "masalah perbatasan"

Hexagon hijau cerah jelas mengambil satu baris ke banyak ...

Adakah ide bagaimana mungkin untuk mencapai penyesuaian atribut gabungan yang lebih baik / sesuai kebiasaan? - Saya mencari metode untuk memberikan algoritma semacam ambang (seperti:> 50% area).


Saya dapat menjamin untuk pendekatan ini, saya telah berhasil melakukannya. Tidak berhasil dengan cara yang memuaskan untuk secara spasial menggabungkan heks ke poligon yang memiliki tumpang tindih terbesar; Saya menduga itu akan membutuhkan postgresql / postgis (Gabung atribut berdasarkan lokasi hanya cocok dengan yang pertama ditemukannya, yang mungkin tidak optimal)
Steven Kay

2

Sementara itu saya akan mempresentasikan ide saya sejauh ini:

  1. Hasilkan kartogram pada metode 'berbasis difusi' (seperti scapetoad).

    Di QGis:

  2. Buat layer-point [Vektor> Alat Penelitian> Poin Reguler].

  3. Klip titik-layer dengan kartogram.

  4. Buat lapisan heksagonal [Plugin> Qmarxan> Buat Kotak Perencanaan] (gunakan jumlah hexagon yang sesuai / diinginkan).

  5. Hitung poin per poligon [Vektor> Alat Analisis> Poin dalam Poligon].

  6. Dalam properti lapisan dari lapisan heksagonal: Terapkan pelabelan berdasarkan aturan (atau kliping) [Filter: "PKTCNT"> = 1].

Itu saja yang saya miliki sejauh ini.

Kekurangannya adalah:

a) Ini hanya bentuk keseluruhan (subunit harus dikerjakan lagi ...)

b) Jumlah Segi Enam agak sewenang-wenang terkait dengan ukuran aktual, dan lebih buruk

c) jika saya ingin mengubah satuan ukuran (misalnya, bukannya 5'000 pohon per segi enam, sekarang saya ingin 100'000 pohon per segi enam = lebih lanjut mengurangi kompleksitas / detail) saya harus melakukan seluruh prosedur lagi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.