Outdated version of the documentation. Find the latest one here.

Travailler avec la table d’attributs

La Table attributaire affiche les entités de la couche sélectionnée. Chaque ligne représente une entité avec ses attributs répartis dans plusieurs colonnes. Chaque entité de la table peut être recherchée, sélectionnée, déplacée et éditée.

Pour ouvrir la table attributaire d’une couche vectoriel, activez la couche en cliquant dessus depuis la zone de légende de la carte. Puis dans le menu Couche, cliquez sur openTable Ouvrir la table d’attributs. Vous pouvez aussi y accéder avec un clic droit sur la couche puis en sélectionnant openTable Ouvrir la table d’attributs ou en cliquant sur le bouton openTable Ouvrir la table d’attributs dans la barre d’outils des Attributs.

Cela ouvrira une nouvelle fenêtre qui affiche les attributs de toutes les entités de la couche (voir figure_attributes_1). Le nombre des entités et le nombre d’entités sélectionnées sont affichés dans la barre de titre de la table d’attributs.

Figure Attributes 1:

../../../_images/vectorAttributeTable.png

Table d’attributs de la couche ‘regions’

Les boutons situés au-dessus de la table d’attributs apportent les fonctionnalités suivantes :

  • toggleEditing Activer le mode d’édition pour permettre d’activer les fonctions d’édition (ou Ctrl+E)

  • saveEdits Enregistrer les modifications (ou Ctrl+S)

  • draw Recharger la table

  • newTableRow Ajouter une entité

  • deleteSelected Supprimer les entités sélectionnées (ou Ctrl+D)

  • expressionSelect Sélection les entités en utilisant une expression

  • selectAll Tout sélectionner (ou Ctrl+a)

  • invertSelection Inverser la sélection (ou Ctrl+r)

  • unselectAttributes Tout désélectionner (ou Ctrl+u)

  • selectedToTop Déplacer la sélection au sommet (ou Ctrl+t)

  • panToSelected Déplacer la carte sur les lignes sélectionnées (ou Ctrl+P)

  • zoomToSelected Zoomer la carte sur les lignes sélectionnées (ou Ctrl+J)

  • copySelected Copier les lignes sélectionnées dans le presse papier (ou Ctrl+C)

  • editPaste Coller à partir du presse-papier (ou Ctrl+v)

  • deleteAttribute Supprimer le champ pour les couches PostGIS et les couches gérées par OGR GDAL version >= 1.9 (ou Ctrl+L)

  • newAttribute Ajouter un champ pour les couches PostGIS et les couches gérées par OGR GDAL version >= 1.6 (ou Ctrl+W)

  • calculateField Ouvrir la calculatrice de champs (ou Ctrl+I)

Sous la table se trouve la barre de Champs Calculés qui permet d’effectuer des calculs qui s’appliquent rapidement aux attributs visibles dans la table. Cette barre utilise les mêmes expressions que dans la calculateField Calculatrice de Champs (consultez Calculatrice de champ).

Astuce

Éviter d’exporter la géométrie WKT

Si vous souhaitez utiliser les données attributaires dans un programme externe (comme Excel), utilisez le bouton copySelected Copier les lignes sélectionnées dans le presse-papier. Vous pouvez copier les données sans la géométrie si vous désactivez l’option checkbox Copier la représentation WKT de la géométrie depuis la table attributaire du menu Préférences ‣ Options ‣ onglet Sources de données .

Sélectionner une entité depuis la table

Chaque ligne sélectionnée dans la table d’attributs correspond aux attributs d’une entité sélectionnée de la couche. Si la sélection est modifiée sur la carte, elle est également mise à jour dans la table d’attributs. De la même manière, une modification de la sélection dans la table est automatiquement répercutée sur la carte.

Les lignes peuvent être sélectionnées en cliquant sur le numéro de ligne placé tout à gauche. Plusieurs lignes peuvent être sélectionnées en maintenant la touche Ctrl. Une sélection continue s’effectue en gardant appuyée la touche Shift et en cliquant sur une nouvelle ligne, toutes les lignes entre la première sélection et la dernière seront sélectionnées. Déplacer la position du curseur dans la table d’attributs en cliquant sur une cellule ne modifie pas la sélection des lignes. Modifier les entités sélectionnées depuis la carte ne modifie pas la position du curseur dans la table.

