#1 Wed 06 April 2022 15:52
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
QGIS 2.22: Jointure spatiale multiple avec pourcentage
Bonjour à tous,
Je travaille sur un projet QGIS et je souhaiterai faire une jointure spatiale multiple. J'ai une couche qui est une grille dans laquelle je veux intégrer des éléments venant d'un shape. Ce shape contient des information sur le type de forêt.
Je voudrais joindre tous les types de forêts présent dans chacun des polygones de ma grille et avoir leur proportion en pourcentage.
En gros le résultats serait du type : une colonne "forêt 1" avec le nom du type forêt, une colonne "pourcentage foret 1" avec le pourcentage de cette forêt par rapport aux autres types de forêts. Et rajouter autant de colonnes que de types de forêt présente dans le polygone.
Je ne sais pas si c'est possible, je n'ai pas réussi à trouver comment faire ou des informations à ce sujet.
Merci beaucoup pour votre aide
Bonne journée, Hugo
Hors ligne
#2 Wed 06 April 2022 18:21
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Bonsoir,
La première étape est d'intersecter la grille avec le SHP des forêts (Menu Vecteur > Outils de géotraitement > Intersection).
Ainsi, pour chaque portion de forêt/grille, vous avez la référence à la grille et le type de forêt.
Ensuite, ce que vous souhaitez faire est un "tableau croisé dynamique".
C'est possible en SQL, ou via des formules depuis QGis, mais par facilité, je fais souvent ce travail dans Excel (ou Calc) en ayant exporté ma table attributaire en XLSX.
Puis, si nécessaire, je réimporte le tableau croisé dans QGis, et je fais une jointure avec la grille d'origine.
Sylvain M.
Hors ligne
#3 Fri 08 April 2022 11:10
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Merci beaucoup pour cette réponse, ça me semble être une bonne option, je vais mettre ça en pratique !
Bonne journée
Hugo
Hors ligne
#4 Fri 08 April 2022 17:31
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Je re post ici car en fait cette solution ne fonctionne pas, je peux avoir plusieurs types de forêts dans une même grille.
Je veux donc créer une colonne pour chaque type de forêts présent dans la grille. En plus de ça, je voudrais avoir le pourcentage de chaque type de forêt présent dans une grille.
J'avais pensé a découper mon shape des forêts par types de forêts et calculer le pourcentage de recouvrement de chacun de ces types de forêts. Mais cela me donnera plus de 30 shapes différents et donc plus de 30 jointures spatiales aussi. Comme j'ai un très grand nombre de polygones dans ma grille, ce serait beaucoup trop long.
Hors ligne
#5 Sat 09 April 2022 18:52
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Bonjour,
Ce que vous pouvez faire :
1/ Découper chaque type de forêt par la grille
2/ Calculer la surface de chaque découpage de type de forêt
3/ Faire une jointure spatiale entre la grille et tous les types de forêt (avec leurs surfaces de découpage)
4/ Au sein de cette jointure spatiale, vous pourrez, pour chaque grille, calculer la surface totale des types de forêt dans un nouveau champ.
5/ Au sein de cette même jointure spatiale, vous pourrez calculer dans de nouveaux champs correspondants le pourcentage de surface de chaque type de forêt par rapport à la somme totale des surfaces des types de forêt contenues dans la chaque grille.
Hors ligne
#6 Mon 11 April 2022 10:37
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Bonjour,
Ce que vous pouvez faire :
1/ Découper chaque type de forêt par la grille
2/ Calculer la surface de chaque découpage de type de forêt
3/ Faire une jointure spatiale entre la grille et tous les types de forêt (avec leurs surfaces de découpage)
4/ Au sein de cette jointure spatiale, vous pourrez, pour chaque grille, calculer la surface totale des types de forêt dans un nouveau champ.
5/ Au sein de cette même jointure spatiale, vous pourrez calculer dans de nouveaux champs correspondants le pourcentage de surface de chaque type de forêt par rapport à la somme totale des surfaces des types de forêt contenues dans la chaque grille.
Oui c'était la seule solution que j'avais mais comme je l'ai expliqué avant cela me fera beaucoup de shapes très lourds et donc cela me prendre énormément de temps. Mais bon je crois que je ne vais pas avoir le choix.
Hors ligne
#7 Mon 11 April 2022 11:42
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Bonjour,
cela me fera beaucoup de shapes
je ne vois que 2 shapes...
Hors ligne
#8 Mon 11 April 2022 12:20
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Bonjour,
cela me fera beaucoup de shapes
je ne vois que 2 shapes...
Si je découpe mon shape selon chaque type de forêts, je vais bien me retrouver avec autant de shape que de type de forêt ?
Hors ligne
#9 Mon 11 April 2022 13:35
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Si je découpe mon shape selon chaque type de forêts
je ne pense pas que le shape à découper doive être le shape de la grille, mais plutôt celui des forêts. Non?
Hors ligne
#10 Mon 11 April 2022 15:09
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Si je découpe mon shape selon chaque type de forêts
je ne pense pas que le shape à découper doive être le shape de la grille, mais plutôt celui des forêts. Non?
Oui c'est celui des forêt qu'il faut couper mais dans ce shape il y a une colonne "type de forêt" avec plus de 30 types différents. Et dans mes polygones il peut y avoir plusieurs types en même temps.
Si je coupe ce shape selon le type de forêt je vais me retrouver avec plus de 30 shapes si j'ai bien compris la manipulation à faire.
Hors ligne
#11 Mon 11 April 2022 15:54
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Il faudrait calculer par grille la somme des surfaces intersectées.
Ce que tu pourrais faire :
1/ Découper chaque type de forêt par la grille
2/ Calculer la surface de chaque découpage de type de forêt
3/ Faire une jointure spatiale entre la grille et tous les types de forêt (avec leurs surfaces de découpage), ce qui donnerait en gros ceci :
GRILLE Type forêt surface
A 1 5000 m2
A 2 2500 m²
A 3 2500 m²
4/ Regrouper les grilles selon le nom de la grille et en calculant la somme du champ surface. Ce qui donnerait ceci :
GRILLE Type forêt surface Total surface
A 1 5000 m² 10000 m²
A 2 2500 m² 10000 m²
A 3 2500 m² 10000 m²
5/ Créer un nouveau champ qui calculerait la surface du type de forêt dans chaque grille
GRILLE Type forêt surface Total surface Pourcentage
A 1 5000 m² 10000 m² 50% (5000/10000*100)
A 2 2500 m² 10000 m² 25%
A 3 2500 m² 10000 m² 25%
Hors ligne
#12 Mon 11 April 2022 17:56
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Je re post ici car en fait cette solution ne fonctionne pas, je peux avoir plusieurs types de forêts dans une même grille.
C'est bien ce que j'avais compris, et donc le tableau croisé dynamique (TCD) répond à 100 % à cette tache d'analyse, une fois découpé la couche des forêts (avec le champ type), par la couche des mailles.
Dans Excel, un TCD avec en lignes, les identifiants de mailles, et en colonnes, les types de forêts, et en valeurs, la surface (que l'ont peut alors convertir en pourcentage via une formule simple (surface du type / surface totale forêt maille).
Dernière modification par Sylvain M. (Mon 11 April 2022 17:57)
Sylvain M.
Hors ligne
#13 Tue 12 April 2022 10:13
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
La méthode de Sylvain M. est la bonne. Si l'on veut avoir le pourcentage par type de forêt dans un champ correspondant, il faut passer par un TCD (type 1 = un champ, type 2 = un autre champ...).
Hors ligne
#14 Tue 12 April 2022 12:03
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Sinon, si vous voulez rester dans QGis, on peut le faire facilement en SQL à partir de la couche de forêts découpées par la grille.
Ça donnerait quelque chose de ce genre là :
SELECT id_maille,
sum(CASE WHEN type = "forêt 1" THEN st_area(geometry) ELSE 0 END) as surf_foret_1,
sum(CASE WHEN type = "forêt 2" THEN st_area(geometry) ELSE 0 END) as surf_foret_2,
sum(CASE WHEN type = "forêt 3" THEN st_area(geometry) ELSE 0 END) as surf_foret_3,
...
sum(st_area(geometry)) as surf_forets_tous_types
FROM foret_decoup_grille
GROUP BY id_maille;
Sylvain M.
Hors ligne
#15 Tue 12 April 2022 12:17
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Super!
Hors ligne
#16 Tue 12 April 2022 17:12
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
C'est bien ce que j'avais compris
Je suis désolé, en effet tout était bon depuis le début ! J'avais fais un mauvais paramétrage avec mon intersect au départ qui ne m'affichait pas tout mes types de forêts. Maintenant c'est bon j'obtiens bien un shape coupé selon mes types de forêts sur lequel j'ai pu calculer mes surface et mon pourcentage.
Merci beaucoup pour cette solution !
Et merci aussi à Conejo pour ton aide.
Hors ligne
#17 Tue 12 April 2022 21:32
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Parfait
Si vous avez le temps un de ces jours, regardez aussi la solution SQL : c'est super puissant et ça évite d'avoir à sortir de QGis
Sylvain M.
Hors ligne
#18 Wed 13 April 2022 14:11
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 2.22: Jointure spatiale multiple avec pourcentage
Si vous avez le temps un de ces jours, regardez aussi la solution SQL : c'est super puissant et ça évite d'avoir à sortir de QGis
Oui il faudra que je m'y mette un jour depuis le temps qu'on me le dit ! Finalement j'ai importé mon shape sous r pour la suite mais le SQL m'éviterai bien des manipulations
Hors ligne