Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce


	
voeux

#1 Thu 23 April 2020 15:28

MLaure19
Membre
Date d'inscription: 10 Jan 2020
Messages: 37

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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Sat 25 April 2020 13:27

Julien81
Membre
Lieu: Prissé
Date d'inscription: 14 Jan 2019
Messages: 98

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
Membre
Date d'inscription: 10 Jan 2020
Messages: 37

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
Membre
Lieu: Prissé
Date d'inscription: 14 Jan 2019
Messages: 98

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
Membre
Date d'inscription: 10 Jan 2020
Messages: 37

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
Membre
Lieu: Prissé
Date d'inscription: 14 Jan 2019
Messages: 98

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
Membre
Date d'inscription: 3 Dec 2020
Messages: 2

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
Membre
Date d'inscription: 10 Jan 2020
Messages: 37

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

 

Pied de page des forums

Powered by FluxBB

Partagez  |