Pages: 1
- Sujet précédent - QGIS: % recouvrement polygone d'1 couche & polygones de autre couche - Sujet suivant
#1 Thu 23 April 2020 15:28
- MLaure19
- Participant occasionnel
- Date d'inscription: 10 Jan 2020
- Messages: 40
QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Bonjour,
Voici ma carte en pièce jointe.
- Couche EMD avec des polygones à bordure verte
- Couche IRIS avec des polygones à bordure grise
Je voudrais calculer pour chaque polygone de la couche EMD (en vert), quel pourcentage de sa surface survole des polygones de la couche IRIS (en gris)
Exemple, pour l'EMD 11401 je voudrais obtenir ceci :
- 25% IRIS x
- 75% IRIS y
etc etc
Quelqu'un aurait une idée ?
Merci encore, Marie-Laure
Hors ligne
#2 Sat 25 April 2020 13:27
- Julien81
- Participant actif
- Lieu: Giroussens
- Date d'inscription: 14 Jan 2019
- Messages: 148
Re: QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Bonjour,
si je comprends bien d'après votre capture il y a une relation N-N entre vos deux couches de polygones (1 entité EMD peut intersecter plusieurs entités IRIS, et réciproquement)
donc si vous souhaitez renseigner dans votre couche EMD :
-la liste des IRIS intersectés dans un champ de type texte avec un séparateur défini+
-la liste des ratios surface intersectée/surface EMD *100 (%de surface EMD pour chaque entité intersectée) avec un séparateur et dans le même ordre
Il vous faut créer deux champs texte (255?) dans votre couche EMD ex:
champ1--> l_id_IRIS
champ2-->l_surf_IRIS
puis mettre à jour avec des fonctions d'aggregats
champ1 :
Code:
aggregate('IRIS','concatenate',to_string("fid"), intersects($geometry,geometry(@parent)),';',1/area(intersection($geometry,geometry(@parent))))
champ2 :
Code:
aggregate('IRIS','concatenate',to_string(round(area(intersection($geometry,geometry(@parent)))/area(geometry(@parent))*100,2)), intersects($geometry,geometry(@parent)),';',1/area(intersection($geometry,geometry(@parent))))
J'ai testé sur 3.10 (doit etre ok pour 3.xx)
https://docs.qgis.org/3.4/fr/docs/user_ … -functions pour la doc
en gros aggregate(layer,aggregate,expression,filter,concatenator,order_by) vous n'avez qu'à remplacer dans la partie expression pour la mise à jour de votre champ 1 le nom champ identifiant iris ("fid" chez moi) et dans la partie 'layer' le nom de votre couche iris.
Sur le même principe en faisant au préalable une intersection entre les deux couches EMD/IRIS vous pourriez ensuite obtenir les ratios par rapport au parent EMD affectés à chaque partie intersectée par un seul iris (et non N ce qui oblige à manipuler une liste de x iris intersectés)
Bien sur selon votre besoin c'est à vous de voir
En espérant vous avoir aiguillé ...
Cordialement, Julien
Hors ligne
#3 Sat 25 April 2020 17:17
- MLaure19
- Participant occasionnel
- Date d'inscription: 10 Jan 2020
- Messages: 40
Re: QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Merci Julien, ça m'aiguille carrément ! Je te tiendrai au courant si j'ai d'autres questions au moment de l'application
à plus
Hors ligne
#4 Sat 25 April 2020 18:43
- Julien81
- Participant actif
- Lieu: Giroussens
- Date d'inscription: 14 Jan 2019
- Messages: 148
Re: QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Ah oui, selon votre emprise et votre nombre d'entité les mise à jour peuvent prendre un certain temps pour les deux champs sur l'ensemble de votre couche donc éventuellement tester sur une sélection avant!
Hors ligne
#5 Sun 26 April 2020 09:48
- MLaure19
- Participant occasionnel
- Date d'inscription: 10 Jan 2020
- Messages: 40
Re: QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Bonjour Julien,
Je viens de réussir à rentrer les champs, en revanche j'ai un problème plus grave de géométries invalides sur la couche EMD.
Cela m'empêche de réaliser l'intersection.
J'ai essayé de résoudre ça pendant 5h sans succès... J'utilise la version Bucarest et je ne trouve aucune extension qui fonctionne...
Une très grosse galère!
Hors ligne
#6 Sun 26 April 2020 15:34
- Julien81
- Participant actif
- Lieu: Giroussens
- Date d'inscription: 14 Jan 2019
- Messages: 148
Re: QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Bonjour, effectivement pour les outils/requêtes sur les géom il faut qu'elles soient valides!
Dans la boite à outil traitement essayer de lancer "Réparer les géométrie" sur chacune de vos couches en entrée, voir si c'est ok après, sinon vous avez plusierus options via vérifier la validité à paramétrer, pour voir ou sont vos erreurs (sommets en doubles, croisements...)
Dernière modification par Julien81 (Sun 26 April 2020 15:37)
Hors ligne
#7 Tue 22 December 2020 09:32
- Nicolas_turcik
- Juste Inscrit !
- Date d'inscription: 3 Dec 2020
- Messages: 4
Re: QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Bonjour,
j'avais quasiment le même problème, merci pour vos réponses. Pour aller plus loin, dans mon cas je souhaite à ne garder que le numéro correspondant à la surface maximale intersectant mes polygones (50% ou plus). Pouvez-vous m'éclairer si jamais vous avez des idées ?
Merci d'avance pour vos réponses !
Hors ligne
#8 Wed 13 January 2021 10:03
- MLaure19
- Participant occasionnel
- Date d'inscription: 10 Jan 2020
- Messages: 40
Re: QGIS: % recouvrement polygone d'1 couche & polygones de autre couche
Si quelqu'un a une idée de réponse, j'ai exactement la même question que Nicolas.
Merci
Marie-Laure
Hors ligne
Pages: 1
- Sujet précédent - QGIS: % recouvrement polygone d'1 couche & polygones de autre couche - Sujet suivant