Message posté par : Laurent M (dioilamahina(a)yahoo.fr)
----------------------------------------
Une solution trouvée ! un peu fastidieuse j'avoue, j'imagine qu'une fonction
de calculatrice de champs pourrait faire plus compact.
objectif : regrouper (en grappes) les mailles en fonction de leur proximité spatiale les
unes des autres.
Situation de départ
- Une grille uniforme de mailles 5mx5m est épurée pour ne garder que les mailles
d'intérêt.
- La visualisation de la couche1 permet de voir des paquets de mailles plus ou moins
proches les uns des autres (cf. 1ère pj de ce fil de discussion).
- chaque maille a des valeurs qui lui correspond dans chacun des champs. La valeur de
surface de chaque maille du champs surfm2 est identique à chaque entité.
- la distance entre centroïdes de chaque maille est soit de 5m (mailles horizontales ou
verticales se touchant par un coté) soit de 7m (mailles en diagonales se touchant par
l'angle).
Traitement
- vecteur / géométrie/ centroïdes -- Extrait les centroïdes de chaque maille dans une
nouvelle couche2 --
- vecteur/ géotraitement/ tampon/ distance 8m -- affecte un tampon de 8m avec résultat
regroupé dans une nouvelle couche3. Cette distance permet de grouper ensemble les
centroïdes à 5m et 7m proche les uns des autres en plusieurs ilots --
- vecteur/ géotraitement/ regrouper-- permet de regrouper toutes les ilots en un seul ilot
dans une nouvelle couche4--
- vecteur/ géométrie/ de morceaux multiples à morceaux uniques -- permet de scinder
l'ilot unique en plusieurs groupes d'ilots dans une nouvelle couche5 --
- couche5: calculatrice vecteur/ nouveau champ;ID2;row_number -- assigne un identifiant
unique à chaque ilot. vérification par symbologie catégorisée sur le champs ID2 --
- vecteur/gestion de données/joindre les attributs par localisation/ source:couche5:
joindre couche1; prédicat à l'intérieur; champsID2 -- joint le champsID2 à chaque
entité de la couche1 dans une nouvelle couche6 --
- couche6: calculatrice vecteur/nouveau champ 'sum'/ expression sum(
"Surfm2" ,group_by:= "id2" ) -- expression additionnant la surface de
chaque maille incluse dans chaque ilot (=somme du champ1 en fonction du champ2) --
vérification finale: symbologie par catégorie sur le champs 'sum' -- on obtient un
regroupement par la localisation de mailles selon leur proximité ainsi qu'une mesure
de surface pour chaque ilot --
Après ces étapes, il serait alors possible de regrouper les entités pour obtenir des
grappes de polygones fusionnant chaque maille. Le cas ici est de garder chaque maille
indépendante.
Laurent
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=321630#p321630
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net