Vous pouvez faire un tri sur les colonnes en cliquant sur l’en-tête. Une petite flèche indique l’ordre de tri (une flèche pointant vers le bas indiquera un tri décroissant, une flèche vers le haut, un tri croissant).

Pour une simple recherche par attributs sur une seule colonne, choisissez Filtre de colonne ‣ du menu dans le coin inférieur gauche. Sélectionnez le champ (colonne) à partir duquel la recherche doit être effectuée dans le menu déroulant et appuyez sur le bouton [Appliquer]. Seules les entités correspondantes sont affichées dans la table attributaire.

Pour effectuer une sélection, vous devez utiliser l’icône expressionSelect Sélectionner les entités en utilisant une expression en haut de la table d’attributs. Cet outil vous permet de définir un sous-ensemble de votre table en utilisant une Liste de fonctions identiques à celles de la calculateField Calculatrice de champ (voir Calculatrice de champ). Le résultat de la requête peut ensuite être sauvegardée comme une nouvelle couche vecteur. Par exemple, si vous souhaitez trouver les régions qui sont des ‘borough’ dans la couche regions.shp des fichiers test de QGIS, vous devez déplier le menu Champs et Valeurs et choisir le champ que vous souhaitez interroger. Double-cliquez donc sur le champ ‘TYPE_2’ puis sur ‘=’ et cliquez sur [Charger toutes les valeurs uniques]. Dans la liste qui apparaît, choisissez et double-cliquez sur ‘Borough’. Dans le champ Expression apparaît alors la requête suivante :

"TYPE_2"  =  'Borough'

Vous pouvez également utiliser l’entrée Liste des fonctions ‣ Récent (Sélection) pour réutiliser une sélection faite précédemment. Les 20 dernières expressions sont proposées.

Les lignes correspondantes seront sélectionnées et le nombre total de ces lignes apparaît dans la barre de titre de la table d’attributs, et dans la barre d’état de la fenêtre principale. Pour des recherches qui s’appliquent seulement aux entités sélectionnées dans la carte, utilisez le constructeur de requête décrit dans la section Constructeur de requête.

Pour n’afficher que les lignes sélectionnées, utilisez Ne montrer que les entités sélectionnées du menu situé dans le coin inférieur gauche. Voir la prochaine section pour en savoir plus sur le filtrage des entités.

La zone de saisie de la calculatrice de champs vous permet d’effectuer des calculs uniquement sur les entités sélectionnées. Par exemple, vous pouvez modifier le nombre d’un champ ID du fichier regions.shp avec cette expression

ID+5

comme montré dans la figure_attributes_1 .

Filtrer les entités

En bas de la table attributaire, vous disposez d’une liste déroulante qui contient différents filtres :

  • Montrer toutes les entités ;

  • Ne montrer que les entités sélectionnées ;

  • Ne montrer que les entités visibles sur la carte ;

  • Ne montrer que les entités nouvelles ou éditées ;

  • Filtre de champ ;

  • Filtre avancé (expression) ;

Les quatre premiers sont assez explicites, les deux derniers sont des filtres basés sur une expression. Le Filtre de champ permet à l’utilisateur de choisir un nom de champ dans la liste, ce qui ajoute un formulaire sur la droite qui permet de rentrer un paramètre de filtre sur ce champ, évalué par l’opérateur like. Ce filtre va générer une expression tel un Filtre avancé. Cliquer sur le dernier type de filtre ouvre une fenêtre pour écrire une expression, voir Expressions pour plus d’information.

Affichage tabulaire/formulaire

Par défaut la fenêtre affiche la table attributaire sous forme tabulaire. Dans certains cas, il est préférable d’utiliser un affichage formulaire pour modifier certaines entités plus facilement.

Vous pouvez passer à la vue formulaire en cliquant en bas à droite, sur openForm et revenir à la vue tabulaire avec openTable.

Zoom sur l’entité

Pour zoomer sur une entité, sans avoir à la sélectionner, cliquez-droit sur l’entité que vous souhaitez voir, dans la table d’attribut, et sélectionnez Zoomer sur l’entité.

Enregistrer les entités sélectionnées dans une nouvelle couche

