Créer un site internet

Quantum Gis

Présentation

En quelques mots

Ce tutoriel QGIS a été créé par le plateau transversal GRANIT du laboratoire adess. Son but est de permettre aux débutants en SIG de s'initier à ceux-ci via le logiciel libre QGIS. Pour installer QGIS, rendez-vous sur http://www.qgis.org/.

Le tutoriel est actuellement à jour pour la version « à long terme » QGIS 2.8 'Wien'.

Accès au tutoriel

Le tutoriel comporte 11 parties auxquelles vous pouvez accéder par le plan dans la partie droite de la page, ou bien via le plan détaillé.

Chaque partie peut être réalisée indépendamment des autres ; cependant, la progression présentée suit un ordre logique.

Si vous recherchez une notion précise, utilisez l'index.

Mode d'emploi

Manipulation

Tout au long du tutoriel, les parties décrivant des manipulations à effectuer dans QGIS sont différenciées par une bordure verte et un fond vert pâle :

Ceci décrit une manipulation à effectuer dans QGIS.

Les données nécessaires pour effectuer ces manipulations sont accessibles dans la rubrique téléchargement.

Aide

Quand une partie du texte apparaît souligné en vert, si vous passez la souris dessus, une image apparaît pour vous aider par exemple à trouver l'emplacement d'un menu ou d'un bouton dans QGIS.

Sauvegardez votre projet sous un nouveau nom : Menu Projet → Sauvegarder sous... Menu Projet, sauvegarder sous

Question/réponse

Des questions vous seront posées tout au long du tutoriel ; les réponses sont visibles en cliquant sur le petit triangle devant la question.

Parce-que c'est une légende!

Liens

Les liens internes au site d' adess sont affichées en vert, les liens externes sont en gris et s'ouvriront dans une nouvelle fenêtre ou onglet.

I. Prise en main

Cette première partie constitue une introduction aux logiciels SIG de manière générale et à QGIS en particulier.

Notions abordées :

  • Qu'est-ce qu'un SIG?
  • Ajout de données vecteur
  • Propriétés d'une couche
  • La table attributaire
  • Formats de données vecteur
  • Espace de travail : le projet QGS

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

I.1 Qu'est-ce qu'un SIG ? (un peu de théorie...)

Définitions

Qu'est-ce que la géomatique ?

La géomatique est l'ensemble des techniques de traitement informatique des données géographiques (Journal Officiel, 1994). Elle regroupe donc les outils et méthodes permettant l'acquisition, le stockage, le traitement et la diffusion de données à référence spatiale.

Qu'est-ce qu'un Système d'Information Géographique ?

C'est un système permettant de gérer des informations localisées géographiquement. Ce système est composé de :

  • données
  • logiciels
  • matériel informatique
  • savoir-faire
  • utilisateurs

Par abus de langage, un SIG signifie souvent aujourd'hui le logiciel utilisé dans un SIG.

Les données des SIG

Une organisation par couches

Les données sont organisées sous forme de couches superposables.

Organisation sous forme de couches

Source : pôle ARD, adess (domaine public)

icône ouvrir un projetLancez le logiciel QGIS. Ouvrez un projet :
Menu Projet → Ouvrir Menu Projet, Ouvrir

Sélectionnez le projet senegal.qgs situé dans TutoQIS_01_PriseEnMain/projets, cliquez sur Ouvrir.

Trois couches de données sont affichées dans QGIS, correspondant aux villes, rivières et régions du Sénégal.

Deux grands types de données : vecteur et raster

On distingue généralement deux types de données : vecteur et raster.

Exemple de données vecteur

Exemple de données vecteur, l'exemple du Sénégal : régions sous forme de polygones, rivières sous forme de lignes et villes sous forme de points (source : pôle ARD, adess, domaine public).

Les données vecteurs se définissent uniquement par des coordonnées. On trouvera des données vecteurs de type point, ligne et polygone. Un point sera défini par un couple de coordonnées XY, une ligne ou un polygone par les coordonnées de leurs sommets. Une couche vecteur sera soit de type point, soit de type ligne, soit de type polygone, mais ne pourra contenir de données de deux types différents (sauf dans le cas particuliers de certains formats qui ne seront pas abordés dans ce tutoriel).

On pourra choisir par exemple de représenter des cours d'eau sous forme de ligne, des villes sous forme de points...

Les données vecteur sont généralement moins volumineuses que les données raster. Quelques exemples de formats vecteur : SVG, AI, SHP...

Les données raster, ou images, sont constituées de pixels. En zoomant sur un raster, on finit par distinguer les pixels. Chaque pixel possède une valeur correspondant par exemple à sa couleur, ou à son altitude. Un raster est caractérisé par la taille d'un pixel, ou résolution. Exemples de données raster : carte IGN scannée, photographie aérienne, image satellite...

Données raster

Exemple de données raster (source : IGN).

Quelques exemples de formats raster : JPG, TIFF, PNG...

Les données vecteur : à chaque géométrie ses attributs (et vice-versa)

On distingue deux composantes dans les données utilisées dans un SIG : spatiale et attributaire. La composante spatiale est constituée de la localisation et la géométrie d'un objet, donc de ses coordonnées. La composante attributaire est constituée des données qui y sont associées. Par exemple, la composante spatiale d'un département sera le polygone représentant ce département, et sa composante attributaire sera son nom, son code, sa population...

Composantes spatiales et attributaires

Données spatiales et attributaires d'une couche SIG (source : données Geofla IGN)

Le lien entre composante spatiale et attributaire constitue une différence fondamentale avec les logiciels de dessin (DAO) type AutoCAD.

icône ouvrir un projetOuvrez le projet depts_france.qgs qui se trouve situé dans le dossier TutoQIS_01_PriseEnMain/projets.

icône ouvrir la table d'attributsOuvrez la table attributaire de la couche de départements :
Clic droit sur le nom de la couche → Ouvrir la table d'attributs Clic droit sur la couche, ouvrir la table d'attributs

Sélectionner un département dans la table attributaire, en cliquant sur le numéro de la ligne. Le département correspondant apparaît dans une couleur différente (jaune par défaut) dans la carte.

icône zoom sur la sélection Vous pouvez ensuite cliquer sur l'outil zoomer sur la sélection pour zoomer sur ce département

icône outil de sélectionVous pouvez maintenant faire l'inverse : sélectionner un département sur la carte, au moyen de l'outil de sélection. La ligne correspondante passe alors en surbrillance dans la table attributaire.

Vous pouvez choisir Ne montrer que les entités sélectionnées dans la liste déroulante en bas à gauche de la table, pour ne voir que les lignes correspondant aux départements sélectionnés.

Table attributaire : ne montrer que les entités sélectionnées

Pour que la fenêtre de la table attributaire soit "ancrée" dans QGIS : menu Préférences → Options → Sources de données : cocher la case Ouvrir la table d'attributs dans une fenêtre intégrée. Contrairement à ce qui est écrit, cette modification est prise en compte directement sans besoin de redémarrer QGIS.

Des données sur les données : les métadonnées

Afin de savoir quelles sont les utilisations que l'on peut faire d'une donnée, il est indispensable de posséder des informations sur la manière dont a été fabriquée cette donnée, sa date, ses limites éventuelles d'utilisation... Ces « données sur la donnée » constituent ce qu'on appelle des métadonnées. Elles peuvent se présenter sous diverses formes : un simple fichier texte, une fiche PDF...

Vous pouvez voir ici les métadonnées de la couche Corine Land Cover : www.geocatalogue.fr/Detail.do?id=7665

Il existe aujourd'hui des normes régissant la manière dont sont construites ces métadonnées : nombres de rubriques présentes, choix des rubriques... Ceci permet de construire des catalogues de métadonnées, et facilite in fine l'échange de données entre organismes.

La métadonnée ci-dessus est tirée du catalogue de métadonnées de l'IGN, le géocatalogue : www.geocatalogue.fr

A quoi sert un SIG ?

Un SIG permet de saisir, représenter, interroger, et mettre à jour l’information géographique. Il peut notamment répondre aux questions suivantes :

  • où : localisation, étendue
  • quoi : quelles informations
  • comment : analyse spatiale
  • quand : analyse temporelle
  • et si... : modélisation

Les SIG sont utilisés aujourd'hui dans des domaines très variés : géographie, géologie, écologie, urbanisme, archéologie, économie...

On peut par exemple chercher à répondre à la question : "la taille des parcelles de vignes est-elle corrélée avec la pente et l'altitude de la parcelle, sur une zone donnée?"

Les données nécessaires seront une couche contenant les parcelles de vignes, et un Modèle Numérique de Terrain (MNT) de la zone d'étude. La résolution du MNT devra être suffisante en comparaison de la taille moyenne des parcelles.

Le SIG va permettre de croiser les parcelles et le MNT pour aboutir à une couche de parcelles où seront renseignées pour chaque parcelle par exemple sa taille, sa pente moyenne, son altitude moyenne. Ces données pourront être ensuite visualisées dans le SIG, et/ou être le point de départ d'analyses statistiques dans un autre logiciel.

I.2 Manipuler de l'information géographique

Ajout d'une couche de données vecteur

Lancez QGIS. Pour ajouter une couche vecteur, trois solutions, au choix :

Fenêtre ajout couche vecteur

Type de source et encodage : laissez les valeurs par défaut. Pour en savoir plus sur ce qu'est l'encodage : http://fr.wikipedia.org/wiki/Codage_de_caractères

Cliquez sur Parcourir et sélectionnez la couche depts_aqui_geofla.shp située dans le dossier TutoQGIS_01_PriseEnMain/donnees.

Cliquez sur Ouvrir : vous pouvez voir à l'écran les départements aquitains.

L'interface de QGIS

Interface de QGIS

On peut distinguer 6 zones dans QGIS :

1. Menus

2. Barres d'outils. On y trouve la même chose que dans les menus, mais sous forme d'icônes. Pour savoir que fait un outil, passez la souris au-dessus et lisez l'infobulle. Pour rajouter ou enlever des barres d'outils, clic-droit n'importe où dans cette zone sauf sur un outil désactivé, cocher ou décocher les barres d'outils voulues.

3. Liste des couches chargées, aussi appelée table des matières ou table of contents (TOC). Si plusieurs couches sont présentes, vous pouvez en modifier ici l'ordre d'affichage. Pour faire apparaître ou disparaître cette zone : menu Vue → Panneaux → Couches

4. Panneaux supplémentaires, par exemple le panneau Parcourir. Pour ajouter des panneaux, Menu Vue → Panneaux

5. Zone de visualisation. On peut zoomer ou se déplacer dans cette zone.

6. Barre d'état. On y trouve les coordonnées du point où se trouve la souris, l'échelle...

Barre d'outils navigateur de carte

Testez les différents boutons de zoom et de déplacement.

Pouvez-vous déterminer l'effet de chacun d'entre eux? A noter : on peut aussi zoomer et dézoomer en utilisant la molette de la souris, ainsi que le trackpad.

Vous pouvez aussi vous déplacer dans la carte (équivalent de l'outil "main") en maintenant la touche espace appuyée, quelque soit l'outil en cours dans QGIS. Le même résultat est obtenu en maintenant la molette de la souris enfoncée (clic molette prolongé).

Propriétés d'une couche vecteur

Pour accéder aux propriétés de la couche, clic-droit sur le nom de la couche dans la table des matières, Propriétés Clic-droit sur une couche, propriétés (ou bien double-clic sur le nom de la couche).

Vous avez accès ici à plusieurs propriétés, notamment :

  1. la manière dont la couche est représentée, dans la rubrique Style. Vous pouvez par exemple changer ici la couleur des départements
  2. l'emplacement de la couche, dans la rubrique Général

Changer la représentation d'une couche

Dans les propriétés de la couche, rubrique Style :

Onglet Style des propriétés d'une couche

Cliquez sur Remplissage simple.

1. Dans la partie Couleurs, vous pouvez modifier la couleur du fond et de la bordure des départements.

2. Vous pouvez également modifier le style de remplissage : plein, vide, hachures... ainsi que le style de la bordure : ligne continue, pas de bordure, pointillés...

3. La largeur de la bordure peut aussi être modifiée.

Essayez de donner à votre couche ces différents styles :

Surfaces en gris clair, bordures en blanc Surfaces sans remplissage, bordures épaisses en gris foncé Surfaces jaunes, pas de bordures

Connaître l'emplacement d'une couche

La couche est stockée à l'endroit indiqué dans la partie Source de la couche. Cet emplacement varie bien sûr en fonction de l'endroit où vous avez enregistré les données du tutoriel.

Onglet Général des propriétés d'une couche

 

Ajout d'une couche raster

Comme lors de l'ajout d'une couche vecteur, vous avez plusieurs possibilités pour ajouter une couche raster :

Interface de QGIS

Rendez-vous dans le dossier TutoQGIS_01_PriseEnMain/donnees et sélectionnez la couche srtm_aqui.tif.

Cliquez sur Ouvrir : la couche s'affiche.

srtm affiché dans QGIS

Il s'agit d'un modèle d'élévation numérique : chaque pixel possède une valeur correspondant à l'altitude en mètres des éléments présents au sol. Si une forêt est présente, ce sera donc l'altitude du sommet des arbres qui sera mesurée et non l'altitude du sol, idem si des bâtiments sont présents.

icône identifier les entitésAprès avoir sélectionné la couche srtm_aqui.tif en cliquant sur son nom dans la table des matières, utilisez l'outil Identifier les entités pour cliquer sur un point du raster et connaître l'altitude de ce point.

résultat de l'identification d'un point au hasard du srtm : altitude = 66m

Par exemple, ici, c'est un point d'altitude 66 mètres qui a été identifié.

Propriétés d'une couche raster : modifier le style

Comme pour accéder aux propriétés d'une couche vecteur, clic-droit sur le nom de la couche dans la table des matières, Propriétés (ou bien double-clic sur le nom de la couche).

Pour une couche raster, les différentes rubriques des propriétés sont un peu différentes de celles d'une couche vecteur ; on retrouve néanmoins les rubriques Général et Style.

Rendez-vous dans la rubrique Style :

style d'un raster

Pour ce raster, les valeurs minimum sont représentées en blanc et les valeurs maximum en noir : plus l'altitude est élevée, plus le point est foncé.

Vous pouvez modifier les valeurs minimum et maximum, et inverser les couleurs en choisissant Noir vers blanc au lieu de Blanc vers noir. Cliquez à chaque fois sur Appliquer en bas de la fenêtre pour voir le résultat de vos changements.

I.3 Formats de données SIG

 

Réduire la fenêtre de QGIS. Ouvrir dans l'explorateur de fichiers de votre ordinateur le dossier TutoQGIS_01_PriseEnMain/donnees

fichiers format SIG

Si dans Windows, vous ne voyez pas les extensions de tous les fichiers : dans la fenêtre, Outils → Options des dossier, onglet Affichage, décocher la case "Masquer les extensions dont le type est connu".

Formats vecteur : SHP et TAB

Format Shapefile ou SHP : un "standard"

Le format shapefile a été créé par ESRI, l'auteur notamment du logiciel ArcGIS. Ce format est aujourd'hui l'un des standards du SIG et est couramment utilisé par les logiciels libres de SIG.

Un fichier SHP est en fait composé de plusieurs fichiers, dont 3 sont obligatoires :

  • SHP : contient les informations spatiales
  • DBF : contient les informations attributaires
  • SHX : fichier d'index

Le format DBF impose certaines limitations pour les noms de colonnes : maximum 10 caractères, éviter les accents...

Un 4ème fichier est aussi bien utile :

  • PRJ : contient le code du système de coordonnées et éventuellement de la projection

Pour que le shapefile s'ouvre correctement, tous ces fichiers doivent avoir exactement le même nom. QGIS peut ouvrir et éditer les fichiers SHP.

Format TAB (MapInfo)

Ce format a été créé pour le logiciel MapInfo. Comme pour le SHP, un fichier au format TAB est en fait composé de plusieurs fichiers :

  • MAP : données spatiales (avec le système de coordonnées)
  • DAT : données attributaires
  • TAB : structure de la couche
  • ID : lien entre les fichiers DAT et MAP
  • IND : fichier d'indexation (facultatif)

QGIS peut ouvrir des fichiers au format TAB, mais il ne peut pas les éditer; il faudra pour cela les enregistrer au format SHP.

Un exemple de format raster : le GeoTIFF

Vous avez peut-être déjà manipulé des images au format TIF. Les TIF utilisés dans les logiciels SIG possèdent des informations en plus par rapport aux TIF "classiques" : quel type de coordonnées est utilisé, quelles sont les coordonnées de l'image... Il s'agit alors d'un cas particulier de TIF nommé GeoTIFF.

L'extension du fichier reste TIF. Cependant, chargé dans un logiciel SIG, ce TIF s'affichera directement au bon endroit.

D'autres fichiers peuvent être associés à un raster :

  • QML : ce fichier facultatif sauvegarde le mode de représentation du raster : du noir vers le blanc, valeur minimum et maximum. S'il n'est pas présent, le raster s'affichera avec des paramètres par défaut. Il est propre à QGIS.
  • AUX.XML : ce fichier parfois présent sauvegarde des statistiques et parfois le système de coordonnées de l'image. Il permet d'accélérer l'affichage et certains traitements. Ce fichier est également lisible par le logiciel ArcGIS.
  • TFW : souvent appelé "World file", ce fichier stocke les coordonnées de l'image et la taille des pixels. Ce type de fichier existe pour plusieurs formats d'image : l'extension sera JGW pour un JPG, PGW pour un PNG etc. Ce fichier n'est pas nécessaire si les informations sont déjà contenues dans l'en-tête de l'image (ce qui est le cas pour notre GeoTIFF). Les world file sont de moins en moins utilisés dans les SIG ; ils peuvent cependant être utiles pour un logiciel non SIG ou pour un format d'image ne permettant pas le stockage d'informations de localisation dans son en-tête.

Application

I.4 Espace de travail (projet QGS)

Qu'est-ce qu'un projet dans un logiciel SIG?

Un projet est un espace de travail. Sauvegarder un projet équivaut à sauvegarder le style utilisé pour chaque couche, le zoom... mais pas les données!

Icône Ouvrir Ouvrez le projet Menu Projet, Ouvrir senegal.qgs situé dans le dossier TutoQGIS_01_PriseEnMain/projets. Modifiez le zoom et le style des couches.

menu projet, sauvegarder sous... Sauvegardez votre projet sous un nouveau nom : clic sur l'icône correspondante, ou bien Menu Projet → Sauvegarder sous... Menu Projet, sauvegarder sous

Enregistrez votre projet dans le répertoire TutoQGIS_01_PriseEnMain/projets, sous le nom senegal_02.qgs . Cette opération crée un fichier au format QGS.

Le fichier QGS est l'équivalent du WOR sous MapInfo et du MXD sous ArcGIS.

Masquez QGIS, et ouvrez ensuite ce fichier QGS au moyen d'un éditeur de texte type bloc-notes : vous pouvez y trouver le chemin des couches chargées dans le projet, la description des couleurs utilisées... Fermez ce fichier.

Il n'est bien sûr pas utile de comprendre en détail le contenu du fichier QGS, mais il est important de noter qu'il ne s'agit que d'un fichier texte, qui va "appeler" les données. Si vous fournissez à un collègue votre seul fichier QGS, sans les données correspondantes, ce collègue ne pourra pas visualiser les données.

Comment un projet appelle-t-il les données?

Le chemin des couches peut être stocké de deux manières dans le fichier QGS :

  1. soit par rapport à l'emplacement du QGS
  2. soit "en dur", sous la forme du chemin en entier

1. Par exemple, ../donnees/senegal_regions_gadm.shp signifie qu'il faut remonter d'un dossier par rapport au dossier dans lequel est situé le projet, puis descendre dans le dossier donnees pour y trouver la couche senegal_regions.shp

2. Un exemple de chemin "en dur" : D:/Travail/SIG/TutoQGIS_01_PriseEnMain/donnees/senegal_regions_gadm.shp

Dans QGIS, par défaut les chemins sont sauvegardés en relatif, ce qui permet de transmettre à un collègue un dossier avec par exemple un sous-dossier données et un sous-dossier projets.

Si vous désirez changer ce comportement pour un projet, Menu Projet → Propriétés du projet... → rubrique Général

 

 

Menu Projet, Propriétés du projet, onglet Général,

changez la propriété Enregistrer les chemins de relatif à absolu.

Si vous déplacez des couches et que vous ouvrez ensuite un projet QGS qui utilise ces couches, vous obtiendrez un message d'erreur : le chemin des couches a changé et ne correspond plus à ce qui est indiqué dans le QGS!

Il sera néanmoins possible de spécifier à nouveau les emplacements des couches du projet.

Il est possible de trouver sur internet des données déjà géoréférencées, c'est-à-dire possédant déjà des coordonnées, donc directement utilisables dans un SIG. Ces données peuvent être vecteur ou raster.

Dans le cas de données vecteur, le format le plus courant est sans doute le shapefile ; on trouvera aussi des données dans d'autres formats, par exemple TAB (MapInfo), GeoJSON...

Dans le cas de données raster, on pourra trouver par exemple des données au format geotiff (TIF géoréférencé, c'est-à-dire avec des coordonnées lui permettant de se superposer correctement à d'autres couches).

Parfois, on ne trouvera que des données non géoréférencées (carte papier par exemple, ou simple image trouvée sur internet). Ce cas sera traité dans la partie 4 : géoréférencement.

Données vecteur : quelques exemples

Limites administratives du Kenya

Il existe de nombreux sites permettant le téléchargement de données shapefile sur des thèmes variés. Nous allons ici supposer que vous cherchez les limites administratives d'un pays précis.

Pour cela, rendez-vous sur le site : http://www.gadm.org/

Trouvez sur ce site la rubrique téléchargement, et téléchargez les limites administratives du Kenya au format shapefile. Décompressez le fichier ZIP obtenu dans votre répertoire de travail.

Lancez QGIS si ce n'est pas déjà fait, ou bien créez un nouveau projet sans sauvegarder l'ancien.

Icône ajout d'une couche vecteurA partir de QGIS, chargez la couche KEN_adm5.shp.

Au cas où le téléchargement échouerait, cette couche est également disponible dans le dossier TutoQGIS_03_RechercheDonnees/donnees.

Réussissez-vous à faire apparaître les grandes régions du Kenya (champ NAME_1) avec des couleurs différentes à partir de cette couche ?

Pour cela, allez dans les propriétés de la couche → rubrique Style :

  • choisissez Catégorisé comme type de légende
  • sélectionnez le champ de classification : NAME_1
  • Palette de couleur : choisissez Couleurs au hasard dans la liste
  • Cliquez ensuite sur Classer en bas à gauche de la fenêtre

 

Style de couche : catégorisé

Cliquez sur Appliquer pour voir les changements (ou bien cliquez sur OK pour appliquer les changements + fermer la fenêtre) : vous pouvez voir les régions du Kenya.

résultat de la catégorisation : on voit les régions

Vous venez de réaliser votre première analyse thématique!

Cette manip permet de représenter de la même manière tous les éléments ayant la même valeur pour un champ donné.

Cours d'eau du Kenya

De nombreuses ressources sont également disponibles sur le site de la Food and Agriculture Organisation (FAO)

Ce site est un catalogue de métadonnées, utilisant le logiciel GeoNetwork. Il est possible d'y faire une recherche par thématique, mot clé... Certaines des données sont ensuite téléchargeables ; on y trouve aussi bien des données vecteur que des données raster.

Vous pouvez par exemple y rechercher les cours d'eau du Kenya. Choisissez le Kenya dans la liste déroulante des pays, dans la colonne gauche de la page, puis cliquez sur Hydrology and Water Resources dans la liste de catégories qui se trouve dessous.

recherche des cours d'eau du Kenya sur le site de la FAO

Prenez connaissance des métadonnées de Rivers of Kenya - AFRICOVER et téléchargez ces données. Affichez ensuite la couche correspondante ke-rivers.shp dans QGIS.

superposition des cours d'eau et des régions du Kenya

Au cas où le téléchargement échouerait, cette couche est également disponible dans le dossier TutoQGIS_03_RechercheDonnees/donnees.

Vous pouvez remarquer un léger décalage entre les deux couches, visible là où les cours d'eau semblent suivre les frontières. En effet, les deux couches ne proviennent pas du même organisme et ont des niveaux de précision différents...

Données raster : quelques exemples

Les données raster seront par exemple des images satellite, des fonds de carte, des modèles numériques de terrain (MNT)...

Nous allons ici voir où trouver un modèle d'élévation pour le Kenya.

Un modèle d'élévation numérique (Digital Elevation Model ou DEM) se rapproche d'un MNT, mais il ne mesure pas l'altitude au sol mais l'altitude des éléments présents au sol. Si une forêt est présente, ce sera donc l'altitude du sommet des arbres qui sera mesurée et non l'altitude du sol, idem si des bâtiments sont présents.

On trouve sur internet deux DEM en libre accès : le modèle ASTER issu d'une collaboration NASA/METI (Ministry of Economy, Trade and Industry of Japan) et le modèle SRTM issu d'une collaboration NASA/NGA (National Geospatial-Intelligence Agency). Nous allons voir ici le cas du SRTM.

rendez-vous sur http://dwtkns.com/srtm/ et cliquez sur une des cases recouvrant le Kenya (par exemple la dalle srtm_44_12) :

téléchargement d'une dalle du SRTM

Téléchargez la dalle au format GeoTIFF, dézippez ensuite le fichier obtenu.

Icône ajout couche rasterAjoutez le fichier TIF téléchargé au moyen de l'icône Ajouter une couche raster.

superposition des cours d'eau, des régions et du SRTM

Au cas où le téléchargement échouerait, cette couche est également disponible dans le dossier TutoQGIS_03_RechercheDonnees/donnees.

Quelques sites utiles (en vrac...)

III.2 Ajout de données via des flux

Qu'est-ce qu'un flux WMS ou WFS?

Il est possible de visualiser directement dans un SIG des données accessibles sur un serveur, sans devoir préalablement les télécharger sur votre ordinateur. Ceci se fait via des flux. Les deux types de flux les plus courant permettant ceci sont les flux WMS (Web Map Service) et WFS (Web Feature Service).

  • Les flux WMS vont vous permettre d'afficher des couches raster, non modifiables.
  • Les flux WFS vous permettront d'afficher des couches vecteur, non directement modifiables mais que vous pourrez ensuite télécharger au format shapefile.

Ajout de données via un flux WMS : carte géologique

Lancez QGIS si ce n'est pas déjà fait, ou bien créez un nouveau projet.

icône ajout d'une couche vecteur Ajoutez-y la couche dept_creuse_geofla.shp que vous trouverez dans le dossier TutoQGIS_03_RechercheDonnees/donnees.

Donnez au projet le même SCR que la couche dept_creuse_geofla.shp.

Nous allons maintenant ajouter au projet la carte géologique de la France au 1/50 000è via un flux WMS.

icône ajout d'une couche WMSCliquez sur l'icône Ajouter une couche WMS, ou bien Menu Couche → Ajouter une couche → Ajouter une couche WMS... Menu Couche, ajouter une couche WMS

Fenêtre ajout couche WMS

Cliquez sur le bouton Nouveau pour créer une nouvelle connexion. La fenêtre suivante apparaît :

Fenêtre de création d'une nouvelle connexion WMS

  • Nom : tapez le nom de votre choix, par exemple BRGM
  • URL : tapez l’URL suivante, qui correspond à l'adresse du serveur WMS du BRGM : http://geoservices.brgm.fr/geologie

Laissez les autres paramètres tels quels et cliquez sur OK. Vous voilà à nouveau dans la fenêtre d'ajout d'une couche WMS :

Fenêtre ajout d'une couche WMS, connexion au serveur du BRGM et choix de la couche à ajouter

  • Après avoir vérifié que votre connexion est bien sélectionnée dans la liste déroulante en haut de la fenêtre, cliquez sur Connexion
  • Rendez-vous dans la rubrique 1 GEOLOGIE et sélectionnez la couche correspondant à la carte géologique image de la France au 1/50 000.
  • Cliquer sur Modifier... en bas à droite et choisissez le SCR RGF93 / Lambert-93 (code EPSG 2154) afin que la couche ait le même SCR que notre projet
  • Cliquez sur Ajouter, patientez...

Vous devriez obtenir quelque chose de similaire à ceci :

superposition du département de la Creuse et de la carte géologique

Il peut être nécessaire de changer l'ordre des couches en les faisant glisser dans la table des matières, et de modifier le style de la couche du département de la Creuse.

Ici, l'adresse du serveur WMS vous était fournie ; si vous cherchez des adresses de flux, deux solutions : une recherche internet, ou bien l'onglet Recherche de serveurs de la fenêtre d'ajout d'une couche WMS :

Onglet recherche de serveurs de la fenêtre d'ajout d'une couche WMS

Dans cette fenêtre, vous pouvez taper du texte dans la partie Recherche, voir la liste des serveurs contenant ce texte, et ajouter une ligne de cette liste à la liste de vos connexions visible dans l'onglet Couche, grâce au bouton Ajoutez les lignes sélectionnées à la liste des serveurs WMS.

Ajout de données via un flux WFS : cours d'eau

Le but va être ici d'ajouter les cours d'eau de la BD Carthage du Sandre (Service d'Administration Nationale des Données et Référentiels sur l'Eau).

icône ajout d'une couche WFSCliquez sur l'icône Ajouter une couche WFS, ou bien Menu Couche → Ajouter une couche → Ajouter une couche WFS... Menu Couche, ajouter une couche WFS

Fenêtre ajout couche WFS

Cliquez sur le bouton Nouveau pour créer une nouvelle connexion. La fenêtre suivante apparaît :

Fenêtre de création d'une nouvelle connexion WfS

  • Nom : tapez le nom de votre choix, par exemple BD Carthage
  • URL : tapez l’URL suivante, qui correspond à l'adresse du serveur WFS du Sandre : http://services.sandre.eaufrance.fr/geo/zonage

Laissez les autres paramètres tels quels et cliquez sur OK. Vous voilà à nouveau dans la fenêtre d'ajout d'une couche WFS :

Fenêtre ajout d'une couche WFS, connexion au serveur du Sandre et choix de la couche à ajouter

  • Après avoir vérifier que votre connexion est bien sélectionnée dans la liste déroulante en haut de la fenêtre, cliquez sur Connexion
  • Sélectionnez la couche correspondant aux cours d'eau métropole de plus de 100km (CoursEau1)
  • Cliquer sur Modifier... pour tenter de modifier le SCR : malheureusement, seul le WGS84 est rendu disponible par ce flux
  • Cliquez sur Ajouter

Vous devriez obtenir quelque chose de similaire à ceci :

superposition du département de la Creuse et des cours d'eau de plus de 100km

Il peut être nécessaire de changer l'ordre des couches en les faisant glisser dans la table des matières, et de modifier le style de la couche du département de la Creuse. Vu qu'il s'agit ici d'un flux WFS et non WMS, il est également possible de modifier le style des cours d'eau.

De même, s'agissant d'un flux WFS, il est possible de sauvegarder les cours d'eau au format shapefile : clic droit sur la couche, enregistrer sous...

Avantages et inconvénients des flux

Un inconvénient d'utiliser des flux est le temps de chargement et la nécessité d'avoir une connexion internet.

Cependant, ils vous assurent de toujours visualiser la dernière mise à jour des données, vous évitent d'encombrer vos ordinateurs et vous permettent de transmettre des projets QGS à des collègues en étant sûr que ceux-ci puissent en visualiser les données (s'ils sont connectés à internet).

En résumé, c'est probablement l'usage que vous ferez des données qui vous fera opter pour l'une ou l'autre solution.

 

III.3 Ajout de données ponctuelles à partir d'un fichier texte

Nous avons vu quelques pistes pour rechercher et afficher des données au format SIG dans QGIS, que ce soit en les téléchargeant ou via des flux. Il arrive aussi de disposer d'un tableau avec deux colonnes X et Y : comment utiliser ces données dans un SIG ?

Nous prendrons ici l'exemple d'un fichier au format CSV. Pour information, il est possible de créer un fichier au format CSV à partir d'un fichier ODS (LibreOffice) ou XLS (Microsoft Office) par exemple.

Qu'y a-t-il dans le fichier texte?

Dans l'explorateur de votre ordinateur, ouvrez le fichier villes_bhutan_geonames.csv situé dans le dossier TutoQGIS_03_RechercheDonnees/donnees à l'aide d'un éditeur de texte simple (pas dans un tableur) : par exemple, WordPad dans Windows, TextEdit sous Mac, gedit sous Ubuntu.

capture d'écran du fichier CSV

Le format CSV est un format relativement simple : il contient des colonnes séparées habituellement par des virgules, parfois par des points-virgules, tabulations ou autre. La première ligne contient les en-têtes de colonnes.

Le fichier comporte 9 colonnes : geonamesid, name, asciiname, latitude, longitude, country code, population, dem et modification date.

capture d'écran des données du CSV avec les noms de colonnes encadrés en rouge

