Saltar al contenido

¿Se debe configurar GDAL para producir archivos GeoTIFF con compresión? ¿Qué algoritmo se debe utilizar?

Esta sección fue evaluado por expertos para asegurar la exactitud de nuestra esta sección.

Solución:

Para seleccionar el método de compresión, debe usar un comando como:

gdal_translate -co "COMPRESS=method" src_dataset dst_dataset

Cuando usa la compresión, la mayor compensación es el tiempo de procesamiento adicional que se requiere para descomprimir la imagen, y después de descomprimir la imagen aún consumiría la misma cantidad de memoria. Sobre la pérdida de información existen dos tipos básicos de compresión:

  • sin pérdidas – que conservan los valores de los datos originales
  • con pérdida – que degradan los datos para ahorrar aún más espacio

Utilizaría algoritmos sin pérdida cuando se deban conservar los valores de datos originales, como DEM o entidades ráster. Algoritmos como PAQUETES, DESINFLAR y LZW son sin pérdidas y se pueden pedir según la relación de compresión:

  1. LZW: relación de compresión más alta, potencia de procesamiento más alta
  2. DESINFLAR
  3. PACKBITS: relación de compresión más baja, potencia de procesamiento más baja

La relación de compresión aún depende de los datos, si los datos tienen muchos valores similares, PACKBITS producirá buenos resultados.

Al contrario de sin pérdida, usaría algoritmos con pérdida como jpeg para comprimir rásteres que no tienen que devolver valores exactos. Por ejemplo, las ortofotos o las imágenes de satélite se pueden comprimir mediante algoritmos con pérdida.

Con lzw y deflate compresión usando -co predictor=2 puede ayudar con imágenes que varían suavemente a medida que comprime las diferencias de píxel a píxel en lugar de los valores absolutos, y estos tenderán a ser pequeños y tendrán más patrones (ref). Predictor solo es útil con lzw y deflate compresión, la opción no tiene efecto con otros métodos.

gdal_translate -co compress=lzw -co predictor=2 ...

Los ahorros predictores pueden ser dramáticos. Acabo de volver a comprimir un directorio de modelos de elevación geotiff de 16 bits utilizando hasta 17 GB con la configuración LZW predeterminada en solo 5 GB con predictor=2.

Hay información contradictoria sobre las diferencias entre los predictores 2 y 3 y cuándo se aplica mejor cada uno (ref1, ref2). Quizás combustible para otra pregunta.

Otra opción fácil para ahorrar es -co tiled=yes. Hay algunos programas que no pueden leer imágenes en mosaico, pero se están volviendo más raros y en su mayoría fuera de GIS (no conozco ningún software GIS de flujo principal ahora que no los lea).

Para aprovechar la respuesta de @alfonx de usar vistas generales comprimidas: esto permite que la imagen base se almacene sin pérdidas, para la integridad de los datos, y que las pirámides tengan pérdidas, por velocidad y algunos ahorros de espacio. Es casi lo mejor de ambos mundos. Para las vistas generales más pequeñas posibles con gdaladdo en imágenes RGB: use compresión jpeg, remuestreo promediado o gaussiano en lugar del vecino más cercano predeterminado (hace que las vistas generales sean más suaves) y vista general fotométrica YCBCR. Consulte la página de referencia de gdaladdo para obtener más información sobre estas opciones (aunque no dice mucho sobre la fotometría).

Esto es parte de un archivo por lotes de Windows que uso para aplicar vistas generales de jpeg externas a todos los tiff en un directorio:

set _opts= -r gauss --config PHOTOMETRIC_OVERVIEW YCBCR ^
--config COMPRESS_OVERVIEW JPEG --config JPEG_QUALITY_OVERVIEW 85

for %%a in (*.tif) do gdaladdo -ro %_opts% %%a 2 4 8 16 32 64

notas

GDAL 1.6.0 introducido gauss remuestreo que puede conducir a mejores resultados average en caso de bordes afilados con alto contraste o patrones ruidosos. Se deben usar potencias de 2 niveles (2 4 8 …) para que se seleccione un núcleo gaussiano de remuestreo de 3×3.

JPEG_QUALITY_OVERVIEW 85 – Si no se especifica, se usa el valor predeterminado del 75 %, lo que produce un archivo más pequeño, pero encuentro que el 85 % es un mejor compromiso en la compensación entre tamaño y calidad.

Actualización, 2015: GDAL 1.8 y 2.0 han introducido muchas opciones nuevas que no se tratan aquí y que no he tenido tiempo de digerir. Lea la página oficial de formato gtiff, estoy seguro de que hay configuraciones útiles adicionales detalladas.

Para rásteres grandes, GeoTiff ofrece la posibilidad de almacenar vistas generales (pre)reducidas como imágenes adicionales en el archivo GeoTiff. Esto se puede hacer con gdaladdo (= descripción general de GDAL ADD). Al crear estas vistas generales, puede indicarle manualmente a gdal que también las comprima:

gdaladdo --config COMPRESS_OVERVIEW JPEG 

Acelera la visualización de sus datos sin agregar demasiado tamaño. Nota: Las aplicaciones de Geotools como Geoserver, uDig, AtlasStyler, Geopublisher pueden usar esta función y beneficiarse de las vistas generales.

Puntuaciones y comentarios

Si tienes algún reparo o forma de avanzar nuestro escrito eres capaz de añadir un paráfrasis y con deseo lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *