Tutoriel: Importation de données tabulaires dans QGIS

Site: Open Courseware for GIS
Cours: QGIS et Applications en Hydrologie
Livre: Tutoriel: Importation de données tabulaires dans QGIS
Imprimé par: Guest user
Date: lundi 20 septembre 2021, 23:11

1. Introduction

Il est souvent le cas où les informations / les données sont stockées dans des tableaux, par exemple dans des feuilles de calcul ou des fichiers CSV. Parfois, les données sont fournies en deux tableaux - l'un contient les coordonnées et l'autre contenant les attributs dont vous avez besoin pour votre analyse.

Dans cet exemple d'application, nous allons importer un tableau contenant la température moyenne quotidienne au 1er septembre 2013 dans plusieurs stations météorologiques aux Pays-Bas. Les données ont été téléchargées du centre de données KNMI (KNMI, l'Institut météorologique royal des Pays-Bas), mais reformatées pour les besoins de cet exercice.




2. Théorie

Nous allons d'abord présenter la théorie nécessaire à cet exercice dans quelques vidéos.


2.1. Le modèle de données raster

Regardez cette vidéo sur le modèle de données raster. 


3. Vérifier les tables

Il est toujours suggéré de vérifier le contenu des feuilles de calcul ou des fichiers texte délimités avant de les importer dans un logiciel. Pour les fichiers CSV, par exemple, il est important de connaître le séparateur de colonnes.

Ouvrez le fichier KNMI_20130901_aujdhui.xls et KNMI_stations.xls dans un tableur et vérifiez le contenu.

4. Importer les feuilles de calcul

Il existe plusieurs méthodes dans QGIS pour importer des données tabulaires :

  • Add delimited text layer buttonCouche| Ajouter une couche | Ajouter une couche de texte délimité. Il s'agit de l'importateur standard qui nous permet d'importer des fichiers en texte délimités.
  • add spreadsheet layer buttonCouche| Ajouter une couche | Ajouter une couche feuil de calcul. Cet outil peut charger des fichiers de tableur (*.ods, *.xls, *.xlsx) en tant que couche avec des options pour utiliser la première ligne comme en-tête, ignorer les lignes, et charger la géométrie des champs x et y.

Ici, nous utiliserons la deuxième option, pour laquelle nous devons installer l'extension Spreadsheet Layers.


1. Démarrez QGIS Desktop. Assurez-vous de commencer un nouveau projet plutôt que de continuer sur le précédent.

2. Dans le menu principal, allez à Extensions | Installer/Gérer les extensions et vérifiez si l'extension Spreadsheet Layers est installée. Si ce n'est pas le cas, installez-la maintenant.

Les extensions sont développées par la communauté pour ajouter des fonctionnalités supplémentaires au QGIS. Avec l'extension Spreadsheet Layers, vous pouvez, par exemple, importer et exporter des fichiers Excel.

Spreadsheet Layers plugin

3. Choisissez maintenant Couche| Ajouter une couche | Ajouter une couche feuil de calcul à partir du menu principal.

Ajouter couche feuil de calcul

4. Dans le fenêtre de dialogue, parcourez le fichier avec les emplacements des stations météorologiques (KNMI_stations.xls).

5. Remplissez la fenêtre de dialogue comme indiqué dans la figure ci-dessous. Assurez-vous que les bons Champs de Géométrie et le bon Système de Référence sont choisis. Indiquez également les types de données correctes pour les champs. Par exemple, STN sont des numéros de station et doivent être importés en tant que nombres entiers, tandis que ALT(m) doivent être importés en tant que nombres réels.


6. Une fois que vous cliquez sur OK, une carte avec les stations météorologiques s'affiche.

7. Si vous ne voyez pas la carte, vous devez probablement faire un zoom sur l'étendue de la carte. Cliquez avec le bouton droit de la souris sur le nom de la couche Table des stations KNMI et choisissez Zoomer sur la couche.

8. Ajoutez le tableau avec les données de température de la même manière. Comme il n'y a pas de géométrie (coordonnées) dans le tableau, nous devons décocher la case de Géométrie.


Vous avez maintenant importé les deux feuilles de calcul dans QGIS !

5. Convertir une table vers une couche vecteur

Maintenant, la table des stations KNMI est sauvegardée comme une couche virtuelle temporaire. Pour un traitement ultérieur, nous devons d'abord la convertir en un format vecteur SIG. Dans ce cas, nous la convertirons vers un shapefile.


1. Faites un clic droit sur la table des stations KNMI et choisissez Exporter | Enregistrer les entités sous...

