Le raster est un bitmap. Comme pour une image, l’information est encodée sous forme de grille de pixels.
Image bitmap et raster désigne la même chose. Le bitmap est technique, le raster est conceptuel. Une image bitmap peut être la source d’un raster, et un raster peut être stylisé pour donner un rendu qui est en soi une image.
Le raster géographique est une converture rectangulaire dans la projection employée où l’on encode une ou plusieurs valeurs (les bandes
) pour chaque point selon un quadrillage régulier.
La résolution d’un raster s’exprime par taille du pixel
, soit la distance géographique entre 2 points, en X et en Y (résolutions X et Y, qui sont souvent égales). On a par exemple : 1 000 m/px
(1000 mètres par pixel).
Les points en raster ont une épaisseur
, contrairement aux vecteurs. Un pixel représente une surface.
Le SIG permet d’interroger le raster : en cliquant sur un point, on obtient les valeurs du pixel correspondant.
La couverture d’un raster est régulière. Autrement dit, aucun point ne manque. Pourtant, l’information peut manquer pour certains points. Par exemple, lorsque les limites de l’étude ne sont pas rectangulaire, ou lorsque la donnée n’a pas de sens partout. Dans ces cas là, on choisit une valeur, la moins ambigue possible, qui signifiera pas de valeur
.
Pour éviter tout ambiguité, on choisit comme no data un valeur inférieure à la valeur minimale ou une valeur supérieure à la valeur maximale de toutes les valeurs présentes dans le raster.
Par exemple, pour un modèle numérique de terrain (valeurs d’altitude), un no data
de -1
convient si aucune altitude est négative. Dans le cas contraire (terrains en dessous du niveau de la mer), on devra descendre
la valeur plus bas dans les négatifs.
Le modèle numérique de terrain (en Anglais DEM
pour Data Elevation Model
) est un cas typique de raster. Pour chaque point du raster, la valeur représente l’altitude moyenne du carreau
Il s’agit de raster à une seule bande, qu’on se représente comme une grille de valeurs .
Notez que le MNT 75 m se télécharge au format 7Z sur le site de l’IGN (les autres résolutions étant au format ZIP) et le raster est divisé en dalles de 75 km de côté (une seule nous intéresse). Si le format 7Z pose problème, n’hésitez pas à nous en faire part.
Avec QGIS, nous allons ouvrir récupérer la BD ALTI de l’IGN pour interroger le raster afin de connaître l’altitude des certains points donnés d’après des coordonnées GPS.
QGIS génère alors un style par défaut pour ce raster uni-bande : un dégradé linéaire du noir au blanc suivant la valeur minimale à maximale
Les orthophotographies sont issues de photos prises par avion ou par drone. Pour être exploitables, elles ont subi un minutieux travail de rectification géométrique (pour la superposition sur la carte), ajustement des couleurs (pour qu’il n’y ait pas de rupture entre 2 photos adjacentes). Elles deviennent alors des orthophotographies en étant géoréférencées.
Dans ce cas, on manipule bien des couleurs sources, contrairement au MNT qui contient des altitudes (nombres) où la couleur n’existe qu’en tant que style. Pour encoder des couleurs dans un raster, il y a 2 approches :
Les orthophotographies utilsent la seconde méthode car les couleurs se veulent réalistes : chaque bande est sur 1 octet, donc 3 octets sont utilisés pour chaque point, pour 16 millions de couleurs possibles (2 puissance (3 x 8 bits) = 16 777 216 , avec 2 car c’est du binaire et 8 car un octet fait 8 bits). En comparaison, la palette 8 bits encode sur 1 octet par point, pour 256 couleurs possibles (2 puissance 8 ).
Dans QGIS, c’est dans Propriétés de la couche- → Style que se définit la méthode de style.
Il faut pour cela activer l’extension OpenLayers : aller dans le menu Extension- → Installer/Gérer les extensions puis chercher et instaler l’extension OpenLayers Plugin
Une fois l’extension installée, se rendre menu Internet- → OpenLayers plugin- → Google- → Google Maps- → Google Satellite .
Si rien n’apparaît, zoomer, voire, cliquer du bouton droit sur la couche Google Satellite et Zoomer sur la couche (puis zoomer à nouveau avec la molette). Vérifier si nécessaire qu’aucune autre couche cache Google Satellite .
Cette couche est spéciale : elle est l’oeuvre d’une extension et ne peut s’afficher qu’en arrière-plan. Elle n’a pas de fenêtre de propriétés. Sa projection est le WGS 84 Pseudo-Mercator (EPSG:3857).
Précédemment, nous avons vu que :
image(l’information est la couleur) peut s’encoder par 3 bandes rouge-vert-bleu ;
à la voléeplusieurs rasters source.
Le format Raster Virtuel
de GDAL permet également de référencer des rasters distants derrière un lien HTTP. Mais cela va plus loin : on peut référencer des rasters infinis
lorsqu’il est composé de dalles accessible par une URL fonction du numéro de colonne, de ligne et de zoom (X, Y, Z).
Ainsi la cartographie OpenStreetMap est accessible via l’adresse suivante, pour tout X , Y et Z valides :
http://tile.openstreetmap.org/Z /X /Y .png
OpenStreetMap
est une cartographie libre du monde fruit d’une collaboration mondiale, sorte de Wikipédia de la cartographie
. C’est avant tout un immense jeu de données vectoriel, mais un rendu graphique d’usine
est également proposé (voir : openstreetmap.org
).
Nous souhaitons ajouter le fond OpenStreetMap à notre projet QGIS, pour mieux se repérer sur le territoire. Pour cela, nous avons besoin du fichier de Raster Virtuel qui symbolise la référence dynamique vers le service OpenStreetMap.
Attention : éditeur de texte ≠ traitement de texte !
Un traitement de texte est évolué et gère des documents et du formattage. Le XML en revanche est un texte brut : il ne pourrait pas être plus brut : c’est un fichier à l’état pur
. Le bloc-note simple est un éditeur de texte, Notepad++
en est un autre.
Pour vérifier la validité du fichier XML, on peut l’ouvrir dans le navigateur Web.
Ouvrir un éditeur de texte et enregistrer les lignes suivantes dans un fichier nommé openstreetmap.xml :
http://tile.openstreetmap.org/${z}/${x}/${y}.png
-20037508.34
20037508.34
20037508.34
-20037508.34
18
1
1
top
EPSG:3857
256
256
3
Le Géoportail, comme la carte OpenStreetMap et d’autres cartographies web interactives, sont visualisables à travers des pages web. La technologies et les fonctionnalités importent peu, du moment que l’on a, à un instant donné, une carte visible à l’écran. Une capture d’écran est donc facile pour enregistrer des portions de carte.
Nous obtenons alors un fichier PNG. Le JPEG ne convient pas car son algorithme de compression est fait pour la photographie : les pertes sont trop visible dans le cas de tracés fins à l’échelle du pixel. Le GIF quant à lui travaille avec des palettes, ce qui ne garantit pas la préservation des couleurs.
Le fichier PNG est une simple
image bitmap (non vectorielle
) qui doit être géoréférencée pour devenir un raster géographique.
Contrairement à un plan scanné ou photographié (que nous traiterons ci-après), une capture d’écran de carte n’a pas besoin d’être corrigée ou déformée : il faut simplement lui donner une position et une échelle géographique.
Comme toujours, ces unités n’ont de sens que dans une projection donnée (relation nécessaire entre la carte qui est un plan et le monde qui est une sphère imparfaite). Il faut géoréférencer la capture dans la projection d’origine de la carte.
Découvrir la projection de la carte se fait :
L’opération de géoréférencement consiste à produire un raster géographique à partir d’une image bitmap. Le Géoréférenceur de QGIS est un outil simple permettant d’ouvrir la carte PNG et poser des points avec leur correspondance en coordonnées géographiques. On peut évidemment cliquer sur la carte pour définir les coordonnées.
Ceci permet des déformations complexes qui seront abordées plus bas. Pour un géoréférencement linéaire, 2 points suffisent pour établir la position et l’échelle. Nous savons en outre que nulle rotation ne sera effectuée tant que le nord est bien le haut
de l’écran.
En sortie, le géoréférenceur produit un fichier GeoTIFF. Le GeoTIFF est une image TIFF qui contient les données de géoréférencement en tant que métadonnées, ce qui en fait le format de choix pour les rasters.
Nous voulons exploiter une carte mais celle-ci est papier, donc sous forme de photo, scan ou documents PDF contenant une carte imprécise.
En préalable, il faut découper la région de la carte en éliminant si possible la décoration, pour ne pas gêner quand on la superposera dans QGIS avec un fond de carte.
Il peut être souhaitable de corriger la luminosité et le constraste dans un logiciel de retouche photo. Le logiciel libre le plus populaire s’appelle GIMP (Fichier- → Ouvrir puis menu Couleurs- → Courbes .
Le principe est le même qu’avec une capture : il faut géoréférencer l’image. Mais cette fois, ce n’est pas linéaire car il faut au minimum corriger en rotation le scan ou la photo. Pour une photo, la déformation est plus complexe : effet de trapèze, focale, etc.
Pour ce faire, on ajoutera autant de points de correspondance nécessaires à l’algorithme choisi.
L’algorithme Helmert déformera l’image autant que nécessaire pour faire correspondre exactement les points de contrôle définis. C’est au départ ce qu’on cherche, mais cela donne beaucoup d’importance aux points (corollaire de la liberté offerte)
Les polynomiales de degrés 1, 2, 3 sont souvent plus efficaces car la déformation d’une photo obéit souvent à une ces équations mathématiques (polynome de degré 2 sinon 3).
Il faut souvent faire différents essais pour obtenir le meilleur géoréférencement possible. Les réflexes viennent ensuite.
Depuis le canvas de la carte. Au pire, on peut supprimer le point de la liste avec le bouton droit puis supprimer
respectés
démarrer(ou menu Fichier- → Lancer le géoréférencement )
ne répondent pluset sont grisées. Il faut seulement patienter.
conforterl’algorithme sur le quartier.
Ce sont des formats textes. Il est intéressant d’en vérifier la structure interne pour la démystifier et comprendre la logique raster. En effet, la relative simplicité de ces formats (comparée à celle de format binaires compressés comme le JPEG) aide à comprendre comment le raster encode l’information en amont de la représentations et éviter la confusion entre raster et image.
Le format ASC se définit par une grille de valeurs séparées par des espaces. Chaque ligne représente un Y donné et chaque Ne valeur sur la ligne un X donnée.
En quelque sorte, c’est un CSV qu’on pourrait ouvrir dans un tableaur si on enlève les premières lignes du fichier qui constituent l’en-tête de géoréférencement.
Voici par exemple à quoi ressemble l’île d’Ouessant dans l’éditeur de texte :
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 41 0 0 0 0 0 0 0 0 0
0 0 0 0 0 19 26 26 34 35 0 0 0 0 0 0 0 0 0
0 0 0 0 19 30 10 23 29 35 23 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 22 0 17 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
nuage de points 2D
Le format XYZ est texte aussi mais prend une approche différente : chaque point est présent sur une ligne avec ses coordonnées X , Y puis les valeurs des bandes successives. Il est donc plus lourd que l’ASC.
Voici un extrait du MNT de la France métropolitaine. Sur chaque ligne, on a une coordonnée X puis Y suivie de la valeur d’altitude :
630000 7101000 0
631000 7101000 1
632000 7101000 2
633000 7101000 5
634000 7101000 5
635000 7101000 5
636000 7101000 5
637000 7101000 4
638000 7101000 5
639000 7101000 3
640000 7101000 5
Cet outil d’histogramme est basique et ne calcule pas les statistiques telles que la médiane, l’écart-type ou la moyenne.
Le GeoTIFF est un fichier TIFF qui contient des informations de géoréférencement.
Le plan géoréférencé précédemment (paris_tardieu_1839 ) est au format GeoTIFF. Pour obtenir diverses informations :
Le format GIF (Graphics Interchange Format) gère les couleurs par palette de 256 couleurs maximum par fichier. Ces 256 couleurs sont libres. Ainsi, quand on enregistre une image en GIF, le logiciel de retouche photo génère la palette la plus adéquate pour l’image.
Cette limitation dégrade fortement des images photo, mais les fichiers GIF sont en revanche légers. Un fond de carte IGN, par exemple peut être enregistré en GIF car en tant que dessin légendé
, le nombre de couleurs employées est limité et inférieur à 256.
Le GIF permet la transparence, mais en tout ou rien : les dégradés de transparence (semi-transparence) ne sont pas gérés donc un pixel et soit 100 % ou 0 % transparent.
En tant que raster, le GIF a une bande unique : les index de couleurs , qui renvoient à la palette. Quand une image GIF est chargée dans QGIS, celui-ci génère un style à base de palette, laquelle est extraite du fichier pour faire partie du style de la couche.
qui respecte le pixel
Le format PNG (Portable Network Graphics) permet à la fois des couleurs en palette de 256 couleurs, à la fois de couleurs réelles RVB, en 24 bits habituel et même jusqu’à 48 bits par pixel.
Le PNG permet la transparence comme le GIF ainsi que les dégradés de transparence.
Sa compression est sans pertes ! L’algorithme utilisé est proche de celui du ZIP, adapté pour mieux fonctionner avec les images.
En tant que raster, le PNG a 4 bandes : les composantes rouge, vert et bleu ainsi que la transparence . En effet, le PNG permet des dégradés de transparence, on n’a donc plus une seule valeur interprétée comme no data mais une bande à part entière pour définir la transparence de chaque pixel, entre 0 % et 100 %.
La compression JPEG suit le principe du MP3 pour la musique : l’oeil et l’oreille humains ont une sensibilité particulière et irrégulière du phénomène physique. Ces algorithmes s’appuient sur ces propriétés pour économiser des octets d’information.
L’oeil humain et plus sensible aux contrastes. La forte présence d’une couleur altère la perception relative des autres couleurs, de la même façon qu’un bruit fort et sec en musique diminue la perception des harmoniques, qui n’ont alors plus besoin d’êtres encodés avec autant de précision que si elles étaient isolées.
Le JPEG ne convient donc pas, en général, pour des captures d’écran et plus généralement les images où le pixel a un sens
, car l’altération se remarque alors fortement. Au contraire, le sens d’une photographie n’est pas dans le pixel mais dans ses contrastes (image de la réalité visuelle). En revanche, le JPEG est 2 à 3 fois plus léger en poids que le PNG, laissant le choix du compromis entre poids et qualité.
En fait, le JPEG ajoute à cette méthode de compression une compression sans perte, comme le ZIP. Pour cette raison il est inutile de compresser en ZIP un fichier JPEG car l’économie de taille a déjà été faite.
En tant que raster, le JPEG a 3 bandes : les composantes rouge, vert et bleu.
Contrairement au GeoTIFF, les formats GIF, PNG et JPEG ne permettent pas d’intégrer les informations de géoréférencement. Pour cela, il existe une méthode interopérable : le World File.
Le World File est un fichier supplémentaire, reprenant le nom du fichier image, avec une extension différente avec la lettre W :
Inutile de mémoriser ces conventions : retenons simplement que le World File est ce fichier très léger avec le W
qui accompagne l’image pour lui donner sa référence géographique : il est automatiquement reconnu par QGIS lors de l’ajout de la couche et automatiquement généré quand on enregistre un raster en GIF, PNG ou JPEG.
Le fichier World File contient 6 lignes, 6 nombres qui définissent la relation polynomiale entre les coordonnées de l’image (unités pixels ) et celles du raster (en unités cartographiques).
Exemple de World File indiquant une résolution de 1.8069238 et les coordonnées du coin supérieur-gauche (X = 265042 , Y = 6250675 . La résolution Y est négative car l’image va de haut en bas quand le repère géographique va du sud au nord :
1.80692380652128493
0
0
-1.80692380652128493
265042.27579408587189391
6250675.4523934768512845
Par curiosité, on peut enregistrer la carte visible de QGIS en raster PNG (Fichier- → Enregistrer comme image ) nommé carte.png puis ouvrir le World File carte.pngw dans un éditeur de texte. La fonctionnalité Enregistrer comme image sera exploitée dans le module Rasters, partie 2 .