J'ai une couche de polygones avec une valeur d'attribut attachée représentant le nombre d'individus à l'intérieur d'un polygone. J'utilise QGIS 3.0.
J'ai besoin de visualiser les comptes comme une grille de points à l'intérieur d'un polygone (c.-à-d. 1 point = 100 grenouilles, colorées par espèce). Les points n'ont pas nécessairement besoin d'occuper tout le polygone et doivent de préférence être dessinés autour d'un centroïde avec un espacement prédéfini (c'est-à-dire 300 m), afin qu'ils puissent représenter une grille nette à une résolution spécifique.
La solution de contournement actuelle que j'ai trouvée consiste à utiliser des "points réguliers", avec le paramètre count, pour créer des grilles à l'intérieur de l'étendue dessinée sur une carte, puis supprimer les points supplémentaires créés par l'algorithme (l'algorithme arrondit à une grille et vous pourriez obtenir 20 points au lieu de 17 dans contribution). Cela produit le résultat souhaité, mais nécessite de dessiner l'étendue de la zone pour les points réguliers pour chaque polygone, ainsi que la saisie manuelle des attributs et le nettoyage des points créés. De plus, comme j'exécute des "points réguliers" avec un nombre spécifié, au lieu de l'espacement, chaque polygone obtient des points espacés différemment.
En bref: points réguliers (nombre défini de points, étendue dessinée) pour chaque polygone (lot)> Supprimer des points supplémentaires> attribuer des valeurs d'attribut aux # points
Alternative (évite l'espacement irrégulier, mais nécessite encore plus de manipulations):
Points réguliers (espacement défini, c.-à-d. 300 m) dans l'étendue de la couche entière> Couper dans l'étendue des polygones> Supprimer des points supplémentaires dans chaque polygone jusqu'à obtenir le nombre de points souhaité> attribuer des valeurs d'attribut aux points.
Le principal problème avec mes solutions de contournement est le traitement polygone par polygone, ce qui rend difficile la mise à jour des données et le travail avec un plus grand nombre de polygones.
Une question analogue a été posée: créer un nombre de points défini et régulièrement espacé dans un polygone dans QGIS , mais les spécificités sont différentes.
Réponses:
QGIS 3 est livré avec une nouvelle méthode de déplacement dans le rendu de cluster appelée grille. On dirait que c'est à peu près ce dont vous avez besoin. Créez simplement le nombre de points souhaités au centre de gravité de votre polygone.
Je ne connais pas de méthode pour générer les points uniquement avec un outil gui, mais un script python relativement simple devrait le faire.
Si vous voulez devenir fou, enveloppez-le dans un algorithme de traitement personnalisé.
la source
Peut être une autre façon d'inspirer la réponse de Sarath SRK:
Pourtant, vous aurez quelque chose comme ça
Utilisez un modeleur graphique pour créer un nouveau champ avec la commande "@row_number"
Exécuter le modèle avec une itération sur la couche tampon
Fusionner tout nouveau calque
Supprimez tout le point avec un champ ID_pt supérieur à la somme de votre champ ("Grenouilles" + "Chats" + "Diplodocs")
la source
Vous pouvez utiliser des générateurs de géométrie pour cela.
la source
Une solution pourrait être de créer une couche de points avec des points au centre de gravité de chaque polygone. Ainsi, par exemple, vous avez obtenu au centre de gravité d'Edmonton 25 points superposés: 5 avec un attribut grenouille, 20 points avec chat et 0 avec diplodocs.
Ensuite, en utilisant le rendu de déplacement de point avec la méthode de placement définie comme grille, vous devriez pouvoir obtenir l'effet.
La difficulté est de créer la couche de points ....
la source
Une alternative très simple pourrait être d'utiliser le graphique à secteurs disponible dans les propriétés de la couche? Les attributs et les tailles peuvent être dictés par une expression.
la source
Vous pouvez générer les points sur un chemin en spirale à partir du centre de gravité du polygone. Le post Stack Overflow suivant a du code python pour créer des points équidistants mais je ne peux pas le tester pour le moment étant donné mon manque de temps libre.
la source
Dans ton cas,
la source