Recortar imagen ráster aumenta el tamaño del archivo

9

Trabajando con QGIS 2.4.0 Chugiak Tengo una pregunta sobre el recorte de imágenes ráster. Tengo una imagen aérea que quiero recortar usando la extensión de un archivo de forma. Hasta ahora todo bien, utilicé la herramienta raster / extracción / clipper para hacer esto. El problema es que el tamaño del archivo de mi ráster de salida es casi tres veces mayor que el archivo original (es decir, 725.283 y 249.693 kb respectivamente), mientras que cubre una superficie más pequeña.

¿Por qué mi archivo es más grande? ¿Y hay alguna forma de 'establecer' el tamaño del archivo de salida?

La función de ayuda de Clipper se refiere a la siguiente página: http://www.gdal.org/gdal_translate.html Aunque no puedo sacarle mucho provecho.

Soy relativamente nuevo en QGIS.

Mathijs
fuente
Por lo general, significa que el original está comprimido pero el tiff recortado no está comprimido. Debe leer sobre el controlador GDAL GeoTIFF y las opciones de compresión.
user30184
Si desea utilizar la compresión en su conjunto de datos de salida, debe editar el comando, como se muestra en la parte inferior de la interfaz de clipper, e incorporar las opciones de creación con el -coindicador. Para un GeoTiff, podría incluir, por ejemplo, -co compress=lzwemplear una compresión LZW sin pérdidas. Sin embargo, necesitaríamos saber más sobre su conjunto de datos para poder ayudarlo (por ejemplo, a través de gdlainfo).
Kersten
Las imágenes TIFF sin comprimir suelen ser más rápidas.
Zoltan
Gracias a todos por las respuestas. Esto puede ser un problema de compresión, no había pensado en eso. Sí, Kersten, noté la consola en la interfaz de clipper, aunque no he descubierto cómo usar esto. Estoy tratando de ejecutar gdalinfo desde la consola de Python en QGIS pero no tengo experiencia con esto. ¿Alguien sabe de un tutorial adecuado para familiarizarme? Saludos
Mathijs
Usted puede ir a Raster > Miscellaneous > Informationhaber gdalinfoejecutar en el archivo de mapa de bits. No puede ejecutarlo directamente desde la consola de Python porque no es un script de Python.
bosth

Respuestas:

6

Cuando ejecuta la herramienta de recorte de trama en QGIS, le muestra el comando GDAL exacto que se ejecutará en la sección inferior del cuadro de diálogo.

Herramienta de clip de trama

Al hacer clic en el botón del lápiz a la derecha del comando, puede editarlo directamente y agregar una opción de configuración de compresión. En mi ejemplo, este es el comando de inicio:

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

Puedes cambiar esto para que sea:

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

El extra -co "COMPRESS=LZW"es solo una de las muchas opciones de compresión posibles que puede usar con los archivos GeoTIFF. La documentación de GDAL tiene más información sobre todas las opciones.

Bosth
fuente
Muchas gracias, eso fue exactamente lo que necesitaba. El archivo sigue siendo 409.019 kb, por lo que es casi el doble que el original, pero el procesamiento es mucho más rápido. Ese sitio web que había visto pero no podía entender mucho. Gdalinfo demostró que la compresión estaba 'marcada' para el primer clip, por lo que este era el problema.
Mathijs
Cuando corres gdalinfo, ¿qué reporta para la compresión? Deberíamos poder replicarlo en el segundo archivo una vez que lo sepamos. Supongo que podría ser JPEG con pérdida si es considerablemente más pequeño que LZW.
bosth
Esto es lo que dice para la imagen original: 'Tamaño de píxel = (0.000738433000001, -0.000738432999949) Metadatos: AREA_OR_POINT = Metadatos de estructura de imagen de área: COMPRESIÓN = LZW INTERLEAVE = PIXEL' y esto es lo que dice para la imagen recortada: 'Tamaño de píxel = (0.000738423955088, -0.000738437979722) Metadatos: AREA_OR_POINT = Metadatos de estructura de imagen de área: COMPRESIÓN = INTERVALO LZW = PIXEL '
Mathijs
¿Es posible que haya obtenido accidentalmente los metadatos de la misma imagen dos veces ya que ambos son iguales?
bosth
No lo son, mira el tamaño del píxel;)
Mathijs
0

Actualización para QGIS versiones 3 y posteriores: la opción de compresión ahora está integrada en el complemento Raster-> Extraction-> Clip raster by mask layer, y en la mayoría de los otros complementos que producen archivos ráster.

En Advanced parameters-> Profile, seleccionando Low compressiono High compressionproducirá un archivo más pequeño.

Estas opciones de compresión no tienen pérdidas, pero también puede elegir opciones con pérdidas:

  • Low compression -> -co PACKBITS(sin pérdidas)
  • High compression-> -co DEFLATE(sin pérdidas)
  • JPEG compression-> -co JPEG_QUALITY=75(con pérdida: ¡cuidado!)

Recortar ráster por capa de máscara

RafDouglas
fuente