Suite

Créer un GeoTIFF compressé avec l'outil QGIS Clipper ?


J'ai un géo-tiff créé par Pix4D qui fait environ 375 Mo de taille de fichier.

Je l'ai découpé dans une zone plus petite à l'aide de Qgis 2.8 (en utilisantRaster ‣ Extraction ‣ Clipper) et la taille du fichier de sortie est d'environ 900 Mo.

Pourquoi le processus de découpage a-t-il généré un fichier aussi volumineux, alors que le fichier source était plus petit ?

Comment exécuter l'outil de coupe pour qu'il produise une taille plus petite ?


L'outil Clipper crée une image non compressée par défaut. Lisez le manuel GDAL de votre format et ajoutez manuellement les options de compression dans la commande gdal_translate qui s'affiche dans le volet inférieur.

Par exemple pour GeoTIFF lisez http://gdal.org/frmt_gtiff.html et utilisez par exemple-co COMPRESS=DEFLATE -co PREDICTOR=2ce qui donne une sortie bien compressée et sans perte pour les cartes topographiques.

Si vous pensez qu'il serait trivial d'ajouter des options de compression à l'interface utilisateur de l'outil Clipper, ce n'est pas parce que plus de 30 formats sont pris en charge pour la sortie et tous ont des paramètres de compression différents si la compression est prise en charge.


QGIS utilise gdal_translate pour découper le raster et la sortie standard est un géo-tiff non compressé. Le fichier Tiff, cependant, peut être compressé en utilisant, généralement, l'un des deux algorithmes de compression standard. Le premier est LZW et le second est JPEG.

Pour définir la compression dans le module clipper de QGIS, cliquez sur le crayon jaune pour activer la modification de la ligne de commande au bas de la boîte de dialogue et ajoutez l'option de création suivante

-co COMPRESS=JPEG

Vous disposez d'autres options de compression en fonction de votre format de sortie et de vos données. Ceux-ci inclus:COMPRESS=[JPEG/LZW/PACKBITS/DEFLATE/CCITTRLE/CCITTFAX3/CCITTFAX4/NONE]mais je vous recommande de jeter un œil à la documentation GDAL GeoTiff ici.

Une autre alternative simple à l'édition de la ligne de commande consiste simplement à utiliser un JPEG (le cas échéant - voir la documentation).


Deflate et LZW ne fonctionnaient pas pour moi. J'ai sélectionné la compression jpeg et ajouté : : -co PHOTOMETRIC=YCBCR -co TILED=YES Cela a finalement fonctionné ! Voici l'article sur lequel je me suis basé :

http://blog.cleverelephant.ca/2015/02/geotiff-compression-for-dummies.html


assurez-vous que le plugin gdalTools est installé

allez dans "Menu raster -> Conversion -> Traduire"

vous verrez une case à cocher pour "option de création", cela vous permettra de sélectionner une compression. Ce lien montre une comparaison de l'algorithme de compression sans perte pris en charge, mais les performances peuvent dépendre de l'image.

Si vous souhaitez le faire d'un coup dans le clipper, vous pouvez saisir vos paramètres manuellement et ajouter les options dans la ligne de commande qui apparaît en bas du clipper en cliquant sur l'icône crayon. Ces options doivent être ajoutées avant les noms des rasters en entrée et en sortie.

pour la compression : -co COMPRESS=LZW ou -co COMPRESS=DEFLATE pour les compressions sans perte

pour bigtif (si vous dépassez 4Go) : -co BIGTIFF=YES

pour les images en mosaïque (recommandé) : -co TILED=YES

pour éviter une profondeur de bits inutile, utilisez Byte si vos données peuvent être codées en [0-255] : -ot {Octet/Int16/UInt16/UInt32/Int32/Float32/Float64/CInt16/CInt32/CFloat32/CFloat64}


La compression peut être responsable d'une partie de la taille, mais la raison principale est le format de sortie de l'algorithme.

Je parle de byte , integer, float. Quel que soit le type de votre jeu de données, après certains algorithmes, comme raster-clip, le format de sortie est automatiquement défini sur flottant. Cela conduit à l'augmentation de la taille du fichier, même si l'étendue est plus petite. Vous devez reconvertir l'effusion avec "gdal:translate" au format qui convient à votre ensemble de données. Et vous devez choisir la valeur "noData" en fonction du type de données. Par exemple, l'octet, le plus petit format possible, n'a que des nombres de 0 à 255. Ainsi, la valeur noData ne peut pas être définie sur -9999 et doit être égale à 0 ou plus. Sinon, le format revient automatiquement à un nombre entier et vos données de sortie redeviennent plus volumineuses.


Voir la vidéo: How to clip shapefile on Arcgis (Octobre 2021).