Comment pourrais-je transformer mes données en carte thermique / carte d'intensité?

14

J'ai une base de données qui suit un grand nombre d'entités. Chaque entité a une «zone de couverture» ou une «zone de chalandise» - un rayon en miles d'un code postal britannique spécifié, par exemple

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

Je veux transformer cela en une carte d'intensité géographique - une carte d'une région qui est ombrée ou colorée pour indiquer le nombre d'entités qui couvrent chaque point sur la carte. La segmentation en petites régions est également acceptable.

Il s'agit probablement d'un projet ponctuel, il est donc peu probable que mon organisation fournisse de l'argent pour acheter des logiciels. Cela signifie que des solutions nulles ou au moins à faible coût sont préférables.

Jimmy Breck-McKye
la source
3
Je pense que vous devez fournir plus d'informations. Quel format est votre base de données? Dans quelle mesure êtes-vous compétent avec les packages SIG / bases de données spatiales? Vos données sont-elles déjà dans un fichier de formes / un autre format de fichier SIG ou savez-vous comment les convertir? Il est difficile de répondre sans ce contexte car cela pourrait être une très grosse réponse!
Stev_k
Ma base de données est en fait une base de données PostgreSQL, mais je peux extraire des flux au format CSV. Ce n'est vraiment pas beaucoup plus que les données que j'ai énumérées dans la question ci-dessus - assez spartiate. En ce qui concerne les SIG, c'est probablement la première fois que je rencontre le domaine, et je ne sais vraiment rien des outils SIG même les plus courants. De plus, je n'ai pas de fichier de formes, non.
Jimmy Breck-McKye

Réponses:

8

Peut-être que ces liens vous aideront:

Comment construire des cartes thermiques efficaces?

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

Script Python: http://www.sethoscope.net/heatmap/

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

Désolé pour une réponse non élaborée ..

Pedro Mendes
la source
Ce sont de bonnes ressources et je ne manquerai pas de les consulter.
Jimmy Breck-McKye
alexsciuto.com/blog/2010/11/… : Je n'ai pas trouvé la partie 2 de la méthode décrite mais elle ne semble pas être une carte thermique. Juste une carte choroplèthe très basique ...
simo
4

Je suppose que vous voulez une carte de densité de la façon dont "chaque zone est bien couverte", c'est-à-dire combien de bureaux elle est proche, en incorporant le "rayon" de ces bureaux?

Vous pouvez réellement faire tout cela dans PostgreSQL, ou au moins dans PostGIS , qui est une extension gratuite. Je vous suggère de mettre la main dessus et de lire certains des documents.

Vous devrez alors probablement géocoder vos codes postaux. Une solution simple consiste à télécharger l'ensemble de données Ordnance Survey Code Point ( https://www.ordnancesurvey.co.uk/opendatadownload/products.html ) (qui est gratuit) et à attribuer à vos points la base de données un emplacement de code postal, en utilisant PostGIS fonctions - vous devrez utiliser ST_GeomFromText () et vous renseigner probablement sur les coordonnées de texte bien connues.

Vous devriez donc avoir une table spatiale de tous vos points.

Vous pouvez ensuite les tamponner (créer un rayon autour de chaque point) dans une nouvelle table spatiale à l'aide de la fonction ST_Buffer.

Vous devrez ensuite créer une superposition de polygones qui ne se chevauchent pas dans PostGIS - voir Séparer les polygones en fonction de l'intersection à l'aide de PostGIS . Cela devrait segmenter l'ensemble de données en petites régions, comme vous le dites ci-dessus.

Ensuite, vous devez interroger le nombre de tampons qui intersectent chacun vos nouvelles régions segmentées. Ce sera une requête SQL assez compliquée, mais cela devrait être possible.

Il s'agit d'une procédure assez compliquée, comme vous pouvez le voir même pour une personne expérimentée dans les SIG, et il existe de nombreux pièges, tels que des projections, etc., donc je considérerais votre besoin avant de commencer, mais il peut bien y avoir de meilleures solutions que quelqu'un d'autre peut offre.

Un moyen beaucoup plus facile consisterait probablement à prendre une grille de points régulièrement espacée et à calculer la distance moyenne, c'est-à-dire les cinq bureaux les plus proches, et à coder par couleur chaque carré de la grille par la distance moyenne. Cependant, cela ne tiendrait pas compte du "rayon" des bureaux - vous ne savez pas ce que cela représente - de l'influence?

Stev_k
la source
2

Vous pouvez le faire simplement en ligne en utilisant Mapsdata.co.uk

L'application lit les données à partir de .xls ou .csv et est préprogrammée pour convertir les géo-données telles que les codes postaux britanniques. Vous pouvez faire plusieurs visuels: l'un peut être une carte à bulles utilisant la zone de captage comme valeur, des épingles avec opacité pour afficher la densité ou une carte thermique. Dans toutes les options, vous pouvez modifier l'opacité, la couleur, etc., puis exporter en PNG ou en iframe html pour une utilisation dans d'autres pages Web.

Avez-vous besoin de géoréférencer la taille des bulles? Cela peut également être réalisé avec quelques ajustements.

user15786
la source