J'ai un dossier de données SIG constitué principalement de fichiers GeoTIFF. L'ensemble entier pèse environ 1.2 GB
. J'ai remarqué que si j'emballe le contenu dans une archive, elle s'écrase à peu près 82 MB
. Je voudrais vérifier l'ensemble dans un système de contrôle de révision pour qu'il puisse être travaillé par d'autres personnes et il semble qu'il y ait un espace qui peut être réduit.
La page du pilote GDAL GeoTIFF répertorie de nombreuses options pouvant être utilisées pour créer des fichiers GeoTIFF compressés. Il existe également de nombreuses options qui affectent le fonctionnement de chaque algorithme.
La page d’aide décrit bien les options, mais n’indique pas comment sélectionner un algorithme ni les compromis associés au niveau de compression variable. Cela conduit aux questions suivantes:
Les avantages de la compression sont une économie d'espace considérable. Quels sont les inconvénients? Des informations sont-elles perdues lorsque l'image est compressée?
Comment choisir un algorithme et un niveau de compression? Certains types d'images se prêtent-ils à un certain algorithme?
la source
L' utilisation de la compression
lzw
et de ladeflate
compression-co predictor=2
peut aider à obtenir des images qui varient doucement, car elles réduisent les différences de pixel en pixel au lieu des valeurs absolues. Celles-ci auront tendance à être petites et à présenter davantage de motifs ( ref ). Predictor seulement utile aveclzw
et ladeflate
compression, l'option n'a pas d' effet avec d' autres méthodes.Les économies prévisionnelles peuvent être dramatiques. Je viens de recompresser un répertoire de modèles d'élévation géotiff 16 bits en utilisant jusqu'à 17 Go avec les paramètres par défaut de LZW dans seulement 5 Go avec un prédicteur = 2.
Il y a d' informations contradictoires sur les différences entre les prédicteurs 2 et 3 et quand chacun est mieux appliqué ( ref1 , ref2 ). Peut-être du carburant pour une autre question.
Une autre option facile pour économiser est
-co tiled=yes
. Il existe certains logiciels qui ne peuvent pas lire les images en mosaïque, mais ceux-ci deviennent de plus en plus rares et la plupart du temps en dehors des SIG (je ne connais aucun logiciel SIG de flux principal qui ne les lis pas).Pour donner suite à la réponse de @ alfonx qui consiste à utiliser des vues d' ensemble compressées : Cela permet de stocker l'image de base sans perte pour l'intégrité des données et les pyramides avec perte, pour la vitesse et un gain de place réduit. C'est presque le meilleur des deux mondes. Pour les aperçus les plus petits possibles avec
gdaladdo
des images RVB: utilisez la compression jpeg, le rééchantillonnage moyen ou gaussien à la place du plus proche voisin par défaut (rend les aperçus plus lisses) et l'aperçu photométrique YCBCR. Voir la page de référence de gdaladdo pour plus d’informations sur ces options (bien qu’elle ne dise pas grand-chose de ce qu’est la photométrie).Cela fait partie d'un fichier batch Windows que j'utilise pour appliquer des aperçus JPEG externes à tous les tiffs d'un répertoire:
Remarques
GDAL 1.6.0 a introduit le
gauss
ré-échantillonnage qui peut donner de meilleurs résultatsaverage
en cas d’arêtes vives avec un contraste élevé ou des motifs bruyants. Des puissances de 2 niveaux (2 4 8 ...) doivent être utilisées pour sélectionner un noyau gaussien rééchantillonnant 3x3.JPEG_QUALITY_OVERVIEW 85
- si non spécifié, la valeur par défaut de 75% est utilisée, ce qui produit un fichier plus petit, mais je trouve que 85% est un meilleur compromis entre la taille et la qualité.Mise à jour 2015: GDAL 1.8 et 2.0 ont introduit un grand nombre de nouvelles options non couvertes ici et que je n'ai pas eu le temps de digérer. Lisez la page officielle du format gtiff , je suis sûr que d’autres paramètres utiles sont détaillés.
la source
Pour les grands rasters, GeoTiff offre la possibilité de stocker des aperçus pré-réduits en tant qu'images supplémentaires dans le fichier GeoTiff. Cela peut être fait avec gdaladdo (= Vue d'ensemble de GDAL ADD). Lors de la création de ces aperçus, vous pouvez indiquer manuellement à gdal de les compresser également:
Accélère l'affichage de vos données sans ajouter trop de taille. Remarque: les applications Geotools telles que Geoserver, uDig, AtlasStyler et Geopublisher peuvent toutes utiliser cette fonctionnalité et tirer parti des aperçus.
la source
Pour activer la décompression d'image partielle, utilisez simplement TILED = YES.
Peter
la source
En fin de compte, vous devrez probablement expérimenter différentes options et voir ce qui répond à vos besoins.
J'utilise de plus en plus de GeoTIFF compressés en JPEG sur des formats basés sur des ondelettes. Mes résultats ont été plutôt bons. L'utilisation de GDAL à cette fin a permis d'obtenir des taux de compression comparables aux formats basés sur des ondelettes sans trop de perte de données. Les résultats obtenus avec la décompression sont acceptables.
Ce que j'aime le plus dans cette approche est que le support de GeoTIFF est presque universel, alors que le support des formats basés sur des ondelettes n'est pas toujours garanti et est parfois sujet à des problèmes de licence épineux.
la source
Mon expérience de la comparaison entre la compression ECW ( Enhanced Compressed Wavelet ) de Earth Resource Mapping de GeoTIFF et celle de Earth Resource Mapping est que ECW est bien mieux ordonné lors de la compression de photos aériennes à haute résolution. Un autre avantage important de la compression basée sur les ondelettes est que, contrairement aux formats plus anciens tels que GeoTIFF, JPEG - et non JPEG 2000 -, une partie seulement de l'image peut être décompressée [réf. 1]. L’importance de cet avantage ne doit pas être sous-estimée, en particulier lorsque vous travaillez avec "plus de la moitié de la taille de la mémoire de votre ordinateur".
Il semble - je n’ai jamais eu la chance de le tester - que MrSID , un autre format de fichier basé sur des ondelettes, propose également des taux de compression plus élevés que les formats "anciens" et une décompression sélective.
réf. 1: http://www.ifp.uni-stuttgart.de/publications/phowo01/Ueffing.pdf
la source
Les réponses de @dodobas et @ matt-wilkie couvrent presque tout ce qui concerne les actions de compression et de flou avec GDAL pour réduire la taille de l'image.
Je voudrais ajouter deux choses:
-co
), en particulier:COMPRESS
NUM_THREADS
PREDICTOR
ZLEVEL
Par exemple, GeoServer ne recommande pas de compresser les GeoTIFF :
Cela est particulièrement vrai si vous utilisez déjà des aperçus, une mosaïque et des supports de stockage hautes performances (disque de niveau entreprise ou SSD).
la source
Pour ceux qui utilisent des versions plus récentes de GDAL, il existe également les choix disponibles de compression ZStandard ( ZSTD ) sans perte (GDAL> = 2.3) et de compression LERC ( Lossy Limited Error Raster Compression ) avec perte.
En règle générale, cependant,
ZSTD
les vitesses de lecture des données sont plus rapides que les deuxLZW
etDEFLATE
avec des taux de compression similaires, bien que cela puisse être un peu plus lent lors de l’écriture du fichier (en fonction des paramètres que vous utilisez).Si la précision des données ne vous préoccupe pas vraiment (par exemple, vous ne faites que la visualisation plutôt que l’analyse), cela
LERC
pourrait être une bonne option. UnMAX_Z_ERROR
paramètre vous permet de modifier le degré de précision que vous êtes prêt à sacrifier. Par exemple, aMAX_Z_ERROR=0.001
ou 1mm confère un gain de place de 50% sur un repère (voir réf .).La meilleure partie est que vous pouvez également combiner
LERC
avecZSTD
utiliserCOMPRESS=LERC_ZSTD
! Ou si vous préférez utiliserDEFLATE
, vous pouvez le faireCOMPRESS=LERC_DEFLATE
. Voir aussi la liste complète des combinaisons / paramètres dans la documentation officielle de GDAL GeoTIFF https://gdal.org/drivers/raster/gtiff.html#creation-optionsVous trouverez plus de détails et des comparaisons complètes des points de référence sur cette précieuse référence:
la source