Criando um mosaico de imagens com o GDAL

O GDAL (Geospatial Data Abstraction Library) é uma poderosa biblioteca de código aberto para processamento e conversão de dados geoespaciais. Mesclar vários arquivos raster em um único mosaico é uma tarefa comum em diversas situações, como quando você exporta pedaços de dados do Google Earth Engine ou quando tem múltiplos tiles de imagens que deseja combinar em uma única imagem para análise. Neste post, vamos mostrar como instalar o GDAL no Linux e utilizar o comando gdalbuildvrt para mesclar vários arquivos TIFF em um único mosaico.

Instalação do GDAL no Ubuntu 22.04

Primeiro, precisamos instalar o GDAL e suas dependências. Siga os passos abaixo para instalar o GDAL no seu sistema Linux:

sudo apt-get update

sudo apt-get install libgdal-dev python3-dev gdal-bin python3-gdal gcc g++

pip3 install GDAL==$(gdal-config --version) --global-option=build_ext --global-option="-I/usr/include/gdal"

Estas instruções instalam o GDAL e suas bibliotecas necessárias, além do Python bindings para usar o GDAL com Python.

Mesclando Arquivos TIFF em um Mosaico

Uma vez que o GDAL esteja instalado, você pode usar o comando gdalbuildvrt para criar um arquivo VRT (Virtual Raster) que mescla vários arquivos TIFF. Em seguida, usaremos o gdal_translate para converter o VRT em um único arquivo TIFF.

Aqui está o comando que você pode usar:

gdalbuildvrt tmp.vrt *.tif -hidenodata -srcnodata 0 -vrtnodata 0 && GDAL_CACHEMAX=512 gdal_translate -of GTiff -a_nodata 0 -co COMPRESS=DEFLATE -co NUM_THREADS=ALL_CPUS -co BIGTIFF=YES tmp.vrt merged_raster.tif

Vamos dividir o comando em partes para entender melhor o que ele faz:

  1. gdalbuildvrt tmp.vrt *.tif -hidenodata -srcnodata 0 -vrtnodata 0:
    • gdalbuildvrt cria um arquivo VRT que referencia os arquivos TIFF especificados.
    • tmp.vrt é o nome do arquivo VRT de saída.
    • *.tif especifica que todos os arquivos com extensão .tif no diretório atual serão incluídos.
    • -hidenodata oculta valores nodata nas bandas dos arquivos de entrada.
    • -srcnodata 0 define o valor nodata das imagens de entrada como 0.
    • -vrtnodata 0 define o valor nodata no arquivo VRT como 0.
  2. GDAL_CACHEMAX=512 gdal_translate -of GTiff -a_nodata 0 -co COMPRESS=DEFLATE -co NUM_THREADS=ALL_CPUS -co BIGTIFF=YES tmp.vrt merged.tif:
    • GDAL_CACHEMAX=512 define o cache de memória máximo do GDAL para 512 MB, o que pode melhorar o desempenho.
    • gdal_translate converte o VRT em um arquivo TIFF.
    • -of GTiff especifica que o formato de saída é GeoTIFF.
    • -a_nodata 0 define o valor nodata no arquivo de saída como 0.
    • -co COMPRESS=DEFLATE aplica a compressão DEFLATE ao arquivo de saída.
    • -co NUM_THREADS=ALL_CPUS utiliza todos os núcleos da CPU para acelerar o processamento.
    • -co BIGTIFF=YES permite a criação de arquivos TIFF grandes (>4GB).
    • tmp.vrt é o arquivo VRT de entrada.
    • merged_raster.tif é o nome do arquivo TIFF de saída.

Conclusão

Com esses comandos, você pode facilmente mesclar vários arquivos TIFF em um único mosaico usando o GDAL. Esse processo é essencial para quem trabalha com grandes volumes de dados geoespaciais e precisa integrar várias imagens em um único arquivo para análise e visualização. Seja para combinar tiles exportados do Google Earth Engine ou para unir múltiplos rasters, o GDAL oferece uma solução robusta e eficiente.

Experimente seguir esses passos e compartilhe suas experiências e resultados! Se tiver alguma dúvida, deixe nos comentários abaixo.