Çokgenin yuvarlaklığı / kompaktlığı hesaplanıyor mu?


14

Çeşitli çokgenlerin şekillerini nicel olarak tanımlamanın yollarını bulmaya çalışıyorum. Projem için, bu çokgenler gölleri, nehirleri, lagünleri ve parkları temsil ediyor. Böylece neredeyse her şekil olabilirler. Kolay bir metrik, en azından sadece biraz yararlı bir metrik olan çevre ile alanı hesaplamaktır. Ama aynı zamanda çokgenin 'yuvarlaklığı' hakkında bir şeyler söyleyebilmek isterim. Veya şeklin bir haritada ne kadar 'kompakt' olduğu.

Bunu kolayca yapmayı düşünebildiğim tek yol, her çokgenin alanını, o çokgenin (zaten sahip olduğum) bir sınırlama kutusuna göre hesaplamaktır. Ancak bu kötü bir çözüm gibi görünüyor.

Şimdi bunun gibi bir şey daha düşünüyorum - çokgenin centroidini alın, bir dizi artan alan tamponu ekleyin (% 50,% 100,% 150), ardından her bir tampon arasında ne kadar çakışma olduğunu karşılaştırın. orijinal çokgen. Mükemmel bir dairenin% 100 mükemmel örtüşmesi olacak ve her bir çokgenin ne kadar ve ne şekilde farklı olduğunu değerlendirmek için% 50 ve% 150 tamponlarını kullanabilirim.

Ama bu bile hantal hissettiriyor ve muhtemelen başka birinin muhtemelen daha iyi anladığı şey için zayıf bir çözüm gibi.

Referans olarak, en azından çeşitli çokgenlerin şekli için ortaya çıkan endekslere bakabilmem ve kaynaklarına (Dendritik şekilli? Göl / Lagün? Park) nehir hakkında eğitimli bir tahmin yapabilmem gerekecek. ?)


2
Konu hakkında daha derin düşünmek için Roundness Wikipedia makalesine kesinlikle göz atın . Neden sadece çokgenle aynı alan olan sentroid çevresinde bir tampon oluşturmuyorsunuz, daha sonra bir tür skor oluşturmak için tamponun dışındaki alanı ölçüyoruz? Bu veri kümesindeki yalnızca nesneler arasında göreceli yuvarlaklık elde etmeye mi çalışıyorsunuz, yoksa bu veri kümesinin dışındaki diğer çokgenlerle karşılaştırılabilmeleri için mutlak yuvarlaklık mı olması gerekiyor?
Taylor H.