2. Dans le dialogue, utilisez le boutonBrowse buttonpour naviguer vers le bon dossier afin d'enregistrer le fichier sous le nom KNMI_stations.shp. Afin de changer la projection vers la projection locale néerlandaise, choisissez Amersfoort / RD New dans le SCR en cliquant sur le bouton de l'icône Choose projection icon. Conseil : utilisez le champ Filtre pour rechercher le code EPSG  28992.


Vous remarquez ici l'avantage d'utiliser les codes EPSG : ils fournissent des codes standard pour chaque projection. Il est utile de déterminer le code EPSG de la projection que vous souhaitez utiliser pour votre projet.


3. Cliquez sur OK. Le dialogue ressemble maintenant à la figure ci-dessous (cochez également la case Ajouter le fichier enregistré à la carte et assurez-vous que le format ESRI Shapefile est choisi comme Format).

Enregistrer la couche vecteur


4. Cliquez sur OK pour continuer.

5. Supprimez la table des stations KNMI de la liste des couches en cliquant avec le bouton droit de la souris et en sélectionnant Supprimer la couche. Cliquez sur OK pour confirmer. Assurez-vous de supprimer la bonne couche. Si vous flottez votre curseur sur la couche, le nom du fichier s'affichera. Avec l'option Supprimer la couche, vous ne faites que la supprimer de la liste des couches, le fichier sera toujours sur votre disque dur.

Bien que la couche knmi_stations.shp soit dans la projection EPSG:28992 (Amersfoort / RD New), le Canevas de carte de QGIS utilise toujours la projection EPSG:4326 (lat/lon WGS 84) et a reprojeté  knmi_stations.shp à la volée pour la visualisation. Afin de visualiser toutes les couches dans l'EPSG 28992, il est nécessaire de modifier les propriétés du projet QGIS.

6. Dans le menu principal choisissez Project | Propriétés.

7. Choisissez l'onglet Système de Référence des Coordonnées (SCR).

8. Dans la liste des Système de Référence des Coordonnées récemment utilisés, choisissez EPSG:28992 et cliquez sur OK.

projet scr

Une autre façon de définir le SCR du projet à celui de la couche, est de faire un clic droit sur la couche et de choisir Définir le SCR | Définir le SCR du projet depuis cette couche dans le menu contextuel.


Notez que la projection du projet est indiquée en bas à droite de l'écran : otf reprojection. Vous pouvez toujours y vérifier si le code EPSG est correct. C'est également un bouton sur lequel vous pouvez cliquer pour aller dans l'onglet Propriétés du projet | CRS et modifier la reprojection à la volée.

6. Joindre les tables d'attributs

L'emplacement des stations météorologiques et les données de température sont dans des tables séparées. Pour une analyse plus approfondie, nous devons les combiner en une seule couche vecteur. La terminologie  de cette opération dans les SIG, s'appelle une jointure. Nous ne pouvons joindre les tables que si elles ont une colonne en commun.

