Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Thu 25 June 2020 15:38

Bousse
Participant occasionnel
Date d'inscription: 5 Jun 2020
Messages: 15

QGIS: Question processus

Bonjour à tous,

Je souhaite pouvoir obtenir plusieurs attributs d'une autre couche pour chaque carrés de la grille en PJ, notamment des données issues de la couche bâtiment "merge_bat". Par exemple, la surface cumulée des bâtiments par carré de la grille, la surface cumulée des murs du bâti par carré de la grille...
En fait, avoir une information moyennée pour chaque carré de la grille.
En PJ un zoom sur les carrés et les bâtiments.
Je pense donc qu'il faut faire une jointure entre les deux couches. J'ai recherché plusieurs solutions, notamment avec du SQL par Postgre (je ne maîtrise pas totalement), mais j'ai toujours des difficultés.

Il est possible de récupérer l'aire et le périmètre des bâtiments grâce aux champs $area et $perimeter.
Pour obtenir la surface cumulée des bâtiments (par exemple), il faudrait donc un calcul du type sum($area) pour chaque carré. J'ai déjà réussi à faire cela, mais je dois sélectionner un carré à la main (avec l'outil "sélectionner des entités"), et faire le calcul. J'aimerai donc en fait créer une sorte de "processus" permettant d'obtenir cela pour chaque carré de la grille assez rapidement, sans devoir faire chaque carré à la main.
Voici les tables d'attributs des deux couches vecteur nous intéressant :
Couche merge_bat (je peux créer un champ height : if(hauteur IS NULL, hauteur_2,hauteur) pour avoir une hauteur par id)
Couche Grille : Les carrés sont regroupés par id, avec en coordonnées les abscisses et ordonnées des lignes constituant le carré.
left =x1, right =x2, bottom=y1, top=y2.
Le but serait donc de pouvoir ajouter à cetet table d'attribut, des champ du type "surf_totale_bati", donnant sum($area) pour chaque carré

J'espère avoir été clair, n'hésitez pas si vous avez la moindre incompréhension.
Très bonne journée, Bousse

Dernière modification par Bousse (Thu 25 June 2020 15:38)


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

Hors ligne

 

#2 Fri 26 June 2020 09:37

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS: Question processus

Bonjour,

Voilà comment je procéderai:
1/ réaliser une union entre la grille et la couche des bâtiments
2/ utiliser l'outil aggregate pour calculer la somme de l'expression $area en groupant par l'identifiant de la grille. C'est l'équivalent d'une requête SQL du genre SELECT sum(st_area(geom)) FROM result_union WHERE id_bat IS NOT NULL GROUP BY id_grille

Hors ligne

 

#3 Wed 01 July 2020 08:59

Bousse
Participant occasionnel
Date d'inscription: 5 Jun 2020
Messages: 15

Re: QGIS: Question processus

Merci ! ça fonctionne bien smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB