Saya memiliki lapisan poligon dengan nilai atribut terlampir yang mewakili jumlah individu di dalam poligon. Saya menggunakan QGIS 3.0.
Saya perlu memvisualisasikan penghitungan sebagai kotak titik di dalam poligon (yaitu 1 poin = 100 katak, diwarnai oleh specie). Titik-titik tidak perlu menempati seluruh poligon, dan lebih disukai digambar di sekitar centroid dengan jarak yang telah ditentukan (yaitu 300 m), sehingga titik-titik tersebut dapat mewakili kisi-kisi yang rapi pada resolusi tertentu.
Solusi saat ini yang saya temukan adalah menggunakan "Poin reguler", dengan parameter jumlah, untuk membuat kisi dalam batas yang digambar pada peta, lalu hapus poin tambahan yang dibuat oleh algoritma (algoritme membulatkan ke kisi dan Anda mungkin mendapatkan 20 poin, bukan 17 di memasukkan). Ini menghasilkan hasil yang diinginkan, tetapi membutuhkan gambar luas area untuk titik reguler untuk setiap poligon, serta input atribut manual dan pembersihan poin yang dibuat. Selain itu, karena saya menjalankan "Poin Reguler" dengan jumlah yang ditentukan, alih-alih spasi, setiap poligon mendapat titik spasi yang berbeda.
Singkatnya: Poin reguler (ditentukan # poin, batas yang ditarik) untuk setiap poligon (batch)> Hapus poin ekstra> tetapkan nilai atribut ke # poin
Alternatif (menghindari jarak yang tidak teratur, tetapi membutuhkan lebih banyak manipulasi):
Poin reguler (jarak yang didefinisikan yaitu 300m) di seluruh lapisan> Klip ke batas poligon> Hapus poin ekstra di setiap poligon sampai Anda mendapatkan # poin yang diinginkan> tetapkan nilai atribut ke poin.
Masalah utama dengan solusi saya adalah pemrosesan poligon demi poligon, yang membuatnya sulit untuk memperbarui data dan bekerja dengan jumlah poligon yang lebih besar.
Pertanyaan analog ditanyakan sebagai Membuat spasi # poin yang didefinisikan secara teratur dalam poligon di QGIS , tetapi spesifiknya berbeda.
sumber
Jawaban:
QGIS 3 hadir dengan metode perpindahan baru di cluster renderer yang disebut kisi. Sepertinya ini yang Anda butuhkan. Cukup buat jumlah titik yang diinginkan di pusat massa poligon Anda.
Saya tidak mengetahui metode untuk menghasilkan poin hanya dengan alat gui, tetapi skrip python yang relatif sederhana harus melakukan itu.
Jika Anda ingin menjadi gila, bungkus dengan algoritma pemrosesan kustom.
sumber
Mungkin cara lain yang menginspirasi oleh jawaban Sarath SRK:
Namun, Anda akan memiliki sesuatu seperti ini
Gunakan à pemodel grafis untuk membuat bidang baru dengan perintah "@row_number"
Jalankan model dengan iterasi pada lapisan buffer
Gabungkan semua layer baru
Hapus semua titik dengan bidang ID_pt lebih besar dari jumlah bidang Anda ("Katak" + "Kucing" + "Diplodocs")
sumber
Anda dapat menggunakan generator geometri untuk ini.
sumber
Salah satu solusinya bisa dengan membuat layer titik dengan titik di pusat massa setiap poligon. Jadi sebagai contoh Anda dapatkan di titik tengah Edmonton 25 titik superposed: 5 dengan atribut katak, 20 poin dengan kucing dan 0 dengan diplodocs.
Kemudian menggunakan renderer perpindahan titik dengan metode Penempatan yang ditetapkan sebagai kisi, Anda harus bisa mendapatkan efeknya.
Kesulitannya adalah membuat layer titik ....
sumber
Alternatif yang sangat sederhana mungkin menggunakan diagram Pie yang tersedia di properti layer? Atribut dan ukuran dapat ditentukan oleh ekspresi.
sumber
Anda bisa menghasilkan titik pada lintasan spiral mulai dari poligon centroid. Posting Stack Overflow berikut memiliki kode python untuk membuat poin yang sama tapi saya tidak bisa mengujinya saat ini karena kurangnya waktu luang saya.
sumber
Dalam kasus anda,
sumber