Verilerimi bir ısı haritası / yoğunluk haritasına nasıl dönüştürebilirim?


14

Ben çok sayıda varlık izler veritabanı var. Her varlığın bir 'kapsama alanı' ya da 'havza alanı' vardır - belirli bir İngiltere posta kodundan mil cinsinden bir yarıçap, ör.

Leyton office     4.3m    E11 4LL
Stratford office  5.2m    E15 6ZZ
East Ham office   2.1m    E4 8QQ

Bunu coğrafi yoğunluk haritasına dönüştürmek istiyorum - haritadaki her noktayı kapsayan varlıkların sayısını belirtmek için gölgeli veya renkli bir bölgenin haritası. Küçük bölgelere ayırma da kabul edilebilir.

Bu muhtemelen bir defalık bir proje, bu yüzden kuruluşumun yazılım satın almak için para sağlaması pek olası değil. Bu, sıfır veya en azından düşük maliyetli çözümlerin tercih edilebileceği anlamına gelir.


3
Daha fazla bilgi vermeniz gerektiğini düşünüyorum. Veritabanınız hangi formatta? CBS paketleri / uzamsal veritabanları konusunda ne kadar yetkinsiniz? Verileriniz zaten bir şekil dosyası / başka bir CBS dosya biçiminde mi veya nasıl dönüştürüleceğini biliyor musunuz? Bu bağlam olmadan cevaplamak zor, çünkü çok büyük bir cevap olabilir!
Stev_k

Veritabanım aslında bir PostgreSQL db, ancak CSV formunda yayınları çekebilirim. Yukarıdaki soruda listelediğim verilerden çok daha fazlası değil - oldukça spartan. CBS'ye gelince, bu muhtemelen alanla ilk kez karşılaştım ve gerçekten yaygın CBS araçları hakkında hiçbir şey bilmiyorum. Ayrıca, şekil dosyam yok, hayır.
Jimmy Breck-McKye

Yanıtlar:


8

Bunlar iyi kaynaklar ve onları kontrol etmeyi unutmayın.
Jimmy Breck-McKye

alexsciuto.com/blog/2010/11/… : Tarif edilen yöntemin 2. bölümünü bulamadım, ancak bu bir ısı haritası gibi görünmüyor. Sadece çok basit bir choropleth haritası ...
simo

4

Bu alanların "yarıçapını" birleştirerek, her alanın ne kadar "iyi kapsanmış", yani kaç tane yakın ofis olduğunu gösteren bir yoğunluk haritası istediğinizi varsayıyorum?

Tüm bunları aslında PostgreSQL içinde veya en azından ücretsiz bir uzantı olan PostGIS içinde yapabilirsiniz . Bunu tutmanızı ve bazı dokümanları okumanızı öneririm.

Muhtemelen posta kodlarınızı coğrafi olarak kodlamanız gerekecektir. Basit bir çözüm, Ordnance Survey Code Point veri kümesini ( https://www.ordnancesurvey.co.uk/opendatadownload/products.html ) (ücretsizdir) indirmek ve PostGIS kullanarak puanlarınıza veritabanına bir posta kodu konumu vermektir. fonksiyonları - ST_GeomFromText () kullanmanız ve Muhtemelen Bilinen Metin koordinatları hakkında bilgi edinmeniz gerekir.

Yani tüm noktalarınızın uzamsal bir tablosuna sahip olmalısınız.

Daha sonra ST_Buffer işlevini kullanarak bunları yeni bir uzamsal tabloya arabelleğe alabilirsiniz (her nokta etrafında bir yarıçap oluşturabilirsiniz).

Daha sonra PostGIS'de çakışmayan bir çokgen yer paylaşımı oluşturmanız gerekir - PostGIS kullanarak kesişmeye dayalı ayrı çokgenler konusuna bakın . Bu, veri kümesini yukarıda belirttiğiniz gibi küçük bölgelere ayırmalıdır.

Ardından, kaç tane arabellek ile yeni bölümlenmiş bölgenizin her birini kesiştiğini sorgulamanız gerekir. Bu oldukça karmaşık bir SQL sorgusu olacaktır, ancak mümkün olmalıdır.

Bu, CBS'de deneyimli biri için bile görebileceğiniz gibi oldukça karmaşık bir prosedürdür ve projeksiyonlar vb. teklif.

Çok daha kolay bir yol, düzenli olarak aralıklı bir nokta ızgarası almak ve en yakın beş ofisi söylemek için ortalama mesafeyi çalışmak ve her ızgara karesini ortalama mesafeye göre kodlamak olabilir. Ancak bu, ofislerin "yarıçapını" - bunun neyi temsil ettiğinden emin değil - etkisini dikkate almaz mı?


2

Mapsdata.co.uk adresini kullanarak bunu kolayca çevrimiçi yapabilirsiniz.

Uygulama .xls veya .csv'den veri okur ve İngiltere Posta Kodları gibi coğrafi verileri dönüştürmek için önceden programlanmıştır. Birkaç görsel yapabilirsiniz: biri, havza alanını bir değer olarak kullanan bir kabarcık haritası, yoğunluğu göstermek için opaklığa sahip pimler veya bir ısı haritası olabilir. Tüm seçeneklerde, opaklığı, rengi vb. Değiştirebilir ve ardından diğer web sayfalarında kullanmak için PNG veya html iframe olarak dışa aktarabilirsiniz.

Baloncukların boyutunu coğrafi olarak mı belirtmeniz gerekiyor? Bu, bazı ince ayarlarla da gerçekleştirilebilir.

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.