Optimiser vos rasters et générer des mosaïques au format COG (Cloud Optimized GeoTIFF) avec GDAL#
Date de publication initiale : 11 février 2025
Introduction#
Les données Raster sont une composante majeure des référentiels de nos systèmes d'information géographique. Ces fichiers sont bien plus volumineux que des données vectorielles et sont parfois fragmentés en plusieurs dalles rendant son chargement laborieux. Lorsque ces données sont disponibles en flux WMS ou WMTS, alors leur consultation est plus aisée mais présente des limitations (pas de possibilité d'affiner la radiométrie, lenteur d'affichage, problème d'impression, etc.). Il est alors indispensable d'avoir une donnée en local ou sur le réseau de la structure.
C'est là que le COG (Cloud Optimized GeoTIFF) intervient pour simplifier la vie des géomaticiens. Ce type de GeoTIFF, optimisé par sa structure, facilite le traitement et la visualisation des données spatiales à grande échelle grâce à leur accessibilité rapide et leur structure efficiente. En effet, il ne va pas charger l'intégralité de l'image comme un GeoTiff classique mais "streamer" uniquement la partie qui vous intéresse. Sa compatibilité est excellente, si l'application n'est pas capable de tirer parti du pilote COG, le raster se comportera comme un GeoTIFF classique. C'est un vrai plus pour la portabilité et la diffusion des données. Pour en savoir plus, consultez le site officiel du projet. Conçus spécifiquement pour le cloud, les COG offrent de nombreux avantages sur d'autres environnements :
- Performance améliorée : affichage quasi-immédiat même sur des volumes importants évitant ainsi les frustrations liées aux lenteurs, que ce soit au bureau ou en télétravail.
- Données peu ou pas altérées(en fonction des options de compression choisies) : vous pouvez modifier la radiométrie, l'ordre des bandes, l'utiliser dans des processus de geotraitements, etc.
- Simplicité d'organisation : une seule image à charger, éliminant le besoin de VRT peu performant, la génération de pyramides et réduisant la gestion de nombreux fichiers
Dans cet article, nous aborderons les meilleures pratiques pour générer des COG avec GDAL, un outil essentiel des SIG. Certaines options n'étant pas encore disponibles dans QGIS, nous utiliserons donc la ligne de commande. Pas d'inquiétude : il s'agit toujours de la même base avec quelques variations et, même sans être un expert, vous vous en sortirez très bien (j'ai pu tester sur mes collègues et ils ont survécu).
Pré-requis#
Avant de commencer la génération de COG, assurez-vous de disposer des éléments suivants :
- GDAL Version 3.1 ou supérieure : vérifiez que votre installation de GDAL est à jour pour bénéficier des dernières améliorations et fonctionnalités spécifiques aux COG.
- Types de Raster appropriés : pour les données raster à une bande (comme les Modèles Numériques de Terrain - MNT ou d’Élévation - MNE), utilisez des fichiers au format TIF, ASC ou tout autre format compatible avec GDAL. Pour les rasters à trois bandes, les orthophotos sont particulièrement adaptées.
- Environnement Linux ou Windows : les commandes abordées ici ont été testées sur ces deux systèmes d’exploitation.
Précaution d'usage pour Windows
Si votre terminal ne vous trouve pas les commandes GDAL, indiquez le chemin complet jusqu'au binaire GDAL. Exemple avec celui intégré à votre installation de QGIS :
Sinon référez-vous à cet article Python et GDAL sur Windows ou à celui-ci.
Construction du VRT pour un raster à 1 bande#
Pour combiner plusieurs fichiers raster ASC en un VRT (Virtual Raster Tile), une étape nécessaire avant de générer le COG final, utilisez la commande suivante :
Détail des options :
-addalpha
: ajoute un canal alpha.-a_srs EPSG:2154
: définit le système de référence spatiale à utiliser.
Conversion en COG pour un raster à 1 bande#
Une fois le VRT construit, transformez-le en COG avec cette commande :
Aperçu du RGE ALTI® 1m à l'échelle des Hauts-de-France
Points clés#
- Resampling : utilisez
RESAMPLING=NEAREST
pour préserver l'intégrité des données. - Optimisation des performances : ajustez
NUM_THREADS
en fonction de la capacité de votre machine.
Volumétrie#
Mon COG sera plus léger que les données téléchargées, sauf si celles-ci sont déjà compressées. L'objectif est de préserver la donnée source tout en optimisant les performances d'affichage et de traitement. Voici quelques exemples de données assemblées et converties en COG pour la Région Hauts-de-France :
Données | Format source | Poids brut | Poids en COG |
---|---|---|---|
MNS correlés | TIF (compression LZW) | 241.4 Go | 235.5 Go |
RGE ALTI® | ASC | 206.3 Go | 48.2 Go |
Processus pour un raster à 3 bandes#
Conversion de JP2 en TIF#
Commencez par convertir chaque fichier JP2 en TIF en utilisant une boucle bash. Assurez-vous d'avoir créé un répertoire dédié pour les fichiers TIF :
- Taille des blocs :
BLOCKXSIZE
etBLOCKYSIZE
impactent les performances de lecture.
Construction du VRT pour un raster à 3 bandes#
Créez un VRT pour votre ensemble de données TIFF avec la commande suivante :
-hidenodata
: masque les cellules nodata, rendant les zones correspondantes transparentes.
Conversion du VRT en COG#
Générez le COG à partir du VRT :
- Compression JPEG : un bon compromis entre taille de fichier et qualité avec une
QUALITY
de 85. - Rééchantillonnage :
BILINEAR
pour un rendu visuel optimal dans les visualisations géospatiales.
Aperçu de la BD ORTHO® 2021 à l'échelle des Hauts-de-France :
Volumétrie#
Le format JP2 offre une compression efficace mais requiert un codec propriétaire, limitant son utilisation. Une licence est nécessaire pour des applications serveur. La conversion en COG améliore les performances et la polyvalence d'utilisation (SIG desktop, flux, traitements d'images, etc.), bien qu'au détriment de la taille. La compression JPEG, bien que destructrice, convient parfaitement aux orthophotos. La qualité visuelle reste suffisante, même pour l'impression ou le traitement d'image.
Données | Format source | Poids brut | Poids en COG |
---|---|---|---|
BD ORTHO® | JP2 (format compressé) | 30.7 Go | 60.5 Go |
PCRS Raster | TIF (ZSTD) | 20.1 To | 3.1 Go |
Cas particuliers et bonnes pratiques#
Découpe selon un contour#
Pour éliminer les pixels indésirables en bordure (non définis comme nodata), utilisez un shapefile d'emprise :
Conversion de JP2 en TIFF RVBA#
Pour convertir un JP2 en TIFF RVBA tout en préservant l’unité colorimétrique :
Considérations finales#
- Compression :
- Utilisez
JPEG
pour les fichiers RVB (3 bandes). - Préférez
DEFLATE
ouZSTD
pour les fichiers avec plus de 3 bandes ou en 16 bits.
- Utilisez
- Méthode de Rééchantillonnage :
BILINEAR
est idéal pour le rendu visuel.NEAREST
est recommandé pour les traitements analytiques afin de préserver l'intégrité des données.
En suivant ces bonnes pratiques, vous assurerez une génération efficace de COG, améliorant ainsi la manipulation et la visualisation de vos données spatiales quel que soit votre environnement.
Si vous souhaitez apporter votre expertise aux bonnes pratiques et astuces de GDAL et du COG, n'hésitez pas à contribuer à ce dépôt https://github.com/geo2france/cog-tips. Merci à Benjamin Chartier pour avoir proposé les commandes Windows.
Affichage dans QGIS#
Le format COG présente de nombreux avantages en termes de performance à l'affichage et, à l'instar de n'importe quel raster, il se consulte parfaitement dans QGIS.
S'il est disponible en flux WMS ou WMTS, c'est transparent pour vous, vous ne saurez pas que vous chargez un COG. NDLR : nous avons remarqué, sur Geo2France, une meilleure performance dans les temps de réponse de flux en utilisant une mosaique COG. Cela évite de devoir générer du cache tuilé consommateur d'espace disque (utile pour la sobriété numérique).
Un COG peut être publié via un simple serveur web HTTP(S), sans brique logicielle additionnelle comme MapServer, GeoServer ou QGIS Server. Il est disponible via une simple URL.
Pour le charger dans QGIS, rendez-vous dans le menu Raster , choisissez "Protocole HTTP(S), cloud, etc." et coller l'URL dans le champ URI
:
Envie de tester ? Collez l'URL suivante dans QGIS et chargez l'orthophoto IGN 2021 sur la région Hauts-de-France (~242.6 Go en quelques secondes ) :
Voici ce que cela donne dans QGIS :
Affichage dans des clients Web#
Le format COG offre une intégration optimale avec vos clients web préférés. Pour l'intégrer, il faudra consulter la documentation détaillée du projet qui vous fournira le code adapté. Pour vous inspirer, voici quelques liens vers de la documentation et des démonstrateurs :
- Les COG dans OpenLayers : documentation et démo
- Les COG dans MapLibre : documentation et démo
- Les COG dans Cesium : documentation et démo
- Les COG dans Giro3D : documentation, démo et démo
Affichage dans ArcGIS Pro#
Le COG est supporté dans ArcGIS Pro d'après cette documentation ... ... mais pas (encore ?) dans ArcGIS Online (source)
Auteur·ice#
Nicolas ROCHARD#
Je suis chef de projet data au sein de la Région Hauts-de-France pour la plateforme Geo2France. Je suis spécialisé dans la conception, la gestion et l’exploitation de données, avec un intérêt particulier pour celles liées à l’occupation du sol. Mon travail consiste à animer des groupes de travail collaboratifs, à structurer et mettre en avant des données de qualité, et à développer des outils pour leur valorisation et leur accessibilité.
Passionné par la philosophie open source, je contribue à divers projets, qu’ils soient liés aux systèmes d’information géographique (SIG) ou à d’autres domaines. Ces contributions reflètent mon engagement pour des solutions ouvertes, collaboratives et innovantes, qui favorisent le partage des connaissances et l’amélioration continue des pratiques. Cette expérience m’a également permis de promouvoir des outils collaboratifs et d’accompagner des équipes dans l’automatisation et l’industrialisation des traitements de données.
Licence #
Ce contenu est sous licence Creative Commons International 4.0 BY-NC-SA, avec attribution et partage dans les mêmes conditions, sauf dans le cadre d'une utilisation commerciale.
Les médias d'illustration sont potentiellement soumis à d'autres conditions d'utilisation.
Réutiliser, citer l'article
Vous êtes autorisé(e) à :
- Partager : copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
- Adapter : remixer, transformer et créer à partir du matériel pour toute utilisation, exceptée commerciale.
Citer cet article :
"Optimiser vos rasters et générer des mosaïques au format COG avec GDAL" publié par Nicolas ROCHARD sur Geotribu sous CC BY-NC-SA - Source : https://geotribu.fr/articles/2025/2025-02-11_bonnes-pratiques-generation-raster-cog-avec-gdal/
Commentaires
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.
Ce contenu est sous licence Creative Commons BY-NC-SA 4.0 International