Durée : ~ 1 heure
7 - Attributs et requêtes
L'objectif de ce chapitre est d'aborder les notions d'attributs et de requêtes.
Pour les besoins de ce tutoriel nous utiliserons les données suivantes :
- Communes des régions Centre Val-de-Loire et Pays de la Loire .shp
- Aire de covoiturage sur la région Centre Val-de-Loire .shp
7.1 - Requête attributaire
Une requête attributaire a pour objectif de sélectionner des entités ayant des attributs satisfaisant une ou plusieurs conditions. Par exemple, si on possède une couche représentant les communes française, on peut vouloir rechercher toutes celles ayant un attribut de population supérieur à 10 000.
Exercice 7.1 : Faire une requête attributaire
1/ Dans un nouveau projet QGis, charger la couche « R24_52_Communes.shp ».
2/ Cliquer sur l’icône « Sélectionner les entités en utilisant une expression » .
3/ Dans la colonne du milieu, cliquer sur « Champs et valeurs ». Le menu déroulant fait apparaître tous les champs de la table attributaire.
4/ Double-cliquer sur le champ « Population », représentant la population totale par commune.
5/ Dans la colonne « Expression », insérer à la suite de « "Population" » le caractère « > » pour strictement supérieur. Enfin compléter en ajoutant « 10 000 » pour ne sélectionner que les communes dont la population est supérieure à 10 000 habitants.
6/ Terminer la requête en cliquant sur « Sélection des entités ».
Exercice 7.2 : Exporter les résultats d'une requête
On souhaite utiliser la sélection des communes de plus de 10 000 habitants pour un traitement ultérieur. Nous allons donc exporter les résultats de la requêtes réalisée à l’exercice 7.1.
1/ Dans la liste des couches, faire un clic droit sur la couche « R24_52_Communes » et sélectionner « Sauvegarder les entités sélectionnées sous... ».
2/ Donner un nom au fichier et spécifier son emplacement.
3/ Vérifier que le SCR est bien celui de la couche d’origine (qui doit être le même que celui du projet).
4/ Cocher la case « N’enregistrer que les entités sélectionnées » (dans le cas où vous seriez passé par le menu « Sauvegarder les entités sous... ») .
5/ Terminer la sauvegarde de la couche en cliquant sur « OK ».
6/ Cliquer sur le bouton « Désélectionner toutes les entités ».
7.2 - Requête spatiale
Une requête spatiale a pour objectif de sélectionner les entités d’une couche en fonction de leur position par rapport à celles d’une autre couche en utilisant un prédicat géométrique. La requête porte sur la géométrie des entités et non plus sur leurs attributs. Par exemple, pour une couche représentant les communes on recherche celles traversées par un cours d’eau.
Pour pouvoir réaliser une requête spatiale, il faut au minimum deux couches vectorielles. Il faudra aussi préciser au logiciel le prédicat géométrique à utiliser c'est à dire selon quelle opération géométrique les deux entités vont-elles être comparées.
Lecture de la figure 7.5 : les entités d'une couche de type lignes ne peuvent pas croiser les entités d'une couche de type points mais peuvent croiser les entités d'une couche de type lignes ou polygones.
Exercice 7.3 : Faire une requête spatiale
Pour cette première requête spatiale, nous allons sélectionner les communes de la région Centre Val-de-Loire dans lesquelles des aires de covoiturage ont été recensées.
1/ Charger la couche « CVL_Aires_de_covoiturage.shp ».
2/Aller dans le menu « Vecteur>Outils de Recherche>Sélection par localisation ».
3/ Dans le champ « Sélectionner les entités depuis », sélectionner la couche des communes. Dans le champ « En comparant les entités de » sélectionner la couche des aires de covoiturage. Attention les deux couches doivent être dans le même SCR (ici c’est le cas !).
4/ Dans « Prédicat géométrique » cocher « intersecte ». Ne pas modifier les autres champs et exécuter la requête.
5/ De la même manière que dans l’exercice 7.2, exporter les résultats de la requête.
7.3 - Combiner plusieurs requêtes
Avec QGis, il est possible de combiner des requêtes spatiales et des requêtes attributaires, plusieurs requêtes attributaires ou plusieurs requêtes spatiales. Par exemple, pour une couche représentant les communes on recherche celle dont la population est à la fois supérieure à 1500 habitants et inférieure à 7500 habitants.
Exercice 7.4 : Combiner deux requêtes attributaires
1/ Dans la couche des communes, faire une première requête attributaire (comme dans l’exercice 7.1) permettant de sélectionner les communes dont la population est supérieure à 1500 habitants.
2/ Ne pas désélectionner les entités et rouvrir la fenêtre de sélection selon les attributs.
3/ Insérer une expression permettant de sélectionner les communes dont la popoulation est inférieure à 7500 habitants.
4/ Au lieu de cliquer sur « Sélection » en bas à droite, sélectionner dans la liste « Filtrer la sélection courante ».
NB : dans ce cas très simple, cette double requête aurait pu être faite directement avec l’opérateur « AND » (en insérant la formule « "POPULATION">1500 AND "POPULATION"<7500 » . Dans des cas plus complexes, il peut être plus facile de les faire séparément.
Exercice 7.5 : Combiner deux requêtes spatiales
1/ Se connecter au flux WFS suivant (voir le chapitre 4.3 si besoin) : http://ws.carmen.developpement-durable.gouv.fr/WFS/11/eau_bassin1
2/ Dans les couches disponibles sur ce serveur WFS, rechercher et charger la couche des « Voies navigable du domaine public fluvial ».
3/ Sélectionner les communes traversées par les cours d’eau recensés dans cette couche.
4/ Faire une deuxième requête spatiale permettant de sélectionner parmi les communes traversées par les cours d’eau celles possédant une aire de covoiturage. Avant d’exécuter la requête, dans « Modifier la sélection actuelle en » sélectionner « Sélection au sein de la sélection courante ».
Exercice 7.6 : Combiner une requête spatiale et une requête attributaire
1/ Commencer par faire une requête spatiale. À partir de la couche « Voies navigables du domaine public fluvial » chargée à l’exercice 3, sélectionner les communes traversées par les cours d’eau recensés dans cette couche.
2/ Ouvrir la fenêtre de sélection selon les attributs.
3/ Insérer une expression permettant de sélectionner les communes de plus de 10 000 habitants. Avant de valider votre requête, au lieu de cliquer sur « Sélection » en bas à droite, sélectionner dans la liste « Filtrer la sélection courante ».