Les entités sélectionnées peuvent être sauvegardées dans n’importe quel format géré par OGR et également transformées dans n’importe quel système de projection (SCR). Ouvrez simplement le menu clic-droit de la souris sur la couche et cliquez sur Enregistrer sous pour définir un nom de fichier de sortie, son format et son SCR (consultez la section Le panneau Couches). Pour enregistrer la sélection, assurez-vous que l’option checkbox N’enregistrer que les entités sélectionnées est cochée. Il est également possible de définir des options de création OGR dans la boîte de dialogue.

Coller dans une nouvelle couche

Les entités qui ont été copiées peuvent être collées dans une nouvelle couche. Pour faire cela, passer la couche en mode édition. Sélectionnez quelques entités, copiez-les puis collez-les dans une nouvelle couche via Éditer ‣ Coller les entités comme puis Nouvelle couche vecteur ou Nouvelle couche vecteur en mémoire.

Ceci fonctionne avec les entités sélectionnées et copiées depuis QGIS mais également avec les entités au format well-known text (WKT) provenant d’un autre logiciel.

Editer les valeurs d’attributs

Le bouton calculateField Ouvrir la calculatrice de champs de la table d’attributs permet d’opérer des calculs sur la base des valeurs attributaires ou d’utiliser des fonctions, par exemple pour calculer la longueur ou la surface des entités. Les résultats peuvent être écrits dans une nouvelle colonne attributaire, un champ virtuel ou mettre à jour une colonne existante.

Un Champ virtuel est un champ basé sur une expression et calculé à la volée, c’est-à-dire que sa valeur est mise à jour automatiquement dès que l’un des paramètres utilisés dans l’expression change. L’expression est définie une fois pour toute, il n’est donc pas nécessaire de recalculer le champ à chaque fois qu’un paramètre change. Par exemple, vous pouvez utiliser un champ virtuel pour calculer la superficie des entités qui viennent d’être numérisées ou pour calculer automatiquement un intervalle de temps entre des dates qui changent (par ex. en utilisant la fonction now()).

Note

Utilisation des Champs Virtuels

  • Les champs virtuels ne sont pas des attributs permanents, ils ne sont sauvegardés et disponibles que dans le projet dans lequel ils ont été créés.

  • Un champ est défini comme virtuel uniquement à sa création et l’expression utilisée pour le générer ne peut pas être modifiée par la suite : pour le faire, vous devez supprimer et recréer le champ.

La calculatrice de champ fonctionne avec toutes les couches qui gèrent le mode édition. Lorsque vous cliquez sur le bouton de la calculatrice de champ, la fenêtre s’ouvre (voir figure_attributes_2). Si la couche n’est pas en mode édition, un avertissement s’affiche et l’utilisation de la calculatrice de champ basculera automatiquement la couche en édition avant d’effectuer le calcul.

La barre de calcul de champ n’est visible que si la couche est en mode édition.

Dans la barre de calcul de champ, vous sélectionnez d’abord le champ à éditer puis ouvrez le calculateur d’expressions pour saisir l’expression ou écrivez directement dans le champ de saisie et enfin cliquez sur le bouton [Tout mettre à jour], [Mettre à jour la sélection] ou [Mise à jour filtrée] selon votre besoin.

Calculatrice de champ

Basé sur le Constructeur d’expression, la Calculatrice de champ propose une interface complète de création d’expression pour l’appliquer à un champ existant ou à créer. Pour utiliser cette calculatrice de champ, vous devez tout d’abord choisir si vous voulez mettre à jour uniquement une éventuelle sélection, créer un nouveau champ où les résultats de l’expression seront enregistrés ou mettre à jour un champ existant.

Figure Attributes 2:

../../../_images/fieldcalculator.png

Calculatrice de champ

Si vous choisissez d’ajouter un nouveau champ, vous devez lui donner un nom, un type (nombre entier, nombre décimal ou chaîne de caractère), une longueur et sa précision (voir figure_attributes_2). Par exemple, si vous créez un champ d’une longueur de 10 et doté d’une précision de 3, vous aurez 6 chiffres avant la virgule, la virgule et 3 chiffres après.

