Mengukur ketidakrataan batas poligon?


13

Saya memiliki dua poligon: Poligon 1 dan Poligon 2.

Dengan menggunakan dua metrik, luas dan panjang perimeter, saya ingin menyatakan secara kuantitatif bahwa Polygon 1 memiliki perimeter yang lebih tidak rata / bergerigi / tidak beraturan daripada Polygon 2.

masukkan deskripsi gambar di sini

Setiap poligon memiliki panjang perimeter yang sama tetapi masing-masing mencakup area yang sangat berbeda. Untuk menghitung ketidakrataan / ketimpangan / ketidakteraturan setiap poligon, harus perhitungannya adalah:

area/perimeter 

atau

perimeter/area 

Saya pikir perimeter/area, tetapi kemudian saya menemukan posting blog ini yang menggunakan area/perimeter: http://www.r-bloggers.com/measuring-the-gerrymander-with-spatstat/


7
Tak satu pun dari rasio itu masuk akal, karena keduanya bergantung pada unit pengukuran. Anda dapat membuatnya independen dari unit dengan membentuk fungsi homogen nol derajatnya seperti perimeter / sqrt (area). Pengukuran semacam itu sering disebut sebagai "tortuosity." Beberapa pendekatan lain dapat ditemukan dengan mencari situs kami di tortuosity .
whuber

Apa pertanyaannya? F1 (X) / F2 (Y) atau F2 (Y) / F1 (X) bukan ukuran yang berbeda, dengan cara yang sama bahwa a bukan ukuran yang berbeda dengan 1 / a.
BradHards

1
@Bradhards Banyak orang berpendapat bahwa a dan 1 / a adalah cara berbeda untuk mengekspresikan kuantitas dasar yang sama, meskipun ada hubungan matematis di antara mereka. The nonlinier dari hubungan ini menyiratkan ini tidak ada perubahan hanya unit. Kedua ekspresi harus dianggap benar-benar berbeda, sama seperti (katakanlah) konsentrasi dan konsentrasi log adalah cara yang berbeda untuk mengekspresikan konsentrasi, atau mil per galon dan galon per mil pada dasarnya adalah cara berbeda dalam mengekspresikan ekonomi bahan bakar. (Dan perhatikan bahwa galon per mil akan diartikan sebagai pemborosan , bukan "ekonomi.")
Whuber

Jawaban:


3