La latitude de la ville de Timphu est 27.46609 (la colonne "latitude" est la 4ème colonne : la réponse se trouve donc dans la 4ème colonne de la ligne correspondant à Timphu.

capture d'écran des données du CSV avec la latitude de Timphu encadrée en rouge

En vous rendant sur http://download.geonames.org/export/dump/readme.txt dans un navigateur internet, vous pouvez lire la définition suivante pour la colonne dem (dans la partie "The main 'geoname' table has the following fields" ) : digital elevation model, srtm3 or gtopo30, average elevation of 3''x3'' (ca 90mx90m) or 30''x30'' (ca 900mx900m) area in meters, integer. srtm processed by cgiar/ciat.

Il s'agit donc de la valeur d'un modèle d'élévation numérique, correspondant approximativement à l'altitude. Différents modèles ont été utilisés, à différentes résolutions.

Fermez le fichier sans enregistrer les éventuelles modifications, quittez l'éditeur de texte.

Ce fichier contient donc une liste de villes du Bhoutan, avec pour chaque ville différentes informations telles que sa population, son élévation, sa latitude et sa longitude.

Comme précisé dans le fichier de métadonnées, les coordonnées sont mesurées en degrés décimaux dans le SCR WGS84.

Dans le cas d'un fichier avec des coordonnées en latitude et longitude et un SCR inconnu, il s'agit fréquemment de coordonnées en WGS84.

Visualisation des données dans QGIS

Ajout d'une couche avec un SCR inconnu : préparer le terrain

Dans la mesure où nous allons ajouter des données issues d'un fichier texte à QGIS, QGIS ne pourra pas lire dans quel SCR ont été mesurées ces coordonnées : ce sera à nous de le préciser au logiciel.

Lancez QGIS si ce n'est pas déjà fait, ou bien créez un nouveau projet sans sauvegarder l'ancien.

Pour être sûr que QGIS vous demande dans quel SCR sont les coordonnées du fichier texte, rendez-vous dans le menu Préférences → Options Menu Préférences, Options , rubrique SCR :

Options, rubrique SCR

Pour l'option Quand une nouvelle couche est créée ou quand une couche est chargée sans SCR, choisissez l'option Demander le SCR si ce n'est pas déjà fait. Cliquez sur OK.

Visualisation des données sous QGIS

Icône ajout d'une couche vecteurA partir de QGIS, chargez la couche ne_10m_admin_0_countries.shp située dans le dossier TutoQGIS_03_RechercheDonnees/donnees.

icône ajout fichier texte délimité Cliquez sur l'icône Ajouter une couche de texte délimité, ou bien rendez-vous dans le Menu Couche → Ajouter une couche → Ajouter une couche de texte délimité Menu Couche, ajouter une couche de texte délimité

Fenêtre d'ajout d'une couche CSV

  • Cliquez sur le bouton Parcourir et sélectionnez le fichier villes_bhutan_geonames.csv
  • Nom de la couche : vous pouvez laisser villes_bhutan_geonames ou bien tapez le nom de votre choix
  • Format de fichier : choisir CSV (virgule)
  • Enregistrements : vérifiez que la case en-têtes de 1ère ligne soit bien cochée
  • Définition de la géométrie : choisir point, puis les colonnes X et Y : longitude et latitude

Cliquez sur OK. Une fenêtre s'ouvre vous demandant dans quel SCR sont les coordonnées du fichier CSV : choisissez le WGS84, comme vu plus haut.

Zoomez sur la couche de points et ouvrez sa table attributaire :

Visualisation des villes du bhutan et de leurs données attributaires sous QGIS

Les villes ont bien été ajoutées à QGIS sous la forme d'une couche de points.

Création du shapefile de points

Regardez à quel emplacement est stockée votre couche. Vous pouvez observer que cet emplacement fait référence à un fichier CSV et non à un fichier SHP.

Par ailleurs, si vous sélectionnez la couche de villes dans la table des matières, vous pouvez constater que l'icône pour passer en mode édition est désactivée, au contraire de notre couche de pays. La couche de villes n'est donc pas éditable.

Icône édition activée : Icône édition activée Icône édition désactivée : Icône édition désactivée

Ces indices laissent à penser que bien que nous puissions visualiser les villes dans QGIS, aucun SHP n'a été créé, ce qui est d'ailleurs logique dans la mesure où QGIS ne nous a demandé à aucun moment de choisir un emplacement pour cette couche.

En fait, nous avons seulement créé une couche temporaire, uniquement stockée dans le projet QGS en cours. Comment faire pour sauvegarder cette couche?

Il suffit pour cela de faire un clic-droit sur la couche villes_bhutan_geonames, Enregistrer sous... clic droit sur la couche, sauvegarder sous

fenêtre de sauvegarde de la couche

  • Cliquez sur Parcourir pour sélectionner l'emplacement où la couche sera créée et lui donner un nom
  • Cochez la case Ajouter les fichiers sauvegardés à la carte
  • Laissez les autres paramètres par défaut

Cliquez sur OK ; la couche est ajoutée à QGIS, vous devez donc avoir deux couches de villes identiques au premier abord; cependant, l'une est temporaire et l'autre permanente.

Icône supprimer une couche Supprimez la couche temporaire clic-droit sur la couche, supprimer pour éviter toute confusion (en vous aidant éventuellement de son emplacement pour déterminer laquelle est-ce).

En ouvrant la table attributaire de la nouvelle couche, vous pouvez constater que les noms de champs ont été tronqués à 10 caractères (« country co » au lieu de « country code » par exemple). Ceci est une limitation liée au format DBF utilisé pour les shapefile (cf. partie I.3.1a).

Félicitations ! L'ajout de données ponctuelles à partir d'un fichier texte dans QGIS n'a désormais plus de secrets pour vous !

IV. Géoréférencement

Le géoréférencement, ou calage, consiste à donner des coordonnées à une image.

Notions abordées :

  • Principe du géoréférencement
  • Points de calage
  • Types de transformation
  • Erreur Moyenne Quadratique (EMQ)
  • Rééchantillonnage
  • Vérification du géoréférencement

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

IV.1 Principe du géoréférencement

 

Qu'est-ce que le géoréférencement?

Les données SIG que nous avons utilisées jusqu'ici ont toutes des coordonnées, ce qui nous permet de les superposer correctement dans une logiciel SIG. A l'inverse, dans le cas d'une image simplement scannée, une carte ancienne par exemple, le logiciel ne possède pas d'informations de coordonnées ; il placera cette image simplement en considérant que le coin en haut à gauche a les coordonnées 0,0.

Le géoréférencement, ou calage, consiste à attribuer des coordonnées à une image. Cette image pourra ensuite être superposée à d'autres couches dans un logiciel SIG, et servir par exemple de fond de carte ou être numérisée. Le géoréférencement s'applique uniquement aux données raster (il existe d'autres méthodes pour les données vecteur qui ne seront pas abordées ici).

Lors du géoréférencement, il faudra aussi préciser dans quel SCR est notre image.

Géoréférencer par rapport à quoi? Deux méthodes

Pour donner des coordonnées à une image, il est possible de se baser soit sur des informations contenues directement dans l'image, par exemple si l'image est une carte avec un carroyage, ou soit sur une autre couche déjà existante et correctement calée (vecteur ou raster).

En se basant sur les informations contenues dans l'image

si on connaît précisément les coordonnées de quelques points sur l'image, grâce à un carroyage avec des amorces de coordonnées, on va pouvoir se servir de ces coordonnées pour géoréférencer l'image.

Il faut néanmoins connaître le système de coordonnées utilisé, ce qui peut nécessiter des recherches.

calage grâce à un carroyage avec coordonnées
Calage grâce à un carroyage avec amorces de coordonnées (Source de l'image : Wikimedia, domaine public)

En se basant sur des informations contenues dans une autre couche

Si l'image ne possède pas d'indications de coordonnées, il va falloir utiliser une couche déjà géoréférencée possédant une zone commune avec l'image à géoréférencer. On pourra alors indiquer que tel point sur l'image correspond à tel point sur la couche déjà géoréférencée. Cette méthode sera employée pour caler des photographies aériennes par exemple.

La carte résultante aura le même système de coordonnées que la couche de référence. La précision du calage dépend alors notamment de la précision de la couche de référence.

calage grâce à une couche déjà calée servant de référence
Calage grâce à une couche de référence (Source de l'image à caler : Wikimedia, domaine public, source des données de référence OpenStreetMap © les contributeurs d’OpenStreetMap).

Dans l'illustration ci-dessus, l'image de gauche est géoréférencée en utilisant le fond de carte OpenStreetMap. Des points que l'on peut facilement identifier sur les deux images (par exemple des intersections de routes) servent de points de calage.

IV.2 Géoréférencement : les préliminaires

 

Notre but sera ici de caler une carte de l'île d'Oahu (Hawaii) de 1902 (source : Wikimedia. Une fois cette carte calée, vous pourrez la superposer à d'autres données dans QGIS.

La première étape consiste à prendre connaissance de cette carte, et à vérifier que le module de géoréférencement de QGIS soit activé.

Découverte de l'image à caler

Où se situe l'île d'Oahu? Rendez-vous par exemple sur Wikipedia pour le savoir : http://fr.wikipedia.org/wiki/Oahu.

L'île est située approximativement aux coordonnées 21° 28' Nord et 157° 59' Ouest (SCR WGS84).

A partir de l'explorateur de fichiers de votre ordinateur, ouvrez l'image Oahu_Hawaiian_Islands_1906.jpg située dans le dossier TutoQGIS_04_Georef/donnees.

Aucune mention d'un SCR n'est faite sur cette carte. Nous pouvons néanmoins être sûr qu'il s'agit d'un système géographique (non projeté) puisque les coordonnées sont exprimées en degrés.

Connaître quel système a été utilisé ici nécessiterait des recherches, en se basant sur la date de la carte et la zone couverte. Nous allons supposer ici, pour les besoins de l'exercice, que les coordonnées sont en WGS84 (ce qui n'est évidemment pas le cas, ce système datant de 1984). Nous vérifierons que ce choix nous donne une précision acceptable.

Accéder au module de géoréférencement

Si tout va bien...

Le module de géoréférencement de QGIS est normalement accessible via le menu Raster → Géoréférencer → Géoréférencer Menu Raster, géoréférencer, géoréférencer .

Si le module n'est pas accessible...

Si vous n'avez pas accès au géoréférenceur à partir du menu raster, vérifier que l'extension est installée et activée via le menu Extension → Installer/Gérer les extensions Menu Extension, Installer/Gérer les extensions .

Activation de l'extension géoréférenceur

Allez dans la rubrique installées pour voir la liste des extensions installées, tapez "géo" (attention, l'accent est important) dans Rechercher pour limiter les résultats, et cochez la case de l'extension Géoréférenceur GDAL.

IV.3 Points de calage : avec un carroyage

 

Nous allons créer ici des points de calage, c'est-à-dire attribuer leurs coordonnées à plusieurs points de l'image.

Pour ce faire, nous utiliserons la première méthode décrite dans la partie IV.1 : nous nous baserons sur le carroyage de cette carte pour créer les points de calage (la deuxième méthode sera abordée dans la partie IV.6).

Création du premier point

Lancez QGIS ou créez un nouveau projet. Il est inutile d'ajouter la carte d'Oahu à QGIS (si vous le faites néanmoins, profitez-en pour observer qu'en l'absence d'informations de localisation pour cette image, QGIS positionne son coin supérieur gauche aux coordonnées (0,0)).

icône du géoréférenceur Ouvrez la fenêtre du géoréférenceur : Menu Raster → Géoréférencer → Géoréférencer... Menu Raster, Géoréférencer, Géoréférencer...

Fenêtre du géoréférenceur

icône ouvrir un raster du géoréférenceurDans cette fenêtre, ajoutez au géoréférenceur l'image à caler en cliquant sur l'icône Ouvrir un raster, ou bien menu Fichier → Ouvrir un raster Menu Fichier, ouvrir un raster .

Sélectionnez la carte de l'île d'Oahu : fichier Oahu_Hawaiian_Islands_1906.jpg.

Une fenêtre s'ouvre demandant le SCR de l'image ; puisque nous avons décidé de partir du principe que les coordonnées de cette carte était en WGS84, choisissez ce SCR Choix du SCR WGS84 en utilisant le filtre 4326 .

La carte s'affiche dans la fenêtre du géoréférenceur.

Il s'agit maintenant de renseigner les coordonnées de plusieurs points, en se basant sur les indications de la carte. Vous pouvez par exemple commencez par le point en haut à gauche :

emplacement du premier point de calage à créer

icône d'ajout de point du géoréférenceurVérifiez que l'icône Ajouter un point soit bien sélectionnée et cliquez à l'intersection des deux lignes du carroyage :

Fenêtre de saisie des coordonnées d'un point de calage

Ce point est situé aux coordonnées -158° 15' Est (longitude négative car le point est à l'ouest du méridien de Greeenwich) et 21° 40' Nord (latitude positive car le point est au Nord de l'équateur).

QGIS propose de saisir les coordonnées en degrés minutes secondes sous la forme dd mm ss.ss. Ici, nous avons juste des degrés et des minutes : le point a donc pour coordonnées -158 15 Est et 21 40 Nord.

Fenêtre de saisie des coordonnées d'un point de calage, coordonnées remplies

Après avoir saisi les coordonnées, cliquez sur OK.

Le point apparaît sous forme d'une ligne dans la table des points de contrôle, sous la carte dans la fenêtre géoréférenceur :

Table des points de contrôle : premier point

Que signifient les différentes colonnes de cette table?

  • on/off : indique si le point sera pris en compte ou non pour le géoréférencement. Permet de ne pas prendre en compte certains points qui semblent apporter trop d'erreurs, tout en les gardant en mémoire.
  • id : identifiant du point. Peut aider à repérer de quel point il s'agit sur la carte, dans le fenêtre du géoréférenceur comme dans celle de QGIS.
  • srcX et srcY : coordonnées du point dans l'image non géoréférencée, c'est-à-dire en considérant que le pixel en haut à gauche de l'image a pour coordonnées 0,0.
  • dstX et dstY : les coordonnées que l'on souhaite faire prendre à ce point, exprimées dans le SCR choisi précédemment. Ces coordonnées sont en degrés décimaux (ici, -158°15' a été converti en -158,25 degrés décimaux).
  • dX[pixels] et dY[pixels] : la différence entre les coordonnées qu'on souhaiterait voir prendre le point (dstX et dstY) et les coordonnées que prendra effectivement le point après le géoréférencement. En effet, en fonction du type de transformation choisi et du nombre de points de calage, il n'est pas toujours possible de faire coïncider exactement les points avec les coordonnées souhaitées.
  • residual[pixels] : l'erreur associée à ce point, calculée à partir de dX[pixels] et dY[pixels]. Cette erreur est égale à la racine de la somme des carrés de dX[pixels] et dY[pixels], soit :
    √ ( dX[pixels] ² + dY[pixels] ² )

Dans notre table, les colonnes dX[pixels], dY[pixels] et residual[pixels] ne sont pas encore remplies, car nous n'avons pas encore défini le type de transformation à effectuer lors du géoréférencement. Cette notion sera abordée dans la partie suivante. En attendant, continuons à ajouter des points de calage pour en avoir par exemple six.

Quelques astuces pour créer les points suivants

Procédez de la même manière pour rajouter 5 autres points de calage. Faites en sorte que ces points soient bien répartis sur l'image.

Pour visualiser les identifiants et/ou les coordonnées des points sur la carte du géoréférenceur : Menu Paramètres → Configurer le géoréférenceur Menu Paramètres, Configurer le géoréférenceur :

Fenêtre de configuration du géoréférenceur

Icône effacer un point du géoréférenceurSi vous faites une erreur, vous pouvez supprimer un point en cliquant sur l'icône Effacer un point, puis sur le point à effacer.

Icône déplacer un point du géoréférenceurVous pouvez également déplacer un point déjà créé en cliquant sur l'icône Deplacer les points de contrôle, puis en faisant glisser le point à déplacer.

Icône sauvegarder les points de contrôleUne fois vos points créés, vous pouvez les sauvegarder au moyen du menu Fichier → Enregistrer les points de contrôle sous... Menu Projet, Fichier, Enregistrer les points de contrôle sous ou bien en cliquant sur l'icône correspondante.

Cette manipulation crée un fichier avec l'extension .POINTS. Par défaut, ce fichier aura le même nom et sera dans le même dossier que l'image que vous êtes en train de caler. Ces points de calage pourront être chargés dans le géoréférenceur au moyen du menu Fichier → Charger les points de contrôle Menu Fichier, charger les points de contrôle .

Voici à quoi ressemble la fenêtre du géoréférenceur une fois tous les poins de calage correspondant à des intersections du carroyage renseignés :

Cartes de Oahu avec le maximum de points de calage renseignés

Vous n'êtes pas obligé de renseigner autant de points ! Six suffiront pour notre calage.

Les points qui serviront à caler notre image sont maintenant créés. Comment faire pour utiliser ces points pour caler notre image ?

IV.4 Paramétrage du géoréférencement

 

Avant de pouvoir procéder au géoréférencement proprement dit, il va nous falloir définir plusieurs paramètres.

Icône paramètres de transformation du géoréférenceurCes paramètres sont accessibles dans le menu Paramètres → Paramètres de transformation Menu Paramètres, Paramètres de transformation ou bien en cliquant sur l'icône correspondante.

Fenêtre de saisie des paramètres de transformation

Nous allons passer en revue ces différents paramètres.

Type de transformation, ou comment calculer les nouvelles coordonnées des points ?

Qu'est-ce qu'une transformation?

Lors du calage, l'image subit une transformation, afin de faire coïncider au maximum les points de départ avec les coordonnées spécifiées par l'utilisateur. Une transformation est en fait une formule mathématique transformant les coordonnées de départ vers les coordonnées voulues.

Il existe divers types de transformations, adaptées à des usages différents. Chaque transformation, si on l'utilise avec un nombre de points de calage supérieur à son minimum, renverra une erreur correspondant à la différence entre les coordonnées "idéales" voulues par l'utilisateur et les coordonnées effectivement calculées lors de la transformation (erreur résiduelle residual[pixels] de la table des points de contrôle, voir plus haut).

Quelques types de transformations

QGIS permet les transformations suivantes :

  • linéaire (2 points minimum) : type le plus simple, ne déforme pas le raster. Cette transformation est rarement suffisante pour des images scannées.
  • Helmert (2 points minimum) : cas particulier de transformation polynomiale d'ordre 1.
  • transformation polynomiale d'ordre 1, ou transformation affine (3 points minimum) : elle préserve la colinéarité (3 points alignés le resteront) et permet seulement changement d'échelle, translation et rotation.
  • transformation polynomiale d'ordre 2 (6 points minimum) : permet une distorsion du raster.
  • transformation polynomiale d'ordre 3 (10 points minimum) : le degré de distorsion possible est plus important que pour une transformation d'ordre 2.
  • Thin Plate Spline (TPS) (1 point minimum) : méthode récente, permettant de prendre en compte des déformations locales. Cette transformation est utile lorsqu'on dispose d'originaux de très mauvaise qualité.
  • projective (4 points minimum) : une des transformations les plus complexes, qui ne conserve pas le parallélisme. Un carré sera transformé en quadrilatère.

Choisir une transformation

Quelques éléments vous ont été donnés dans la description des types de transformation pouvant vous aider à choisir l'une ou l'autre transformation. En pratique, le choix est souvent difficile et requiert de tester plusieurs transformations et de les comparer si l'on recherche une bonne précision.

Ici, nous nous bornerons à choisir une transformation simple et rapide.

Sélectionnez la transformation polynomiale 1 dans la liste déroulante de la fenêtre de paramétrage.

Choix du type de transformation

Rééchantillonnage, ou comment calculer les valeurs des pixels ?

Si on utilise une transformation qui déforme le raster d'origine (transformation polynomiale d'ordre supérieur à 1, ou transformation de type Spline par exemple), la valeur (couleur) de chaque pixel du nouveau raster sera déterminée par un calcul en se basant sur le raster original.

Cette valeur sera différente selon la méthode de rééchantillonnage choisie. QGIS, comme d'autres logiciels SIG, propose trois méthodes de rééchantillonnage :

3 types de rééchantillonnage
  • Plus proche voisin : le nouveau pixel prend la valeur du pixel de l'ancien raster le plus proche. Cette méthode est la plus rapide, et est utilisée principalement pour des données catégorisées (occupation du sol par exemple) puisqu'elle ne crée pas de nouvelles valeurs.
  • Linéaire : la valeur du nouveau pixel est déterminé à partir des valeurs des 4 pixels les plus proches. Cette méthode est utilisée pour des données continues et permet un lissage du raster.
  • Cubique : la valeur du nouveau pixel est déterminée à partir des valeurs des 16 pixels les plus proches. Ceci provoque moins de distorsion géométrique de l'image mais nécessite un temps de calcul relativement long. Par ailleurs, il y a plus de possibilités d'obtenir avec cette méthode de nouvelles valeurs de pixel par rapport aux valeurs de départ.

Le choix d'une méthode de rééchantillonnage a surtout une influence dans le cas où un la taille des pixels est importante par rapport à la taille des objets qui seront étudiés sur l'image, par exemple une photo aérienne où chaque maison est constituée de seulement quelques pixels.

Dans notre cas (carte scannée avec une bonne résolution), le choix du type de rééchantillonnage influencera peu le résultat.

Ici, nous allons donc choisir la méthode la plus simple et la plus rapide : plus proche voisin.

Choix du type de rééchantillonnage

Mode de compression utilisé pour la création de la nouvelle image

La compression permet d'obtenir un raster moins volumineux, mais peut provoquer une perte de qualité. Une image compressée peut par ailleurs être illisible par certains logiciels.

QGIS propose les méthodes suivantes :

  • NONE : pas de compression
  • LZW : utilisé pour les images au format GIF et TIF. Assez largement utilisé, permet une compression jusqu'au 1:10
  • PACKBITS : offre une compression moindre que la méthode LZW, mais ce format est plus courant
  • DEFLATE : similaire à LZW, mais principalement prise en charge par les logiciels Adobe

Notre image de base étant peu volumineuse, nous allons choisir le type NONE.

Choix du type de compression

Les autres paramètres

Raster de sortie

Spécifiez ici le nom et l'emplacement de l'image géoréférencée qui sera créée, en cliquant sur l'icône à droite de la ligne Raster de sortie.

Choisir le nom et l'emplacement du raster de sortie

Choisissez à quel endroit vous souhaitez créer cette couche, et donnez-lui un nom, par exemple Oahu_Hawaiian_Islands_1906_pol1_wgs84.tif.

SCR cible

Comme décidé en partie IV.1, nous allons partir du principe que les coordonnées de cette carte sont exprimées dans un système proche du WGS84.

Cliquez sur l'icône à droite de la ligne SCR cible.

Choisir le SCR

Choisissez le SCR WGS 84, code EPSG 4326, en vous aidant éventuellement de la partie filtre.

Sélection du SCR WGS84

Cliquez sur OK.

Le SCR WGS84 (code EPSG 4326) doit normalement être sélectionné comme SCR cible :

le scr wgs 84 est choisi dans la ligne scr cible

Carte et rapport PDF

La carte PDF permettra de visualiser le décalage qu'aura subi chaque point de contrôle. Le rapport PDF comportera notamment les coordonnées et erreurs pour chaque point.

Cliquez sur les icônes à droite des lignes carte PDF et rapport PDF pour spécifier un nom (à votre convenance) et l'emplacement (par exemple dans le même dossier que l'image de départ) pour la carte et le rapport qui seront créés.

icônes pour choisir le nom et l'emplacement de la carte et du rapport PDF

Au final, ces lignes seront remplies suivant l'emplacement et le nom que vous aurez choisi, par exemple :

les lignes pour la carte et le rapport pdf, une fois les noms et emplacements choisis

Définir la résolution de la cible

Laisser cette case décochée pour que l'image créée ait la même résolution que l'image de départ.

résolution de la cible : la case est décochée

Transparence

Employer 0 pour la transparence : cette option est utile principalement pour les photographies aériennes ou satellites et permet de ne pas visualiser les pixels noirs (bords de l'image), ce qui serait gênant dans notre cas.

Laissez cette case décochée.

employer 0 pour la transparence : la case est décochée

Charger directement le raster dans QGIS

Charger dans QGIS lorsque terminé : cocher cette case pour que le nouveau raster soit chargé automatiquement dans QGIS une fois le géoréférencement effectué.

echarger dans qgis : la case est cochée

Une fois tous les paramètres choisis...

...Cliquez sur OK : les paramètres sont sauvegardés... Mais rien ne semble se passer. Rendez-vous dans la partie suivante pour l'étape finale !

IV.5 Lancer le géoréférencement

 

Vérification avant calage : les erreurs

Erreur par pixel

Maintenant que le type de transformation est renseignée, les erreurs pour chaque pixel ont été calculées dans la table des points de contrôle :

Tables de points de contrôle une fois les erreurs par pixel calculées

Comme indiqué dans la partie IV.3.1 :

  • les colonnes dX[pixels] et dY[pixels] correspondent à la différence entre les coordonnées qu'on souhaiterait voir prendre le point (dstX et dstY) et les coordonnées que prendra effectivement le point après le géoréférencement. Cette valeur variera selon le type de transformation choisie.
  • La colonne residual[pixels] correspond à l'erreur associée à ce point, calculée à partir de dX[pixels] et dY[pixels]. Cette erreur est égale à la racine de la somme des carrés de dX[pixels] et dY[pixels], soit :
    √ ( dX[pixels] ² + dY[pixels] ² )

Classez les points par erreur décroissante, en cliquant deux fois sur l'en-tête de colonne residual[pixels].

Avez-vous dans votre table des points avec des valeurs d'erreur très importantes par rapport aux autres ? Pouvez-vous en trouver la cause ? Vous pouvez décocher les points aberrants dans la colonne on/off.

Vous ne devriez normalement pas obtenir des erreurs résiduelles supérieures à 10 ; si nécessaire, supprimez et recréez des points de calage.

Erreur globale : Erreur Quadratique Moyenne

Tout en bas de la table des points de contrôle est indiqué le type de transformation utilisée (polynomiale 1 dans notre cas) et l'erreur moyenne :

Tables de points de contrôle avec l'erreur moyenne insiquée tout en bas

En plus de l'erreur résiduelle calculée par pixel, la transformation renvoie une erreur globale appelée Erreur Quadratique Moyenne (EMQ) ou bien Root Mean Square (RMS). Cette erreur est calculée de la manière suivante :

EMQ = √ ( ( Somme dX[pixels] ² + Somme dY[pixels] ² ) / ( nb points – nb points min ) )

Vous pouvez donc constater que si le nombre de points utilisés est égal au nombre de points minimum associé à la transformation, l'EMQ est considérée comme nulle. Une erreur nulle n'est donc pas forcément révélatrice d'un calage précis...

Vérifiez que votre EMQ soit inférieure à 5. Si les erreurs de chacun de vos points sont suffisamment faibles, comme vérifié plus haut, cela devrait être le cas.

Vérifiez ce qui se passe si vous décochez tous les points (colonne on/off) sauf trois. Cochez un quatrième point. Cochez à nouveau tous les points, sauf ceux ayant éventuellement des valeurs d'erreur aberrantes.

Lancement du géoréférencement

icône de lancement du géoréférencementPour procéder au géoréférencement proprement dit : Menu Fichier → Commencer le géoréférencement Menu Fichier, Commencer le géoréférencement ou bien cliquez sur l'icône correspondante.

Une barre de progression d'affiche, le processus peut être relativement long, patientez...

Une fois le géoréférencement terminé, l'image calée s'affiche dans QGIS (en plus de s'afficher dans la fenêtre du géoréférenceur).

Fermez la fenêtre du géoréférenceur.

Vérification de la précision du calage

Lecture de la carte et du rapport PDF

Ouvrez tout d'abord la carte PDF, qui se situe à l'emplacement que vous avez choisi précédemment.

carte PDF issue du géoréférencement

Cette carte montre le déplacement des différents points de calage. Attention, ce déplacement n'est pas représenté à l'échelle de l'image, mais selon une échelle en pixels située en bas à gauche de l'image.

Par exemple, le point 0 en haut à gauche s'est déplacé d'environ 2 ou 3 pixels vers le bas et un peu moins d'un pixel vers la gauche. Vous pouvez constater que cette information coïncide avec celle de la table des points :

ligne correspondant au point 0 dans la table des points de contrôle

En effet, les informations des cases dX[pixels] et dY[pixels] indiquent un déplacement de 2,77 pixels en Y (vers le bas) et -0,82 pixels en Y (vers la gauche). Ces chiffres seront différents dans votre cas, mais ils seront cohérents avec votre carte PDF.

Le rapport PDF contient les mêmes informations que la carte PDF, présentées de manière légèrement différente.

Vérification par superposition d'une autre couche

Une bonne manière de vérifier l'exactitude du géoréférencement est de superposer notre couche calée à une couche déjà correctement géoréférencée.

Ici, nous allons utiliser la couche de pays de NaturalEarth.

Si ce n'est pas déjà fait, ajoutez à QGIS votre carte calée de l'île d'Oahu.

Ajoutez ensuite la couche shapefile ne_10m_admin_0_countries, disponible dans le dossier TutoQGIS_04_Georef/donnees.

Les deux couches doivent normalement se superposer (ajustez éventuellement le style de la couche de pays).

superposition de la couche de pays et de l'image calée

Félicitations, votre géoréférencement a fonctionné ! Vous pouvez si vous le voulez découvrir l'autre méthode pour géoréférencer, en se basant sur une couche déjà calée, dans la partie suivante.

IV.6 Points de calage : en se basant sur une couche de référence

 

Comme expliqué dans la partie IV.1.2, il est également possible de se baser sur une couche de référence pour géoréférencer une image.

La manipulation sera la même que décrite dans les précédentes parties, sauf en ce qui concerne la création des points de calage. Seule cette partie sera donc décrite ici.

L'image que nous allons caler est une carte de Doncaster East, dans la banlieue de Melbourne (source : Wikimedia).

Pour caler cette carte, nous allons nous baser sur les données OpenStreetMap. OpenStreetMap est une base de données cartographique libre ; on décrit souvent ce projet comme un "wikipedia cartographique".

Installation de l'extension OpenLayers

Accéder aux données OpenStreetMap dans QGIS requiert l'utilisation d'une extension nommée OpenLayers. Cette extension permet également d'afficher les données Google Maps, Bing, Yahoo...

Ouvrez tout d'abord un nouveau projet QGIS.

Pour installer OpenLayers : Menu Extension → Installer/Gérer les extensions Menu Extension, Installer/Gérer les extensions : la fenêtre du gestionnaire d'extensions s'ouvre.

Installation d'OpenLayers

Dans la rubrique Tout, tapez « openlayers » dans la partie Rechercher pour limiter les résultats, sélectionner OpenLayers Plugin puis cliquez sur Installer l'extension en bas à droite de la fenêtre.

Fermez la fenêtre du gestionnaire d'extensions.

Le menu OpenLayers est maintenant visible dans le menu Internet (avant la version 2.6 de QGIS, vous la trouverez dans le menu Extension). Nous n'allons pas utiliser tout de suite cette extension.

Menu OpenLayers

L'affichage de données OpenLayers se fait plus facilement lorsque vous avez déjà zoomé sur une zone suffisamment petite dans QGIS. Avant d'ajouter les données OpenStreetMap, nous allons donc zoomer sur notre zone, Doncaster East.

Ajout des données OpenStreetMap

Ajoutez tout d'abord la couche ne_10m_admin_0_countries, située dans le dossier TutoQGIS_04_Georef/donnees.

Comme vous pouvez le voir dans le coin en bas à droite de la fenêtre, ou bien menu Projet, propriétés du projet, le projet est en WGS84 EPSG:4326 (cf. partie II.3.1).

Zoomez sur l'Australie, et plus particulièrement sur la zone de Melbourne :

Zoomer sur Melbourne

Ajoutez maintenant les données OpenStreetMap : menu Extension → OpenLayers Plugin → Add OpenStreetMap Layer Menu Extension, ajout des données OSM .

Zoomez éventuellement un peu, et si ce n'est pas déjà le cas passez la couche de pays par-dessus la couche OSM :

Données OSM : Melbourne

Le projet est maintenant en WGS84 projection Pseudo Mercator, EPSG:3857.

A l'ajout de données de l'extension OpenLayers, le SCR du projet est automatiquement modifié en WGS84 Pseudo-Mercator, qui est le SCR utilisé notamment par Google Maps.

Il est toujours possible de modifier à nouveau le SCR du projet ; cependant, tant que des données OpenLayers sont affichées, cela pourrait donner lieu à des bugs d'affichage. Pour la suite des opérations, nous travaillerons donc uniquement en Pseudo-Mercator.

Zoomez maintenant sur Doncaster East (pour vous aider : carte OpenStreetMap de Doncaster Est).

Doncaster East : données OSM et carte à caler en vis à vis

Nous allons maintenant pouvoir procéder à la création des points de calage.

Création des points de calage

Ouvrez la fenêtre du géoréférenceur et ajoutez l'image à caler : Doncaster_east_locality_map.PNG située dans le dossier TutoQGIS_04_Georef/donnees (si nécessaire, aidez-vous pour cela du début de la partie IV.3.1).

Lorsque QGIS vous demande dans quel SCR est cette image, choisissez le WGS84 / Pseudo-Mercator EPSG:3857.

choix du scr wgs84 pseudo-mercator epsg:3857

Cliquez sur une intersection de routes, par exemple entre Reynolds Road et Blackburn Road. La fenêtre de saisie des coordonnées apparaît : cliquez sur le bouton Depuis le canevas de la carte.

fenêtre de saisie des coordonnées

Dans la fenêtre de QGIS, cliquez sur cette intersection sur les données OSM : les coordonnées de la fenêtre de saisie sont automatiquement remplies avec les coordonnées du point sur lequel vous venez de cliquer.

les coordonnées sont remplies en fonction du point cliqué dans QGIS

Cliquez sur OK.

point 0, dans la fenêtre du géoréférenceur et dans celle de QGIS
Premier point : à gauche, dans la fenêtre de QGIS (données OSM) et à droite, dans la fenêtre du géoréférenceur.

Procédez de la même manière pour obtenir au moins six points de calage.

Ensuite, choisissez les paramètres du géoréférencement (cf. partie IV.4) : vous pouvez choisir les mêmes que précédemment, mais n'oubliez pas de sélectionner le SCR WGS84 Pseudo-Mercator EPSG:3857 au lieu du WGS84 EPSG:4326.

Lancez le calage (cf. partie IV.5).

Une fois le calage terminé, vous pouvez en vérifier la précision en donnant de la transparence à votre image calée (dans les propriétés de la couche, rubrique Transparence) :

Superposition de l'image calée et des données OSM

L'image est calée, son SCR est WGS84 Pseudo-Mercator (vous pouvez le vérifier en allant dans les propriétés de la couche, rubrique Général). Si vous désirez modifier le SCR de cette couche, comme indiqué dans la partie II.4.2, clic-droit sur le nom de la couche, Enregistrer sous...

V. Numérisation

La numérisation consiste à « dessiner » par exemple les contours de parcelles en se basant sur une couche déjà existante, ordinairement un raster. On obtient ainsi une couche vecteur, plus facilement exploitable. Le principe est le même que lorsqu'on superpose une feuille de papier calque à une carte pour y dessiner les éléments qui nous intéressent. Il est ensuite possible de lier des données attributaires à cette couche.

Dans ce chapitre, nous allons numériser des données de la carte de l'île d'Oahu (Hawaii) de 1902 (source : Wikimedia ) géoréférencée dans le chapitre précédent. Si vous ne l'avez pas géoréférencée, pas de problème : elle est inclue dans les données du chapitre.

Notions abordées :

  • Création d'une couche vide
  • Numérisation de points, lignes et polygones
  • Remplir les données attributaires
  • Notions de topologie

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

V.1 Création d'une couche vide

 

Le but va être ici de créer une couche de points qui contiendra les écoles et les postes de l'île d'Oahu, qui sont représentées dans la carte sous forme de points bleus ou rouges :

extrait de la légende de la carte d'Oahu correspondant aux écoles et postes

Choix du type (point, ligne, polygone) et du SCR

La première étape consiste à créer une couche vierge, qui accueillera les données que nous allons créer.

Dans QGIS, ouvrez un nouveau projet

icône nouvelle coucheRendez-vous dans le Menu Couche → Nouveau → Nouvelle couche shapefile... Menu Couche, Nouveau, Nouvelle couche shapefile.. ou bien cliquez sur l'icône correspondante (vous pouvez aussi utiliser le raccourci clavier Ctrl+Maj+N).

La fenêtre suivante apparaît :

fenêtre de création d'une nouvelle couche
  • Type : choisir Point
  • SCR : afin que cette couche soit dans le même système que la carte, vérifier que le SCR soit bien le WGS84

Ne cliquez pas encore sur OK...

Définition des colonnes de la table attributaire

Vous pouvez ensuite choisir les champs que contiendra la table attributaire, c'est-à-dire les colonnes de la table. Trois types de champs sont possibles : texte, entier et décimal (nombre à virgule).

Ici, nous allons créer une couche avec un seul champ dans la table, qui renseignera le type de bâtiment (ce champ aura donc deux valeurs possibles : école ou poste).

Il sera toujours possible d'ajouter ou de supprimer des champs par la suite !

Ajout d'une colonne

Pour ajouter une colonne :

ajout d'un nouvel attribut
  • Nom : ce sera le nom de la colonne, tapez par exemple type
  • Type : le type de données que contiendra la champ. Ici, données texte permettra de taper du texte dans cette colonne
  • Largeur : pour un champ de type texte, ceci correspond au nombre maximum de caractères que pourra contenir le champ. Les mot "école" et "poste" comportent tous deux 5 caractères : une largeur de 5 suffirait ici. Pour avoir un peu de marge (supposons que l'on veuille par la suite ajouter un 3ème type de bâtiment), choisissons une largeur de 10.

Cliquez ensuite sur le bouton Ajouter à la liste d'attributs pour créer ce champ.

Suppression d'une colonne

Nous allons supprimer le champ id créé par défaut. Pour cela, sélectionnez la ligne du champ id et cliquez sur le bouton Supprimer l'attribut.

suppression d'un champ

Terminez en cliquant sur le bouton OK pour valider vos choix.

Enregistrement de la couche

Dans la fenêtre qui apparaît alors, choisissez :

  • l'emplacement (par exemple dossier TutoQGIS_05_Numerisation/donnees)
  • et le nom : batiments_oahu (dans tous les cas le nom de doit comporter que des lettres non accentuées, des chiffres ou le caractère _ )
sauvegarde de la couche

Cliquez sur Enregistrer pour créer la couche. Elle est automatiquement ajoutée à QGIS.

Vous pouvez vérifier son SCR (propriétés de la couche, rubrique Général) :

vérification du scr de la couche

Vous pouvez également ouvrir sa table attributaire, qui ne doit contenir qu'une seule colonne nommée type et aucune ligne.

table attributaire vide

Pour ajouter maintenant des données à cette couche, rendez-vous au chapitre suivant...

V.2 Ajout de points dans une couche

 

Nous allons ajouter à la couche créée dans le chapitre précédent les points correspondant aux postes et aux école de la carte de l'île d'Oahu.

Créez un nouveau projet QGIS, et ajoutez-y :

  • la carte géoréférencée Oahu_Hawaiian_Islands_1906_wgs84.tif située dans le dossier TutoQGIS_05_Numerisation/donnees
  • la couche vide créée dans le chapitre précédent : batiments_oahu.shp

Rendre une couche éditable

Par défaut, toutes les couches ajoutées dans QGIS sont « verrouillées » donc non modifiables (modifier la couleur, le style ne modifie pas les données mais seulement leur représentation).

Pour rendre une couche éditable, que ce soit pour modifier les données de la table attributaire ou la géométrie d'un élément, il faut donc passer en mode édition. Nous allons faire cette manipulation pour la couche batiments_oahu afin de pouvoir y ajouter des points.

Vérifiez tout d'abord que votre couche de bâtiments soit au-dessus de la carte.

Pour passer en mode édition : Clic droit sur le nom de la couche → Basculer en mode édition Clic droit sur le nom de la couche, basculer en mode édition

ou bien :

icône basculer en mode éditionsélectionnez la couche dans la table des matières puis cliquez sur l'icône Basculer en mode édition

ou encore :

sélectionnez la couche dans la table des matières puis Menu Couche → Basculer en mode édition Menu Couche, Basculer en mode édition .

Certains outils de la barre d'outil d'édition deviennent actifs, et dans la table des matières un symbole de crayon apparaît à gauche du nom de la couche :

symbole de crayon à gauche d'une couche éditable

La couche est maintenant modifiable.

Dans QGIS, le passage en mode édition est géré « par couches » : certaines couches peuvent être éditables et d'autres non. Il est facile de voir dans la tables des matières quelle couche est éditable.

De manière générale, il vaut mieux quitter le mode édition dès que vous n'en avez plus besoin, et limiter le nombre de couches éditables.

Les couches raster ne sont jamais modifiables : si vous sélectionnez la carte de l'île d'Oahu, le passage en mode édition n'est pas possible pour cette couche.

Ajout d'un point

Commencez par repérer une école ou une poste, représentées respectivement par un point bleu ou rouge, par exemple la poste de la baie de Kaneohe :

zoom sur l'école de Kaneohe

icône d'ajout d'une entitéAssurez-vous que votre couche de bâtiments soit bien sélectionnée dans la table des matières, puis cliquez sur l'icône Ajouter une entité.

Cliquez sur l'école ou la poste que vous avez choisie; une fenêtre s'ouvre vous demandant de renseigner les attributs pour ce point (un seul attribut dans notre cas). Renseignez le type de bâtiment et cliquez sur OK.

Si cette fenêtre ne s'ouvre pas, menu Préférences → Options → rubrique Numérisation : décochez la case « Supprimer la fenêtre de saisie des attributs lors de la création de chaque nouvelle entité » (tout en haut).

remplir l'attribut type par 'école' par exemple

Le point s'affiche sur la carte, avec le style de la couche (ici un rond turquoise) :

point de l'école de Kaneohe

Si vous ouvrez la table attributaire de la couche, vous pouvez voir une ligne correspondant au point que vous venez de créer.

Ajoutez d'autres points pour les écoles et postes de l'île.

Carte avec toutes les écoles et postes numérisées

icône sauvegarder les modificationsN'oubliez pas de sauvegarder vos modifications en sélectionnant la couche puis en cliquant sur l’icône sauvegarder les modifications.

Vous pouvez modifier le style des points dans les propriétés de la couche, rubrique Style (cf.partie partie I.2.3a).

fenêtre des propriétés de la couche, style catégorisé

Choisissez le style catégorisé sur la colonne type, cliquez sur classer puis double cliquez sur chacun des symboles pour les modifier à votre convenance. Le troisième symbole sera utilisé si certains points ne sont ni des écoles ni des postes. Cliquez sur OK pour valider et fermer la fenêtre.

Modification d'un point

Il peut arriver bien sûr de vouloir modifier un point déjà existant, soit que vous vouliez le déplacer, soit que vous souhaitiez modifier ses données attributaires.

Déplacement

Imaginons qu'un de vos points soit mal placé et que vous vouliez le déplacer.

La couche doit être en mode édition.

icône déplacer une entitéSélectionnez votre couche de bâtiments dans la table des matières, puis cliquez sur l'icône Déplacer une entité.

Le curseur prend la forme d'une croix blanche. Cliquez sur le point à déplacer, et faites-le glisser en maintenant le bouton de la souris enfoncé. Relâchez le bouton de la souris une fois le point à l'emplacement de votre choix.

Modification des données attributaires

Que faire dans le cas où vous voulez modifier les données attributaires d'un point, par exemple le passer de poste à école?

La couche doit être en mode édition.

Ouvrez la table attributaire de la couche.

Double-cliquez sur la case de la table à modifier. Vous pouvez ensuite modifier le texte de cette case.

Quitter le mode édition

Une fois vos ajouts et modifications terminées, il est important de quitter le mode édition, pour plusieurs raisons :

  • éviter de faire de modifications par erreur
  • sauvegarder les modifications effectuées
  • certains outils SIG ne peuvent fonctionner sur une couche en cours d'édition

icône basculer en mode éditionSélectionnez votre couche dans la table des matières et cliquez sur l'icône basculer en mode édition.

Fenêtre arrêter l'édition

Une fenêtre apparaît vous demander si vous souhaitez :

  • Fermer sans enregistrer : quitte le mode édition sans sauvegarder vos modifications
  • Annuler : ne quitte pas le mode édition
  • Enregistrer : quitte le mode édition en enregistrant vos modifications.

Cliquez sur Enregistrer.

L'icône de crayon à côté de nom de la couche disparaît :

nom de la couche, en mode édition (icône crayon) et hors mode édition

V.3 Saisie des données attributaires : en savoir plus

 

Cette partie est tout à fait optionnelle pour suivre la suite du chapitre. Elle pourra néanmoins vous faire gagner du temps si vous vous apprêtez à saisir des données sous QGIS...

Saisir les données : à la création de l'entité ou dans la table

Vous avez remarqué que la saisie des données attributaires se fait dans une fenêtre qui apparaît directement après avoir créé une entité.

Il est possible de modifier ce comportement :

Rendez-vous dans le menu Menu Préférences → Options Menu Préférences, Options :

Fenêtre Options, rubrique numérisation

Dans la rubrique Numérisation, cochez la case Supprimer la fenêtre de saisie des attributs lors de la création de chaque entité. Cliquez sur OK pour valider et fermer la fenêtre.

Créez un nouveau point dans la couche de bâtiments : aucune fenêtre ne s'affiche. Si vous ouvrez la table attributaire, vous pouvez voir que le point créé a un type NULL (valeur par défaut).

Il est ensuite possible de rentrer les données attributaires directement dans la table. La calculatrice de champ offre la possibilité de remplir plusieurs cases avec une requête (cf. partie VII.3).

Pour une saisie plus facile : les outils d'édition

Il est possible de définir des règles pour la saisie d'attributs : vous pouvez par exemple saisir vos données en choisissant une valeur dans une liste déroulante.

Ouvrez les propriétés de la couche batiments_oahu créée en V.1 , rubrique Champs.

fenêtre des propriétés de la couche, rubrique champs

Cliquez sur Edition de texte.

Cette fenêtre propose différents outils pour faciliter la saisie. Le mode Edition de texte est le mode par défaut que vous avez utilisé jusqu'ici.

Par exemple, il est possible de faciliter la saisie de date à l'aide d'un calendrier, de voir un champ sous forme de case à cocher, de créer des listes déroulantes...

Sans passer en revue tous les outils possibles, nous nous bornerons à créer une liste déroulante avec les deux valeurs « ecole » et « poste » .

fenêtre de choix de l'outil d'édition

Cliquez sur Liste de valeurs dans la colonne de gauche.

Ajoutez les valeurs ecole et poste dans la colonne Valeur du tableau (vous pouvez laisser la colonne Description vide).

Cliquez sur OK.

Passez en mode édition si ce n'est pas déjà fait. Ouvrez la table attributaire.

Double-cliquez dans une case : une liste déroulante avec les deux valeurs poste et école apparaît.

la liste qui apparaît quand on clique sur une case

Notez que cette liste déroulante sera également utilisable dans la fenêtre de saisie des attributs, si la case Supprimer les fenêtres d'avertissement lors de la création de chaque entité des options de numérisation est décochée (cf. plus haut).

la fenêtre de saisie des attributs, avec la liste déroulante

Pour en savoir plus, les différents outils d'édition sont décrits dans le manuel QGIS.

V.4 Numériser des lignes

 

Nous avons vu précédemment comment numériser des points. Comment procéder quand le but est de numériser des lignes ? Nous allons numériser des fleuves de la carte de l'île d'Oahu.

Création d'une couche de lignes

Reportez-vous à la partie V.1 pour créer une couche de ligne, en choisissant cette fois :

  • le type ligne
  • un seul champ de type texte, de longueur 80, nommé nom (il contiendra le nom des fleuves)
  • nommez cette couche fleuves_oahu.

Vérifiez que cette couche soit bien chargée dans votre projet, ainsi que la carte Oahu_Hawaiian_Islands_1906_wgs84.tif

Ajout d'une ligne

Première ligne

Zoomez sur un fleuve, par exemple dans le nord est de l'île, dans la région de Makaha :

zoom sur Makaha zoom sur la rivière de Makaha

Passez en mode édition pour votre couche de fleuves.

icône ajouter une entitéCliquez sur l'icône Ajouter une entité (vous remarquerez que cette icône varie en fonction du type de la couche éditée, point, ligne ou polygone).

Cliquez sur le début du fleuve pour créer un premier sommet, puis rajoutez d'autres points à votre ligne. Pour terminer, faites un clic-droit n'importe où.

fleuve numérisé

Quelques astuces

  • Si pendant la numérisation vous avez des difficultés à voir votre ligne : menu Préférences, Options, rubrique Numérisation : réglez l'épaisseur de la ligne, par exemple 2, et la couleur. Pour la couleur choix de la couleur de numérisation , n'oubliez pas de mettre le cana alpha, c'est-à-dire la transparence, à 255 pour éliminer toute transparence (une fois la ligne terminée, elle prend le style spécifiée dans les propriétés de la couche)
  • Supprimer le dernier point créé : touche suppr ou retour arrière (backspace)
  • Se déplacer tout en numérisant : utilisez les flèches du clavier, ou bien maintenez la molette de la souris ou la touche espace enfoncée et bougez la souris
  • Abandonner la ligne en cours : terminez-la avec un clic droit, puis si les fenêtres de saisie d'attributs sont activées cliquez sur annuler, sinon utilisez ctrl + z

Modification du tracé d'une ligne

Il est possible de modifier le tracé d'une ligne existante en déplaçant des sommets, en en rajoutant ou supprimant.

icône outil de noeudVérifiez que vous êtes bien en mode édition pour la couche de fleuves. Sélectionnez-la dans la table des matières, puis cliquez sur l'icône Outil de nœud.

Cliquez sur une ligne existante : les sommets prennent la forme de carrés rouges.

ligne avec les noeuds visibles sous forme de carrés rouges

Si vous cliquez sur un sommet, il est sélectionné et devient bleu. Vous pouvez grâce à l'outil de nœud :

  • déplacer un sommet en le faisant glisser
  • supprimer un sommet : cliquez dessus pour le sélectionner, puis appuyez sur la touche suppr
  • rajouter un sommet : double-cliquez sur la ligne à l'endroit où vous voulez créer un sommet. Vous pouvez ensuite déplacer ce nouveau sommet.

Une fois vos modifications terminées, n'oubliez pas de quitter le mode édition en enregistrant vos modifications.

V.5 Numériser des polygones

 

Pour numériser des polygones, les choses se compliquent un peu... Nous n'allons pas ici numériser toutes les zones de l'île, mais passer en revue quelques techniques d'édition de polygones au moyen de quelques exemples.

Création d'une couche de polygones

Reportez-vous à la partie V.1 pour créer une couche de polygones, en choisissant cette fois :

  • le type polygone
  • deux champs de type texte, de longueur 80, nommés type1 et type2 (ils contiendront les types de zone, tels qu'indiqués dans la légende)
  • nommez cette couche zones_oahu.

Vérifiez que cette couche soit bien chargée dans votre projet, ainsi que la carte Oahu_Hawaiian_Islands_1906_wgs84.tif

Ajout d'un polygone

Nous allons commencer par numériser la réserve forestière de l'île :

réserve forestière de l'île hachurée en rouge

Passez en mode édition pour votre couche de polygones. Zoomez sur la réserve forestière.

zoom sur la réserve

icône ajouter une entitéCliquez sur l'icône Ajouter une entité qui a pris la forme d'un polygone.

Cliquez sur un point du polygone, puis ajoutez d'autres sommets comme pour une ligne. La forme du polygone évolue au fur et à mesure.

numérisation d'un polygone en cours

Lorsque le polygone est complet, faites un clic droit n'importe où pour le terminer. Il est inutile de cliquer à nouveau sur le premier sommet !

numérisation d'un polygone en cours

Vous pouvez maintenant remplir les données attributaires pour ce polygone, par exemple en donnant la valeur "Forest Reserves" en type1, et aucune valeur en type2.

Découpage d'un polygone

La partie Nord de notre réserve est occupée par des terres publiques (Public Lands) puis par une réserve fédérale (Federal Reservation). Comment diviser notre polygone pour faire apparaître ces zones ?

Vérifiez que la barre d'outils Numérisation avancée soit activée : Numérisation avancée doit être cochée dans le Menu Vue → Barres d'outils Menu Vue, Barres d'outils .

icône séparer les entitésDans la barre d'outils Numérisation avancée, cliquez sur l'icône Séparer les entités.

Cliquez à l'extérieur du polygone, puis de l'autre côté du polygone en suivant la ligne selon laquelle le découper. Terminez par un clic droit n'importe où. Il est possible de créer des points à l'intérieur du polygone mais il faut terminer par un point à l'extérieur du polygone.

découpe d'un polygone

Procédez de la même manière pour découper la bande de terrain public de Waimano, et la petite langue de terre de Aiea.

Sélection de la bande de terrain public de Waimano en réserve forestière

Frontière commune entre 2 polygones : comment est-elle gérée ?

icône de l'outil de noeudA l'aide l'outil de nœud (cf. partie V.4.3), déplacez un sommet de la petite langue de terre d'Aiea.

déplacement d'un noeud de polygone

icône de sélectionA l'aide de l'outil de sélection, sélectionnez successivement le polygone d'Aiea, et celui qui l'entoure.

Les deux polygones ne sont plus jointifs. Le déplacement d'un sommet d'un des polygones n'a pas eu d'effet sur le sommet correspondant du deuxième polygone.

Rendez-vous maintenant dans le Menu Préférences → Options d'accrochage Menu Préférences, Options d'accrochage et cochez la case Activer l'édition topologique en bas à gauche de la fenêtre.

case d'activation de l'édition topologique cochée

Déplacez à nouveau un sommet d'un des polygones et sélectionnez successivement les deux polygones.

Les deux polygones sont toujours jointifs. Le déplacement d'un sommet d'un des polygones a provoqué le déplacement du sommet correspondant du deuxième polygone.

Ajout d'un élément en s'appuyant sur un autre : l'accrochage

Pour rajouter un élément qui en touche un autre, il est possible de s'aimanter sur les sommets ou les segments de l'élément déjà existant. Cette propriété n'est bien sûr pas propre seulement aux couches de polygones mais fonctionne aussi pour les couches de lignes et de points.

Ceci permet de faire en sorte que deux polygones soient parfaitement contigus, sans aucun trou ou superposition.

Par exemple, comment faire pour rajouter la partie Ouest de la bande de Waimano en s'aimantant aux polygones déjà existants ?

Rendez-vous dans le Menu Préférences → Options d'accrochage :

activation de l'accrochage pour la couche de polygones avec une tolérance de 10 pixels

Cette fenêtre permet de définir à quelle(s) couche(s) le curseur sera aimanté, s'il sera aimanté uniquement par les sommets ou également par les segments, et à quelle distance d'un sommet ou segment l'aimantage prend effet.

Par exemple, pour être automatiquement aimanté à votre couche de polygone dès que votre curseur approche à moins de 10 pixels d'un sommet de cette couche, en mode d'accrochage avancé, cochez la case de zones_oahu, choisissez le mode sur un sommet et fixez la tolérance à 10 pixels.

Cliquez sur l'icône Ajouter une entité, et approchez-vous d'un sommet d'un polygone déjà créé : votre curseur est aimanté par ce sommet, qui apparaît alors en rose.

Profitez-en pour numériser la partie Est de la bande d'Aiea, de manière à ce que les deux parties soient parfaitement jointives.

Éviter les intersections entre polygones jointifs

L'accrochage est une propriété pratique pour quelques sommets, mais si vous souhaitez créer un polygone contigu à une autre sur une longue portion (par exemple le polygone en pointillés bleus sur la carte), cela peut être fastidieux de cliquer un à un sur tous les sommets communs.

Pour éviter cela, rendez-vous à nouveau dans le menu Préférences → Options d'accrochage et cochez la case Éviter les intersections pour la couche zones_oahu.

cocher la case éviter les intersections

Cliquez sur l'icône Ajouter une entité, et dessinez un par exemple le polygone en pointillés bleu correspondant à la surface des terres forestières qui ne sont pas en réserve. Ce polygone est contigu sur une longue portion à des polygones que vous avez déjà créés : ne suivez pas les bords pour cette partie mais contentez-vous de passer au milieu des polygones déjà existants.

Faites un clic droit pour terminer le polygone : les parties du polygone que vous venez de dessiner qui étaient superposées à des polygones déjà existants ont été automatiquement supprimées.

V.6 Quelques notions de topologie

 

Au cours de la dernière partie notamment, nous avons vu comment éviter que deux polygones soient "presque" jointifs, au moyen de propriétés telles que l'accrochage, ou par l'utilisation d'outils de découpage par exemple. Nous avons également vu comment utiliser le mode d'édition topologique de QGIS.

Nous allons ici en apprendre un peu plus sur ce qu'est la topologie, et comment vérifier la topologie d'une couche.

Qu'est-ce que la topologie ?

Définition et exemples

La topologie est la « partie de la géométrie qui considère uniquement les relations de position » (Aur.-Weil 1981).

En géomatique, la topologie est utilisée pour décrire les relations entre les géométries des entités. Des règles de topologie peuvent être définies, et les erreurs de topologie détectées.

Par exemple, on peut décider qu'il ne doit y avoir aucune superposition de polygones dans une couche :

deux polygones se superposant en partie

Ou bien qu'il ne doit pas y avoir de trous entre les polygones :

deux polygones avec un trou entre les deux

Les règles de topologie peuvent aussi mettre en jeu plusieurs couches. Par exemple, tous les points d'une couche doivent être dans un polygone d'une autre couche :

des points dans des polygones sauf deux

Il est bien sûr possible de combiner plusieurs règles. Vous trouverez dans le manuel de QGIS la description d'un certain nombre de règles de topologie.

Pour en savoir plus, vous pouvez également consulter cet article du portail SIG.

Pourquoi faire attention à la topologie ?

Ne pas respecter les règles de topologie peut poser des problèmes lors de l'utilisation d'outils d'analyse spatiale, qui donneront alors des résultats inattendus.

Pour aller plus loin : comment vérifier la topologie d'une couche ?

Cette partie est pour « aller un peu plus loin » : vous pouvez donc passer directement à la partie suivante si vous le désirez !

Vérification simple

Pour vérifier rapidement la topologie d'une couche, rendez-vous dans le menu Vecteur → Outils de géométrie → Vérifier la validité de la géométrie Menu Vecteur, Outils de géométrie, vérifier la validité de la géométrie :

fenêtre de validation de la géométrie

Sélectionnez la couche zones_oahu et cliquez sur OK : les éventuelles erreurs sont listées, un double clic sur une erreur zoome dessus.

Utilisation du vérificateur de topologie

Le vérificateur de topologie est un outil plus perfectionné qui permet de spécifier un certains nombre de règles, et de de voir les erreurs à ces règles.

Pour accéder au vérificateur de topologie : menu Vecteur → Vérificateur de topologie → Vérificateur de topologie Menu Vecteur, Vérificateur de topologie, Vérificateur de topologie :

fenêtre (intégrée) du vérificateur de topologie

Cliquez sur le bouton Configuration pour ajouter ou supprimer des règles de topologie. Nous allons ajouter une règle pour interdire les superpositions de polygones dans la couche zones_oahu.

fenêtre de gestion des règles de topologie

Sélectionnez la couche zones_oahu dans la liste déroulante, puis la propriété must not overlap et cliquez enfin sur le bouton Ajouter une règle. Cliquez sur OK.

Pour visualiser les erreurs à cette règle, cliquez sur le bouton Valider tout du vérificateur de topologie.

fenêtre du vérificateur de topologie, pas d'erreurs

La liste des éventuelles erreurs apparaît ; il est possible de zoomer sur une erreur en double-cliquant sur la ligne correspondante.

Corriger les erreurs de topologie : quelques pistes

Pour corriger les erreurs de topologie d'une couche, vous pouvez procéder « à la main » , en corrigeant les erreurs une à une avec les outils d'édition de QGIS. Cliquer sur la ligne correspondant à une erreur dans le vérificateur de topologie zoome sur cette erreur.

Si vous avez un grand nombre d'erreurs à corriger, vous pouvez aussi utiliser des outils de correction automatique, notamment ceux de grass. Ces outils sont disponibles dans QGIS via la boîte à outils du menu Traitements boîte à outils du menu Traitements . Tapez clean dans le filtre pour accéder à l'outil v.clean.

En double-cliquant sur cet outil, une aide est accessible dans l'onglet Help, ou bien ici : https://grass.osgeo.org/grass70/manuals/v.clean.html. Regardez également ici pour plus de documentation.

 

VI. Sélectionner des données : les requêtes

A partir d'une couche vecteur, il est possible de sélectionner des éléments répondant à un ou plusieurs critères, en se basant sur les données contenues dans la table attributaire ou bien sur la position de ces éléments.

Vous pouvez ainsi sélectionner par exemple des communes dans la population est supérieure à 10 000 habitants, ou les communes à l'intérieur d'un département...

Ceci vous permet par exemple de compter le nombre d'éléments répondant à vos critères, ou bien de créer une nouvelle couche à partir de votre sélection, pour y réaliser ensuite d'autres traitements.

Notions abordées :

  • Requêtes attributaires
  • Requêtes spatiales
  • Opérateurs
  • Fonctions
  • Utiliser une sous-sélection

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

VI.1 Sélectionner des éléments en fonction de leurs données attributaires : requêtes attributaires

 

Nous allons voir ici comment utiliser les données de la table attributaire pour sélectionner des éléments d'une couche, par exemple comment sélectionner les départements dans le nom commence par « A » .

Beaucoup d'opérateurs sont disponibles pour les requêtes attributaires; nous ne les passerons pas tous en revue mais allons simplement utiliser quelques uns des plus courants.

Pour une description de tous les opérateurs et fonctions possibles : voir le manuel de QGIS (cette partie correspond à la calculatrice de champ mais est valable également pour les requêtes attributaires).

Faire une requête simple

Ajoutez la couche departements située dans le dossier TutoQGIS_06_Requetes/donnees.

Ouvrez la table attributaire de cette couche.

Pour sélectionner le département du Nord (59), vous pouvez cliquez sur le numéro de la ligne correspondante ou bien directement sur ce département sur la carte. Vous pouvez aussi utiliser une requête attributaire.

Dans la barre d'outils située en haut de la table attributaire, cliquez sur l'icône Sélectionne les entités en utilisant une expression.

barre d'outils de la table attributaire avec icône sélection entourée en rouge

Cette icône est aussi accessible dans la barre d'outils attributs, à condition que vous ayez au préalable sélectionné la couche dans la table des matières.

La fenêtre de requête attributaire s'ouvre :

fenêtre de sélection, avec une requête simple

Pour faire une requête simple, par exemple pour sélectionner le département du Nord :

  • Cliquez sur Champs et valeurs dans la colonne du milieu : la liste des champs de la table apparaît
  • Double-cliquez sur le champ NOM_DEPT pour le faire apparaître dans la case Expression à gauche de la fenêtre (notez les guillemets doubles)
  • Cliquez sur l'opérateur =
  • Cliquez sur le bouton Toutes pour voir dans la case Valeurs la liste des valeurs uniques du champ sélectionné (ici, NOM_DEPT)
  • Double-cliquez sur la valeur 'NORD' (notez les guillemets simples)
  • A ce stade, la case Expression doit contenir : "NOM_DEPT" = 'NORD'
  • Cliquez sur le bouton Sélection en bas de la fenêtre

Il est également possible de taper la requête « à la main » directement dans la case Expression. Attention dans ce cas à bien respecter la syntaxe utilisée par QGIS : par exemple, les noms de champs sont entourées de guillemets doubles et les chaînes de caractères de guillemets simples.

La fenêtre de requête attributaire ne se ferme pas automatiquement ; vous pouvez ou la fermer en cliquant sur le bouton Fermer ou bien simplement la déplacer pour vérifier sur la carte le résultat de votre sélection.

carte avec le département du Nord sélectionné

Vous pouvez lire le nombre d'éléments sélectionnés en haut de la table attributaire :

ligne indiquant le nombre d'éléments sélectionnés

Vous venez d'effectuer une requête attributaire simple. Il est important de comprendre qu'une requête ne modifie pas les données, elle les sélectionne simplement.

Bien sûr, il est plus intéressant d'utiliser les requêtes pour sélectionner plusieurs éléments en même temps!

Pourquoi pour cette requête l'aperçu du résultat (en bas à gauche de la fenêtre de sélection) est-il égal à 0 ? Cette expression est traitée pour chaque ligne de la table et est évaluée par vrai ou faux, 0 ou 1 pour l'ordinateur. L'aperçu donne un des résultats trouvés, ici le 0.

Créer une nouvelle couche à partir d'une sélection

Il est possible de créer une nouvelle couche shapefile à partir d'une sélection.

Votre département du Nord étant toujours sélectionné, faites un clic droit sur la couche de départements dans la table des matières et choisissez Enregistrer sous... :

fenêtre pour sauvegarder la sélection

Cette case est cochée automatiquement à partir du moment où une sélection est présente, et est grisée si aucune entité n'est sélectionnée

  • Cliquez sur Parcourir pour choisir à quel endroit sera sauvegardée la nouvelle couche, et sous quel nom, dept59 par exemple
  • Vérifiez que la case N'enregistrer que les entités sélectionnées soit cochée.

     

  • et cliquez sur OK

La nouvelle couche est automatiquement ajoutée à QGIS. Elle ne contient qu'un seul département, celui du Nord.

Quelques opérateurs

Dans l'exemple ci-dessus, nous avons utilisé l'opérateur = pour notre requête. Il en existe d'autre, comme par exemple les opérateurs mathématiques inférieur à et supérieur à, multiplier, diviser...

Ajoutez la couche communes_NordPasDeCalais située dans le dossier TutoQGIS_06_Requetes/donnees.

Fermez la table attributaire de la couche de départements et ouvrez celle de la couche de communes. Cette table comporte une colonne POPULATION avec la population de chaque commune en milliers d'habitants.

En cliquant une première fois sur le nom de colonne POPULATION pour classer la population par ordre croissant, puis une deuxième fois pour la classer par ordre décroissant, on peut lire que la commune de Lille est la plus peuplée avec 227 600 habitants.

icône de sélection de la table attributaireNous allons faire une requête pour sélectionner les communes de + de 10 000 habitants. Ouvrez la fenêtre de requête pour la couche de communes :

fenêtre de sélection avec une requête pour les communes de population supérieure à 10
  • Cliquez sur Champs et valeurs pour voir la liste des champs, puis double-cliquez sur le champ POPULATION
  • Dans la case Expression, tapez > 10 (puisque la population est en milliers d'habitants)

Il est également possible d'aller chercher l'opérateur > dans la liste des opérateurs, dans la colonne de gauche. Il faut ensuite taper la valeur 10 à la main.

Une fois votre requête tapée : "POPULATION" > 10, cliquez sur le bouton Sélection pour voir le résultat :

résultat de la requête pour les communes de population supérieure à 10

Les opérateurs qu'on voit en haut à gauche de la fenêtre de sélection (=, +, - ...) ne représentent qu'une petite partie des opérateurs disponibles ; vous pouvez tous les retrouver dans la catégorie Opérateurs de la colonne du milieu. En cliquant sur un opérateur, vous pouvez lire l'aide dans la partie de droite :

liste des opérateurs avec aide pour l'opérateur <>

Parmi ces opérateurs se trouvent par exemple LIKE et ILIKE. L'opérateur LIKE permet de comparer une chaîne de caractère à une autre chaîne qui peut utiliser le caractère joker %.

Ce caractère peut remplacer un ou plusieurs caractères : par exemple, 'A%' peut correspondre à Ardèche, Allier...

Sélectionnons les communes dont le nom se termine par 'IN' !

Ouvrez la fenêtre de sélection pour la couche de communes. Écrivez la requête suivante : "NOM_COMM" LIKE '%IN' (soit en la tapant à la main soit en double-cliquant sur les différents éléments).

résultat de la requête pour les communes dont le nom se termine par IN

Notez que, pour du texte, si le caractère % n'est pas utilisé, les opérateurs = et LIKE sont équivalents.

L'opérateur ILIKE est équivalent à LIKE mais ne tient pas compte de la casse (majuscules ou minuscules).

icône de désélectionEntre deux requêtes, pour être sûr de repartir à zéro, utiliser l'outil tout désélectionner.

Combiner plusieurs critères

Comment faire s'il l'on veut sélectionner par exemple les communes de + de 10 000 habitants dont le nom se termine par 'IN' ?

Il s'agit ici de combiner deux critères. Deux opérateurs permettent cela : AND (et) et OR (ou).

  • Avec l'opérateur AND, tous les critères doivent être remplis
  • Avec l'opérateur OR, il suffit qu'un seul des critères soit rempli

"NOM_COMM" LIKE 'A%' and "POPULATION" < 10000 : cette requête sélectionne 104 communes.

"NOM_COMM" LIKE 'LILLE' OR "NOM_COMM" LIKE 'TOURCOING' OR "NOM_COMM" LIKE 'ROUBAIX' : cette requête sélectionne 3 communes. L'opérateur OR doit être utilisé car les communes ne peuvent satisfaire qu'un seul des critères à la fois (une commune ne peut s'appeler Lille et Roubaix en même temps).

Quelques exemples à tester

Pouvez-vous sélectionner ? ...

(plusieurs requêtes sont parfois possibles pour un même résultat)

"NOM_COMM" = 'ARRAS' : une commune sélectionnée

"INSEE_COM" = '62041' : une commune sélectionnée

"NOM_DEPT" LIKE 'NORD' : 650 communes sélectionnées

"NOM_COMM" LIKE '%OO%' : 10 communes sélectionnées

"NOM_COMM" LIKE 'M%IN' : 4 communes sélectionnées

"POPULATION" >= 10 AND "POPULATION" <= 50 : 71 communes sélectionnées

"NOM_DEPT" LIKE 'NORD' AND ( "NOM_COMM" LIKE '%W%' OR "NOM_COMM" LIKE '%OO%') AND "POPULATION" <= 10 : 55 communes sélectionnées

VI.2 Sélectionner des éléments en fonction de leur position par rapport à d'autres : requêtes spatiales

 

Nous venons de voir comment sélectionner des éléments en fonction des données de la table attributaire ; nous allons voir ici comment sélectionner des éléments en fonction de leur position par rapport aux éléments d'une autre couche.

Contrairement aux requêtes attributaires, les requêtes spatiales mettent donc le plus souvent deux couches en jeu : une couche dans laquelle sera faite la sélection, et une couche de référence.

On peut par exemple, à l'aide d'une couche de points et d'une couche de polygones, sélectionner tous les points situés dans les polygones.

Faire une requête spatiale simple

Ouvrez un nouveau projet QGIS et ajoutez-y la couche communes_NordPasDeCalais.

En vous connectant au flux WFS http://ws.carmen.developpement-durable.gouv.fr/WFS/24/profil_env? (cf. partie III.2.3), ajoutez également au projet la couche Installations de traitement de déchêts.

Cette couche est en WGS84 EPSG:4326, seul SCR disponible via ce flux.

Le but va être ici de sélectionner toutes les communes du Nord-Pas-de-Calais sur lesquelles sont implantées une ou plusieurs installations de traitement de déchêts.

Rendez-vous dans le menu Vecteur → Requête spatiale → Requête spatiale Menu Vecteur, requête spatiale, requête spatiale .

Fenêtre de requête spatiale : sélection des communes contenant les installations
  • Sélection des entités sources depuis : il s'agit de la couche dans laquelle sera faite la sélection, sélectionnez la couche de communes
  • Où l'entité : sélectionnez l'opérateur Contient
  • Entités références de : il s'agit de la couche par rapport à laquelle seront sélectionnés les éléments, sélectionnez la couche d'installations
  • Cliquez sur Appliquer et patientez un peu...
Fenêtre de requête spatiale : sélection des communes contenant les installations, résultat

74 communes sur 1545 contiennent une installation ou plus.

Résultat sur la carte : communes contenant une ou + installation

Dans la partie droite de la fenêtre de requête spatiale sont listées les objets répondant à la requête; il est possible de zoomer sur chacun de ces objets en cochant la case Zoom sur l'objet puis en cliquant sur une ligne.

icône pour créer une couche à partir de la sélection dans la fenêtre de requête spatialeIl est également possible dans cette fenêtre de créer une couche temporaire à partir de la sélection, en cliquant sur l'icône Créer une couche depuis la sélection.

Cette couche sera uniquement sauvegardée dans le projet ; pour la sauvegarder définitivement, clic droit sur son nom, enregistrer sous...

Notez que l'outil de requête spatiale fonctionne pour deux couches ayant des SCR différents. Ce n'est pas le cas de tous les outils...

Quelques opérateurs

Dans l'exemple ci-dessus, nous avons utilisé l'opérateur Contient. Il en existe d'autres ; ils varient en fonction de la nature des couches source et de référence (point, ligne, polygone).

Opérateurs de requête spatiale disponibles en fonction des types des couches de de départ et de référence.
Couche de départ : icône de point icône de ligne icône de polygone
Couche de référence : icône de point icône de ligneicône de polygone icône de point icône de ligne icône de polygone icône de pointicône de ligne icône de polygone
A l'intérieur icône faux icône correct icône faux icône faux icône correct icône faux icône correct
Chevauche icône correct icône faux icône faux icône correct icône faux icône faux icône correct
Croise icône faux icône correct icône faux icône correct icône correct icône faux icône faux
Contient icône faux icône faux icône correct icône faux icône faux icône correct icône faux
Est disjoint icône correct icône correct icône correct icône correct icône correct icône correct icône correct
Est égal icône correct icône faux icône faux icône correct icône faux icône faux icône correct
Intersecte icône correct icône correct icône correct icône correct icône correct icône correct icône correct
Touche icône faux icône correct icône faux icône correct icône correct icône faux icône correct

Par exemple, un point peut se trouver à l'intérieur d'un polygone mais une ligne ne peut se trouver à l'intérieur d'un point.

Ajoutez la couche dept59 créée dans la partie VI.1.2.

Connectez-vous au flux WFS http://services.sandre.eaufrance.fr/geo/zonage (cf. partie III.2.3) et ajoutez la couche CoursEau1 correspondant aux cours d'eau de + de 100 km.

En utilisant différents opérateurs, pouvez-vous dire ?...

Entre deux requêtes, n'oubliez pas de tout désélectionner :icône de désélection

En sélectionnant les installations disjointes des communes (0/96), ou bien les installations à l'intérieur des communes (96/96), on peut en déduire que toutes les installations sont bien dans le Nord-Pas-de-Calais.

En sélectionnant les communes intersectant les cours d'eau (482/1545), ou bien les communes disjointes des cours d'eau (1063/1545), on peut en déduire que 482 communes sont traversées par un cours d'eau.

VI.3 Combiner des requêtes

 

Comment faire quand on souhaite combiner plusieurs requêtes, par exemple sélectionner les communes traversées par un cours d'eau et ayant une population de + de 10 000 habitants ?

Combiner deux requêtes attributaires

Pour combiner deux requêtes attributaire (par exemple les communes de + de 10 000 habitants du département du Pas-de-Calais), nous avons vu dans la partie VI.1.4 qu'il est possible d'utiliser les opérateurs AND et OR.

Il est également possible de faire deux requêtes successives.

Ouvrez un nouveau projet QGIS, ajoutez-y la couche communes_NordPasDeCalais.

icône de sélection attributaireOuvrez la table attributaire de cette couche puis la fenêtre de requête attributaire.

Sélectionnez tout d'abord les communes de + de 10 000 habitants :

"POPULATION" > 10

Communes de + de 10 000 habitants sélectionnées

Tapez ensuite la requête suivante, pour sélectionner les communes du Pas-de-Calais...

"NOM_DEPT" = 'PAS-DE-CALAIS'

...Mais cette fois-ci, au lieu de cliquer sur Sélection, sélectionnez dans la liste Sélectionner depuis la sélection :

liste accessible à partir du bouton sélection

Ainsi, cette deuxième requête s'appliquera uniquement aux communes déjà sélectionnées : les communes du Pas-de-Calais seront sélectionnées parmi les communes de + de 10 000 habitants.

Communes de + de 10 000 habitants et du département du Pas-de-Calais sélectionnées

Utilisez cette fois pour la deuxième requête le bouton Enlever de la sélection : les communes du Pas-de-Calais seront désélectionnées et il ne restera de sélectionnées que les communes de + de 10 000 habitants du Nord.

Combiner deux requêtes spatiales

Comment faire maintenant pour combiner deux requêtes spatiales, par exemple pour sélectionner les communes avec installation et cours d'eau ?

Connectez-vous au flux WFS http://ws.carmen.developpement-durable.gouv.fr/WFS/24/profil_env? et ajoutez la couche Installations de traitement de déchêts.

Connectez-vous au flux WFS http://services.sandre.eaufrance.fr/geo/zonage et ajoutez la couche CoursEau1 correspondant aux cours d'eau de + de 100 km.

Menu Vecteur → Requête spatiale → Requête spatiale : sélectionnez les communes avec installation(s) Fenêtre de requête spatiale : sélection des communes avec installation .

communes avec installation(s)) sélectionnées

Une fois cette requête effectuée, la case selected geometries (74 dans notre cas) est automatiquement cochée. En laissant cette case cochée, la requête suivante ne portera que sur les communes avec éoliennes. Il ne vous reste donc plus qu'à sélectionner les communes avec cours d'eau :

Fenêtre de requête spatiale : sélection à partir des communes avec installation des communes avec cours d'eau

Au final, les 40 communes sélectionnées sont donc celles avec installation et cours d'eau :

communes avec installation et cours d'eau sélectionnées

Combiner requêtes spatiales et attributaires

Le principe est le même que précédemment. Sélectionnons par exemple les communes de moins de 100 habitants avec installation.

Commencez par sélectionner au moyen d'une requête attributaire les communes de moins de 100 habitants : "POPULATION" < 0.1. Onze communes sont sélectionnées.

Ensuite, au moyen d'une requête spatiale, sélectionnez parmi ces communes celles avec installation :

communes avec installation et cours d'eau sélectionnées

Au final, une seule commune reste sélectionnée : Riencourt-Les-Bapaumes dans le Pas-de-Calais.

Il est aussi possible de procéder à l'inverse : sélectionner d'abord les communes avec installations puis parmi celles-ci celles de moins de 100 habitants.

icône de désélectionDésélectionnez toutes les communes.

Au moyen d'une requête spatiale, sélectionnez toutes les communes avec installation : 74 communes sont sélectionnées.

Il ne reste plus ensuite qu'à sélectionner en utilisant l'option Depuis la sélection les communes de moins de 100 habitants : la commune de Riencourt reste la seule sélectionnée.

VII. Créer, supprimer, renommer et calculer des champs

Dans les parties V.1 et V.3, nous avons vu comment choisir les champs qui seront ajoutés à une couche lors de sa création, et comment remplir des champs case par case.

Nous allons voir ici comment ajouter, supprimer et renommer et changer l'ordre des champs pour une couche existante, et comment calculer automatiquement des valeurs dans un champ.

Notions abordées :

  • Création de champs
  • Suppression de champs
  • Renommer des champs
  • Modifier l'ordre des champs
  • Calcul des valeurs d'un champ

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

VII.1 Création et suppression de champs à partir de la table attributaire

 

 

Quels sont les champs présents dans une table ?

Ouvrez un nouveau projet QGIS, ajoutez la couche communes_NordPasDeCalais_calcul.

Pour voir les champs de la table attributaire de cette couche, vous pouvez bien sûr ouvrir la table attributaire, mais vous pouvez également ouvrir les propriétés de la couche, rubrique Champs :

fenêtre des propriétés de la couche, rubrique champs

Cette fenêtre vous permet de voir d'un seul coup d'œil la liste des champs, leur type : String (texte), Integer (nombre entier) ou Real (nombre décimal), le mode d'édition (cf. partie V.3.2)...

Créer un nouveau champ

Nous allons ajouter deux champs à la couche communes_NordPasDeCalais_calcul, CODE_DEPT et CODE_REG, destinés à contenir par la suite le code de département et le code de région.

Ouvrez la table attributaire de la couche communes_NordPasDeCalais_calcul. Passez en mode édition pour cette couche (cf. partie V.2.1).

Cliquez sur l'icône Nouvelle colonne en haut de la table attributaire :

barre d'outils de la table attributaire, icône d'ajout de champ entourée en rouge

La fenêtre suivante s'ouvre :

fenêtre de création de colonne
  • Nom : Tapez CODE_DEPT
  • Commentaire : ce champ peut contenir un commentaire, laissez-le vide
  • Type : ce champ peut contenir les valeurs suivantes : texte, nombre entier, nombre décimal et date. Choisissez texte (on pourrait aussi choisir le type nombre entier, mais texte est souvent préférable pour les identifiants)
  • Largeur : Dans le cas d'un champ type texte, cette valeur représente le nombre maximum de caractères que pourra contenir le champ. Tapez 3, pour prévoir le cas des départements d'outre-mer.

Cliquez sur OK ; le champ est ajouté à la table, rempli pour l'instant de valeurs nulles.

table avec le champ CODE_DEPT vide

Procédez de la même manière pour ajouter un champ CODE_REG :

fenêtre de création de colonne

Quittez le mode édition en enregistrant les modifications. Ces champs seront remplis dans la partie VII.3.

Supprimer un champ existant

Nous allons supprimer le champ INSEE_COM (ne vous inquiétez pas, nous recréerons un champ code INSEE à partir du code de département et de commune, dans la partie VII.3).

Passez à nouveau en mode édition pour la couche communes_NordPasDeCalais_calcul.

Cliquez sur l'icône Supprimer la colonne en haut de la table attributaire :

barre d'outils de la table attributaire, icône de suppression de champ entourée en rouge

La fenêtre suivante apparaît :

fenêtre de suppression de colonne

Sélectionnez le champ INSEE_COM puis cliquez sur OK.

Notez qu'il est possible de sélectionner plusieurs champs dans cette fenêtre.

Le champ est supprimé. Quittez le mode édition en enregistrant les modifications.

VII.2 Une extension pratique : le gestionnaire de table

 

Installation de l'extension du gestionnaire de table

L'extension Gestionnaire de table (Table Manager) permet de créer et supprimer des champs, ainsi que de renommer et changer l'ordre des champs, ce qui n'est pas possible directement dans la table attributaire.

Comment installer cette extension ?

Rendez-vous dans le Menu Extensions → Installer/Gérer les extensions Menu Extensions, Installer/Gérer les extensions :

Installation du gestionnaire de table
  • Vérifiez que vous êtes dans la rubrique Tout
  • Tapez table dans la partie Rechercher
  • Cliquez sur Table Manager dans la liste des extensions
  • Puis sur Installer l'extension en bas à droite de la fenêtre

Table Manager est maintenant visible dans la liste des extensions installées. Fermez la fenêtre.

Gérer les champs avec le gestionnaire de table

Sélectionnez la couche communes_NordPasDeCalais_calcul dans la table des matières.

icône du gestionnaire de tableLancez le gestionnaire de table : soit via l'icône de la barre d'outils Vecteur, soit via le menu Vecteur → Table Manager → Gestionnaire de table Menu Vecteur, Table Manager, Gestionnaire de table .

Fenêtre du gestionnaire de table

Le gestionnaire de table permet la création de nouveaux champs via le bouton Insérer. Une fois un champ sélectionné dans la liste, il est possible de le supprimer, renommer ou de changer sa position par rapport aux autres champs.

A tout moment, l'onglet Aperçu de la table permet de prévisualiser la table une fois vos changements effectués.

Pour sauvegarder vos modifications, deux possibilités : le bouton Enregistrer sauvegarde directement les modifications, le bouton Enregistrer sous... crée une nouvelle couche.

Nous allons simplement modifier l'ordre des champs pour remonter CODE_DEPT et CODE_REG : sélectionnez CODE_REG et cliquez sur Vers le haut jusqu'à ce que le champ soit en deuxième position, derrière ID_GEOFLA. Faites également remonter CODE_DEPT en troisième position.

Cliquez sur Enregistrer : une fenêtre apparaît vous demandant si vous souhaitez conserver ou non le style de la couche. Choisissez Oui ou Non, au choix (Oui conservera le style actuel de la couche, Non générera un nouveau style au hasard).

 

VII.3 Calcul de champs

 

Il est possible de calculer automatiquement les valeurs d'un champ au moyen de la calculatrice de champ, un peu à la manière d'une requête attributaire.

Comment fonctionne la calculatrice de champ ?

Toujours dans le même projet QGIS, avec uniquement la couche communes_NordPasDeCalais_calcul, ouvrez sa table attributaire.

Passez en mode édition. Cliquez sur l'icône Ouvrir la calculatrice de champs parmi les icônes de la table attributaire :

barre d'outils de la table attributaire, avec icône de la calculatrice de champs entourée en rouge

La fenêtre suivante s'ouvre :

Fenêtre de la calculatrice de champs

1 : Si cette case est cochée, seules les lignes sélectionnées seront modifiées (en grisé si aucune entité n'est sélectionnée).

2 : Cocher cette case pour créer un nouveau champ.

3 : Cocher cette case pour mettre à jour un champ existant.

4 : Les opérateurs les plus couramment utilisés.

5 : Expression servant à calculer les valeurs du champ.

6 : Liste des opérateurs et fonctions disponibles pour le calcul de champ.

7 : Si un opérateur ou une fonction est choisi en 6, l'aide correspondante apparaît dans cette partie.

8 : Ici, une fois l'expression remplie, vous pourrez voir un aperçu du résultat du calcul.

Comme vous avez pu le constater, le mode de fonctionnement de la calculatrice de champ est assez similaire à celui d'une requête attributaire (cf. partie VI.1).

Il n'est pas obligatoire de passer en mode édition pour utiliser la calculatrice de champ ; dans ce cas, cliquer sur OK dans la calculatrice enclenche le mode édition.

Calcul de géométrie : l'exemple de la surface

Calcul de la surface

Nous allons ici calculer la surface de chaque département en km2.

Fenêtre de la calculatrice de champs, pour calculer la surface d'un département en km2
  • Choisissez Créer un nouveau champ, nommez le SURF_KM2, choisissez le type décimal, une longueur de 10 et une précision de 2 (2 chiffres après la virgule)
  • Dans la liste des fonctions, dans la rubrique géométrie, double-cliquez sur la fonction $area puis rajoutez dans la case expression / 1000000 (par défaut, la surface est calculée en unités de la couche, donc en m² puisque cette couche est projetée en Lambert 93)
  • Au final, l'expression est donc $area / 1000000
  • cliquez sur OK

Avez-vous noté qu'il est possible de créer des champs virtuels ? Ces champs ne sont pas permanents et ne seront pas sauvegardés (il est donc possible d'en créer sans passer en mode édition). Si un champ virtuel est utilisé pour calculer par exemple une surface, et si les polygones sont modifiés, la surface sera automatiquement mise à jour.

Vérification

icône mesurer une aireVous pouvez vérifier votre calcul au moyen de l'outil Mesurer une aire :

Sélection de l'outil mesurer une aire dans la liste

Sélectionnez une commune, mesurez son aire en faisant un clic droit sur le dernier sommet pour terminer, choisissez dans la table l'option Ne montrer que les entités sélectionnées et comparer l'aire que vous avez mesuré et l'aire du champ SURF_KM2.

Vérification de la surface au moyen de l'outil mesurer une aire

Les deux aires devraient être sensiblement égales.

Quelques exemples supplémentaires de calculs

La calculatrice de champs offre beaucoup de fonctions que nous ne passerons pas toutes en revue ; nous verrons simplement quelques exemples pour vous donner un aperçu des possibilités.

Opérations mathématiques : calcul de densité

L'objectif sera ici de calculer la densité en habitants par km2 de chaque commune, à partir de la population et la surface.

La densité se calcule en divisant la population par la surface. Si la population est en nombre d'habitants et la surface en km2, alors la densité sera en nombre d'habitants par km2.

Si ce n'est pas déjà fait, ouvrez la table attributaire de la couche communes_NordPasDeCalais_calcul. Ouvrez la calculatrice de champs :

Fenêtre de la calculatrice de champ, calcul de la densité
  • Choisissez l'option Créer un nouveau champ, nommez-le DENSITE, type Nombre décimal, Longueur 10 et précision 2
  • Dans la liste des fonctions, rubrique Champs et valeurs, double-cliquez sur POPULATION, ajoutez * 1000 à la main dans le cadre Expression puisque la population est en milliers d'habitants, le diviseur / puis double-cliquez sur le champ SURF_KM2
  • Au final, l'expression est "POPULATION" * 1000 / "SURF_KM2"
  • Cliquez sur OK : le champ densité est ajouté et calculé :
Table attributaire avec les 3 colonnes population, surface et densité

Opérations sur du texte : extraction des codes et noms de régions et départements

La couche communes_NordPasDeCalais_calcul comporte deux champs DEPT et REGION remplis par exemple par 59 - NORD pour le département et 31 - NORD-PAS-DE-CALAIS pour la région.

Le but est ici d'extraire le code de la région et du département à partir de ces deux champs. Nous avons déjà créé les champs CODE_DEPT et CODE_REG précédemment (cf. partie VII.1.2, il ne reste plus qu'à les remplir !

Si ce n'est pas déjà fait, ouvrez la table attributaire de la couche communes_NordPasDeCalais_calcul. Ouvrez la calculatrice de champs :

Calculatrice de champ : calcul du code du département
  • Vérifiez que la case Ne mettre à jour que les x entités sélectionnées soit décochée, puisque le but est de mettre à jour toutes les lignes de la table
  • Choisissez Champ de mise à jour existant puis CODE_DEPT dans la liste déroulante, puisqu'il ne s'agit pas de créer un nouveau champ
  • Dans la liste des fonctions, allez dans la rubrique Chaîne (texte) et cliquez sur la fonction left : vous pouvez lire l'aide à droite. Cette fonction extrait les caractères les plus à gauche d'un texte.
  • La fonction left nécessite deux paramètres : le texte d'où seront extraits les caractères (ici, le champ DEPT) et le nombre de caractères à extraire (ici, 2 puisque le code de département est codé sur 2 caractères)
  • L'expression est donc left( "DEPT", 2)
  • Cliquez sur OK : le champ CODE_DEPT est mis à jour :
extrait de la table avec les champs DEPT et CODE_DEPT

Comment faire pour maintenant extraire le nom du département du champ DEPT ?

La fonction right permet d'extraire les caractères les plus à droite d'un texte. Le problème est que le nom du département étant variable, le nombre de caractères à extraire l'est aussi.

Mais il est possible de calculer ce nombre de caractères à extraire en fonction de la longueur totale du texte : en effet, ce nombre sera toujours égal à la longueur totale - 5. Cinq correspond au nombre de caractères qui ne font pas partie du nom de département, soit les 2 chiffres du code département, un espace, un tiret et un espace (« 59 - » par exemple).

L'expression est donc :

right ( "DEPT" , length ( "DEPT") - 5 )

length ( "DEPT") - 5 étant le nombre de caractères à extraire du champ DEPT.

Au final, les paramètres de la calculatrice de champs sont donc les suivants :

Calculatrice de champ : calcul du nom du département

Pour le code région, il faut mettre à jour le champ CODE_REG avec l'expression left( "REGION", 2). Pour le nom de région, il faut créer un nouveau champ NOM_REG et le remplir en utilisant l'expression right ( "REGION" , length ( "REGION") - 5 ).

Bien sûr, vous pouvez faire plus simple et utiliser les expressions '31' pour le code, et 'NORD-PAS-DE-CALAIS' pour la région, puisque toutes les communes appartiennent ici à la même région !

Opérations sur du texte : concaténation

Le but sera ici de recréer le code INSEE des communes, à partir du code de département et du code de commune. Par exemple, la commune de Winnezeele a pour code département 59 et pour code commune 662 : son code INSEE est 59662.

Ouvrez la calculatrice de champ :

Calculatrice de champ : calcul du code INSEE
  • Créez un nouveau champ, nommé CODE_INSEE, de type Texte et de longueur 10
  • Dans la liste des champs, double-cliquez sur CODE_DEPT (créé précédemment), puis cliquez sur l'opérateur de concaténation de chaîne ||, et double-cliquez pour terminer sur le champ CODE_COMM
  • L'aperçu du réultat doit être par exemple 59662
  • Cliquez sur OK. Le champ CODE_INSEE est créé et mis à jour :
Table attributaire avec les 3 colonnes CODE_DEPT, CODE_COMM et CODE_INSEE

Il est aussi possible d'utiliser la formule concat ( "CODE_DEPT", "CODE_COMM" ), pour le même résultat.

VIII. Lier des données de deux sources différentes : les jointures

Nous allons aborder ici la notion de jointure : comment partir de deux couches de données, ou d'une couche et d'un tableau, pour au final n'obtenir qu'une seule couche avec toutes les données qui nous intéressent ?

Notions abordées :

  • Jointure attributaire
  • Jointure spatiale

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

VIII.1 Lier des données en fonction de leurs attributs : jointures attributaires

 

 

Comment fonctionne une jointure attributaire ?

Dans un logiciel SIG, une jointure attributaire consiste à lier à une couche des données provenant d'une table ou d'une autre couche. On se base pour cela sur les données attributaires.

Un champ de la couche de départ et un champ de la table contenant les données à joindre servent de champs clé. Ces champs doivent être de même type (texte, nombre) et contenir les mêmes données. Le logiciel se base sur le contenu de ces champs pour déterminer quel élément de la table est lié à quel élément de la couche.

principe d'une jointure attributaire

Dans l'illustration ci-dessus, les données de départ sont :

  • une couche de polygone avec les régions du bhoutan. La table attributaire comporte le nom et le code de chaque région, mais pas leur population.
  • un tableau avec le code de chaque région et sa population en 1995

Les données de la table sont jointes aux données du shapefile, en se basant sur le code région : champ CODEREGION pour le shapefile et champ REG_CODE pour le tableau.

Au final, on obtient une couche shapefile des régions du Bhoutan, avec en données attributaires les données de la couche de départ et les données du tableau, donc la population.

Il arrive qu'un élément de la couche de départ corresponde à plusieurs éléments de la table. Différentes stratégies sont alors possibles selon les logiciels et le type de champ : ne prendre en compte que les données du premier élément lié, calculer la moyenne des données...

Application : population au Bhoutan

Ouvrez un nouveau projet QGIS et ajoutez-y la couche des régions du Bhoutan regions_bhutan.shp.

Ajoutez également au projet la table pop_bhutan.csv : pour cela, procédez comme pour ajouter une couche shapefile mais choisissez Tous les fichiers comme format de fichier :

ajout d'un csv : choisir tous les fichiers comme format

Le format CSV est un format texte contenant des colonnes séparées par un caractère délimiteur, habituellement la virgule, le point-virgule ou la tabulation.

Vous devez donc avoir dans QGIS ces deux données (notez l'icône de tableau pour le CSV) :

la table et la couche dans la table des matières

Ouvrez les deux tables attributaires.

Le champ clé pour regions_bhutan est CODEREGION et le champ clé pour pop_bhutan est REG_CODE.

Allez dans les propriétés de la couche regions_bhutan, rubrique Jointure :

rubrique jointure des propriétés de la couche

Cliquez sur le symbole symbole + d'ajout de jointure pour ajouter une jointure :

création d'une jointure : choix de la couche à joindre et des champs clés
  • Joindre la couche : choisissez la couche qui sera jointe, ici le CSV pop_bhutan
  • Champs de jointure des couches jointe et cible : choisissez les deux champs clés qui permettront de trouver les correspondances d'une table à l'autre
  • Mettre la couche jointe en cache dans la mémoire virtuelle : si cette case est cochée, l'affichage de la table sera plus rapide, mais les données ne seront pas mises à jour si des modifications sont effectuées dans la couche jointe
  • Choisir les champs à joindre : ici, nous voulons joindre tous les champs donc vous pouvez laisser cette case décochée
  • Personnaliser le préfixe du champ : les champs joints peuvent avoir le préfixe de votre choix, pour bien les différencier des champs originaux ou issus d'autres jointures. Choisissez un préfixe court, par exemple tab_

Cliquez sur OK pour créer la jointure : la ligne correspondante apparaît dans la fenêtre des propriétés.

Ouvrez la table attributaire de la couche regions_bhutan.shp : les données de la table ont été ajoutées (champ tab_POPEST95).

table attributaire de la couche regions_bhutan une fois les données de populations jointes

Cependant, la couche n'a pas été modifiée, la jointure n'est que temporaire. Pour sauvegarder définitivement la jointure, il faut sauvegarder la couche sous un autre nom.

Quelques exemples supplémentaires

Jointure d'une couche et d'une table : recensement de la population au Kenya

Ouvrez un nouveau projet QGIS. Ajoutez-y la couche KEN_adm2.shp et le fichier CSV County_Urbanization-2009.

Il est possible de faire la jointure en utilisant le nom du district : champ NAME_2 pour KEN_adm2 et champ County pour County_Urbanization-2009.csv.

Le champ étant un nom et non un code, il est possible que des lignes ne soient pas jointes si les noms sont orthographiées de manière légèrement différente.

Faites la jointure.

Quatre districts n'ont pas de données jointes : Trans-Nzoia, orthographié "Trans Nzoia" dans le fichier CSV, Elgeyo-Marakwet, orthographié "Elgeyo Marakwet" dans le fichier CSV, Nithi, orthographié "Tharaka Nithi" dans le fichier CSV et Kwale, orthographié "Kwale " (avec un espace à la fin) dans le fichier CSV.

Pour que tous les enregistrements soit joints, vous pouvez modifier à la main les noms des districts qui posent problème dans le fichier CSV, en l'ouvrant avec un éditeur de texte, et refaire la jointure.

Jointure de deux couches : entrées de cinéma et célibat en France

Ouvrez un nouveau projet QGIS. Ajoutez-y les couches depts_celib15ansplus_2009 et depts_entrees_cinema_2011.

Il est possible de faire la jointure sur les champs ID_GEOGLA, ou CODE_DEPT, ou bien NOM_DEPT. Evitez le champ NOM_DEPT, au cas où les noms de départements soient orthographiés de manière différente dans les deux couches (accents, majuscules).

Joignez les données attributaires d'une couche à l'autre couche.

VIII.2 Lier des données en fonction de leur position : jointures spatiales

 

Comment fonctionne une jointure spatiale ?

Pour faire une jointure, il est possible de se baser sur la position des éléments et non plus sur leurs données attributaires : il s'agit alors d'une jointure spatiale.

Ce type de jointure ne peut se faire qu'entre deux couches SIG, de type point, ligne ou polygone. Il est possible par exemple de partir d'une couche de polygones et d'une couche point, et de lier à chaque polygone les données attributaires du point contenu par ce polygone.

Notez bien que comme pour une jointure attributaire, les données qui seront jointes sont toujours les données attributaires.

principe d'une jointure spatiale

Dans l'exemple ci-dessus, les deux couches de départ sont une couche de département et une couche de chef-lieux. Les données attributaires des chef-lieux (leur nom, code et coordonnées) sont jointes aux départements en se basant sur leur position : chaque département récupère les données du chef-lieu intersectant ce département.

Il existe plusieurs outils pour cela dans QGIS ; nous utiliserons celui présentant a priori le plus de possibilités.

Deux outils possibles (voire plus...)

Comme souvent dans QGIS, il existe plusieurs manières de faire les choses. Deux outils de jointure spatiale vous seront présentés ici ; il en existe d'autres !

En passant par le menu vecteur

Ouvrez un nouveau projet QGIS, ajoutez les deux couches depts_france et cheflieux_france.

Rendez-vous dans le menu Vecteur → Outils de gestion de données → Joindre les attributs par localisation Menu Vecteur, Outils de gestion de données, Joindre les attributs par localisation :

fenêtre de jointure spatiale

Notez que cet outil ne propose pas le choix de l'opérateur (intersecte, contient, est disjoint...). L'opérateur intersecte sera toujours utilisé.

Fermez cette fenêtre sans lancer la jointure.

En passant par la boîte à outils Traitement

Si la boîte à outils Traitement n'est pas visible, menu Traitement → Boîte à outils.

Dans cette boîte à outils, en mode avancé (liste déroulante en bas de la boîte), rubrique Géotraitements QGIS Vector general toolsJoin attributes by location :

emplacement de l'outil de jointure spatiale dans la boîte à outils Traitement
fenêtre de l'outil de jointure spatiale de la boîte à outils Traitement

Au contraire de l'outil précédent, il est ici possible de choisir l'opérateur spatial. C'est donc cet outil que nous utiliserons par la suite.

Essayons, comme dans la partie VIII.2.1, de joindre les données attributaires des chef-lieux aux départements, en fonction de leur position.

  • Indiquez une couche vecteur : choisissez la couche à laquelle joindre les données; ici, les départements.
  • Joindre la couche vecteur : choisissez la couche avec les données à joindre ; ici, les chef-lieux.
  • Prédicat géométrique : les opérateurs intersecte et contient auront ici le même résultat
  • Résumé de l'attribut : cette rubrique permet soit de ne garder que les attributs de la première entité rencontrée, soit de faire des statistiques si plusieurs entités sont rencontrées. Comme il n'y a qu'un seul chef-lieu par département, il est inutile de calculer des statistiques : choisissez la 1ère option.
  • Statistiques pour le résumé : ces informations ne seront prises en compte que si la 2ème option a été choisie dans la liste déroulante du résumé de l'attribut.
  • Joined table : cette option est importante dans le cas où des entités de la couche de départ n'ont pas de correspondance dans la couche à joindre. Dans notre cas, chaque département ayant un chef-lieux, les deux options sont équivalentes.
  • Joined layer : cliquez sur ... pour choisir Enregistrer dans un fichier (nommez la future couche depts_join_cheflieux par exemple)

Cliquez sur OK, patientez... la nouvelle couche est automatiquement ajoutée au projet.

Ouvrez la table attributaire de la nouvelle couche. Pour chaque département, il est maintenant renseigné le nom et le code du chef-lieu, ainsi que ses coordonnées.

Il existe encore d'autres moyens pour faire une jointure spatiale, notamment en passant par une base de données relationnelle type PostgreSQL avec son extension spatiale PostGIS, ou bien à l'aide du plugin mmqgis...

Quelques exemples supplémentaires

Écoles secondaires du Kenya

Le but sera ici, à partir d'une couche du district de Nakuru et d'unecouche de points représentant les écoles secondaires de ce district, de déterminer combien d'école compte chaque zone du district.

Dans un nouveau projet QGIS, ajoutez les couches KEN_adm4_Nakuru et kenya_ecoles_nakuru.

Choisissez les paramètres de la jointure spatiale :

choix des paramètres pour la jointure des écoles aux zones du district de Nakuru

Le nombre d'écoles dans la zone sera automatiquement calculé à partir du moment où vous choisissez l'option Take summary of intersected features. Vous pouvez choisir de ne calculer aucune statistique.

Choisissez également Keep all records : ainsi, même si une zone ne comporte aucune école, elle ne sera pas supprimée de la couche résultat.

Lancez la jointure, ajoutez la nouvelle couche.

icône identifier les entitésEn lisant les informations par exemple de la zone de Bahati, on peut lire que cette zone comporte 22 écoles :

résultat de l'identification des entités sur la zone de Bahati : 22 écoles

Jointure de deux couches de polygones : un comportement étonnant

Ouvrez un nouveau projet QGIS, ajoutez les couches regions_france_geofla et depts_france_geofla.

Que se passe-t-il si l'on essaye de trouver par une jointure spatiale le nombre de départements de chaque région ?

Testez-le, avec les mêmes paramètres que pour les écoles secondaires du Kenya : vous devriez obtenir les nombres de départements suivants par région :

nb de départements par région, tel que calculé par une jointure spatiale

A part pour la Corse, ces nombres sont erronés; en effet, il semble que la jointure ait pris en compte pour une région non seulement les départements à l'intérieur de la région mais également les départements adjacents.

Comment cela se fait-il ? Si vous testez une requête spatiale pour sélectionnez tous les départements intersectant une région (après avoir sélectionné une région), vous constaterez que les départements limitrophes sont également sélectionnés. L'opérateur d'intersection fonctionne donc ainsi. Bug ou feature ? A vous de voir !

 

IX. Analyse spatiale

Dans cette partie, nous allons aborder un domaine particulièrement utile des SIG : comment croiser spatialement des données, ou créer des données à partir d'autres données.

Nous verrons quelques exemples de traitements possibles sur des données vecteur et raster (pour un rappel de ce qu'est une donnée vecteur ou raster : cf. partie I.1.2b).

Notions abordées :

  • découpage d'une couche vecteur
  • intersection de deux couches
  • création de zones tampon
  • découpage d'une couche raster
  • création de courbes de niveau à partir d'un MNE
  • calcul de pente à partir d'un MNE
  • Calcul de la valeur d'un point en fonction d'un raster

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

IX.1 Analyse spatiale : quelques exemples d'opérations sur des données vecteur

 

Nous aborderons ici quelques traitements possibles sur des données vecteur. Il en existe bien sûr beaucoup d'autres !

Découper des données par d'autres données

Le but sera ici de découper des cours d'eau pour ne garder que ceux dans notre zone d'étude, en l'occurrence les départements de Côtes d'Armor et d’Île-et-Vilaine.

Premier essai...

Ouvrez un nouveau projet QGIS. Ajoutez les couches COURS_D_EAU_NTFL2 et communes_22_35_osm.

Le but sera donc de découper les cours d'eau par les communes, pour ne garder que les parties à l'intérieur des communes. Cette opération crée une nouvelle couche.

Rendez-vous dans le Menu Vecteur → Outils de géotraitement → Découper Menu Vecteur, Outils de géotraitement, Découper :

Fenêtre de l'outil découper
  • Couche vectorielle de saisie : choisir la couche à découper, en l'occurrence les cours d'eau
  • Couche de découpage : choisir la couche servant de masque de découpe, en l'occurrence les communes
  • Fichier de sortie : cliquez sur Parcourir, choisissez l'endroit où la couche sera créée, et son nom : COURS_D_EAU_dep22_35
  • La case Ajouter le résultat au canevas de la carte est présente depuis la version 2.2 de QGIS. Cochez-la si possible.
  • Cliquez sur OK

Les cases Utiliser uniquement les valeurs sélectionnées permettent, comme leur nom l'indique, de ne prendre en compte que certaines entités, que ce soit pour la couche à découper ou le masque de découpe.

Ajoutez la nouvelle couche si ce n'est pas fait automatiquement.

Que se passe-t-il ? La nouvelle couche ne semble contenir aucune entité, ce que vous pouvez vérifier en ouvrant la table attributaire. Supprimez cette couche.

...Et correction du problème

Comme vous vous rappelez, nous avons vu dans la partie II.4.2 que certaines opérations nécessitent que toutes les couches soient dans le même SCR. Est-ce bien le cas ici ?

La couche COURS_D_EAU_NTFL2 est en système NTF, projection Lambert 2 (EPSG 27572), et la couche communes_22_35_osm en système RGF93, projection Lambert 93 (EPSG 2154).

Passez la couche de cours d'eau en RGF93 Lambert 93 (EPSG 2154), puisqu'il s'agit du système officiel français, le NTF Lambert 2 étant obsolète : nommez la nouvelle couche COURS_D_EAU_RGF93L93. Référez-vous si besoin à la partie II.4.2.

Supprimez la couche COURS_D_EAU_NTFL2. Vous avez donc dans votre projet deux couches, une de cours d'eau et une de communes, toutes deux dans le même SCR : RGF93 Lambert 93.

Procédez à nouveau au découpage, avec comme couche de saisie COURS_D_EAU_RGF93L93 et comme couche de découpage communes_22_35_osm.

Nommez la nouvelle couche COURS_D_EAU_dep22_35 et sauvegardez-là au même endroit que précédemment, afin de remplacer la couche avec 0 entités.

Patientez... et ajoutez la nouvelle couche :

Résultat du découpage
Cours d'eau découpés en bleu, cours d'eau non découpés en rouge.

Contrairement à une requête spatiale, le découpage modifie les entités en les découpant suivant les limites de la couche de découpage. Une requête se borne à sélectionner par exemple les cours d'eau à l'intérieur des communes, ou intersectant les communes.

Sélection des cours d'eau intersectant les communes
Sélection des cours d'eau intersectant les communes (en jaune) par une requête spatiale.

Création d'une zone tampon autour d'un cours d'eau

Qu'est-ce qu'une zone tampon ?

Une zone tampon (aussi appelée « buffer ») est une zone épousant la forme des objets d'une couche, d'une largeur donnée. Si elles sont tracées autour de points, les zones tampons seront des cercles. Autour de lignes et de polygones, ce sera des polygones de forme variable. Une zone tampon peut servir par exemple à modéliser une zone inondable, un périmètre de sécurité, une zone d'achalandage...

Exemples de zones tampon autour d'un point, d'une ligne et d'un polygone

L'objectif est ici de créer une zone tampon d'1 km autour du cours d'eau du Trieux. Cette zone pourra représenter par exemple une zone inondable, ou bien une zone s'interposant entre rivière et cultures.

Sélection d'un cours d'eau

Vous pouvez soit cliquer sur le numéro de la ligne où le toponyme est « le Trieux » (pour la trouver plus facilement, cliquez sur l'intitulé de colonne Toponyme pour classer les lignes par toponyme), soit utiliser une requête attributaire : "Toponyme" = 'le Trieux'.

le Trieux sélectionné dans la carte le Trieux sélectionné dans la table
Le cours d'eau du Trieux sélectionné

Création d'une zone tampon autour de la sélection

Pour créer la zone tampon : menu Vecteur → Outils de géotraitement  → Tampon(s) Menu Vecteur, Outils de géotraitement, Tampon(s) :

Paramètrage de l'outil zone tampon
  • Couche vectorielle de saisie : il s'agit de la couche autour de laquelle sera créée la ou les zones tampons, donc ici la couche de cours d'eau COURS_D_EAU_dep22_35
zone tampon autour du trieux
  • Utiliser uniquement les valeurs sélectionnées : vérifier que cette case soit bien cochée (elle l'est par défaut à partir du moment où une sélection existe dans la couche), afin de ne créer de zone tampon qu'autour du Trieux
  • Segments pour l'approximation : plus cette valeur est élevée, plus les contours de la zone seront « arrondis ». Une valeur de 10 sera suffisante dans notre cas
  • Distance tampon : la couche étant projetée en Lambert 93, son unité est le mètre. Taper donc 1000 pour obtenir une zone d'une largeur de 1km. L'option Champ de distance tampon permet quant à elle de faire varier la largeur de la zone en fonction des valeurs d'un champ ; nous ne l'utiliserons pas ici
  • Union des résultats du tampon : cette case permet de fusionner toutes les zones tampon qui seront créées. Dans la mesure où une seule zone sera créée ici, la cocher ou décocher ne changera rien au résultat
  • Fichier de sortie : cliquez sur Parcourir, choisir le nom : Trieux_Tampon1km_RGF93L93 par exemple) et l'emplacement de la couche qui sera créée

Cliquez sur OK, ajoutez la nouvelle couche : vous devez obtenir un résultat similaire à celui de l'illustration ci-dessus.

Données communes entre deux couches : intersection

Qu'est-ce qu'une intersection ?

L'intersection entre deux couches crée une troisième couche, avec uniquement les parties communes aux deux couches.

Exemple d'une intersection entre une cercle et un rectangle
La zone hachurée correspond à l'intersection entre le rectangle et le cercle.

Intersection entre communes et zone tampon

Rendez-vous dans le menu Vecteur → Outils de géotraitement  → Intersection Menu Vecteur, Outils de géotraitement, Intersection :

Paramètrage de l'outil d'intersection
intersection entre zone tampon et communes
  • Couche vectorielle de saisie : choisir la couche de communes. Ne pas cocher la case « Utiliser uniquement les entités sélectionnées » puisqu'il s'agit d'intersecter toutes les communes
  • Couche d'intersection : choisir la couche contenant la zone tampon. Idem, ne pas cocher la case « Utiliser uniquement les entités sélectionnées »
  • Fichier de sortie : cliquez sur Parcourir, choisir le nom (intersection_communes_tampon par exemple) et l'emplacement de la couche qui sera créée

Cliquez sur OK, ajoutez la couche.

Vous devez obtenir une couche similaire à celle de l'illustration.

Ouvrez la table attributaire de cette couche : notez que les champs des deux couches sont présents.

IX.2 Analyse spatiale : quelques exemples d'opérations sur des données raster

 

Vous verrez ici quelques manipulations sur un raster d'altitude, appliquées au modèle d'élévation numérique (MNE) de la Jamaïque (pour savoir ce qu'est un MNE : cf. partie III.1.2).

Découpage d'un raster

Le but sera ici de découper un raster pour ne garder que la zone qui nous intéresse. Cette manipulation permet d'alléger les données et les futurs traitements.

Ouvrez un nouveau projet QGIS. Ajoutez la couche raster srtm_21_09.tif située dans TutoQGIS_09_AnalyseSpat/donnees.

Le but va être de ne garder que la partie du MNE correspondant à la Jamaïque, en éliminant les parties de Cuba et des îles Caïman.

Rendez-vous dans le Menu Raster → Extraction → Découper Menu Raster, Extraction, Découper :

Fenêtre de l'outil découper
  • Fichier source : sélectionnez srtm_21_09
  • Fichier en sortie : cliquez sur Sélection..., choisissez où la nouvelle couche sera créée, et son nom : srtm_jamaique
  • Valeur nulle : laissez la case décochée
  • Mode de découpage : choisissez Emprise
  • Vérifiez que la case Charger dans la carte une fois terminé soit bien cochée
  • Il faut ensuite dessiner l'emprise à garder, toujours dans l'outil de découpage. Dessinez un rectangle autour de l'île de la Jamaïque :
  • Cliquez ensuite sur OK.
Menu Raster, Extraction, Découper

Une fois l'opération terminée, fermez la fenêtre de l'outil de découpage. Le nouveau raster ne comprend que la Jamaïque.

Notez qu'il est également possible de découper un raster suivant une couche de polygones, en utilisant l'option couche de masquage. Vous pouvez aussi directement rentrer à la main les coordonnées de l'emprise à conserver.

Création de courbes de niveaux

Les courbes de niveaux sont des lignes imaginaires joignant tous les points situés à la même altitude. Nous allons créer des courbes de niveau distantes de 100 mètres à partir du MNE de la Jamaïque.

Rendez-vous dans le Menu Raster → Extraction → Création de contours Menu Raster, Extraction, Création de contours :

Fenêtre de l'outil de création de contours
  • Fichier source : sélectionnez srtm_jamaique
  • Fichier de sortie pour les contours : cliquez sur Sélection..., sélectionnez l'emplacement de la couche qui sera créée, tapez son nom : jamaique_courbes_100m par exemple
  • Intervalle entre les lignes de contour : tapez 100
  • Nom d'attribut : il s'agit du nom du champ qui contiendra l'altitude de la courbe. Cochez la case, et laissez la valeur ELEVATION par exemple
  • Pour finir, cochez la case Charger dans la carte une fois terminé, et cliquez sur OK.
Visualisation des courbes de niveau Visualisation des courbes de niveau

Une couche de lignes a été créée. Chaque ligne possède en attribut son élévation, qui varie ici de 100 à 2200 mètres.

Création d'une couche de pente à partir de l'altitude

Il est également possible de créer à partir d'un raster d'altitude un raster de pente : chaque pixel aura la valeur de la pente en ce point. Pour en savoir plus sur la manière dont est calculée la pente, vous pouvez vous référer à l'aide d'ArcGIS sur ce point.

Représentation de la pente

La pente est calculée en fonction de la distance horizontale et de la hauteur. Dans notre cas, la hauteur est en mètres, et la distance horizontale en degrés. Les deux unités étant différentes, le calcul de pente donnera des valeurs aberrantes.

La première étape est donc de projeter notre raster, pour obtenir des unités identiques verticalement et horizontalement.

Projection d'un raster

Quelle projection utiliser pour notre raster ?

En règle générale, il y a deux possibilités quand on cherche une projection pour un pays : utiliser une projection nationale, ou bien une projection UTM.

Pour savoir s'il existe dans QGIS des projections nationales pour la Jamaïque, vous pouvez faire une recherche dans les SCR proposés.

icône SCRRendez-vous dans les propriétés du projet, rubrique SCR, par exemple en cliquant sur l'icône de sphère tout en bas à droite de la fenêtre de QGIS :

Recherche d'un SCR pour la Jamaïque

Tapez jamaica dans la rubrique Filtre : plusieurs réponses sont proposées, dont 3 SCR projetés. Une rapide recherche internet semble indiquer que le SCR JAD2001 est le plus récent (source : http://www.jamaicancaves.org/jad2001.htm). C'est donc ce SCR que nous utiliserons.

Sélectionnez JAD2001 (code EPSG:3448) et cliquez sur OK.

Nous venons de changer le SCR du projet, mais pas celui de notre raster (pour rappel : cf. partie II.3).

Une étape préliminaire avant de projeter le raster : ouvrez les propriétés du raster, rubrique Métadonnées, et dans le bas de la fenêtre, en faisant défiler les propriétés, recherchez Aucune valeur de données. Vous devriez avoir -32768, notez cette valeur. C'est celle utilisée pour les pixels « sans valeur » (qui ont donc en réalité la valeur -32768), en-dehors de l'île.

Ensuite, pour changer le SCR du raster : Menu Raster → Projections → Reprojection Menu Raster , Projections, Projection... :

Fenêtre de reprojection du raster
  • Fichier source : sélectionnez srtm_jamaique dans la liste
  • Fichier en sortie : cliquez sur Sélection..., choisissez l'emplacement de la couche qui sera créée et tapez son nom : srtm_jamaique_JAD2001 par exemple
  • SCR source : vérifiez que cette case soit cochée, et que le SCR actuel de la couche (WGS84, code EPSG:4326) soit bien sélectionné
  • SCR cible : cochez cette case, et cliquez sur Sélection pour rechercher le SCR JAD2001 code EPSG:3448
  • Données sans valeur : tapez la valeur notée précédemment : -32768
  • Charger dans la carte une fois terminé : cochez cette case
  • Laissez les autres paramètres par défaut, cliquez sur OK.

Patientez... La nouvelle couche est ajoutée, vous pouvez vérifier dans ses propriétés (rubrique Général) que son SCR est bien le JAD2001.

scr de la nouvelle couche : JAD2001

Supprimez les autres couches, pour ne garder dans le projet que la couche srtm_jamaique_JAD2001.

Calcul de pente à partir du raster projeté

Rendez-vous dans le Menu Raster → Analyse → MNT/DEM (Modèles de terrain) Menu Raster, Analyse, MNT/DEM (Modèles de terrain) :

Fenêtre de calcul de pente
  • Fichier source : sélectionnez srtm_jamaique_JAD2001
  • Fichier en sortie : cliquez sur Sélection... et sélectionnez l'emplacement de la couche qui sera créée, tapez son nom : pente_jamaique_JAD2001
  • Mode : choisir Pente dans la liste déroulante
  • Cochez la case Charger dans la carte une fois terminé
  • Laissez les autres paramètres par défaut (pour plus d'infos sur les méthodes de Zevenberger & Thorne et Horn : http://www.macaulay.ac.uk/LADSS/documents/DEMs-for-spatial-modelling.pdf, pp. 12 et 13).

Cliquez sur OK, patientez... la couche s'affiche :

la couche de pentes

Ici, les pixels sombres représentent des pentes faibles et les pixels clairs de fortes pentes.

menu projet, sauvegarder sous...En cliquant sur un pixel avec l'outil Identifier les entités, vous pouvez connaître la valeur de la pente pour ce pixel :

la couche de pentes

Ici, le pixel a une pente de 13,5° environ.

IX.3 Analyse spatiale : croisement de données vecteur et raster

 

Pour compléter ce chapitre, voici un exemple d'analyse mettant en jeu données vecteur et raster : en partant d'une couche de pente, et d'une couche de points représentant des échantillons, nous allons calculer la valeur de la pente pour chacun des échantillons.

Préparation des données : un seul SCR pour tous

Ouvrez un nouveau projet QGIS, ajoutez-y la couche créée en IX.2.3 pente_jamaique_JAD2001.tif.

Ajoutez également la couche echantillons_jam fournie dans le dossier TutoQGIS_09_AnalyseSpat/donnees.

La couche pente_jamaique_JAD2001.tif est en JAD2001 EPSG:3448 et la couche echantillons_jam en WGS84 EPSG:4326.

Il est possible soit de changer le SCR du raster, soit de changer le SCR du vecteur. Néanmoins, le temps de calcul est généralement moins long lorsqu'il s'agit de modifier le SCR d'une couche vecteur, en particulier pour une couche de points.

Sauvegardez la couche echantillons_jam avec le SCR JAD2001 EPSG:3448, sous le nom echantillons_jam_JAD2001. Référez-vous si nécessaire à la partie II.4.2. Ajoutez cette couche à QGIS.

Trouver l'outil : installation d'une extension

Comment faire pour donner à chacun des points sa valeur de pente ?

Il ne semble pas y avoir d'outil correspondant dans les menus vecteur et raster de QGIS. L'étape suivante est donc de faire une recherche parmi les extensions disponibles (ou bien dans un moteur de recherche, avec par exemple « qgis raster point value » comme mots clés).

Rendez-vous dans le menu Extension → Installer/gérer les extensions :

installation de l'extension point sampling tool

Dans la rubrique En obtenir plus, tapez sampling dans la partie filtre : plusieurs extensions sont trouvées. Lisez leurs descriptifs ; Point sampling tool semble correspondre à notre besoin. Installez cette extension.

Fermez la fenêtre du gestionnaire d'extensions.

Calcul de pente pour chacun des points d'une couche

icône Point sampling toolPoint sampling tool est accessible soit via l'icône correspondante, soit via le menu Extension → Analyses → Point sampling tool Extension, Analyses, Point sampling tool .

Onglet General :

Fenêtre de point sampling tool, onglet general
  • Layer containing sampling points : vérifiez que echantillons_jam_2001 soit bien sélectionnée dans la liste
  • Layer with fields/bands to get values from : il s'agit des couches dans les attributs seront repris dans la nouvelle couche. Faites bien attention à sélectionner les deux couches, pour garder à la fois les identifiants des points et leur pente
  • Output point vector layer : cliquez sur Parcourir, sélectionnez l'emplacement où la couche de points sera créée, tapez son nom : echantillons_jam_pente_JAD2001
  • Add created layer to the TOC : vérifiez que cette case soit cochée pour ajouter directement la couche créée à QGIS

Avant de cliquer sur OK, passez à l'onglet Champs :

Fenêtre de point sampling tool, onglet champs

Si vous avez bien sélectionné les deux couches dans l'onglet général, vous voyez ici les champs de ces deux couches : id pour les points, et la pente pour le raster. Vous pouvez renommer les champs qui seront créés : renommez par exemple pente_jama en pente.

Pour terminer, cliquez sur OK, fermez la fenêtre de l'extension.

Vérifiez que la nouvelle couche contienne bien les mêmes 22 points qu'echantillons_jam_2001.

Ouvrez sa table attributaire : les 2 champs id et pente sont présents. La pente est renseignée pour chacun des points.

table attributaire de la couche créée avec Point sampling tool, avec les 2 champs id et pente

X. Représenter des données et les mettre en page

Les logiciels SIG sont avant tout des logiciels d'analyse spatiale. Ils permettent également la représentation des données sous différentes formes, et la mise en page de cartes, mais présentent quelques limitations dans ces domaines. Les règles de sémiologie graphique ne seront pas ou peu abordées ici, nous verrons avant tout l'aspect « technique » sous QGIS.

Nous verrons ici comment représenter des données dans QGIS : quels types de cartes sont possibles, quelles en sont les limites, et comment mettre en page une carte.

Notions abordées :

  • symboles proportionnels
  • cartes choroplèthes
  • cartes en semis de points
  • mise en page de cartes (composeur d'impression)

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

X.1 Représenter des données : différentes méthodes adaptées à différents cas

Il existe de nombreuses manières de représenter les données, nous en verrons seulement quelques unes ici.

A partir d'une couche de communes et leur population, nous allons voir différentes manières de visualiser cette population.

Ouvrez un nouveau projet QGIS, ajoutez la couche COMMUNE.SHP située dans le dossier TutoQGIS_10_representation/donnees.

Représenter des quantités ou des effectifs : carte en symboles proportionnels

Les cartes en symbole proportionnels permettent la représentation de quantités ou d'effectifs par des symboles, généralement des cercles. La surface des symboles sera proportionnelle à la quantité ou l'effectif.

Créer une couche de points à partir d'une couche de polygones

Dans QGIS, la visualisation de données sous forme de cercles proportionnels nécessite une couche de points. A partir de la couche de communes, nous allons créer les centroïdes (barycentres) des communes.

Menu Vecteurs → Outils de géométrie → Centroïdes de polygones Menu Vecteurs, Outils de géométrie, Centroïdes de polygones

Fenêtre de l'outil centroïdes
  • Couche vecteur de polygones en entrée : choisir la couche COMMUNE
  • Fichier de points en sortie : cliquez sur Parcourir, allez à l'emplacement où vous voulez créer la couche de centroïdes et donnez-lui un nom : communes_centroides
  • Cliquez sur OK

La couche de centroïdes est ajoutée à QGIS : un point a été créé par commune.

Visualisation des centroïdes sur la carte

Faire varier la taille de points en fonction d'un champ

Il est ensuite possible de faire varier la taille des centroïdes des communes en fonction d'un champ, ou d'une expression :

Ouvrez les propriétés de la couche de communes → rubrique Style → bouton Avancé tout en bas à droite :

Bouton avancé dans la rubrique style des propriétés de la couche

Cliquez sur ce bouton → Champ de proportion → POPULATION Bouton avancé, menu champ de proportion, population

Appliquez les changements ; si les cercles sont trop gros, 2 possibilités :

  • réduire la taille du symbole
  • dans le champ de proportion, au lieu de sélectionner POPULATION, sélectionnez -expression- et tapez par exemple POPULATION / 10

Le mode Expression est disponible depuis la version 2.2 de QGIS.

En jouant sur ces 2 paramètres, vous devriez pouvoir obtenir une visualisation correcte de la population à l'échelle d'un département ou d'une région (à l'échelle du pays, cela nécessiterait d'agréger les cercles entre eux pour un meilleur rendu). Vous avez à votre disposition la couche DEPARTEMENT dans le dossier TutoQGiS_10_Reprentation/donnees.

Comme vous l'avez peut-être remarqué, QGIS affiche les cercles dans l'ordre de la table ; il peut donc arriver que de petits cercles soient masqués par de plus gros cercles. Pour corriger cela : Propriétés de la couche de centroïdes → rubrique Général → Constructeur de requête

Tapez la requête : 1=1 ORDER BY POPULATION DESC

Notez qu'il est également possible de faire varier la taille des cercles suivant un champ ou une expression en cliquant sur Symbole simple, puis sur le bouton à droite de Taille. Cependant, afin de bien rendre compte des valeurs, c'est la surface des cercles qui doit varier et non leur taille (règles de sémiologie graphique). Il faudra donc utiliser comme expression √ ("champ" / π) où "champ" est le nom du champ à représenter ("POPULATION" par exemple).

Une partie de la carte en cercles proportionnels

Malheureusement, QGIS ne gère pas la légende pour ce type de cartes. Il existe pour cela l'extension Proportional circles, ainsi qu'un outil disponible ici : http://www.qgis.nl/2012/02/03/legenda-maken-met-legendsvg/?lang=en

Vous aurez noté que si QGIS permet une visualisation des données sous forme de cercles proportionnels, cela reste peu adapté à la production de cartes, notamment à cause de l'absence de légende.

Une partie de la carte en cercles proportionnels

Représenter des variables relatives à des surfaces : cartes choroplèthes

Une carte choroplèthe est une carte en aplats de couleurs. Les régions sont colorées selon une mesure statistique telle que la densité de population ou le revenu par habitant. Ce type de carte ne peut donc être utilisé pour représenter des quantités ou des effectifs. Les variables continues doivent être discrétisées pour produire des classes.

Créer un champ de densité de population

La première étape consistera pour nous à créer un champ densité de population, rempli en fonction de la population et la surface.

Ouvrez la table attributaire de COMMUNE, passez en mode édition et ouvrez la calculatrice de champ.

Calculez dans un nouveau champ nommé densite de type décimal la densité de population en nombre d'habitants par km².

Par exemple ( "POPULATION" * 1000 ) / ( "SUPERFICIE" / 100 ), ou encore ( "POPULATION" * 1000 ) / ( $area / 1000000 )

Quittez le mode édition.

Faire varier la couleur des communes en fonction du champ densité

Maintenant que ce champ est créé et à jour, il est possible de faire varier la couleur des communes en fonction de la densité.

Pour faire varier la couleur des communes en fonction de la densité :

Propriétés de la couche COMMUNE → rubrique Style

Choix des paramètres du style pour une carte choroplèthe en 5 classes par la méthode des quantiles

Sélectionnez le style Gradué en fonction de la colonne densite.

Choisissez un nombre de classes et une méthode de discrétisation.

Cliquez sur Classer et appliquez les changements.

Pour un meilleur rendu, vous pouvez supprimer les bordures des communes en cliquant sur Modification... puis sur Remplissage simple → Style de la bordure → Pas de ligne.

Pour voir l'effectif de chaque classe, clic droit sur le nom de la couche → Montrer le décompte des entités.

Testez différents modes de discrétisation et nombres de classes.

Exemple de carte choroplethe : 5 classes, méthode des quantiles, dégradé de bleu

Représenter des quantités ou des effectifs : cartes en semis de points

Une carte en semis de points permet, à partir d'un maillage surfacique, de représenter des quantités ou effectifs par des points placés aléatoirement au sein de chaque polygone. Le nombre de ces points est proportionnel à la quantité ou l'effectif lié au polygone.

Nous allons créer ces points aléatoires en fonction du champ POPULATION. Ce champ étant décimal avec un chiffre après la virgule, nous allons le multiplier par 10 pour obtenir des nombres entiers (il n'est pas possible de créer 0,7 points dans un polygone...).

Ajoutez un champ nommé POP10, de type entier, égal à 10 fois le champ POPULATION. N'oubliez pas de quitter le mode édition une fois l'opération terminée.

Pour créer les points aléatoires :

menu Vecteur → Outils de recherche → Points aléatoires menu Vecteur, Outils de recherche, Points aléatoires

Fenêtre de création des points aléatoires
  • Couche en entrée : COMMUNE
  • Taille d'échantillon : utiliser la valeur du champ POP10
  • Fichier de sortie : cliquez sur Parcourir, sélectionnez l'emplacement et tapez le nom de la couche qui sera créée : points_aleatoires_communes par exemple
  • Ajouter le résultat au canevas de la carte
  • OK, patientez, l'opération est un peu longue... et fermez la fenêtre une fois terminé.

Ajustez le style de la couche, par exemple à l'échelle du pays :

paramètres de représentation de la couche de points
Exemple de carte en semis de points

Nous avons vu ici trois manières de représenter une même donnée : la population des communes. Il en existe beaucoup d'autres. Il est difficile de terminer cette partie sans citer au moins deux références pour ceux qui souhaitent en savoir plus sur la sémiologie graphique :

  • Sémiologie graphique: Les diagrammes - Les réseaux - Les cartes de Jacques Bertin
  • Pratiques de la cartographie d'Anne Le Fur

Dans le chapitre suivant, nous aborderons la mise en page de cartes afin par exemple de pouvoir les intégrer dans un article : ajout d'un titre, d'une légende... et export au format image ou vectoriel. L'export au format vectoriel vous permettra de retravailler la carte dans un logiciel de dessin vectoriel.

X.2 Mettre en page une carte

Une fois vos données représentées de manière satisfaisante, il peut être utile d'en faire une carte. Cette partie n'a pas pour but d'expliquer les bonnes et mauvaises pratiques en matière de cartographie, mais se bornera à décrire quelques fonctionnalités du mode mise en page de QGIS.

L'exercice consistera ici à mettre en page une carte de la densité de population par communes (carte choroplèthe) en France.

Préparation de la mise en page

Commencez par ajouter toutes les couches dont vous avez besoin, et supprimez toutes les couches inutiles.

Choisissez le style de chacune des couches.

N'oubliez pas également de choisir un SCR adapté pour votre projet (projeté si vous souhaitez créer une échelle en mètres par exemple) (cf. Modifier le SCR du projet).

Mise en page : le composeur d'impression

Le mode mise en page se nomme composeur d'impression dans QGIS. C'est dans le composeur d'impression que vous pourrez ajouter une échelle, un titre etc. à votre carte.

Menu Projet → Nouveau composeur d'impression Menu Projet, Nouveau composeur d'impression

Tapez un titre, par exemple densité communes.

Le principe du composeur d'impression est simple : l'onglet Composition permet de fixer les paramètres de la page (format A4, paysage ou portrait...), et l'onglet Propriétés de l'objet les paramètres de l'objet actuellement sélectionné.

Créer une carte sur une page au format de votre choix

La première étape consiste à déterminer les dimensions de la page dans l'onglet composition. S'il s'agit d'une figure destinée à être intégrée dans un rapport, vous pouvez très bien choisir une taille personnalisée, par exemple 15 x 15 cm.

Dans l'onglet Composition → Options du papier, choisissez Personnalisation au lieu de A4. Fixez ensuite la largeur et la hauteur à 150 mm.

Fixer la taille de la page dans le composeur

icône zoom sur l'emprise totale du composeurPour zoomer sur votre page : cliquez sur l'icône Zoom sur l'emprise totale (ou menu Vue → Zoom sur l'emprise totale).

icône ajouter une nouvelle carteCliquez ensuite sur l'icône Ajouter une nouvelle carte (ou menu Mise en page → Ajouter une carte).

Dessinez un rectangle n'importe où sur la page, de la taille que vous voulez. Puis rendez-vous dans l'onglet Propriétés de l'objet, rubrique Position et taille, et fixez X et Y à 0 et la largeur et hauteur à 150 mm pour que la carte coïncide avec la page.

Fixer l'emplacement et la taille de la carte sur la page

La carte ainsi créée est synchronisée avec les données visibles dans QGIS : si vous changer le style d'une des couches dans la fenêtre principale de QGIS et revenez au composeur, la carte aura été mise à jour (si besoin en cliquant sur le bouton actualiser).

icône déplacer le contenu de l'objetPour centrer la carte : cliquez sur l'icône Déplacer le contenu de l'objet et faites glisser le contenu de la carte.

Pour zoomer et dézoomer : modifiez l'échelle dans les propriétés de la carte.

Fixer l'échelle de la carte

Paramétrer la légende

Il existe de nombreuses possibilités pour paramétrer la légende. Elles ne seront pas toutes passées en revue ici, mais n'hésitez pas à explorer par vous-même !

icône ajouter une nouvelle légendePour ajouter une légende : icône Ajouter une nouvelle légende, puis cliquez n’importe où sur la carte.

La légende reprend celle de la couche dans QGIS : si vous modifiez les étiquettes de la légende dans la propriété de la couche, la légende du composeur prendra en compte ces modifications.

Dans la fenêtre principale de QGIS, ouvrez les propriétés de la couche, rubrique Style. Vous pouvez :

  • Modifier les bornes des classes en double-cliquant sur une ligne dans la colonne valeur
  • Modifier l'étiquette des classes en double-cliquant sur une ligne dans la colonne étiquette
Modifier les bornes des classes et leurs étiquettes dans les propriétés de la couche

icône sélectionner/déplacer un objetRevenez ensuite dans le composeur et cliquez sur votre légende avec l'outil Sélectionner / Déplacer un objet.

Ces modifications seront directement prises en compte dans la légende si la case Mise à jour auto est cochée. Cette case présente néanmoins l'inconvénient de ne pas vous donner la main sur la légende ; si vous la décochez, vous pourrez changer l'ordre des couches, en ajouter et en supprimer... grâce aux icônes situées sous la légende, et mettre à jour leur légende en cliquant sur le bouton Tout mettre à jour.

Rubrique objets de légende dans les propriétés de la légende

icône d'édition des objets de légendeVous pouvez également modifier les étiquettes directement dans la légende, en cliquant sur une ligne puis sur le bouton d'édition.

Voici une dernière astuce (à vous d'en trouver d'autres !) pour faire un retour à la ligne, dans le titre par exemple. Dans la case Activer le retour à la ligne après, tapez un caractère dont vous ne vous servez habituellement pas, par exemple $. Ce caractère ne sera pas représenté mais provoquera un retour à la ligne.

Dans la case Titre, tapez le titre souhaité pour votre légende, avec un $ quand vous souhaitez passer à la ligne : Densité population$nb habitants / km² par exemple.

Exemple de titre de légende avec un retour à la ligne

Le $ provoquera également une retour à la ligne pour les autres objets de la légende (étiquettes, nom de la couche...).

N'hésitez pas à explorer les autres rubriques des propriétés de la légende.

Un exemple de légende :

Exemple de légende pour la densité de population

Paramétrer l'échelle

icône ajouter une nouvelle échelle graphiquePour ajouter une échelle : outil Ajouter une nouvelle échelle graphique puis cliquez sur la carte.

Comme pour la légende, il est possible de régler assez finement les différents paramètres de cette échelle.

Par exemple, si vous voulez une échelle en Km, indiquez d'abord l'unité des de votre projet : le mètre (votre projet doit utiliser un SCR projeté), puis tapez 1000 dans la case Unités de carte par unité de l'échelle graphique.

Paramétrer les unités de l'échelle

Vous pouvez également régler le nombre de segments de l'échelle, et la largeur du trait :

Paramétrer le nombre de segments de l'échelle

Différents styles d'échelle peuvent être choisis dans la rubrique Propriétés principales de l'échelle :

Paramétrer le nombre de segments de l'échelle

Voici quelques exemples d'échelle :

Exemple d'échelle simple Exemple d'échelle simple Exemple d'échelle simple

Ajout d'éléments supplémentaires : titre, logo, flèche nord...

icône ajouter une étiquettePour ajouter du texte, par exemple un titre, les sources, l'auteur... : outil Ajouter une nouvelle étiquette.

Dans les propriétés de cet objet, vous pouvez ensuite modifier le texte, la police, la couleur...

Si vous voulez ajouter une image, par exemple un logo : outil Ajouter une image puis dessinez un rectangle sur la page.

Dans les propriétés principales, choisissez ensuite une image sur votre ordinateur :

Choix d'une image

Par convention, le Nord est situé en haut de votre carte. Ajouter une flèche Nord si tel est bien le cas n'est donc pas indispensable et peut même alourdir inutilement votre carte et donc nuire à sa lisibilité.

Peut-être avez-vous néanmoins besoin d'une flèche Nord, par exemple si le Nord n'est pas en haut de votre carte ?

Dans ce cas, utilisez également l'outil Ajouter une image et choisissez comme image un symbole de flèche Nord. Pour cela, vous pouvez utiliser la bibliothèque de symboles de QGIS, dans la rubrique Rechercher dans les répertoires.

Choix d'un symbole de fleche nord à partir de la bibliotheque de symboles

Il est possible d'ajouter de nouveaux symboles au format SVG à cette bibliothèque, au moyen du bouton Ajouter...

Pour synchroniser votre flèche Nord avec votre carte, afin que cette flèche indique toujours le Nord : cocher la case Synchroniser avec la carte dans la rubrique Image rotation.

synchroniser la fleche nord avec la carte

Pour régler la rotation de la carte, dans les propriétés principales de la carte (toujours dans le composeur), réglez le paramètre Rotation de la carte.

Vous pouvez également ajouter une deuxième carte à votre page, qui servira par exemple de carte de situation.

Ajouter une carte, réglez son emprise et son échelle, et allez dans la rubrique Aperçu des propriétés de cette carte, pour visualiser l'emprise de votre première carte :

reglage de l'aperçu pour voir l'emprise de la 1ère carte sur la 2ème

Il peut être nécessaire de choisir les bonnes couches pour une des cartes dans QGIS, mettre à jour cette carte dans le composeur puis cocher la case Verrouiller les couches pour cette carte avant de faire la même chose pour l'autre carte.

De manière générale, si vous avez plusieurs cartes, la manière la plus facile de les gérer est peut-être de créer un groupe de couches par carte dans QGIS, quitte à dupliquer certaines couches.

exemple : une carte de France, avec en haut une petite carte d'Europe et un rectangle correspondant à l'emprise de la carte de France

Exporter la carte

Vous êtes satisfait de votre carte ? Voici venu le moment de l'exporter !

Vous pouvez soit l'exporter au format image (PNG, JPG) pour l'intégrer directement dans un rapport par exemple, soit l'exporter au format vectoriel SVG ou PDF pour la retravailler dans un logiciel de dessin type Inkscape ou Adobe Illustrator. Vous pouvez également l'imprimer directement !

Pour exporter au format image : vous pouvez tout d'abord paramétrer la résolution à laquelle votre carte sera exportée : onglet Composition, Options du papier :

choix d'une résolution de 300 dpi pour l'export

On considère généralement qu'une résolution de 300 dpi est suffisante pour une impression. Pour en savoir plus sur ce qu'est la résolution d'une image : http://fr.wikipedia.org/wiki/R%C3%A9solution_%28imagerie_num%C3%A9rique%29

icône Exporter comme une imagePour ensuite exporter votre mise en page au format image : à partir du composeur, menu Composeur → Exporter comme image...

De nombreux formats sont disponibles : PNG, JPEG, TIFF, EPS...

icône Exporter au format SVGPour exporter au format SVG : à partir du composeur, menu Composeur → Exporter au format SVG...

icône ImprimerPour imprimer la carte : à partir du composeur, menu Composeur → Imprimer... ou bien Ctrl + P

L'export au format SVG peut poser quelques problèmes, en particulier pour gérer la transparence. L'export au format PDF peut parfois être plus pratique pour ensuite retoucher la carte dans un logiciel de dessin.

Un exemple de carte réalisée dans QGIS :

exemple d'une carte de densité de population dans QGIS

A noter également, l'existence d'un module permettant la génération d'atlas (il s'agit du troisième onglet dans le composeur d'impression). Ce module est décrit dans le manuel QGIS, ou bien ici (en anglais).

Sauvegarder une mise en page

Dans QGIS, les mises en page sont sauvegardées dans les projets QGS. Pour sauvegarder votre mise en page, il vous suffit donc de sauvegarder votre projet.

Dans la fenêtre principale de QGIS, rendez-vous dans le menu Projet → Sauvegarder sous....

Choisissez un emplacement : dossier TutoQGIS_10_Representation/projets par exemple, et un nom : carte_densite_01 par exemple.

XI. Automatisation de traitements

Cette onzième partie vous permettra d'aller plus loin dans votre utilisation de QGIS. Le but est ici de voir comment automatiser des traitements sous QGIS : par exemple, au lieu de découper une couche par une autre au moyen de l'outil découper, vous avez 30 couches à découper par une même autre.

Nous allons utiliser 3 méthodes différentes pour cela.

Notions abordées :

  • Exécution d'un outil "par lot"
  • Modeleur de traitement (graphical modeler)
  • script Python

Les données pour cette partie ainsi qu'une version PDF du tutoriel sont accessibles dans la rubrique téléchargement.

 

 

 

X.1 Traitement de base pour une seule couche

Il s'agit ici d'un rappel de la manipulation à effectuer pour découper une couche par une autre ; c'est ce traitement que nous allons ensuite automatiser.

Lancer QGIS et ouvrir le projet visualisation.qgs situé dans TutoQGIS_11_automatisation/projets.

Vérifier que toutes les couches aient bien le même SCR.

Pour découper la couche de routes par la commune : menu Vecteur → Outils de géotraitement → Découper

Fenêtre de l'outil Découper

Une nouvelle couche est créée, qui ne contient que les portions de routes à l'intérieur de la commune.

XI.2 Exécuter un outil « par lot »

L'outil de découpage utilisé en XI.1 est accessible via le menu vecteur. Vous pouvez également utiliser la version disponible dans la boîte à outils Traitements. Cette boîte à outils rend accessible un grand nombre d'algorithmes, issus de QGIS ou d'autres logiciels SIG ou de télédétection, tels que Grass, SAGA, OrfeoToolbox...

Pour activer cette boîte à outils : menu Traitement → Boîte à outils menu Traitement, boîte à outils .

L'outil QGIS Clip se trouve dans Géotraitements QGIS → Vector overlay tools.

Outil clip dans la boîte à outils Traitements

Vous pouvez également taper Clip dans la partie Rechercher en haut de la boîte à outils.

Il peut être plus pratique de choisir le mode Advanced interface dans la liste déroulante en bas de la boîte.

Si vous double-cliquez sur l'outil pour le lancer, une fenêtre similaire à celle utilisée en XI.1 s'ouvre (fermez cette fenêtre sans lancer l'outil).

Il est également possible d'utiliser l'outil en mode « par lot » : clic droit sur Clip, Exécuter par lot. Dans la fenêtre qui s'ouvre, chaque ligne correspond à une instance de l'outil. Chaque colonne correspond à un paramètre : la 1ère colonne à la couche en entrée, la 2ème à la couche de découpage (masque), la 3ème à la couche qui sera créée.

Pour remplir chacune des colonnes :

  • Input layer : cliquer sur les de la première ligne → Sélectionner depuis les couches ouvertes Sélection de couches en mode par lot et cochez les 4 couches OSM à découper (si ces couches n'étaient pas chargées dans QGIS, utiliser l'option Sélectionner depuis le système de fichiers).
  • Clip layer : comme précédemment, cliquer sur les de la première ligne → Sélectionner depuis les couches ouvertes et cocher SAINTE_RADEGONDE. La première ligne est maintenant remplie. Pour remplir toutes les lignes de manière identique : double-cliquez sur l'en-tête de colonne Clip layer.
  • Clipped : cliquer sur les , rendez-vous dans le dossier où vous voulez créer les nouvelles couches, tapez decoupe_.shp et positionnez le curseur entre le « _ » et le « . » et cliquer sur Enregistrer Enregistrement de couches en mode par lot . Dans la fenêtre suivante : choisir Remplir avec les valeurs du paramètre, Input Layer, afin que le nom de chaque couche qui sera créée soit complété par le nom de la couche OSM de départ.

Au final, vous devez obtenir quelque chose de similaire à ceci :

Traitement par lot : fenêtre avec paramètres complétés

Cliquer sur Run, patienter… Les 4 couches sont créées et ajoutées à QGIS. Il est possible qu'elles soient toute nommées « Clipped ». Dans ce cas, vous pouvez les supprimer et les rajouter.

Tous les outils de la boîte Traitements sont exécutables par lot.

XI.3 Construire et utiliser un modèle

 

Les modèles sont surtout utiles pour chaîner plusieurs traitements. Par exemple, imaginons que notre but soit non seulement de découper une couche par une autre, mais ensuite de changer le SCR de la couche découpée pour la passer en WGS84 par exemple. Il est possible de créer un modèle enchaînant les deux outils.

Dans la boîte à outils Traitements, rubrique Modèles puis Outils, double-cliquez sur Créer un nouveau modèle.

Emplacement de l'outil de création de modèles dans la boîte à outils Traitements

La fenêtre qui s'ouvre comporte une partie à gauche avec 2 onglets, Entrées et Algorithmes, qui vont vous servir à créer le modèle, et une partie vide à droite où votre modèle sera représenté.

Notre modèle comportera 2 paramètres en entrée : une couche vecteur qui sera découpée et une couche vecteur qui servira de masque de découpe. L'outil de découpage va utiliser ces deux paramètres en entrée pour créer une nouvelle couche temporaire. Cette couche temporaire sera utilisée comme paramètre d'entrée pour l'outil de reprojection, qui produira la couche finale.

Création d'un modèle

Création du premier paramètre en entrée : couche à découper

Dans l'onglet Entrées, double-cliquez sur Vector layer :

Fenêtre du modeleur de traitement
Fenêtre de définition d'un paramètre
  • Nom du paramètre : input layer
  • Type de forme : N'importe lequel, puisque cette couche peut aussi bien être de type point, ligne ou polygone
  • Requis : oui, ce paramètre est obligatoire

Le paramètre est ajouté au modèle sous forme d'une boîte violette. Vous pouvez éditer ses caractéristiques en cliquant sur l'icône de crayon de cette boîte.

Création du deuxième paramètre en entrée : masque de découpe

Dans l'onglet Entrées, double-cliquez à nouveau sur Vector layer :

Fenêtre de définition d'un paramètre
  • Nom du paramètre : mask layer
  • Type de forme : polygone
  • Requis : oui, ce paramètre est obligatoire

Création du premier algorithme : découpage

Dans l'onglet Algorithmes, double-cliquez sur l'outil Clip (Géotraitements QGIS → Vector overlay tools → Clip) :

Fenêtre du modeleur, onglet algorithmes
Fenêtre de définition d'un algo
  • Description : Clip
  • Couche en entrée : input layer
  • Couche de découpage : mask layer
  • Découpé<OutputVector> : ne rentrez rien dans cette partie, pour que la couche créée soit temporaire

L'algorithme apparaît sous forme d'une boîte blanche ; de même, vous pouvez éditer ses caractéristiques en cliquant sur l'icône de crayon de cette boîte.

Création du second algorithme : modification du SCR

Toujours dans la fenêtre du modeleur de traitement, onglet Algorithmes, double-cliquez sur l'outil Reproject layer (Géotraitements QGIS → Vector general tools → Reproject layer) :

Fenêtre de définition d'un algo
  • Description : Reproject layer
  • Couche en entrée : 'Découpé' créé par l'algorithme 'Clip'
  • Target CRS : laissez EPSG:4326, ce qui correspond au WGS84
  • Reprojected<OutputVector> : result

Enregistrement et édition du modèle

Vous devriez obtenir quelque chose de similaire à ceci :

Fenêtre du modeleur avec le modèle terminé

Pour sauvegarder ce modèle, tapez d'abord son nom en haut à gauche de la partie droite de la fenêtre (clip and project par exemple) et le nom de son groupe en haut à droite de la partie droite de la fenêtre (tests par exemple).

Cliquez ensuite sur l'icône de disquette et sauvegardez le modèle dans le répertoire par défaut : processing/models dans le dossier qgis. Notez que les modèles ont l'extension .model.

Pour éditer un modèle à partir de la boîte à outils de traitements, clic droit sur son nom, Editer modèle.

Editer un modèle à partir de la boîte à outils Traitements

Application

Découpage et reprojection d'une couche

L'objectif est de découper une couche de routes par une commune, pour ne garder que les routes à l'intérieur de cette commune, la couche obtenue devant être en WGS84.

Ajoutez à QGIS les couches OSM_routes et SAINTE_RADEGONDE situées dans le dossier TutoQGIS_11_Automatisation/donnees.

Les 2 couches sont en RGF93 Lambert 93, code EPSG 2154 (cf. partie II.3.2 : SCR d'une couche ).

Lancer le modèle clip and project : vous pouvez soit cliquer sur l'icône d'engrenages du modeleur de traitement si ce modèle est en cours d'édition, soit à partir de la boîte à outils traitements : Modèles → tests → clip and project.

fenêtre du modele clip and project, paramètres remplis
  • input layer : OSM_routes
  • mask layer : SAINTE_RADEGONDE
  • result : cliquez sur les ..., choisir Enregistrer dans un fichier..., choisir l'emplacement et nommez la future couche OSM_route_radegonde_wgs84
  • cochez la case Ouvrir le fichier en sortie après l'exécution de l'algorithme pour que la couche soit automatiquement ajoutée à QGIS
Vérifiez le SCR de la couche obtenue, ainsi que son contenu : elle ne doit comporter que les routes à l'intérieur de la commune de Sainte-Radégonde (en gris foncé dans la figure ci-dessous).
résultat de la découpe : les 2 couches de route et la couche de commune

Découpage et reprojection de plusieurs couches (utilisation « par lot »)

Le but est ici de découper et reprojeter plusieurs couches, sans avoir à lancer plusieurs fois le modèle.

A partir de la boîte à outils de traitements, clic droit sur le modèle clip and project, Exécuter par lot. Remplissez les différents paramètres, en vous aidant éventuellement de la partie XI.2.

remplissage des paramètres de l'outil clip and project en mode par lot

Vérifiez les couches obtenues.

XI.4 Comprendre et lancer un script Python

 

Chaque manipulation que nous faisons dans QGIS via l'interface graphique (ajouter une couche, découper une couche etc.) peut également être faite sous forme d'une ligne de commande dans le langage Python.

Par exemple, pour ajouter la couche SAINTE_RADEGONDE.shp, située dans le dossier /mnt/travail/temp, vous pouvez soit l'ajouter à la main comme nous l'avons fait jusqu'ici, soit taper la commande Python suivante :

qgis.utils.iface.addVectorLayer("/mnt/travail/temp/SAINTE_RADEGONDE.shp", "SAINTE_RADEGONDE", "ogr")

Ce qui revient à lancer l'outil d'ajout de couche vecteur addVectorLayer de QGIS, avec 3 paramètres :

  • l'emplacement de la couche : /mnt/travail/temp/SAINTE_RADEGONDE.shp
  • le nom avec lequel la couche sera affichée dans QGIS : SAINTE_RADEGONDE
  • le nom du fournisseur de données : ogr car QGIS utilise en interne une bibliothèque nommée ogr pour accéder aux shapefiles

Nous allons ici ouvrir un script Python existant qui découpe et reprojette en WGS84 toutes les couches shapefiles présentes dans un même dossier. Sans rentrer dans le détail, nous verrons comment est constitué ce script, comment le paramétrer et le lancer.

Lancer une commande Python dans QGIS

Rendez-vous dans le menu Extension → Console Python.

La console s'ouvre en bas de la fenêtre de QGIS. Dans cette console, vous pouvez taper des commandes Python qui seront exécutées une à une.

Tapez print ('hello !') en bas de la console :

test de la console : taper une commande

Puis appuyez sur la touche entrée. Vous devriez voir votre commande, suivie du résultat, en haut de la console :

test de la console : taper une commande

Vous venez d’utiliser la commande Print, qui permet d'afficher du texte dans la console. Vous pouvez également tester la commande citée plus haut pour ajouter une couche vecteur :

qgis.utils.iface.addVectorLayer("/mnt/travail/temp/SAINTE_RADEGONDE.shp", "SAINTE_RADEGONDE", "ogr")

En adaptant le chemin vers la couche.

Il est possible de travailler uniquement en lançant ainsi des commandes une à une ; seulement, les commandes utilisées ne seront pas sauvegardées et ne pourront donc être réutilisées sans tout retaper à la main (même s'il est possible de faire défiler les dernières commandes utilisées en appuyant sur la touche flèche haut du clavier).

Ouvrir un script Python

Pour sauvegarder et réutiliser facilement votre travail, le plus simple est d'utiliser ce qu'on appelle un script. Il s'agit simplement d'un fichier texte comportant une suite de commandes, et qui porte l'extension PY puisqu'il s'agit d'un script Python.

Cette formation n'étant pas une formation Python, nous nous contenterons d'ouvrir un script existant plutôt que d'en créer un nous-mêmes.

Pour ouvrir un script : cliquez sur l'icône Afficher l'éditeur de la console : l'éditeur de script s'ouvre.

icône afficher l'éditeur dans la console Python

icône d'ouverture de fichier de l'éditeur PythonDans l'éditeur, cliquez sur l'icône Ouvrir fichier (celle du haut) et allez chercher le script clip_and_reproject.py situé dans TutoQGIS_11_Automatisation/scripts.

N'hésitez pas à agrandir la partie consacrée à la console dans QGIS, au détriment de la fenêtre de visualisation des données.

Lisez le contenu du script. Les lignes commençant par un # sont des commentaires : leur contenu ne sera pas pris en compte, ils sont uniquement utiles pour mieux comprendre le script.

L'objectif n'est pas de comprendre dans le détail tout ce que fait ce script, mais de comprendre globalement ce qui s'y passe, notamment au moyen des commentaires. Il s'agit ici d'un script faisant le même travail que le modèle que vous avez réalisé en XI.3 en mode par lot, à savoir découper plusieurs couches par une même couche et reprojeter les couches obtenues en WGS84.

Paramétrer le script

Au début du script, vous trouverez ces lignes :

lignes du script correspondant aux paramètres en entrée

Il s'agit des paramètres en entrée et sortie du script :

  • input folder : le dossier où sont situées les couches à découper
  • mask layer : la couche qui servira de masque de découpe
  • output folder : le dossier où seront enregistrées les couches créées

A vous de modifier ces paramètres suivant l'emplacement des données sur votre ordinateur !

Sur Windows, les chemins seront de la forme 'C:/…' par exemple.

Lancer le script

icône exécuter le scriptPour lancer le script, cliquez sur l'icône Exécuter le script en bas de l'éditeur (il est possible que cette icône soit masquée et qu'il faille agrandir la console pour la voir apparaître).

Vérifiez que tout ait bien fonctionné.

Quelles modifications apporter au script pour que :

Ligne 57, remplacer 'EPSG:4326' par 'EPSG:27572'. Vous pouvez également remplacer ligne 55 '_wgs84.shp' par '_ntfl2.shp' (il s'agit du suffixe qui sera ajouté au nom de la nouvelle couche).

Dans la boîte à outils de traitements → géotraitements QGIS → Vector Overlay To

 

 

Commentaires

  • cleaning services

    1 cleaning services Le 12/07/2018

    When you are feeling time-starved, emphasized, and busy to receive your dwelling cleaner, let a friendly service personnel from Aside from Cleaning Company do a person's cleaning. There's really no better preference than united states, we have most extensive house carpet cleaners in Corpus Christi, ARIZONA. Our cleaning up team is there to dust; vacuum plus detail cleanse every room of your abode. We can supply daily, daily, or bi-weekly service-choose what is best suited for for you actually. Let united states handle expertly the of always keeping your Corpus Christi dwelling clean cleaning services

Ajouter un commentaire

Anti-spam