Memproyeksikan atribut dari satu lapisan poligon ke lapisan lain di QGIS?

16

Saya memiliki 2 lapisan poligon yang dapat ditemukan di sini . Kedua lapisan tersebut tumpang tindih. Yang pertama berisi peta kabupaten Jerman pada tahun 1928 dan yang kedua kabupaten bagaimana mereka pada tahun 2014.

Lapisan 2014 berisi informasi tentang populasi (disebut Bev dalam dataset). Apakah mungkin memproyeksikan atribut populasi dari satu lapisan poligon ke lapisan lainnya?

Untuk lebih spesifik:

Pertimbangkan situasi di mana saya memiliki 2 kabupaten di layer dengan atribut populasi tetapi di area yang sama di layer lain hanya ada 1 county. Bisakah QGIS mengagregasi populasi kedua kabupaten dan menulis informasi ini ke lapisan lain?

Jika ini berhasil, apakah ada cara untuk melakukannya ketika layer dengan informasi hanya memiliki 1 county tetapi ada 2 county di layer lain? Dalam hal ini saya ingin membagi populasi proporsional dengan ukuran county.

Alex
sumber
Jawaban ini seharusnya membuat Anda memulai alur kerja umum: gis.stackexchange.com/a/136820/10919
Tom
Saya pikir tautan yang disebutkan di atas adalah titik yang baik untuk memulai - tetapi (!) ini menyiratkan bahwa populasi terdistribusi secara merata dalam poligon yang terkena dampak. yang bukan fakta
robert tuw
2
... maaf melewatkan batas waktu 5 menit. untuk dilanjutkan: dan jika Anda membandingkan kedua file bentuk ini ada perbedaan signifikan dalam tingkat detail - yang menghasilkan segudang poligon sliver ... lihat [tautan] ( dropbox.com/sh/7w97kjey33k7jdi/ AAARDwyyMryOBwjtY6IrFsh9a? Dl = 0 ). jika Anda memiliki informasi tentang area yang diselesaikan pada saat itu, hasilnya dapat ditingkatkan secara signifikan
robert tuw
... misalnya, data tutupan lahan corine gratis dapat membantu mengidentifikasi area yang saat ini telah diselesaikan dan dengan demikian meningkatkan hasil alokasi populasi berbasis area.
robert tuw

Jawaban:

8

Penolakan:

  1. Saya percaya dalam kasus khusus ini akan jauh lebih akurat untuk menggunakan data populasi dari 2014 sebagai lapisan titik dengan sedetail mungkin (centroid dari pinggiran kota, kota, desa ...)

  2. Jika BEV_ benar-benar populasi maka ada beberapa nilai yang sangat aneh seperti GEN = Uelzen, BEV_ = 92553 di mana poligon ini dibandingkan dengan area gambar satelit Google dengan ukuran lumpur dari beberapa bidang sepakbola maksimum.

Jika Anda benar-benar ingin mendapatkan nilai angka berdasarkan rasio area poligon tumpang tindih antar lapisan (L1 = counties_2014, L2 = kekaisaran jerman 1928):

  1. Sebelum perhitungan apa pun saya sarankan untuk menggunakan sistem koordinat yang diproyeksikan dalam satuan meter, masing-masing unit meter persegi untuk area. Dalam hal ini saya menggunakan EPSG: 3857
  2. Di L1 gunakan Kalkulator Bidang , buat kolom " Area " dan isi dengan $ area
  3. Lapisan berpotongan - Vektor / Alat Geoprosesing / Berpotongan ... - Input = L1, Intersect = L2
  4. Di layer Intersected gunakan Field Calculator , buat kolom untuk populasi yang disesuaikan dengan area baru " PopArea ", dan isi dengan "Population" * $ area / "Area"
  5. Larutkan layer Intersected dengan Processing Toolbox - temukan Dissolve Polygons
    • pilih beberapa kolom nilai poligon unik seperti "Nama" dari L2
    • periksa Hitung min / maks / jumlah ... dan hitung di " PopArea "
    • lapisan terakhir akan memiliki jumlah sum_diss kolom yang Anda cari (dalam hal ini populasi yang disesuaikan untuk 1928 kabupaten dari 2014)

Jika Anda melakukannya dengan baik, Anda harus mendapatkan sekitar 77 juta orang yang didistribusikan berdasarkan wilayah kabupaten L2 dari 81 juta di L1.

masukkan deskripsi gambar di sini

Miro
sumber
Terima kasih atas jawaban anda. Mengenai dua poin pertama: Saya juga mencoba untuk mencapai apa yang saya inginkan dengan centroid. Ini bekerja cukup baik tetapi terutama untuk poligon yang lebih kecil, pencocokan tidak bekerja dengan baik. Saya pikir data populasi entah bagaimana tercampur. Tapi itu hanya masalah kecil yang bisa saya selesaikan sendiri.
Alex
@Alex Saya percaya menggunakan titik atau centroid dalam hal ini dari sudut pandang saya terlalu jauh dari solusi yang saya sebut cukup karena tumpang tindih yang sangat acak. Anda akan kehilangan terlalu banyak data dengan cara itu.
Miro
9

Jika saya memahami pertanyaan Anda dengan benar, ini dapat menyelesaikan pertanyaan pertama Anda. Saya melakukan tes cepat dan metode berikut ini tampaknya berhasil tetapi perlu melihat lebih dekat untuk memverifikasi apakah itu benar.

  1. buat titik acak di lapisan 1928 (centroid mungkin bekerja lebih baik. Anda harus memeriksa);
  2. memotong lapisan poin dengan lapisan 2014 (lapisan poin harus menjadi lapisan input);
  3. Gabung atribut berdasarkan lokasi. Lapisan target adalah lapisan 2014 dan lapisan poin adalah lapisan gabungan. Gunakan mengandung sebagai predikat Geometris. Biarkan ringkasan atribut sebagai default (fitur pertama yang ditemukan). Simpan semua catatan di kotak turun bawah tabel Bergabung.

Periksa untuk melihat apakah lapisan output sudah benar.

Jika mungkin jalankan melalui kotak alat pemrosesan dalam qgis (tidak harus menyimpan setiap lapisan tetapi simpan sebagai lapisan sementara).

Tidak yakin apa pertanyaan kedua Anda. bisakah kamu menguraikan?

PyMapr
sumber