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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Thu 08 July 2021 18:08

hugman
Juste Inscrit !
Date d'inscription: 8 Jul 2021
Messages: 1

QGIS 3.20: Jointure spatiale

Bonjour à tous,

J'aimerais comptabiliser sur QGIS 3.20 le nombre de bâtiments compris dans chacune des parcelles d'une zone. Ce nombre devra être ensuite se retrouver dans un champ de la couche Parcelles. Exemple : dans le champ "Bâti" de ma couche Parcelles on comptabilise 5 bâtiments.

Car j'ai essayé de faire une jointure spatiale entre ma couche Parcelles et Bâti, mais à chaque fois c'est dans l'optique d'attribuer un champ de Bâti à Parcelles selon leur localisation.

Je me demande donc s'il n'y a pas une commande dans la calculatrice de champ (voire en python?) qui me permettrait d'effectuer ce travail qui somme toute n'est pas si compliqué en théorie, mais nécessite un algorithme pour traiter autant d'entités.

N'hésitez pas à me demander des précisions ou des clarifications sur cette opération. Merci par avance!

Hugo.

Hors ligne

 

#2 Thu 08 July 2021 19:11

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3824

Re: QGIS 3.20: Jointure spatiale

Bonjour,
Un algorithme dans ce genre peut-être https://docs.qgis.org/3.16/fr/docs/user … n-summary?
Sinon, sans créer une nouvelle couche, vous pouvez regarder du côté de la fonction aggregate ou encore overlay_xxx (voir l'exemple 5pour inspiration). xxx dépend du niveau de superposition que vous voulez (contient vs intersecte notamment).

Hors ligne

 

#3 Fri 09 July 2021 09:54

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

Re: QGIS 3.20: Jointure spatiale

Bonjour hugman,
La fonction "Joindre les attributs par localisation (résumé)" offre la possibilité d'utiliser "compte" (ou "count" en anglais). En cochant un champ de la couche de Bâti (au hasard) et en cochant le résumé à calculer "compte" normalement ça va te faire une couche parcelles avec un champ en plus (nommé d'après celui choisi dans la couche bâti, mais il suffira de le renommer) qui contient le nombre d'entité bâti par parcelles.
Tu peux également choisir si les entités doivent s'intersecter ou être contenues, etc.

Et sinon comme dit SANTANNA une fonction aggregate si tu ne veux pas créer de nouvelle couche :

Code:

aggregate(
    'ID_de_la_couche_Bâti',
    'count',
    intersects($geometry,geometry(@parent))
)

PS : contains(geometry1,geometry2) fonctionne aussi à la place de intersects

Dernière modification par aheurion (Fri 09 July 2021 09:54)

Hors ligne

 

Pied de page des forums

Powered by FluxBB