1. Vérifiez la table des attributs de KNMI_stations (cliquez avec le bouton droit de la souris sur KNMI_stations et choisissez Ouvrir la table d'attributs) et de la même manière, vérifiez la table des températures KNMI.

2. Confirmez que les champs STN sont la clé commune entre les deux tables, comme nous l'avions conclu auparavant en consultant les feuilles de calcul originales.

Après avoir déterminé quelle colonne les deux tableaux ont en commun, nous pouvons joindre les données du tableau des températures KNMI aux attributs de notre shapefile KNMI_stations.shp.

3. Fermez d'abord les tables d'attributs.

4. Ensuite, faites un clic droit sur KNMI_stations et choisissez Propriétés.

5. Dans la boîte de dialogue, choisissez le bouton Jointuresjoin icon.

6. Cliquez sur le bouton plus button et vérifiez si la boîte de dialogue ressemble à la figure ci-dessous.
Ajouter une jointure vecteur

Notez que le champ en commun est  STN (le numéro de la station). Nous joignons uniquement le champ de température et nous donnons à la colonne le préfixe Temp_.

7. Cliquez sur OK.

8. Cliquez sur OK pour effectuer l'opération de jointure.

9. Vérifiez à nouveau la table des attributs de KNMI_stations. Que s'est-il passé ?

7. Modifier la table d'attributs jointe

La table d'attributs jointe nécessite deux corrections : 

  • (1) les entités qui manque de données doivent être supprimées, et 
  • (2) les températures doivent être converties dans les bonnes unités.


1. Cliquez sur les numéros de lignes contenant  NULL ou aucune valeur pour la température, tout en maintenant la touche Ctrl enfoncée.


Maintenant, la table d'attributs ressemble à la figure ci-dessous.


2. Dans la table d'attributs, cliquez sur le bouton Toggle editing button au-dessus du tableau pour basculer en mode édition.

3. Cliquez sur l'icône delete selected button (dans la barre d'outils au-dessus de la table d'attributs) pour supprimer les deux entités comportant des données manquantes, puis enregistrez le tableau d'attributs en cliquant sur Save layer edits.

Le seul problème est que les températures indiquées dans la table sont de 0.1°C. Nous devons convertir ces valeurs en °C.

4. Cliquez sur le bouton add new field pour ajouter une nouvelle colonne à la table. Remplissez la boîte de dialogue Ajouter un champ comme indiqué dans la figure ci-dessous.

ajouter un champ

La longueur est le nombre de chiffres, la précision est le nombre de décimales.

5. Cliquez sur OK pour continuer.

La table d'attributs présente maintenant une colonne supplémentaire avec des valeurs  NULL.

6. Afin de calculer les valeurs correctes, cliquez sur le bouton field calculator button au-dessus du tableau pour ouvrir la boîte de dialogue Expression (à ne pas confondre avec le bouton Sélectionner par expression qui a une apparence légèrement différente). Remplissez la boîte de dialogue comme indiqué dans la figure ci-dessous. Pour éviter les fautes de frappe, la meilleure pratique consiste à double-cliquer sur le nom du champ au milieu de l'écran de dialogue et à cliquer sur le bouton *. Tapez ensuite 0.1 pour que l'équation soit  "TEMP_T(0.1C)" * 0.1 . Cliquez sur OK pour continuer.

Calculateur d'expression


Assurez-vous que la fenêtre de la Table d'attributs ressemble à la figure ci-dessous. Veuillez noter que T(C) doit être sélectionné en tant que la colonne à laquelle les valeurs calculées seront attribuées !

Calculateur de champs

7. Cliquez sur Tout mettre à jour pour effectuer le calcul pour toutes les entités.

Vérifiez maintenant le résultat dans la table des attributs.

8. Cliquez sur le bouton Toggle editing button pour sortir du mode d'édition. Cliquez sur Enregistrer pour enregistrer les modifications lorsqu'elles sont demandées et fermez la table d'attributs. Si vous avez fait une erreur, n'enregistrez pas, mais choisissez plutôt Ne pas tenir compte pour annuler tous les changements depuis la dernière sauvegarde.

9. Supprimez maintenant la table KNMI Temperatures Table de la liste des couches et vérifiez la table des attributs de KNMI_stations.

  • Quelles colonnes voyez-vous maintenant ?
  • Que pouvez-vous conclure sur la fonction de jointure ?

Notez que vous auriez pu sauvegarder toute la table d'attributs en enregistrant KNMI_stations dans un nouveau shapefile à l'aide de la fonction Exporter| Enregistrer les entités sous comme utilisée précédemment.

8. Interpolation des points vers un raster

La dernière tâche consiste à interpoler les valeurs de température vers une nouvelle couche raster.

1. Dans le menu, choisissez Raster | Analyse | Grille (Plus proche voisin)

Grille plus proche voisin


2. Dans le dialogue, spécifiez le fichier de sortie : aujdhui_NN.tif en utilisant la fenêtre de navigation et en spécifiant le format .tif.

3. Sélectionnez T(C) comme Valeur Z du champ. C'est ce champ que nous utiliserons pour l'interpolation pour obtenir ce que l'on appelle des Polygones de Thiessen.

4. Cochez la case Ouvrir le fichier en sortie après l'exécution de l'algorithme.

Pour le reste de la fenêtre de dialogue, conservez les valeurs par défaut. La boîte de dialogue devrait maintenant ressembler à la figure ci-dessous.

Dialogue grille plus proche voisin

Notez que le dialogue génère une commande GDAL. L'outil est essentiellement une interface graphique pour l'outil en ligne de commande gdal_grid.

5. Cliquez sur Exécuter pour continuer.

6. Cliquez sur Fermer pour fermer la boîte de dialogue.

7. Répétez maintenant l'opération d'interpolation en utilisant l'algorithme Inverse de la distance à une puissance (IDW) (Raster | Analyse| Grille (Inverse de la distance à une puissance). Appelez le fichier de résultats  aujdhui_IDW.tif.

9. Styler les résultats

Pour donner un sens aux interpolations, nous devons styler les couches.

1. Faites glisser la couche KNMI_stations de sorte qu'elle soit positionnée au-dessus des couches raster T_NN et T_IDW dans le Panneau des couches.

Pour donner du contexte, vous allez d'abord ajouter une couche de base en utilisant l'extension QuickMapServices.

2. Dans la barre de menu, choisissez Internet | QuickMapServices | OSM | OSM Standard.

3. Ouvrez le Panneau de style des couches en cliquant sur le bouton Open layer styling panel button. Définissez la couche cible sur KNMI_stations.

4. Sélectionnez Symbole simple et choisissez le noir comme couleur de remplissage et la taille sur 2.8.

5. Passez à l'onglet Étiquettes styling dock labels du Panneau de style des couches. Passez de l'onglet Pas d'étiquettes à l'onglet Étiquettes simples.

6. Définissez l'option Valeur avec le champ NAME.

Les noms sont tous en majuscules. Ensuite, vous les convertissez en majuscules.

7. Cliquez sur le bouton Expression expression button pour ouvrir la fenêtre Calculatrice d'expression. Utilisez la fenêtre de Rechercher pour trouver la fonction title() . Ajoutez le champ NAME comme argument dans cette fonction. Votre expression sera  title( "NAME" ).

8. Pour ajouter plus d'informations à la carte, vous allez maintenant ajouter la température sur l'étiquette. Cliquez à nouveau sur le bouton expression button Calculatrice d'expression. Comme vous l'avez fait dans l'exercice précédent, utilisez l'opérateur Concaténation de chaîne concatenation operator et l'opérateur Nouvelle Ligne new line operator pour ajouter la colonne T(C) à l'étiquette sur une deuxième ligne. Nous pouvons ajouter le symbole des degrés en utilisant la fonction char(), qui renvoie un caractère associé à un code unicode. Votre expression d'étiquetage devrait maintenant se lire title("NAME") || '\\n' || "T(C)" || char(0176) || ' C'.

9. Pour centrer le texte de l'étiquette, passez à l'onglet Formatage label formatting tabde l'étiquette et réglez l'Alignement sur Centre.

10. Réglez la Police sur Calibri avec un Style de Gras et une Taille de 10 points.

11. Passez à l'onglet Tampon label buffer tab et cochez l'option Affichez un tampon. Réglez l'Opacité à 50%.

12. Pour donner plus de séparation entre les étiquettes et l'icône de l'élément, passez à l'onglet Position label placement tab iconde l'étiquette et réglez la Distance à 2 mm.

Si des étiquettes sont coupées à la limite de la carte, revoyez l'exercice précédent pour vous rappeler comment utiliser les paramètres de Placement automatisé pour l'empêcher.

Vous allez maintenant vous focaliser sur les deux rasters interpolés.

13. Commencez par faire de la couche T_NN la couche cible dans le Panneau de style des couches.

14. Changez le moteur de rendu de Bande grise unique par défaut à la Pseudocouleur à bande unique.

Pour les rasters continues, nous utilisons le moteur de rendu Pseudocouleur à bande unique. Bien que les polygones de Thiessen dans la couche T_NN semblent discrets, les pixels ont des nombres réels, ce qui n'est pas possible pour les rasters discrèts.

15. Pour la Palette de couleur, choisissez Spectral. Cliquez sur Classifier. Par défaut, cette palette de couleur est configurée pour que les valeurs les plus basses soient rouges et les valeurs les plus élevées bleues. Ceci est contre-intuitif. Ces valeurs représentent la température, donc les valeurs les plus élevées doivent être représentées par des couleurs chaudes/rouges et les valeurs les plus basses par des couleurs froides/bleues. Pour ce faire, cliquez avec le bouton droit de la souris sur la palette de couleur et choisissez Inverser la palette de couleur dans le menu contextuel. Afin de voir la carte de base, vous pouvez appliquer un mode de fusion. Dans la section Rendu de couche, choisissez Multiplier pour le Mode de fusion.

Votre carte doit ressembler à la figure ci-dessous. 

 the T_NN layer


16. Ensuite, désactivez la couche T_NN et activez la T_IDW. Utilisez le Panneau de style de couche pour attribuer un style à cette couche en utilisant le rendu Pseudocouleur à bande unique avec la même palette de couleur inversée. Cette fois-ci, mettez le Mode sur Quantile. Appliquez également un Mode de fusion de multiplication à ce raster.

Votre carte devrait maintenant ressembler à la figure ci-dessous.

stations idw styled

10. Conclusions

Dans cette leçon, vous avez appris à :

  • importer des données tabulaires dans un SIG
  • enregistrer les tableaux contenant la géométrie dans un format SIG
  • joindre les tables d'attributs
  • éditer les tables d'attributs
  • interpoler les données de points
  • styler et étiqueter les données vecteurs
  • styler des rasters continus
Vous pouvez regarder cette vidéo pour suivre la procédure complète :