#1 Wed 09 December 2015 11:53
- Sylvain C.
- Participant occasionnel
- Date d'inscription: 6 Jan 2014
- Messages: 35
QGIS 2.10 : Attribuer valeur de 2 polygones superposés
Bonjour à tous,
je dispose de 2 couches différentes contenant des polygones, qu'on va appeler couche_A et couche_B, disposant d'informations dans la table attributaire.
Je souhaiterais insérer une nouvelle colonne dans ma couche_A prenant l'attribut d'une certaine colonne de ma couche_B correspondant au recouvrement dominant.
Compliqué à expliquer, voici un schéma pour plus de clarté :
[img]http://img11.hostingpics.net/pics/333647Clipboard01.jpg[/img]
En gros je voudrais que ma couche_A prenne la valeur d'une colonne du polygone bleu de ma couche_B.
Ca doit être tout basique mais je bloque..
Merci d'avance pour vos éclaircissements !
Hors ligne
#2 Wed 09 December 2015 12:22
- luciole
- Participant occasionnel
- Date d'inscription: 28 Oct 2015
- Messages: 19
Re: QGIS 2.10 : Attribuer valeur de 2 polygones superposés
Bonjour,
Une jointure par localisation pourrait résoudre le problème.
Vecteur > Outils de gestion de données > Joindre les attributs par localisation ...
Hors ligne
#3 Wed 09 December 2015 12:29
- Sylvain C.
- Participant occasionnel
- Date d'inscription: 6 Jan 2014
- Messages: 35
Re: QGIS 2.10 : Attribuer valeur de 2 polygones superposés
J'ai bien essayé mais ça ne permet pas de prendre la valeur du polygone dominant. Soit ça me prend la première entité localisée (aléatoire) soit c'est moyenne, min, max, somme, médiane et ça me renvoie des valeur aberrantes.
Hors ligne
#4 Wed 09 December 2015 14:17
- dominique.lys
- Participant assidu
- Date d'inscription: 5 Oct 2006
- Messages: 473
- Site web
Re: QGIS 2.10 : Attribuer valeur de 2 polygones superposés
Bonjour,
Peut être une piste: en calculant l'intersection on découpe les polygones de la couche A avec ceux de la couche B et on récupère tous les attributs de A et B. Ensuite on peut calculer un champs avec la superficie des polygones obtenus ce qui permet d'identifier celui qui a le plus grand recouvrement.
Après ça se complique, il faut faire une fusion des polygones pour retrouver la couche A initiale, tout en conservant les attributs de B concernant le polygone ayant le + fort recouvrement. C'est possible via SQL et les clauses GROUP BY et HAVING. Sans passer par une base de données, l'outil OGR dissolve de la toolbox QGIS passe en arrière plan par du SQL, on peut donc s'en servir pour construire une commande ogr2ogr à lancer depuis un terminal.
Cela donne par exemple :
Code:
ogr2ogr groupby.shp intersection.shp -dialect sqlite -sql "SELECT ST_Union(geometry),* FROM intersection GROUP BY attribut HAVING superficie = max(supercifie)"
Hors ligne