#1 Mon 28 January 2019 15:17
- artichaud
- Participant occasionnel
- Date d'inscription: 16 May 2011
- Messages: 32
QGIS: Renseigner un champ à partir d'une couche vecteur
Bonjour,
Je m'arrache un peu les cheveux depuis un petit moment... : je cherche à faire une manip' qui me semblait élémentaire, et que je crois avoir déjà fait par le passé avec QGis sans soucis, mais je n'arrive plus tout tout à le faire !
J'ai deux couches vecteurs, l'une avec des contours de parcelles cadastrales et l'autre avec, entre autre, des natures d'occupation du sol. J'ai créé un nouveau champ attributaire dans ma couche de parcelles et j'aimerai renseigner ce champ avec l'information de l'occupation du sol de ma deuxième couche. Mais par le menu vecteur, je ne trouve rien qui ressemble à cette fonction...
Si quelqu'un avait de quoi m'aider, ce serait top ! Merci d'avance !
Hors ligne
#2 Mon 28 January 2019 15:27
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
Bonjour,
C'est l'outil intersection, ou bien joindre les attributs par localisation
Cela dit, si deux types d'occupation du sol présents sur la parcelle :
- réaliser une intersection → couche intersection
- ajouter la surface à la couche intersection
- utiliser group stats en cherchant par id_parcelle la superficie maximale
- ... et donc le type d'occupation du sol dominant
Peut sans doute être exécuté en une passe avec les nouvelles fonctions aggregate du calculateur d'expression, cela dit
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Tue 29 January 2019 08:25
- sylvainSIG
- Participant assidu
- Lieu: Moissac
- Date d'inscription: 29 Nov 2018
- Messages: 265
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
Si je comprend bien, de deux couches vecteur tu veux passer à une seule, n'est ce pas ? Si tel est le cas, tu crées un champ commun aux deux couches vecteur et tu demandes une jointure de table. Du moins, si c'est ce que j'ai compris...
Hors ligne
#4 Tue 29 January 2019 10:25
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1667
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
Bonjour,
Vous avez dans Vecteurs/Outils de gestion des données, "joindre les attributs par localisation". Mais effectivement à voir ce qu'il se passe s'il y a plus d'une catégorie d'occupation du sol. Sinon il faudrait découper les parcelles par la couche d'occupation du sol, calculer les nouvelles surfaces de parcelles découpées. Sinon, sinon, il y a FME...
Hors ligne
#5 Tue 29 January 2019 11:52
- artichaud
- Participant occasionnel
- Date d'inscription: 16 May 2011
- Messages: 32
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
Bonjour,
Et merci beaucoup pour vos réponses rapides !
Grâce à vos aides j'ai suis parvenue à mes fins, mais c'était plus complexe que ce que je m'étais imaginé... :
- avec la fonction intersection j'ai créé une 3ème couche, avec le parcellaire cadastral redécoupé en autant de mode d'occupation du sol (MOS) différent par parcelles ;
- j'ai créé un identifiant commun entre cette dernière couche et la couche du parcellaire cadastral ;
- j'ai fait une jointure entre les deux couches
Par contre effectivement, le soucis est qu'il y a bien souvent plusieurs MOS par parcelle, et que lors de la jointure je crois qu'il prend le premier par ordre alphabétique. Je connais pas les fonctions aggregate ou group stats évoquée, mais je vais essayer de regarder, pour trouver une solution pour avoir la MOS dominante en surface qui soit renseignée.
(D'ailleurs dommage qu'on ne puisse pas indiqué une règle avec la fusion, ce serait bien pratique !)
Un grand merci à vous !
Hors ligne
#6 Tue 29 January 2019 18:30
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
J'ai créé un nouveau champ attributaire dans ma couche de parcelles et j'aimerai renseigner ce champ avec l'information de l'occupation du sol de ma deuxième couche
Tu souhaiterais avoir quoi au final comme résultat dans ce nouveau champ ? L'utilisation prédominante ?
Vincent
Hors ligne
#7 Tue 29 January 2019 22:29
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
[retiré]
Dernière modification par carteq (Wed 30 January 2019 18:05)
Hors ligne
#8 Tue 29 January 2019 22:54
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
Le code SQL testé et fonctionnel.
Code:
Select Utilisation, parcelle_no, superficie from (Select * from Intersect_shp Order By superficie desc) Group BY parcelle_no
J'ai testé avec la version 3.4.4. J'ai dû envoyer la couche Intersect_shp dans un Geopackage. C'est beaucoup plus fiable et performant que de fonctionner en Virtual Layer, une fois dans le DB Manager.
Dernière modification par carteq (Wed 30 January 2019 18:05)
Hors ligne
#9 Wed 30 January 2019 16:54
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS: Renseigner un champ à partir d'une couche vecteur
[retiré]
Dernière modification par carteq (Wed 30 January 2019 18:05)
Hors ligne