J'ai joué avec le plugin heatmap pour QGIS et je me demande s'il est possible de faire du heatmap avec un plugin / outil similaire qui utilise des polygones ainsi que des points?
Je voudrais obtenir une représentation de la densité des données de la même manière que le plugin heatmap le fait avec des points.
L'image suivante est un croquis approximatif de mon résultat souhaité:
Réponses:
Peut-être que vous pouvez générer un ensemble de points aléatoires dans vos polygones, il existe un outil QGIS pour cela ? Si vous avez des polygones qui se chevauchent, vous en avez une densité plus élevée dans cette zone. Utilisez ensuite une carte thermique pour les points. Vous devrez exécuter plusieurs tours pour trouver le nombre optimal de points, car le résultat en dépend.
Si vos données montrent la distribution de certains habitats, qui est de toute façon floue, cela pourrait être le plus proche de la situation réelle où un point reflète environ un spécimen.
la source
Si je comprends bien votre question, j'ai déjà fait quelque chose de similaire; je n'avais qu'à me rappeler ce que j'avais fait.
Cela fonctionnera si vos polys se chevauchent ET pas la même couche. S'ils se trouvent sur le même calque et que c'est possible, déplacez-les vers des calques séparés, si vous ne le faites pas, le calque cible héritera simplement d'une des valeurs.
Le processus clé à utiliser est les attributs de jointure par emplacement dans le menu Vector> Data Mangement . Spécifiez ici votre champ hexagonal comme couche cible et la couche de jointure comme l'un de vos polygones. Nommez votre couche résultante et cochez la case d'option pour Conserver tous les enregistrements .
La couche résultante doit être une copie de votre couche hexgonale avec toutes les cellules qui ont intersecté votre couche polygonale. Maintenant, pour l'interaction, utilisez votre dernière couche résultante comme couche cible et joignez la couche de polygones suivante. Prenez le laser résultant et rejoignez votre couche suivante jusqu'à ce que vous ayez rejoint toutes vos couches.
Votre couche finale devrait avoir hérité de tous les champs d'attributs des couches précédentes et une grande partie peut indiquer NULL.
C'est là que nous devons jouer dans certains des entrailles d'un fichier de formes, donc si vous n'avez pas enregistré le calque en tant que fichier de formes, faites-le maintenant. Et supprimez la couche de votre espace de travail dans QGIS.
Ouvrez les fichiers * .dbf du fichier de formes dans OpenOffice Calc, N'utilisez PAS Excel. Il va fausser le fichier et il est inutile, a appris que la dure. Et ne réorganisez pas les données, elles sont également très spécifiques dans l'ordre des lignes du fichier. Vérifiez que les NULL sont maintenant des zéros s'ils ne le sont pas, remplacez-les soigneusement.
Insérez maintenant le fichier de formes dans QGIS et ouvrez la table d'attributs . Il devrait maintenant afficher des zéros au lieu de NULL. Utilisez le calculateur de champs et additionnez les champs qui sont affectés à votre travail dans une nouvelle colonne.
Vous disposez maintenant d'un champ additionné qui devrait afficher avec un degré de précision les valeurs de toutes les collections d'entités chevauchant le champ cible. Vous pouvez utiliser la fonction Symbologie pour colorer vos polygones en fonction de la valeur de votre champ additionné pour une belle carte choroplèth.
Si vous souhaitez supprimer tous les champs inutilisés du fichier. Il suffit d'ouvrir à nouveau le fichier dbf dans Calc et de supprimer les colonnes indésirables à volonté. Personnellement, je conseillerais d'apprendre à me familiariser avec un fichier de formes comme je le fais souvent.
la source
Il s'agit d'un flux de travail général utilisant des rasters. Je ne connais pas les détails pour l'accomplir dans QGIS.
Les valeurs alpha / nulles et / ou la transparence des couches vous permettraient de superposer le raster sur n'importe quel fond de carte.
la source
Essayez-le à la place, s'il correspond à vos besoins, ce n'est pas une solution de calcul pour l'ensemble de données, mais si vous cherchez simplement une solution infographique, vous pouvez l'essayer à la place.
Joignez les attributs par emplacement, avec vos cellules hexagonales comme cible et vos données de point comme jointure. Choisissez de conserver toutes les fonctionnalités. Définissez la symbologie des cellules avec la valeur héritée sur la couleur souhaitée et définissez la transparence sur quelque chose comme 50%.
Ensuite, sur votre calque avec les polys de cercle, définissez leur symbologie sur la même couleur et la même transparence. Placez le cercle poly devant le poly cellule. Cela donnera l'illusion d'une saturation accrue à mesure que la valeur augmente.
Si vous le souhaitez, vous pouvez également extraire les lignes de tous les polys et superposer sur le dessus afin que les contours des sous-couches ne semblent pas être colorés par les autres couches.
Vous devrez jouer avec les couleurs et la transparence pour trouver la meilleure solution. Je trouve que les mêmes couleurs sont plus belles mais expérimentées.
la source
Je vous suggère d'utiliser le plugin GRASS - QGIS a des fonctionnalités assez limitées (et pourquoi réinventer la roue en python alors qu'un logiciel comme GRASS existe déjà?):
[les deux lignes suivantes peuvent être nécessaires, selon que vos polygones ont déjà une valeur]
c'est là que nous additionnons le chevauchement dans les polygones puis faisons le raster en fonction de ces colonnes
la source
Avec QGIS ordinaire, cela pourrait être délicat, vous pourriez avoir besoin de scripts personnalisés ou utiliser une base de données spatiale comme PostGIS ou Spatialite. Je voudrais créer une grille de points régulière avec PostGIS ou générer en tant que fichier texte CSV et l'importer. Ensuite, dessinez un cercle autour de chaque point avec st_buffer ou des rectangles avec ST_MakeEnvelope et comptez toutes les zones qui se chevauchent de chaque tampon. Ensuite, vous voudrez probablement supprimer toutes les valeurs 0, si cela signifie "pas de données". Enfin, vous pouvez faire une carte thermique pour la grille, en utilisant le compteur comme champ de poids.
Vous devez expérimenter différentes résolutions de grille pour en trouver une optimale. En substance, il est très similaire à l'approche raster suggérée par Kevin, restant simplement dans le monde vectoriel.
la source