Yanıt için teşekkürler, bu kesinlikle yardımcı olur. Zorluklarımdan biri, sadece alanları karşılaştırmanın yeterli olmayacağıdır - dikdörtgen bir elipsoid, bu endeksi kullanarak dendritik bir şekil ile aynı 'yuvarlaklık indeksine' sahip olabilir. Belki bu yuvarlaklık endeksini çevre / alan ilişkisi ile birlikte kullanmak da bu farklılıkları yakalayabilecektir, daha önce bu tür analizleri yapmadım, bu yüzden düşünmem gerekecek. Sonunda, sadece bir veri kümesindeki şekilleri karşılaştırmam gerekecek, ancak oldukça büyük (1000'ler çokgen)
user25201

Doğru, ancak daha sonra şekilleri en azından basit olandan karmaşık olana doğru sıralamak için alan ve çevre ölçüsü kullanarak bu sonuçları filtreleyebilirsiniz. Bir dendritik şekil nispeten daha düşük bir alan / çevre oranına sahip olacaktır (mükemmel dairenin oranı 1, karenin oranı 0,5 vb.) Kesinlikle kolay bir sorun değil! Sağlam bir "yuvarlaklık puanı" elde etmek için hayal ettiğim birkaç ölçüm kullanmanız gerekecek.
Taylor H.

Girdiniz için teşekkürler - Sanırım bu noktadan itibaren bu endeksleri denemek ve ne tür sonuçları yönetebileceğimi görmek zorundayım. O zaman belki daha fazla yardım için gerekirse daha bilinçli bir soru ile geri dönebilirim. Vaktin için minnettarım!
user25201

İç halkaların (delikler) ve birden fazla parçanın alan-v-çevre karşılaştırmasını işe yaramayacağını unutmayın. Bir metrik oluşturmak için yalnızca dış halkaları kullanabilirsiniz, ancak münferit parçalardan ağırlıklandırma değerleri zor olabilir.
Vince

Yanıtlar:


18

Bir nesnenin kompaktlığı , Polsby-Popper (PP) skoru belirlenerek Polsby-Popper testi kullanılarak ölçülebilir . PP skoru, poligonun alanının 4pi ile çarpılması ve karenin çevresine bölünmesiyle belirlenir. Bunu kullanarak, bir dairenin puanı 1 olur ve diğer herhangi bir geometrik şeklin daha küçük bir oranı vardır.

disk: (4 * PI) * PI * R² / 4PI²R² = 1

kare: (4 * PI) * C² / 16 * C² = PI / 4 ~ = 0.78

Bir başka yararlı indeks, en küçük çevreleyen dikdörtgenin uzunluğu / genişliği olabilir ( minimum sınırlayıcı geometri aracına bakın). Ancak bu durumda kare ve daire birbirine benzer ve içbükeylik göz ardı edilir.

Son bir öneri olarak, çevre ile çalışıyorsanız, "fraktal" etkisinden kaçınmak için (özellikle çokgenleriniz rasterden poligon dönüşümüne gelirse), indeksleri hesaplamadan önce nesnenizi "düzeltmek" için yararlıdır.


Bu yardımcı olur, teşekkürler. Çokgenlerim rasterlerden gelmiyor, ama bu düşünmediğim mükemmel bir nokta! Bunu kesinlikle yapacağım.
user25201

Formüllerin kaynağı?
Taylor H.

Üzgünüm, hatırlamıyorum: - ~. Muhtemelen peyzaj ekolojisi hakkında bir makalede. Uzun zaman önce ilk kez kullandım ve daha fazla rahatlık için "normalleştirme" yi ekledim.
radouxju

3
@Taylor Bu, "kompaktlık" ın birçok olası karakterizasyonundan biridir. Tipik yöntemler, özelliğin alanını, dolambaçlı veya uzamsal ölçüsü ile karşılaştırır. İkinci tedbirler sadece çevreyi değil, aynı zamanda sınırlayıcı özelliklerin çapını ve boyutlarını da içerebilir (minimum alan sınırlayıcı kutu, minimum alan sınırlayıcı elips ve dairesel daire gibi). Daha egzotik olanlar, çeşitli tamponların alanlarını ve tahmini fraktal boyutu içerecektir. Çoğu durumda karşılaşılan zorluk, bu önlemlerin hesaplanmasında değil, hangisinin uygulama ile en alakalı olduğuna karar vermektir.
whuber

4

Benzer bir sorunla karşı karşıya kaldım ve onları birbirine eşit hale getirmek için hem çevresi hem de bir daire alanı için denklemi çözdüm:

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

Bu indeks 0 ile 1 arasındadır, burada 1 mükemmel bir dairedir. Bunun yerleşik bir yöntem olduğunu bilmiyorum ama başka yerde görmüş olabilecek herkesten duymak isterim.


Sıfırdan güzel bir gelişme. bu benim karemde bahsettiğim Polby-Popper'ın mantığıdır, tek farkı karekökünü almanızdır. Eğer kök
saldıysanız

3

Yanıtında radouxju tarafından özetlenen yuvarlaklık formülüne ek olarak ve diğerleri, çokgen alanının minimum sınırlama dairesinin alanına oranı gibi - ST_Area(geom)/(ST_Area(ST_MinimumBoundingCircle(geom)) as rnd_checkPostGIS'de: Genellikle bir 'şüpheli' geometri - ST_NPoints(geom)PostGIS'te.

Yaptığım şeyler, tanımladığınızdan farklı, ancak NPoints filtresinin, mülk parselleri (aslında uzun ve sıska olabilir) ve nehirler ve diğer uzun sıska doğal özellikler arasında ayrım yapmaya yardımcı olduğunu düşünüyorum. Bir nehri sınırlayan garip uzun, sıska özellikli parsel var, ancak anomali kontrolü neden büyük paralar (HA!) iş bitti.

Ayrıca, (iş akışımda) dayanamayacak bazı uzamsal tanımlayıcıların olmaması nadirdir ve her durumda işimin çoğu ayarlanır, böylece 'delta' (zaman içindeki değişiklikler) analiz edilir eğer T = 0'daki veriler temizse ve T ∈ [0, t-1] için hiç kimse 'negatif geliştirmeler' getirmediyse, tüm durum için delta T=t|t-1yarım gün içinde yapılabilir.

Uzun ve sıska bir şeyde bir sürü nokta ve muhtemelen bir nehir ...

Dendritik bir şekle sahip bir rezervuar bu tahminde kesinlikle meydan okuyacaktır, ancak tüm nehir bir çokgen ise (çok şanslı olmalıyız) - ya da yağ ucuna 'dar' uç (dal sayısı).

Göl parkı vs ... Benim Druthers verilen, havadan / uydu görüntüleri ile bunu denemek istiyorum: Bir var Way belirlemek ve özü bir çalışmaktansa, bölge bilindiği kontrol edilecek bir kara / su sınıflandırıcı kullanımı daha kolay sorunu suyun bulunduğu yerin bilinmediği bir görüntüden su bölgesi.

Ayrıca bu cevabı (farklı bir soruya) uzun sıska özellikler arasında ayrım yapmak için çok yararlı buldum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.