Bagaimana cara menghitung berapa banyak poligon yang bisa saya masukkan ke dalam poligon?

9

Saya biasanya menggunakan qgis. Saya menjelaskan masalah saya dengan contoh: ada hutan (geometri tidak teratur1) dan satu pohon (geomery2). Saya ingin tahu jumlah pohon maksimum yang bisa dikandung hutan. Selain itu saya ingin hasil shapefile dari disposisi terbaik dari pohon-pohon ini di dalam hutan.masukkan deskripsi gambar di sini

ksatzu
sumber
3
Masalah yang bagus ....
WKT
Saya tidak tahu bagaimana saya akan memulai. Kedengarannya seperti masalah derajat / algoritma.
HeikkiVesanto
2
Jika Anda dapat memperoleh akses ke percobaan gratis ArcGIS (atau mengunduh R yang gratis), perangkat lunak Geospatial Modeling Environment memiliki gencirclesinpolys (Generate Circles In Polygons)alat yang dapat berguna.
Joseph
2
Anda sedang mencari alat untuk menyelesaikan masalah Pengemasan tetapi saya tidak mengetahui adanya QGIS
underdark
1
@ Joseph Saya menggunakan alat Geospatial Modeling Environment, ini berfungsi. Sayangnya alat ini menghasilkan pengaturan lingkaran yang teratur (atau segi enam) dalam batas poligon, ini menyiratkan bahwa bentuk output tidak menunjukkan (tentu) disposisi terbaik dari fitur, maksud saya jumlah maksimum yang dimungkinkan.
ksatzu

Jawaban:

5

Coba aplikasi ini secara online svgnest.com/

langkah-langkah: 1. svg membuat file (seperti pada Gambar 1); 2. Buka tautan dan unggah svg; 3. Pilih dengan mouse poligon wadah; 4. mulai

setelah beberapa iterasi, Anda dapat mengunci dan mengunduh file svg (lihat Gambar 2)

NB: poligon dan lingkaran harus dalam file svg yang sama

Gambar 1

Gambar 2

Pigreco
sumber
4

Masalah menarik!

Saya telah melakukan hal serupa dengan poligon tidak beraturan (dalam hal ini, bangunan dikemas agar tidak tumpang tindih)

masukkan deskripsi gambar di sini

Digunakan postgresql dan postgis, dan python. Algoritma yang kasar adalah

  • Temukan titik acak di kotak pembatas poligon (ST_Envelope)
  • Jika titik di luar poligon, mundur satu langkah
  • Buat geometri untuk pohon yang berpusat pada titik acak ini
  • Jika itu tumpang tindih dengan pohon yang ditempatkan (ST_Overlaps), kembali untuk memulai
  • Tambahkan pohon di titik
  • Kembali untuk memulai

Saya tidak dapat menjamin ini akan memberikan global yang optimal, Anda akan memerlukan algoritma 'lingkaran pengepakan' untuk itu (seperti yang telah disebutkan orang lain).

Ini akan berlangsung selamanya, jadi Anda harus memasukkan beberapa kode untuk memutuskan kapan harus berhenti, misalnya

  • ketika gabungan area pohon yang ditempatkan adalah persentase tertentu dari area poligon
  • ketika dibutuhkan lebih dari N iterasi untuk menemukan pohon yang tidak tumpang tindih.

Menurut Circle Packing di Wikipedia, kepadatan pengepakan terbaik dicapai dengan kisi heksagonal. Dimungkinkan untuk membuat grid seperti itu menggunakan MMQGIS, yang jaraknya didasarkan pada ukuran pohon Anda, yang saya anggap identik. Kemudian menempatkan pohon di setiap dhuwur. Tetapi kemudian, Anda memiliki masalah untuk mengetahui di mana menempatkan grid untuk memaksimalkan jumlah pohon.

Steven Kay
sumber