Wie kann ich meine Daten in eine Heatmap / Intensitätskarte verwandeln?

14

Ich habe eine Datenbank, die eine große Anzahl von Entitäten verfolgt. Jedes Unternehmen verfügt über ein "Versorgungsgebiet" oder "Einzugsgebiet" - einen Radius in Meilen von einer bestimmten Postleitzahl im Vereinigten Königreich, z

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

Ich möchte daraus eine Karte der geografischen Intensität machen - eine Karte einer Region, die schattiert oder farbig ist, um die Anzahl der Objekte anzuzeigen, die jeden Punkt auf der Karte abdecken. Eine Segmentierung in kleine Regionen ist ebenfalls akzeptabel.

Dies ist wahrscheinlich ein einmaliges Projekt, daher ist es unwahrscheinlich, dass meine Organisation Geld für den Kauf von Software bereitstellt. Das heißt, null oder zumindest kostengünstige Lösungen sind vorzuziehen.

Jimmy Breck-McKye
quelle
3
Ich denke, Sie müssen mehr Informationen bereitstellen. Welches Format hat Ihre Datenbank? Wie kompetent sind Sie mit GIS-Paketen / Geodatenbanken? Befinden sich Ihre Daten bereits in einem Shapefile / einem anderen GIS-Dateiformat oder wissen Sie, wie Sie diese konvertieren können? Ohne diesen Kontext ist es schwierig zu antworten, da dies eine sehr große Antwort sein könnte!
Stev_k
Meine Datenbank ist eigentlich eine PostgreSQL-Datenbank, aber ich kann Feeds in CSV-Form abrufen. Es ist wirklich nicht viel mehr als die Daten, die ich oben in der Frage aufgelistet habe - ziemlich spartanisch. Was GIS angeht, ist dies wahrscheinlich das erste Mal, dass ich auf diesem Gebiet bin, und ich weiß wirklich nichts über die gängigen GIS-Tools. Außerdem habe ich kein Shapefile, nein.
Jimmy Breck-McKye

Antworten:

8

Vielleicht helfen Ihnen diese Links:

Wie erstelle ich effektive Heatmaps?

mit QGIS: http://alexsciuto.com/blog/2010/11/how-to-make-your-own-heat-map-pt-1-gathering-the-materials/

Python-Skript: http://www.sethoscope.net/heatmap/

http://sk53-osm.blogspot.com/2011/01/heat-maps-from-osm-pois.html

Entschuldigung für eine nicht ausgearbeitete Antwort ..

Pedro Mendes
quelle
Das sind einige gute Ressourcen, und ich werde sie auf jeden Fall überprüfen.
Jimmy Breck-McKye
alexsciuto.com/blog/2010/11/… : Ich habe Teil 2 der beschriebenen Methode nicht gefunden, aber es scheint keine Heatmap zu sein. Nur eine sehr einfache Choroplethenkarte ...
simo
4

Ich gehe davon aus, dass Sie eine Dichtekarte darüber wünschen, wie gut jeder Bereich abgedeckt ist, dh wie viele Büros sich in der Nähe befinden, einschließlich des "Radius" dieser Büros.

Sie können dies alles in PostgreSQL oder zumindest in PostGIS , einer kostenlosen Erweiterung, tun . Ich schlage vor, dass Sie sich darum kümmern und sich über einige der Dokumente informieren.

Dann müssen Sie wahrscheinlich Ihre Postleitzahlen geocodieren. Eine einfache Lösung besteht darin, den Datensatz mit den Ordnance Survey Code Points ( https://www.ordnancesurvey.co.uk/opendatadownload/products.html ) herunterzuladen (kostenlos) und der Datenbank mithilfe von PostGIS eine Postleitzahl zuzuweisen Funktionen - Sie müssen ST_GeomFromText () verwenden und sich wahrscheinlich über bekannte Textkoordinaten informieren.

Sie sollten also eine räumliche Tabelle aller Punkte haben.

Anschließend können Sie sie mit der Funktion ST_Buffer in einer neuen räumlichen Tabelle puffern (einen Radius um jeden Punkt erstellen).

In diesem Fall müssen Sie in PostGIS ein nicht überlappendes Polygon-Overlay erstellen. Weitere Informationen hierzu finden Sie unter Trennen von Polygonen anhand der Schnittmenge mit PostGIS . Dadurch sollte das Dataset wie oben beschrieben in kleine Regionen unterteilt werden.

Anschließend müssen Sie abfragen, wie viele Puffer sich mit Ihren neuen segmentierten Regionen überschneiden. Dies ist eine recht komplizierte SQL-Abfrage, die jedoch möglich sein sollte.

Dies ist eine ziemlich komplizierte Prozedur, wie Sie selbst für jemanden sehen können, der Erfahrung mit GIS hat, und es gibt viele Fallstricke, wie z Angebot.

Eine viel einfachere Möglichkeit wäre es wahrscheinlich, ein regelmäßig verteiltes Punktegitter zu nehmen und die durchschnittliche Entfernung zu berechnen, dh die fünf nächstgelegenen Büros, und die Farbcodes für die einzelnen Rasterquadrate nach durchschnittlicher Entfernung zu berechnen. Dies würde jedoch nicht den "Radius" der Büros berücksichtigen - nicht sicher, was dies darstellt - Einfluss?

Stev_k
quelle
2

Sie können dies einfach online mit Mapsdata.de tun

Die App liest Daten aus .xls oder .csv und ist vorprogrammiert, um Geodaten wie die britischen Postleitzahlen zu konvertieren. Sie können mehrere Grafiken erstellen: eine Blasenkarte, bei der der Einzugsbereich als Wert verwendet wird, Stecknadeln mit Deckkraft für die Anzeige der Dichte oder eine Heatmap. In allen Optionen können Sie die Deckkraft, Farbe usw. ändern und dann entweder als PNG- oder als HTML-Iframe zur Verwendung auf anderen Webseiten exportieren.

Müssen Sie die Größe der Blasen georeferenzieren? Dies kann auch mit einigen Optimierungen erreicht werden.

user15786
quelle