Nokta kümelerinin poligon sınırlarına dönüştürülmesi?


27

Nokta kümelerini kendi poligon sınırlarına dönüştürmeye çalışıyorum. Bunun bir Voronoi diyagramı veya Convex Hull gibi bir şey olduğunu düşünüyorum, fakat tam olarak değil. Bunun için teknik bir terim olduğundan eminim, ama ben CBS'ye yeni başladım.

Muhtemelen en iyi aşağıdaki resimle gösterilmiştir:

görüntü tanımını buraya girin

Öyleyse 4 nokta kümesi (her biri kendi renginde belirlenir) verilen her bir nokta kümesini çevreleyen dört poligon nedir, öyle ki çokgenler arasındaki boşluk marjları maksimuma çıkarır ve tüm poligonlar bir araya gelir?

İşte 3 puanla basitleştirilmiş bir örnek:

  • A, 43.656943, -79,393928, mavi
  • B, 43,66663, -79,402682, yeşil
  • Yeşil C 43.656447, -79,408004,

Mantıklı olması için aşağıdaki grafiği görmeniz gerekir: görüntü tanımını buraya girin

Temel olarak, her noktanın bir rengi vardır ve başlamak için belirli bir mesafeden bir arabellek genişletirsiniz.

Zor kısım, diğer noktalarla (sınırları) çarpışma olduğunda ve bu sınırı nerede hesaplayacağınızdır. Sonuç, bir çokgen kümesidir (her renk / küme için bir tane).


1
Bazı örnek veri gönderebilir misiniz? Bu şekilde çözümleri test edebiliriz :)
RK

Yukarıda bir örnek ekledim. Umarım bu yardımcı olur.
DFx


1
Tamam, sanırım yapmam gereken, tüm renklerin tüm noktalarını almak ve Voronoi'yi üzerlerinde göstermek. Ondan sonra, aynı renklere sahip olan elde edilen poligonları bir araya getirin. Sonunda çokgen takımımı almalıyım (her renk için bir tane). Bunu tam olarak QGIS'te nasıl yapacağımdan emin değilim ...
DFx

2
Kesin olarak ne demek "boşluk bırakarak marjları maksimize edersiniz"? Bunun cevabı çözümü belirler.
whuber

Yanıtlar:


24

Puan katmanınızdan

görüntü tanımını buraya girin

Voronoi plogyons oluşturabilirsiniz

görüntü tanımını buraya girin

Bu da sonuçlanacak

görüntü tanımını buraya girin

Sonra Delauney nirengi sürecinden bir maske oluşturun

görüntü tanımını buraya girin

görüntü tanımını buraya girin

Ve sonra onunla Voronoi çokgen katmanını kır.

görüntü tanımını buraya girin

Bu yeterince iyi olur mu?

Delauney üçgenleştirme maskenizi nokta katmanınızın tamponu ile birleştirmeyi de deneyebilirsiniz

görüntü tanımını buraya girin

ve Voronoi çokgenlerini kesmek için bunu kullan

görüntü tanımını buraya girin


5
Ayrıca temsil etmeye çalıştığınız birleştirilmiş çokgenleri vermek için Delauney veya Voronoi çokgenlerinde yalnızca bir DISSOLVE (Vector-> Geoprocessing menüsünden) çalıştırabilirsiniz.
RyanDalton

+1 - beni yendi ... birleştirilmiş tampon üzerinde iyi düşünmek, ve @ RyanDalton'ın önerisini çözmesiyle bu asıl soruya cevap vermeli!
Simbamangu

21

Voronoi poligonları çözünmüş halde size ilk kısmı verecektir. Puanlarınızla başlayarak, her setin kendine özgü bir tanımlayıcısı olmalıdır (bu örnekte 'col'). Nokta kümesiyle üç sütun değeri: görüntü tanımını buraya girin

Vector | Geometry tools | Voronoi% 20 arabelleğe sahip çokgenler size 'noktalar arasındaki sınırı' verir: görüntü tanımını buraya girin

Vector | Geoprocessing tools | Dissolve ile çözünme değişkeni olarak 'col' kullanımı, her nokta kümesinin etrafında birleştirilmiş çokgenler sağlar: görüntü tanımını buraya girin

Vector | Geoprocessing tools | Convex gövdeleri, çözülmüş sınırları kesmek için kullanabileceğiniz noktaların çevresinde size bir dışbükey sınır verebilir: görüntü tanımını buraya girin görüntü tanımını buraya girin

Ancak, ilk örneğinizden içbükey bir gövde (artı biraz tampon mesafesi?); içbükey gövde bulamadığım bir fonksiyondur; PostGIS'in işlevi var .


Müthiş - teşekkürler bu harika bir cevap. Daha ayrıntılı talimatlar nedeniyle sadece RK'ya veriyorum, ama gerçekten minnettarım!
DFx

@DFx - endişelenmeyin, sonunda neyle sonuçlanacağınızı görmek istersiniz (belki de orijinal sorunuzu bazen tam çözümle düzenleyin).
Simbamangu

@Simbamangu cevabınızı anlayabilirim ama bu konuda küçük bir şüphem var. Çokgenleri dönüştürdüğü renge göre dönüştürmeye çalıştığımda dönüştürüyor ama sadece tek bir renk poligonu gibi.
Arun

Arun - muhtemelen sadece belirli bir alanda değil, sadece geometride çözmeyi seçtiniz. Veya sonuçta ortaya çıkan katmana stil vermediniz. (Sorunun 2 yıl yaşlı olduğunu biliyorum, ama belki başkalarında da var)
14
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.