L’exemple suivant montre comment la calculatrice de champs fonctionne. Il s’agit de calculer la longueur en km de la couche railroads issue de l’échantillon de données QGIS.

  1. Chargez le fichier shapefile railroads.shp dans QGIS et ouvrez sa openTable Table d’Attributs.

  2. Cliquez sur toggleEditing Basculer en mode édition et ouvrez la calculateField Calculatrice de champs.

  3. Cochez la case checkbox Créer un nouveau champ pour enregistrer le résultat des calculs dans un nouveau champ.

  4. Ajoutez longueur dans le nom de ce champ, réel en tant que type et définissez une longueur de 10 et une précision de 3.

  5. Double-cliquez maintenant sur la fonction $length de la catégorie Géometrie pour l’ajouter à la zone d’Expression.

  6. Terminez en rentrant ‘/ 1000’ à la fin de l’expression et en cliquant sur le bouton [Ok].

  7. Vous pouvez maintenant voir la nouvelle colonne longueur dans la table d’attributs.

Travailler avec tables non-spatialisées

QGIS vous permet de charger des tables n’ayant pas d’information spatiale, cela comprend les tables supportées par OGR, les fichiers de texte délimité et les tables PostgreSQL, MSSQL et Oracle. Les tables peuvent être utilisées pour regarder les champs, pour des requêtes ou pour de l’édition. Lorsque vous chargez une table de ce type, elle apparaîtra dans la liste des couches, elle peut être ouverte avec l’outil openTable Ouvrir la table d’attributs. Elle est ensuite éditable comme n’importe qu’elle autre table attributaire.

Par exemple vous pouvez utiliser ces colonnes pour définir des valeurs d’attributs ou un intervalle de valeurs qui sont autorisées à être ajoutées à une couche vectorielle spécifique durant une numérisation. Jetez un œil du côté de l’outil d’édition pour en savoir plus, section Onglet Champs.

Mise en forme conditionnelle des cellules de la table d’attributs

Vous pouvez afficher le panneau de Mise en forme conditionnelle en cliquant sur rendererAttributeTable en haut à droite de la fenêtre de la table d’attributs en vue tabulaire (bouton non disponible en vue formulaire).

Ce nouveau panneau permet à l’utilisateur d’ajouter des règles pour la mise en forme de champs ou de lignes complètes en fonction d’une expression. Ajouter une nouvelle règle ouvre un formulaire pour définir :

  • le nom de la règle,

  • la condition basée sur une expression,

  • un formatage prédéfini,

  • quelques autres paramètres pour améliorer, modifier ou définir le formatage :

    • couleurs d’arrière-plan et du texte,

    • utilisation d’une Icône,

    • texte en gras, italique, souligné ou barré,

    • texte,

    • police.

Figure Attributes 3:

../../../_images/attribute_table_conditional_formating.png

Mise en forme conditionnelle des cellules de la table d’attributs

Créer des relations un à plusieurs

Utiliser des relations est courant dans les bases de données. L’idée est que des entités (lignes) de différentes couches (tables) peuvent être liées les unes aux autres.

Comme exemple, nous prendrons une couche contenant toutes les régions de l’Alaska (des polygones) qui fournit quelques attributs sur le nom, le type de région et un identifiant unique (qui jouera le rôle de clé primaire).

Clés étrangères

Nous prenons ensuite une autre couche de point ou une table contenant des informations sur les aéroports localisés dans les régions. Si vous souhaitez accéder, depuis la couche des régions, vous devez créer une relation ‘un à plusieurs’, en utilisant des clés étrangères, car il y a plusieurs aéroports dans la plupart des régions.

Figure Relations 1:

../../../_images/relations1.png

Les régions d’Alaska contenant des aéroports

En plus des attributs existants dans la table des aéroports, un autre champ, fk_region, va jouer le rôle de clé étrangère (si la table est stockée dans une base de données, vous allez sans doute définir une contrainte sur ce champ).

Ce champ fk_region contiendra toujours un identifiant de région. Il peut être vu comme un pointeur vers la région à laquelle l’aéroport appartient. Et vous pouvez créer un formulaire personnalisé d’édition pour la saisie. Cela fonctionne avec différents fournisseurs (vous pouvez vous en servir également avec des shapefiles ou des fichiers csv) et la seule chose que vous avez à faire est de dire à QGIS qu’il y a une relation entre les tables.

