QGIS kullanarak vektör nokta verilerindeki kümeleri belirleme


34

Kırsal genişbant veri noktalarının (ne kadar hızlı, vb.) Bir vektör veri kümesine sahibim ve benzer özelliklere sahip nokta kümeleri olup olmadığını araştırmak ve bunları içeren çokgenler çizmek istiyorum.

Örneğin, bir peyzaj üzerinde dağıtılmış tek bir PostGIS veri kümesinde 45.000 puanım olabilir. Birbirinin x km içerisindeki ve hızın y kbps'nin altında olduğu kümeleri tanımlamak ve her nitelikli küme için dışbükey gövdeler üretmek istiyorum.

Örneğin bunu QGIS'de yapmanın basit bir yolu var mı?


3
Geniş bandın doğasına dikkat etmek isteyebilirsiniz. Kentsel alanlarda yüksek hızlar oluşacak; endüstriyel şirketler; CO'lardan, modemlerden ve diğer fiber / kablo / DSL altyapısından karayollarında yayılan; ve belirli hücre kulelerinden yayın ("geniş bant" tanımınıza bağlı olarak). Böylece, yüksek hızlar kümelenmeye görünecek ve düşük hızlar kümelerdeki boşluklara benzeyecektir . Özellikle, dışbükey gövdelerin düşük hızlı bölgelerin iyi tanımları olması pek mümkün değildir. Ne bulduğunuzu "kümeleri" ne şekilde yorumlamak istediğinizi bilmek iyi olurdu.
whuber

Yardım için teşekkürler. Kablolu genişbant mimarisinin sokak direkleri ve direklere direk olarak beslenen çizgilerin ve örneğin alanların coğrafyası üzerindeki dağılımından dolayı olağan dışı durumlara neden olabileceği daha fazla kırsal alanı inceliyorum. Sonuç olarak, yerel çözümler oluşturmak için yararlı bir başlangıç ​​noktası olabilecek ve bir strateji geliştirmede önemli bir adım olabilecek kümeleri bulabilirsiniz. Aslında, endüstriyel mirastan veya demiryolu hatları ve geçmeleri zor olan nehirler gibi şeylerden dolayı onları kentsel alanlarda bile bulabilirsiniz.
Adrian

Yanıtlar:


15

Birkaç önerimden bazılarını bir araya getirip kendi başıma biraz ekledim ve benim için iyi sonuç veren bir çözüm buldum - QGis'den!

İlk önce doğru ortak özelliklere sahip olan noktaları bulmak için bir PostGis SELECT çalıştırdım ve birbirlerinin x km uzağında uzandım:

SELECT DISTINCT s1.postcode, s1.the_geom, s1.

(Manning'in çok iyi PostGis in Action kitabında, sadece bir katılım ekleyerek)

Daha sonra Carson Farmer'ın ManageR eklentisini yükledim ve katmanı içe aktardım. Buradan ben önerdi PAM kümeleme işlemini takiben burada ve Konveks Kabuklar fTools kullanarak saniyeler içinde hesaplandı hangi bir şekil dosyasına sonucu ihraç (Carson etrafında olsun!).


PostGIS'in Uygulamadaki ilk baskısı artık basılmıyor. İşte manning.com/books/postgis-in-action-second-edition adresinin 2. baskısına ve ücretsiz manning-content.s3.amazonaws.com/download/a/… olan ilk bölüme bir link. PostGIS
Martin Hügi

8

QGIS çözümü olmasa da, kişisel olarak SaTScan kullanarak keşif analizini tercih ederim . Hızlı, iyi belgelenmiş ve yaygın şekilde uygulanmaktadır, bu nedenle başlangıçta sorun yaşamanız gerekir. 45k puan olsa da biraz RAM gerektirebilir.

Doğrudan Postgres'ten okuyabildiğinden emin değilim, ancak dbf ve metin dosyalarından kolayca içe aktarılabilir.

Analizin çıktısı Postgres veya QGIS'e kolayca okunabilir. Dairesel kümeleri veya elipsleri aramaya karar verebilirsiniz (verilerinizde belirli yerleşim biçimleri varsa, örneğin vadilerde uzun şekilli şehirler / köyler vb. Kullanmak için yararlı olabilir). Daha sonra çokgen veya elips oluşturabilir veya yalnızca kümelerin üyesi olan konumları görüntüleyebilirsiniz.

Sonuçların Google Earth’te hızlı bir şekilde önizlenmesi için NAACCR’ın SaTScan’ını Google Earth Dönüşüm Aracı’na da kullanabilirsiniz .

Önemli - Monte Carlo simülasyonlarını çalıştırmaya karar verirseniz (en az 99, sanırım) ayrıca kümelerinizin istatistiksel önemi hakkında da bir şeyler anlatabileceksiniz. Bu kümelerin yorumlanması ve gerekçelendirilmesi, en az son yirmi yıldır mekansal bilimlerde tartışıldığı için başka bir sorun olacaktır (bence;);

Yüksek, düşük veya yüksek ve düşük değerlere sahip kümeleri arayan tamamen uzaysal analiz yapmaya çalışabilirsiniz. Verilerinizde bazı geçici nitelikler varsa * günlük, haftalık toplamalar) o zaman bazı uzay-zaman modelleri çalıştırmanın gerçekten ilginç olacağını düşünüyorum.


2
İyi görünüyor - iyi cevap
Mapperz

5

SciPy'nin (python için) bir kümeleme paketi vardır, python konsolunda kullanabilir, bunu yapmak için basit bir eklenti yazabilir veya postgis içinde PL / python kullanabilirsiniz.

http://docs.scipy.org/doc/scipy/reference/cluster.html

Analizden sonra sadece dışbükey gövdeleri oluşturmak için f-tools kullanın.


Çok az python deneyimi olan basit bir kullanıcıyım ama bir göz atacağım - öğrenmem gerek!
Adrian

SciPy kümelemesi, noktalar arasındaki mekansal ilişkileri dikkate alıyor mu?
radek

1
Sadece noktanızın x ve y koordinatı için iki değişken daha ekleyin.
Jose,

5

Burada R ve GRASS kullanarak yapmak istediklerinize benzer bir örnek var . Alternatif olarak, scipy'nin kümeleme araçlarını önerildiği şekilde kullanmak isteyebilir ve ardından bu yöntemi kullanarak dışbükey gövde hesaplamaları yapabilirsiniz .


3

Ftools eklentisini deneyebilirsiniz. Vector> Geoprocessing Tools> Convex Hulls.

Bir seçenek var, Create convex hulls based on input fieldgiriş alanı parametresi giriş noktalarınızın niteliklerinden gelmelidir.


Yardım için teşekkürler. Dışbükey gövde gövdesi çokgenler yaratacaktır, ancak kümelerin var olup olmadığını veya nerede olabileceğini tanımlamamaktadır. Öncelikle birbirlerinin x km içinde benzer özellikleri olan noktaları birleştirmenin bir yolunu bulmayı gerçekten isterdim. Sanırım kümelerin varlığını benzersiz bir şekilde tanımlayan ve her kümenin üyeleri için postgis tablosundaki ek bir alanı güncelleyen bazı komut dosyaları çalıştırmam gerekecek. Örneğin, bir Delaunay üçgenlemesi oluşturmak ve üçgenlerin kenarlarının x km'den daha uzun olduğu tüm noktaları filtrelemek ancak bunun nasıl yapılacağı hakkında hiçbir fikrim yok
Adrian
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.