Lihatlah program yang disebut FRAGSTATS ( http://www.umass.edu/landeco/research/fragstats/downloads/fragstats_downloads.html ). Di bagian metrik tambalan disebutkan "Indeks Dimensi Fraktal" yang catatan menyatakan "indeks dimensi fraktal menarik karena mencerminkan kompleksitas bentuk di berbagai skala spasial (ukuran patch). Dengan demikian, seperti indeks bentuk (SHAPE), indeks ini mengatasi salah satu batasan utama rasio perimeter lurus sebagai ukuran kompleksitas bentuk. ” ( http://www.umass.edu/landeco/research/fragstats/documents/Metrics/Shape%20Metrics/Metrics/P9%20-%20FRAC.htm ).


Saya ingin menambahkan bahwa rumus untuk menghitung Indeks Dimensi Fraktal terlihat sederhana untuk dihitung tanpa memerlukan perangkat lunak FRAGSTATS itu sendiri. Rumusnya ditunjukkan pada tautan di atas. Indeks Dimensi Fraktal mendekati 1 untuk bentuk dengan batas yang sangat sederhana seperti kuadrat, dan mendekati 2 untuk bentuk yang sangat kompleks.
user14134

1

Hubungan area ke perimeter tidak berarti banyak, persegi dan persegi panjang mungkin akan dianggap memiliki kerikil yang sama tetapi mereka bisa memiliki perimeter yang sama dan semakin jauh dari persegi persegi adalah, semakin sedikit area.

Untuk menghitung "jaggedness", saya pikir Anda perlu tahu berapa banyak simpul pada sudut yang lebih besar dari 180 derajat. Ini seharusnya tidak terlalu sulit untuk dihitung jika Anda menggunakan toko geometri di mana arah rotasi poligon diketahui (biasanya berlawanan arah jarum jam, dalam hal ini jika Anda pergi dari titik 1 ke titik 2, sudutnya melebihi 180 derajat jika titik 3 ada di sebelah kanan garis yang ditentukan oleh poin 1 dan 2). Kalau tidak, Anda perlu menentukan rotasi terlebih dahulu.


Ini pada dasarnya apa yang saya pikirkan. Semacam "menghitung" sudut tajam pada perimeter.
Baltok

1
Masalah dengan proposal ini adalah bahwa itu tergantung pada bagaimana bentuk diwakili lebih dari pada bentuk itu sendiri, yang membuatnya sewenang-wenang dan tidak dapat diandalkan. Sebagai contoh, seseorang dapat mengganti setiap titik tajam pada suatu bentuk dengan urutan dua simpul dengan jarak sangat dekat yang memiliki sudut kurang dari 180 derajat tanpa secara jelas memodifikasi bentuknya. Pentingnya jawaban ini terletak pada menunjukkan bahwa pertanyaan itu tidak dapat dijawab tanpa memiliki deskripsi operasional tentang apa yang dimaksud dengan "jaggedness".
whuber

Saya berasumsi bahwa "bergerigi" berarti "dengan kecembungan". Contoh bergerigi di atas memiliki sejumlah cekung. Mengambil itu sebagai deskripsi operasional, tidak ada cara untuk membuat cekung dalam poligon tanpa menciptakan sudut yang lebih besar dari 180 derajat sehubungan dengan arah rotasi simpul poligon
Russell di ISC

Saya juga mengasumsikan poligon tidak berpotongan sendiri.
Russell di ISC

1
@Russell Tidak apa-apa tapi tetap tidak berhasil. "Konkavitas" dapat diwakili oleh satu simpul tunggal atau dengan urutan ribuan simpul cekung yang berjarak dekat (yang terjadi, misalnya, ketika fitur dibuat dengan mengurangi buffer fitur lainnya). Sekali lagi, masalahnya adalah bahwa proposal Anda bergantung pada detail representasi bentuk yang tidak relevan daripada pada sifat bawaan dari bentuk itu sendiri. Ini dapat diatasi dengan berbagai cara dengan memperkirakan dimensi fraktal atau kelengkungan total absolut, dll , tetapi jawaban Anda tampaknya tidak mengarah ke arah itu.
whuber

1

Coba Indeks Perimeter Normalisasi ( http://clear.uconn.edu/tools/Shape_Metrics/ ). Indeks perimeter yang dinormalisasi menggunakan lingkaran area yang sama untuk menormalkan metrik. Jadi rumus ini efektif (dengan Python, impor matematika)normPeriIndex = (2*math.sqrt(math.pi*Area))/perimeter

Sebagai contoh Anda:

Poligon 1: Indeks Perimeter Normal = 0,358

Poligon 2: Indeks Perimeter Normal = 0,947

Indeks perimeter yang dinormalisasi membandingkan perimeter input ke poligon paling kompak dengan area yang sama (lingkaran area sama), artinya Anda dapat menggunakannya untuk mengidentifikasi fitur dengan batas tidak beraturan. Hal hebat lainnya adalah mudah dan cepat untuk dihitung.

Anda juga dapat melihat dispersi yang dinormalisasi, yang menghitung jarak rata-rata dari titik di sepanjang perimeter dari centroid (dispersi). Untuk ini Anda juga akan menghitung deviasi, yang merupakan perbedaan rata-rata antara setiap jarak dan jari-jari lingkaran area yang sama, maka rumus terakhirnya adalah (dispersi - deviasi) / dispersi.

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.