Saya mencoba menemukan cara untuk menggambarkan bentuk berbagai poligon secara kuantitatif. Untuk proyek saya, poligon ini mewakili danau, sungai, laguna, dan taman. Jadi mereka bisa bentuk apa saja. Salah satu metrik yang mudah adalah menghitung perimeter vs area, yang terbaik hanya metrik yang sedikit berguna. Tapi saya juga sangat ingin bisa mengatakan sesuatu tentang 'kebulatan' poligon. Atau seberapa 'kompak' bentuknya di peta.
Satu-satunya cara saya bisa memikirkan melakukan ini dengan mudah adalah dengan menghitung luas setiap poligon sehubungan dengan kotak pembatas untuk poligon itu (yang sudah saya miliki). Tapi ini sepertinya solusi yang buruk.
Jadi sekarang saya memikirkan sesuatu yang lebih seperti ini - ambil centroid dari poligon, tambahkan serangkaian buffer area yang bertambah (katakanlah 50%, 100%, 150%), kemudian bandingkan berapa banyak tumpang tindih yang ada antara setiap buffer dan poligon asli. Lingkaran yang sempurna akan memiliki tumpang tindih sempurna pada 100%, dan saya dapat menggunakan buffer 50% dan 150% untuk menilai seberapa banyak dan dengan cara apa setiap poligon berbeda.
Tetapi bahkan itu terasa rumit, dan seperti solusi yang buruk untuk apa yang mungkin sudah dipikirkan orang lain jauh lebih baik.
Sebagai referensi, setidaknya saya harus dapat melihat indeks yang dihasilkan untuk bentuk berbagai poligon, dan dapat membuat tebakan yang terpelajar tentang sumbernya (Sungai? Waduk dengan bentuk dendritik? Danau / Laguna? Taman ?)
Jawaban:
Kekompakan suatu objek dapat diukur menggunakan tes Polsby-Popper dengan menentukan skor Polsby-Popper (PP). Skor PP ditentukan dengan mengalikan area poligon dengan 4pi dan membaginya dengan perimeter kuadrat. Dengan menggunakan ini, lingkaran akan memiliki skor 1 dan bentuk geometris lainnya memiliki rasio yang lebih kecil.
disc: (4 * PI) * PI * R² / 4PI²R² = 1
kuadrat: (4 * PI) * C² / 16 * C² = PI / 4 ~ = 0,78
Indeks bermanfaat lainnya bisa menjadi panjang / lebar dari kotak tertutup terkecil (lihat alat geometri pembatas minimum ). Tetapi dalam kasus ini kuadrat dan lingkarannya sama dan cekung diabaikan.
Sebagai rekomendasi terakhir, jika Anda bekerja dengan perimeter, akan berguna untuk "memuluskan" objek Anda sebelum menghitung indeks, untuk menghindari efek "fraktal" (terutama jika poligon Anda berasal dari konversi raster ke poligon)
sumber
Saya menghadapi masalah yang sama, dan akhirnya menyelesaikan persamaan untuk kedua lingkaran dan luas lingkaran untuk membuat mereka sama satu sama lain seperti:
2 * pi * r = c <=> r = c / 2 * pi pi * r ^ 2 = a <=> r = sqrt (a / pi)
c / 2 * pi = sqrt (a / pi) <=>
sqrt (a / pi)
-------------- = 1
c / 2 * pi
Indeks ini antara 0 dan 1 di mana 1 adalah lingkaran sempurna. Saya tidak tahu apakah ini metode yang mapan, tetapi saya ingin mendengar dari siapa saja yang mungkin melihatnya di tempat lain.
sumber
Selain formula kebulatan yang diuraikan oleh radouxju dalam tanggapannya dan yang lain seperti rasio luas poligon dengan luas lingkaran pembatas minimum -
ST_Area(geom)/(ST_Area(ST_MinimumBoundingCircle(geom)) as rnd_check
di PostGIS: Saya merasa sering membantu untuk memeriksa jumlah simpul / titik dalam suatu geometri 'mencurigakan' -ST_NPoints(geom)
di PostGIS.Hal-hal yang saya lakukan berbeda dari yang Anda gambarkan, tetapi saya menemukan bahwa filter NPoints membantu membedakan antara paket properti (yang sebenarnya bisa panjang dan kurus, tentu saja) dan sungai dan fitur alami panjang-kurus lainnya. Ada paket properti panjang dan kurus yang berbatasan dengan sungai, tetapi memeriksa anomali adalah mengapa kita dibayar mahal (HA!): Mereka selalu memiliki satu sisi (setidaknya) yang lurus untuk sebagian besar dari panjang fitur, jadi pekerjaan sudah selesai.
Juga, sangat jarang (dalam alur kerja saya) bahwa tidak ada beberapa pengidentifikasi aspirasi yang tidak dapat ditanggung, dan dalam banyak kasus banyak pekerjaan saya diatur sehingga kami menganalisis 'delta' (perubahan lintas waktu) jadi jika data pada T = 0 bersih dan tidak ada yang memperkenalkan 'peningkatan negatif' untuk T ∈ [0, t-1], maka delta untuk seluruh keadaan
T=t|t-1
dapat dilakukan dalam setengah hari.Banyak poin dalam hal yang panjang dan kurus dan tidak memiliki garis tunggal yang ... mungkin sungai.
Waduk dengan bentuk dendritik tentu akan menantang dugaan itu, tetapi kemungkinan bahwa penyaringan pada keseluruhan panjang bentuk akan menghasilkan hasil jika seluruh sungai adalah satu poligon (kita seharusnya sangat beruntung) - atau temukan jumlah jalur dari 'menyempit' ujung ke ujung gemuk (jumlah cabang).
Danau vs taman ... Saya akan mencoba melakukan itu dengan citra udara / satelit, mengingat pemabuk saya: itu adalah cara yang lebih mudah untuk menggunakan pengklasifikasi tanah / air di mana daerah yang akan diperiksa diketahui, daripada mencoba mengidentifikasi dan mengekstrak wilayah air dari gambar di mana lokasi air tidak diketahui.
Saya juga menemukan jawaban ini (untuk pertanyaan yang berbeda) sangat berguna untuk membedakan antara fitur lama-kurus.
sumber