Das Ausschneiden eines Rasterbilds erhöht die Dateigröße

9

Arbeiten mit QGIS 2.4.0 Chugiak Ich habe eine Frage zum Ausschneiden von Rasterbildern. Ich habe ein Luftbild, das ich mit den Ausmaßen eines Shapefiles ausschneiden möchte. So weit so gut, ich habe das Raster / Extraktions / Clipper-Tool verwendet, um dies zu tun. Das Problem ist, dass die Dateigröße meines Ausgabe-Rasters fast dreimal größer ist als die der Originaldatei (dh 725,283 bzw. 249,693 KB), während sie eine kleinere Oberfläche abdeckt.

Warum ist meine Datei größer? Und gibt es eine Möglichkeit, die Größe der Ausgabedatei festzulegen?

Die Hilfefunktion von clipper bezieht sich auf die folgende Seite: http://www.gdal.org/gdal_translate.html Obwohl ich nicht viel daraus machen kann.

Ich bin relativ neu in QGIS.

Mathijs
quelle
Normalerweise bedeutet dies, dass das Original komprimiert ist, das abgeschnittene TIFF jedoch nicht komprimiert ist. Sie müssen sich über den GDAL GeoTIFF-Treiber und die Komprimierungsoptionen informieren.
user30184
Wenn Sie die Komprimierung für Ihr Ausgabedatensatz verwenden möchten, müssen Sie den Befehl wie unten in der Clipper-Oberfläche gezeigt bearbeiten und die Erstellungsoptionen in das -coFlag integrieren. Für einen GeoTiff können Sie beispielsweise -co compress=lzwdie verlustfreie LZW-Komprimierung verwenden. Wir müssten jedoch mehr über Ihren Datensatz wissen, um Ihnen helfen zu können (zum Beispiel über gdlainfo).
Kersten
Unkomprimierte TIFF-Bilder sind normalerweise schneller.
Zoltan
Vielen Dank an alle für die Antworten. Dies kann in der Tat ein Komprimierungsproblem sein, daran hatte ich nicht gedacht. Ja Kersten Ich habe die Konsole in der Clipper-Oberfläche bemerkt, obwohl ich nicht herausgefunden habe, wie man das benutzt. Ich versuche, gdalinfo über die Python-Konsole in QGIS auszuführen, habe jedoch keine Erfahrung damit. Kennt jemand ein geeignetes Tutorial, um mich vertraut zu machen? Prost
Mathijs
Sie können gehen, Raster > Miscellaneous > Informationum gdalinfoIhre Rasterdatei ausgeführt zu haben . Sie können es nicht direkt über die Python-Konsole ausführen, da es sich nicht um ein Python-Skript handelt.
Boston

Antworten:

6

Wenn Sie das Rasterclip-Tool in QGIS ausführen, wird der genaue GDAL-Befehl angezeigt, der im unteren Bereich des Dialogfelds ausgeführt wird.

Rasterclip-Tool

Durch Klicken auf die Stiftschaltfläche rechts neben dem Befehl können Sie ihn direkt bearbeiten und eine Komprimierungskonfigurationsoption hinzufügen. In meinem Beispiel ist dies der Startbefehl:

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

Sie können dies folgendermaßen ändern:

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

Das Extra -co "COMPRESS=LZW"ist nur eine von vielen möglichen Komprimierungsoptionen, die Sie mit GeoTIFF-Dateien verwenden können. In der GDAL-Dokumentation finden Sie weitere Informationen zu allen Optionen.

bosth
quelle
Vielen Dank, das war genau das, was ich brauchte. Die Datei ist immer noch 409.019 kb groß, also fast doppelt so groß wie das Original, aber das Rendern ist viel schneller. Diese Website hatte ich gesehen, aber ich konnte nicht viel davon verstehen. Gdalinfo hat gezeigt, dass die Komprimierung für den ersten Clip tatsächlich "abgehakt" wurde, also war dies tatsächlich das Problem.
Mathijs
gdalinfoWas wird beim Ausführen für die Komprimierung gemeldet? Wir sollten in der Lage sein, es in der zweiten Datei zu replizieren, sobald wir es wissen. Ich vermute, dass es verlustbehaftetes JPEG sein könnte, wenn es erheblich kleiner als LZW ist.
bosth
Dies ist, was es für das Originalbild sagt: 'Pixelgröße = (0,000738433000001, -0,000738432999949) Metadaten: AREA_OR_POINT = Bereichsbildstruktur Metadaten: COMPRESSION = LZW INTERLEAVE = PIXEL' und dies ist, was es für das abgeschnittene Bild sagt: 'Pixelgröße = (0,000738423955088, -0,000738437979722) Metadaten: AREA_OR_POINT = Bereichsbildstruktur Metadaten: COMPRESSION = LZW INTERLEAVE = PIXEL '
Mathijs
Ist es möglich, dass Sie versehentlich zweimal die Metadaten für dasselbe Bild erhalten haben, da beide gleich sind?
bosth
Sie sind nicht, schauen Sie sich die Pixelgröße an;)
Mathijs
0

Update für QGIS-Versionen 3 und höher: Die Komprimierungsoption ist jetzt im Plugin Raster-> Extraction-> Clip raster by mask layerund in den meisten anderen Plugins, die Rasterdateien erstellen, integriert.

Wählen Sie unter Advanced parameters-> Profileentweder Low compressionoder aus High compression, um eine kleinere Datei zu erhalten.

Diese Komprimierungsoptionen sind verlustfrei, Sie können jedoch auch verlustbehaftete Optionen auswählen:

  • Low compression -> -co PACKBITS(verlustfrei)
  • High compression-> -co DEFLATE(verlustfrei)
  • JPEG compression-> -co JPEG_QUALITY=75(verlustbehaftet: Vorsicht!)

Clip-Raster nach Maskenebene

RafDouglas
quelle