Couper l'image raster augmente la taille du fichier

9

Travailler avec QGIS 2.4.0 Chugiak J'ai une question concernant l'écrêtage d'images raster. J'ai une photo aérienne que je souhaite découper en utilisant l'étendue d'un fichier de formes. Jusqu'ici tout va bien, j'ai utilisé l'outil raster / extraction / clipper pour ce faire. Le problème est que la taille du fichier de mon raster en sortie est presque trois fois plus grande que le fichier d'origine (c'est-à-dire 725,283 et 249,693 ko respectivement), alors qu'elle couvre une surface plus petite.

Pourquoi mon fichier est-il plus grand? Et existe-t-il un moyen de «définir» la taille du fichier de sortie?

La fonction d'aide de clipper se réfère à la page suivante: http://www.gdal.org/gdal_translate.html Bien que je ne puisse pas en tirer grand-chose.

Je suis relativement nouveau sur QGIS.

Mathijs
la source
Habituellement, cela signifie que l'original est compressé mais que le tiff tronqué n'est pas compressé. Vous devez lire sur le pilote GDAL GeoTIFF et les options de compression.
user30184
Si vous souhaitez utiliser la compression sur votre jeu de données de sortie, vous devez modifier la commande, comme indiqué au bas de l'interface du clipper, et incorporer les options de création avec l' -coindicateur. Pour un GeoTiff, vous pouvez par exemple inclure l' -co compress=lzwutilisation d'une compression LZW sans perte. Nous aurions besoin d'en savoir plus sur votre jeu de données pour pouvoir vous aider (par exemple via gdlainfo).
Kersten
Les images TIFF non compressées sont généralement plus rapides.
Zoltan
Merci à tous pour les réponses. Cela peut en effet être un problème de compression, je n'y avais pas pensé. Oui Kersten, j'ai remarqué la console dans l'interface de tondeuse, bien que je n'ai pas compris comment l'utiliser. J'essaie d'exécuter gdalinfo à partir de la console Python dans QGIS mais je n'ai aucune expérience avec cela. Quelqu'un connaît-il un tutoriel approprié pour me familiariser? Santé
Mathijs
Vous pouvez aller à Raster > Miscellaneous > Informationavoir gdalinfoexécuté sur votre fichier raster. Vous ne pouvez pas l'exécuter directement depuis la console Python car ce n'est pas un script Python.
bosth

Réponses:

6

Lorsque vous exécutez l'outil de découpage raster dans QGIS, il vous montre la commande GDAL exacte qui sera exécutée dans la section inférieure de la boîte de dialogue.

Outil de découpage raster

En cliquant sur le bouton du stylet à droite de la commande, vous pouvez le modifier directement et ajouter une option de configuration de compression. Dans mon exemple, voici la commande de démarrage:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff /tmp/453A.tif /tmp/output.tif

Vous pouvez changer cela pour être:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff -co "COMPRESS=LZW" /tmp/453A.tif /tmp/output.tif

L'extra -co "COMPRESS=LZW"n'est qu'une des nombreuses options de compression possibles que vous pouvez utiliser avec les fichiers GeoTIFF. La documentation GDAL contient plus d'informations sur toutes les options.

bosth
la source
Merci beaucoup, c'était exactement ce dont j'avais besoin. Le fichier fait toujours 409.019 ko, donc presque le double de l'original, mais le rendu est beaucoup plus rapide. Ce site Web que j'avais vu mais je ne pouvais pas le comprendre beaucoup. Gdalinfo a montré que la compression était en effet «cochée» pour le premier clip, donc c'était bien le problème.
Mathijs
Lorsque vous exécutez gdalinfo, que signale-t-il pour la compression? Nous devrions pouvoir le répliquer dans le deuxième fichier une fois que nous le savons. Je suppose que ce pourrait être JPEG avec perte s'il est considérablement plus petit que LZW.
2015
Voici ce que cela dit pour l'image d'origine: 'Taille de pixel = (0,000738433000001, -0,000738432999949) Métadonnées: AREA_OR_POINT = Métadonnées de la structure d'image de zone: COMPRESSION = LZW INTERLEAVE = PIXEL' et c'est ce qui est indiqué pour l'image découpée: 'Taille de pixel = (0.000738423955088, -0.000738437979722) Métadonnées: AREA_OR_POINT = Métadonnées de structure d'image de zone: COMPRESSION = LZW INTERLEAVE = PIXEL '
Mathijs
Est-il possible que vous ayez accidentellement obtenu les métadonnées pour la même image deux fois, car les deux sont identiques?
2015
Ce n'est pas le cas, regardez la taille des pixels;)
Mathijs
0

Mise à jour pour les versions 3 et supérieures de QGIS: l'option de compression est désormais intégrée dans le plugin Raster-> Extraction-> Clip raster by mask layeret dans la plupart des autres plugins qui produisent des fichiers raster.

Sous Advanced parameters-> Profile, la sélection de Low compressionou High compressiondonnera un fichier plus petit.

Ces options de compression sont sans perte, mais vous pouvez également choisir des options avec perte:

  • Low compression -> -co PACKBITS(sans perte)
  • High compression-> -co DEFLATE(sans perte)
  • JPEG compression-> -co JPEG_QUALITY=75(avec perte: attention!)

Raster de clip par couche de masque

RafDouglas
la source