#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)
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
Hors ligne