Lors de l’écriture d’un raster, surtout en THR (très haute résolution), il est important de compresser au maximum les images pour avoir des fichiers qui soient gérables. Il est important d’avoir en tête que certaines compression se font avec une perte de qualité, et d’autres sans perte. Si l’on veut simplement faire de la visualisation, on peut se permettre un peu de perte, par contre pour du traitement ou pour des données type MNT, on ne voudra aucune perte d’information.
Toutes ces histoires de compression sont bien expliquées sur ce blog http://blog.cleverelephant.ca/2015/02/geotiff-compression-for-dummies.html
Tuilage
Possibilité de tuiler (daller) pour permettre de gérer des trop grosses images. C’est parfois indispensable, par exemple si l’on passe au dela de 20 à 30000 pixels de large pour une image.
On pourra consulter pour plus d’infos cette page https://sigeo.cerege.fr/?p=116
Le BigTIFF et les tuiles internes
le GeoTIFF permet la gestion de très grosses images avec un système de tuilage interne. Tout est donc stocké dans 1 fichier TIFF.
Pour les images >= 4Go, il faudra les écrire en BigTiff.
Parfois cela est réalisé automatiquement par l’application qui va écrire l’image. Si l’on utilise GDAL, il est préférable de le signifier explicitement avec l’option “-co BIGTIFF=YES”
pour forcer l’écriture des tuiles en interne, c’est avec l’option -co TILED=YES
exemple de commande avec ces 2 options: gdal_translate im_in.tif im_out.tif -co BIGTIFF=YES -co TILED=YES
Compression sans perte de qualité
par exemple pour un MNT ou de l’imagerie que l’on veut garder intacte, j’utilise la compression avec DEFLATE
ex . gdal_translate dem_in.tif dem_out.tif -co COMPRESS=DEFLATE
Compression avec perte de qualité
on peut utiliser la compression JPEG pour réduire efficacement la taille des images multi-canaux en 8 bits (ne fonctionne pas pour les images 16 ou 32 bits) :
gdal_translate \
-co COMPRESS=JPEG \
-co PHOTOMETRIC=YCBCR \
-co TILED=YES \
input.tif output.tif
Le stockage en JPEG est encore plus performant dans l’espace de couleurs YCBCR.
Pour des images en 16 ou 32 bits, on utilisera LZW ou PACKBITS pour la compression avec perte de qualité.
Compression des pyramides raster
Les pyramides permettent d’accélérer l’affichage en créant des aperçus selon les niveaux de zoomes choisis. Ici la perte de qualité n’est pas un problème car c’est simplement pour l’affichage, et la donnée originale n’est pas altérée.
Les pyramides peuvent être stockées dans un fichier séparé (format OVR), ce qui est en général préférable pour plus de clarté, ou en interne dans un GeoTiff.
exemple de pyramides pour de l’imagerie 8 bits :
gdaladdo \
--config COMPRESS_OVERVIEW JPEG \
--config PHOTOMETRIC_OVERVIEW YCBCR \
--config INTERLEAVE_OVERVIEW PIXEL \
-r average \
-ro \
im_input.tif \
2 4 8 16 32
pour un MNT (16 ou 32 bits en général), on fera plutôt avec du DEFLATE ou du LZW
gdaladdo -ro --config COMPRESS_OVERVIEW LZW dem_input.tif 2 4 8 16 32 64
Références
Compression pour dummies : http://blog.cleverelephant.ca/2015/02/geotiff-compression-for-dummies.html
Format GeoTifff : https://gdal.gloobe.org/gdal/formats/gtiff.html
Format Geotiff : https://www.gdal.org/frmt_gtiff.html
gdaladdo pyramides : https://www.gdal.org/gdaladdo.html