Pages: 1
- Sujet précédent - QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes - Sujet suivant
#1 Tue 21 December 2021 21:11
- Forestons!
- Participant occasionnel
- Date d'inscription: 21 Dec 2021
- Messages: 13
QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Bonjour,
Je suis gestionnaire forestier, et suis en train de cartographier une propriété forestière privée, dans le cadre d'un plan de gestion.
j'utilise la version 3.22.0 de QGIS
Dans mon projet QGIS, j'ai une couche shapefile Parcelles forestières, et une coupe shapefile Parcelles cadastrales.
Je souhaiterais générer un tableau montrant la répartition de surface (en hectares) des parcelles forestières, au sein des parcelles cadastrales.
Pour contextualiser : à la base, je pars du parcellaire cadastrale, puis, selon la photo aérienne et les différences de peuplement, je trace mes parcelles forestières. Ce qui fait qu'une parcelle forestière va parfois surplomber plusieurs parcelles cadastrales.
Sauriez-vous m'aider à faire cela ?
Cordialement, Corentin
Hors ligne
#2 Wed 22 December 2021 09:08
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Bonjour,
il existe plusieurs méthodes pour faire cela :
Une méthode où on va utiliser une formule un peu compliqué
une méthode où on va utiliser plusieurs algorithmes
Voici les deux :
Méthode 1 : Sélectionner la couche parcelle cadastrale, créer un nouveau champs (on va y stocker les surfaces des parcelles forestières), lancer la calculatrice de champs et remplissez le champ préalablement créer avec la formule suivante (à ajuster) :
area( -- calcule l'aire du polygone aggrégé intersecté
intersection( -- découpe les parcelles forestières aggrégées avec la parcelles cadastrale courante
collect_geometries( -- aggrege les parcelles forestières intersectant la parcelles cadastrale courante
overlay_intersects( -- récupère les géométries des parcelles forestières intersectant la parcelle cadastrale courante
layer := 'parcelle_for', -- Nom de la couche des parcelles forestière à adapter
expression := $geometry))
,$geometry)
)
Méthode 2 :
1 / utiliser l'algorithme "couper"
couche source = votre couche parcelle forestière
couche de superposition = votre couche parcelle cadastrale
2 / sur la couche découpé (en sortie de l'algo) --> recalculer les surfaces (calculatrice de champs, mettre à jour le champ surface --> $area)
3 / lancer l'algo "Joindre les attributs par localisation (résumé)"
couche source = votre couche parcelle cadastrale
couche à joindre = la couche découpé
prédicat géométrique = within
champs à résumer = le champs surface
résumé à calculer = somme
et voila !
Dernière modification par shirosaki (Wed 22 December 2021 09:09)
Paul QUESNOT
Hors ligne
#3 Wed 22 December 2021 14:06
- Forestons!
- Participant occasionnel
- Date d'inscription: 21 Dec 2021
- Messages: 13
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Bonjour Paul, merci de votre réponse !
je viens d'intégrer la formule, mais la touche OK reste grisée.. ai-je mal rentré la formule ?
Hors ligne
#4 Wed 22 December 2021 14:09
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Oui, il faut cocher la case "mise à jour d'un champ existant" et choisir le champ à remplir
Paul QUESNOT
Hors ligne
#5 Wed 22 December 2021 14:25
- Forestons!
- Participant occasionnel
- Date d'inscription: 21 Dec 2021
- Messages: 13
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
La formule a en effet fonctionné, mais cela n'est pas ce que je souhaite, j'ai du mal m'exprimer.
En voyant la photo (de gauche) ci-jointe, on remarque 3 parcelles cadastrales (D423, D424, D425).
En voyant la photo (de droite) ci-jointe, on voit 4 parcelles forestières, dont la parcelle 10c, par exemple, qui surplombe les 3 parcelles cadastrales.
Je souhaiterais pouvoir générer un tableau m'indiquant précisément, quelle est la surface de la 10d dans chacune de ces 3 parcelles (et ceci de manière générale sur toute la propriété).
Est-ce possible selon vous ?
Je vous remercie encore pour votre aide précieuse !
Bien à vous,
Corentin
Hors ligne
#6 Wed 22 December 2021 14:28
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
ah oui en effet
c'est le problème presque inverse
je regarde cela et je vous fait un retour
Paul QUESNOT
Hors ligne
#7 Wed 22 December 2021 14:49
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Alors,
c'est possible, et il faut réaliser 3 actions distinctes
Étape 1 : (si ce n'est pas déjà fait) calculer l'aire des polygones de la couche 'peuplement' --> calculatrice de champs, nouveau champ, formule : $area
Étape 2 : Lancer l'algo qgis "Joindre les attributs par localisation" ( et non "Joindre les attributs par localisation (résumé)")
Couche de base --> parcellesst-martin, joindre la couche --> peuplement, champs à ajouter --> le champ avec les noms des parcelles forestière et les aires calculés en étape 1
l'algo va vous sortir une nouvelle couche --> ça sera la meme que "parcellesst-martin" mais avec des parcelles dupliqués (autant de doublon que d'intersections entre les deux couches)
Étape 3 : sur la nouvelle couche, créer un champs "surface_intersect" (c'est le champs qui vous donnera la surface intersectée)
remplir avec la formule suivante :
Code:
area(intersection($geometry,geometry(get_feature('peuplement','id_peuplement', "id_peuplement" ))))
remplacer juste "id_peuplement" par le nom du champ contenant les numéros des parcelles forestières
la table attributaire sera alors un tableau qui vous permettra de faire la correspondance entre chaque parcelles cadastrale et les surfaces intersectées sur les parcelles forestières
Dernière modification par shirosaki (Wed 22 December 2021 14:50)
Paul QUESNOT
Hors ligne
#8 Wed 22 December 2021 15:00
- Joseph Jacquet
- Participant actif
- Date d'inscription: 19 Feb 2020
- Messages: 92
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Bonjour,
Vous avez l'outil "Analyse de superposition" (https://docs.qgis.org/3.16/fr/docs/user … oroverlaps) qui peut répondre à votre besoin ou "union" qui génère une couche d'intersection entre deux couches et fusionne les attributs des deux couches (https://docs.qgis.org/3.16/fr/docs/user … #qgisunion). Il restera à calculer la surface avec les formules émises plus tôt : $area
Ces algorithmes sont peut-être plus directs au vue de vos besoins bien que la force des SIG réside dans la multitude des chemins pour arriver un point précis
Bonne journée,
JJ
Dernière modification par Joseph Jacquet (Wed 22 December 2021 15:01)
Hors ligne
#9 Wed 22 December 2021 15:14
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Bonjour,
Vous avez l'outil "Analyse de superposition" (https://docs.qgis.org/3.16/fr/docs/user … oroverlaps) qui peut répondre à votre besoin ou "union" qui génère une couche d'intersection entre deux couches et fusionne les attributs des deux couches (https://docs.qgis.org/3.16/fr/docs/user … #qgisunion). Il restera à calculer la surface avec les formules émises plus tôt : $area
JJ
Ah oui je connaissais pas cet algo, ça permet de simplifier le process assez radicalement !
Paul QUESNOT
Hors ligne
#10 Wed 22 December 2021 15:24
- Forestons!
- Participant occasionnel
- Date d'inscription: 21 Dec 2021
- Messages: 13
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
La couche s'est bien créée. Pour la dernière étape, comme vous pouvez le voir sur la photo, cela m'indique NULL en prévisualisation (j'ai été jusqu'à l'édition et cela n'a rien donné).
Ai-je encore une fois mal renseigné la formule (vous pouvez voir les noms de champs de la table attributaire au-dessus de la calculatrice).
Hors ligne
#11 Wed 22 December 2021 15:48
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Oui vous n'avez pas remplacé 'id_peuplement' par son vrai nom, 'id_peuplement' c'était juste un exemple
sinon est ce que vous pouvez nous transmettre un extrait de vos données ? comme ça je vous donne les formules avec les bon noms de champs (les tables peuvent être vides, ou inventées, il me faut juste les noms de champs)
Dernière modification par shirosaki (Wed 22 December 2021 15:52)
Paul QUESNOT
Hors ligne
#12 Wed 22 December 2021 16:12
- Forestons!
- Participant occasionnel
- Date d'inscription: 21 Dec 2021
- Messages: 13
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Oui, voici en pj : à gauche, la couche des parcelles forestières et à droite la couche des parcelles cadastrales.
Si cela ne suffit pas, n'hésitez pas à me le dire.
Hors ligne
#13 Wed 22 December 2021 16:27
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
je vous remercie
petite question résiduelle : Dans la couche peuplement, est ce que le champ "Parcelle" est unique (est ce que les valeurs peuvent apparaitre plus d'une fois ? deux entités 10a par exemple ? si non on va devoir créer un champ unique préalablement)
On reprend :
Étape 1 : déjà fait d'après votre capture d'écran
Étape 2 : Lancer l'algo qgis "Joindre les attributs par localisation"
Couche de base --> parcellesst-martin, joindre la couche --> peuplement, champs à ajouter --> "Parcelle"
l'algo va vous sortir une nouvelle couche --> ça sera la meme que "parcellesst-martin" mais avec des parcelles dupliqués (autant de doublon que d'intersections entre les deux couches)
Étape 3 : sur la nouvelle couche, créer un champs "surface_intersect" (c'est le champs qui vous donnera la surface intersectée)
remplir avec la formule suivante :
Code:
area(intersection($geometry,geometry(get_feature('peuplements','Parcelle', "Parcelle" ))))
Dernière modification par shirosaki (Wed 22 December 2021 16:28)
Paul QUESNOT
Hors ligne
#14 Wed 22 December 2021 16:46
- Forestons!
- Participant occasionnel
- Date d'inscription: 21 Dec 2021
- Messages: 13
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Cela a fonctionné !
Je vous remercie Paul, votre aide m'a vraiment été précieuse, et votre pédagogie m'a permit de comprendre comment mettre en place cet algo.
Bonnes fêtes à vous !
Corentin
Hors ligne
#15 Wed 22 December 2021 17:39
- shirosaki
- Participant actif
- Lieu: Lyon
- Date d'inscription: 30 Mar 2018
- Messages: 125
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Ah cool !
Je suis content d'avoir pu vous aider,
Bonnes fêtes également
Paul QUESNOT
Hors ligne
#16 Wed 05 January 2022 13:29
- Forestons!
- Participant occasionnel
- Date d'inscription: 21 Dec 2021
- Messages: 13
Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes
Bonjour,
J'espère que vous avez passé de bonnes fêtes.
Toujours sur ce même dossier, mon souci est que les surfaces des parcelles forestières (couche nommée "peuplement"), sont totalement différentes des mesures de surface que je peux faire avec la règle.
J'ai tenté de modifier le SCR, j'ai réédité la couche, vérifié si ça ne venait pas de la couche du cadastre (parcellesst-martin), vérifié la validité de la géométrie, mais rien n'y fait.
Cela vous est-il déjà arrivé ?
Cordialement,
Corentin
Dernière modification par Forestons! (Fri 07 January 2022 08:48)
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes - Sujet suivant