Sélections, Jointures et Calculs de Champs avec Quantum GIS Ce document fait partie d une série de tutoriels destinés au logiciel Quantum GIS dans sa version 1.8 Lisboa. Il ne remplace pas le manuel utilisateur du logiciel, il est donc conseillé de s y référer pour plus de détails sur les fonctionnalités. Auteur : Marie SILVESTRE marie.silvestre@upmc.fr CNRS FR3020 FIRE Fédération Ile-de-France de Recherche sur l Environnement Ce document est sous la licence CC BY-SA 3.0 : Creative Commons Paternité Partage des conditions initiales à l identique. Pour suivre ce document d une manière pratique, lorsque des actions sont demandées aux lecteurs, les paragraphes d instructions sont signalés par une barre verticale. Notions abordées : Sélections attributaires et spatiales, Jointures attributaires et spatiales, Calculs sur les champs. 1 Sélections 1.1 Sélections via la table d attributs La sélection basée sur les valeurs des attributs se fait via la Table d attributs. Il y a deux principaux modes de sélection : par la recherche rapide sur un champ (cf. TD Prise en main), par la Recherche avancée via le bouton du même nom et permettant des sélections basées sur un ou plusieurs champs de la table. Un Constructeur de requête facilite la recherche avancée : les champs de la table sont listés, les opérateurs logiques courants sont proposés. Pour ajouter un nom de champ à la requête en construction il faut double-cliquer sur son nom. Un opérateur s ajoute en cliquant sur le bouton correspondant. L opérateur!= signifie "différent de". Pour les champs de type texte, les valeurs doivent être encadrées de guillemets simples ( ). Lorsque que le caractère joker (%) est employé, les opérateurs LIKE ou ILIKE doivent être utilisés. Le bouton Tester permet de valider la syntaxe d une requête. Il s agit d identifier les erreurs éventuelles avant de lancer la sélection qui peut être longue sur les gros fichiers. 1
Figure 1 Constructeur de requête. Sur la couche hydro_yonne.shp, sélectionnez les cours d eau non intermittents, naturels et de 15m ou plus de large. Il y en a 1170. 1.2 Sélections spatiales La sélection spatiale peut se faire manuellement avec la barre d outils Attributs. Il faut que la couche cible soit sélectionnée dans le panneau couche. La sélection se fait ensuite par un clic-gauche sur les entités. Pour ajouter des entités à une sélection déjà existante, il faut maintenir la touche Ctrl enfoncée. Figure 2 Outils de sélection spatiale manuelle. 2
Testez différents modes de sélection (entité seule, rectangle, ajout de plusieurs sélections) sur une des couches chargées. L autre mode de sélection spatiale permet de faire des sélections en se basant sur la position par rapport à d autres couches. Les couches doivent impérativement être dans le même système de coordonnées. Cet outil de sélection se trouve dans le menu "Vecteur / Outils de Recherche / Sélection par localisation". La couche sur laquelle la sélection sera effectuée et la couche d intersection sont à choisir parmi celles chargées dans QGIS. L outil permet de créer une nouvelle sélection, ajouter à une sélection ou retirer d une sélection. Sélectionnez les communes du bassin versant de l Yonne (utilisez la couche communes_bv_yonne.shp) dans lesquelles il y a des cultures permanentes (classe 22 de la couche CLC2006). Il y en a 42. Sélectionnez les communes du bassin versant de l Yonne dans lesquelles il y a des cultures permanentes (classe 22 de la couche CLC2006) mais pas de zone urbaine (classe 1). Il y en a 11. 1.3 Sauvegarde d une sélection 1.3.1 Sauvegarde de la requête QGIS permet d enregistrer une requête effectuée sur une table d attributs, un ficher texte (.qqf) est alors créé. Pour ce faire, dans la fenêtre de "Recherche avancée", une fois une requête créée, il faut cliquer sur le bouton "Sauvegarder...". 1.3.2 Export de la sélection Pour sauvegarder une sélection, il est également possible d enregistrer celle-ci en créant une nouvelle couche par un clic-droit sur le nom de la couche dont la sélection est issue puis "Sauvegarder la sélection sous". Sélectionnez les bassins de la couche zone_hydro.shp dont le code zone commence par F3 et sauvegardez cette sélection sous le nom zone_hydro_yonne.shp. 2 Jointures 2.1 Jointures via la table d attributs Les jointures par attributs permettent de joindre les champs d une table à une table d attributs d une couche existante. Pour que la jointure soit possible, il faut que les deux tables aient un champ en commun (un champ d identifiant par exemple). Les noms des champs peuvent être différents mais leur type doit être de même nature. Pour joindre une table à une table d attribut d une couche, il faut aller dans l onglet Jointure de la fenêtre de Propriétés de la couche cible. Une jointure s ajoute en cliquant 3
sur le bouton +. La table à joindre est à choisir parmi la liste des couches vectorielles et des tables chargées dans QGIS. Se choisit ensuite le champ de jointure de la table à joindre puis le champ de jointure de la couche cible (Champ ciblé). Ajoutez la table info_communes.dbf à QGIS (il faut passer par l ajout de couche vectorielle, afficher tous les types de formats puis sélectionner le fichier dbf). Effectuez une jointure sur la couche de communes avec cette table en utilisant les codes INSEE des communes. Les champs de la table jointe viennent s ajouter à la table initiale de la couche. Ils sont donc ensuite disponibles pour les sélections, les calculs de champs, etc. Ils ne seront cependant pas modifiables. Les informations de jointure sont stockées dans le fichier de projet QGIS. Pour utiliser la couche avec sa jointure dans un autre projet ou dans d autres traitements, il faut exporter la couche (clic-droit sur la couche puis "Sauvegarder sous"). 2.2 Jointures spatiales La jointure spatiale permet de joindre les attributs d une couche à une autre couche en se basant uniquement sur leurs localisations respectives. L outil de jointure spatiale s ouvre via le menu "Vecteur / Outils de gestion de données / Joindre les attributs par localisation". Une jointure spatiale peut être effectuée entre tous les types de couches (entre deux couches de points, une couche de ligne et une couche de polygone, etc.). Le type de la couche vecteur en sortie est toujours identique à celui de la couche cible : par exemple si on joint les attributs d une couche de polygones à une couche de lignes (couche cible), la couche en sortie est une couche de lignes et sa table d attributs reprend les attributs des lignes auxquels sont joints les attributs du ou des polygones intersectés par les lignes (avec un calcul de la moyenne, la somme, la médiane, etc. lorsqu il y a plusieurs polygones et que cette option est choisie). Nous allons calculer le nombre de communes (avec leur nombre d habitants) traversées par chaque tronçon de cours d eau dans le bassin de l Yonne : Effectuez une jointure spatiale pour joindre les attributs des communes (utilisez la couche issue de la jointure réalisée ci-dessus) à ceux de la couche hydro_yonne.shp et choisissez de "Prendre un résumé des entités intersectées" et de calculer la Somme. Regardez les "nouveaux" champs de la table de la couche de lignes créée. 4
3 Calculs de champs Les calculs sur des champs se font via la table d attributs. Il faut passer en mode édition et cliquer sur le bouton "Ouvrir la calculatrice de champs". La calculatrice permet à la fois de faire des calculs sur des champs existants et de créer de nouveaux champs. En cochant la case "Mise à jour des entités sélectionnées" on peut choisir de n effectuer les calculs que sur la sélection. Les champs de la table ainsi que les éventuels champs issus de jointure sont disponibles pour effectuer les calculs. Figure 3 Calculatrice de champs. Un certain nombre d opérateurs sont proposés avec notamment la possibilité d utiliser la longueur (pour les couches de lignes) ou la surface (pour les couches de polygones) des entités. Les unités de mesure sont celles du système de coordonnées de la couche (attention donc à ce que le SCR de la couche soit de type projeté!). L opérateur rownum permet d assigner un identifiant unique aux entités. La liste complète des opérateurs utilisables dans la calculatrice de champs est disponible dans le manuel utilisateur de QGIS. 5
Figure 4 Exemples de valeurs d indice de compacité. Calculez l indice compacité de Gravelius des zones hydro du bassin de l Yonne. Il est défini comme le rapport du périmètre du bassin au périmètre du cercle ayant la même surface : K G = P 2 où P est le périmètre et A, l aire. ΠA Plus K G est proche de 1, plus la forme du bassin est circulaire. Le périmètre d un polygone est représenté par l opérateur $perimeter. Représentez ensuite les résultats par une symbologie en dégradé de couleur. 3.1 Statistiques sur un champ Le menu "Vecteur / Outils d analyse / Statistiques basiques" permet de calculer automatiquement les statistiques suivantes sur un champ de type numérique : moyenne, écart type, somme, min, max, médiane, nombre de valeurs uniques, etc. Sur les champs de type texte les statistiques suivantes sont calculées : longueur min et max du texte, enregistrements vides, etc. 6