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

GEODATA DAYS 2024

#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: 124

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 ?


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

Hors ligne

 

#4 Wed 22 December 2021 14:09

shirosaki
Participant actif
Lieu: Lyon
Date d'inscription: 30 Mar 2018
Messages: 124

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


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

Hors ligne

 

#6 Wed 22 December 2021 14:28

shirosaki
Participant actif
Lieu: Lyon
Date d'inscription: 30 Mar 2018
Messages: 124

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: 124

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 wink

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: 124

Re: QGIS 3.22: Correspondance entre les tableaux de 2 couches differentes

Joseph Jacquet a écrit:

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).


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

Hors ligne

 

#11 Wed 22 December 2021 15:48

shirosaki
Participant actif
Lieu: Lyon
Date d'inscription: 30 Mar 2018
Messages: 124

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.


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

Hors ligne

 

#13 Wed 22 December 2021 16:27

shirosaki
Participant actif
Lieu: Lyon
Date d'inscription: 30 Mar 2018
Messages: 124

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: 124

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

 

Pied de page des forums

Powered by FluxBB