Couches

QGIS ne fait pas la différence entre une table et une couche vectorielle. Une couche vectorielle correspond simplement à une table associée à une géométrie. Vous pouvez donc ajouter une table comme s’il s’agissait d’une couche vectorielle. Vous pouvez tester en chargeant le shapefile ‘region’ (avec géométrie), la table csv ‘airports’ (sans géométrie mais avec la clé étrangère (fk_region)). Chaque aéroport appartient à une région et chaque région peut contenir plusieurs aéroports (une relation un à plusieurs typique).

Définir (Gestionnaire de Relations)

La première chose que nous allons faire est de dire à QGIS qu’il y a une relation entre nos couches et tables. Cela se fait dans le menu Projet ‣ Propriétés du projet. Allez dans l’onglet Relations et cliquez sur Ajouter une relation.

  • Nom sera utilisé comme titre. Il s’agit d’un texte lisible décrivant la relation. Ici, nous allons simplement mettre “Aéroports”.

  • Couche référençante (enfant) est la couche contenant la clé étrangère. Dans notre cas il s’agit de la couche des aéroports.

  • Champ référençant correspond au champ qui pointe vers l’autre couche, le champ fk_region dans notre cas.

  • Couche de référence (parent) est la couche contenant la clé primaire. Ici il s’agit de la couche des régions.

  • Champ de référence est le champ contenant la clé primaire dans la couche de référence, le champ ID dans notre cas.

  • Id est utilisé pour des besoins internes et doit être unique. Ce sera utilisé lors de la création de formulaires d’édition personnalisés. Si vous laissez ce champ vide, un numéro sera généré automatiquement mais vous pouvez en assigner un si vous le souhaitez.

Figure Relations 2:

../../../_images/relations2.png

Gestionnaire de Relations

Formulaires

Maintenant que QGIS a bien généré la relation, le formulaire d’édition va être amélioré. Nous n’avons pas modifié le formulaire d’édition par défaut (généré automatiquement), une nouvelle zone va simplement être ajoutée au formulaire. Sélectionnez la couche de régions dans la légende et utilisez l’outil d’identification. Selon vos préférences, le formulaire s’ouvre directement ou vous devez le faire via la zone d’identification qui s’affiche.

Figure Relations 3:

../../../_images/relations3.png

Formulaire de la couche des régions affichant la relation avec les aéroports

Comme vous pouvez le voir, les aéroports présents dans la région sont tous affichés dans la table. Quelques boutons sont également disponibles, voyons ce qu’ils font.

  • Le bouton toggleEditing permet de passer en mode édition. Soyez conscients qu’il active le mode édition de la couche des aéroports bien qu’il soit situé dans le formulaire de la couche des régions. La table affiche bien les entités de la couche des aéroports.

  • Le bouton signPlus permet d’ajouter une nouvelle entité à la couche des aéroports. Par défaut, il attribut la région identifiée à ce nouvel aéroport.

  • Le bouton remove supprime un aéroport sélectionné de manière permanente.

  • Le bouton link ouvre une nouvelle fenêtre où vous pouvez sélectionner des aéroports existants et qui seront ensuite attribués à la région identifiée. Ceci est pratique lorsque vous assignez par erreur la mauvaise région à un aéroport.

  • Le bouton unlink permet de supprimer le lien entre l’aéroport sélectionné et la région identifiée, le laissant non assigné (la clé étrangère devient alors NULL).

  • Les deux boutons à droite basculent entre la vue table et la vue formulaire, ce dernier permettant d’afficher tous les aéroports dans leur formulaire respectif.

Si vous travaillez sur la table des aéroports, un nouvel élément apparaît qui vous permet d’inclure le formulaire de la région à laquelle un aéroport est lié. Il s’active via les propriétés de la couche aéroports dans l’onglet Champs en changeant l’outil d’édition du champ contenant la clé étrangère, ‘fk_region’, et en le définissant à ‘Valeur relationnelle’.

Vous devriez ainsi voir que le formulaire de la région est inclus dans celui d’un aéroport et il vous permet de modifier la région assignée à l’aéroport.

Figure Relations 4:

../../../_images/relations4.png

Formulaire d’identification d’un aéroport et de sa région associée