Featured image of post GDAL com suporte a ECW

GDAL com suporte a ECW

Tutorial de compilação do GDAL com suporte a ECW no Debian/Ubuntu

O formato de arquivo ECW, propriedade da Hexagon, é frequentemente utilizado para a disponibilização de imagens aéreas de alta resolução com tamanho de arquivo menor comparado a outros formatos de imagens georreferenciadas, como o GeoTIFF, por exemplo. A licença grátis oferecida pela empresa permite a leitura do arquivo ECW e conversão para algum outro formato de imagem suportado pelo GDAL. A conversão de um arquivo de imagem de algum formato livre para ECW requer compra de licença do SDK (Software Development Kit). Enquanto a instalação no Windows é simples, bastando alguns cliques para que o SDK esteja disponível para utilização por linha de comando ou pela interface gráfica do QGIS, em distribuições Linux é necessário fazer o download do SDK e usá-lo na compilação do GDAL com configurações específicas.

Testado com:

  • Debian 11 (Bullseye)
  • Ubuntu 22.04.1 LTS (Jammy Jellyfish)
  • GDAL 3.5
  • libproj22 (Ubuntu), libproj19 (Debian)
  • ERDAS ECW/JP2 SDK v5.4 Linux

Update na sua lista de versões de pacotes

1
 apt update

Remoção de instalações anteriores

Busca pelos pacotes instalados no sistema

1
 apt list --installed | grep gdal

Saída típica:

1
2
3
gdal-bin/stable-security,now 3.2.2+dfsg-2+deb11u2 amd64 [installed,automatic]
gdal-data/stable-security,stable-security,now 3.2.2+dfsg-2+deb11u2 all [installed,automatic]
libgdal28/stable-security,now 3.2.2+dfsg-2+deb11u2 amd64 [installed,automatic]

O pacote libgdal pode estar com nome diferente (relativo à versão instalada), então se necessário substitua com o nome da versão instalada na sua máquina no comando a seguir.

Remoção dos pacotes

1
 apt remove gdal-bin gdal-data libgdal28

Remoção de pacotes desnecessários

1
 apt autoremove

Instalação de make, libpng-dev e unzip

1
 apt install make libpng-dev unzip

Download, extração e execução do SDK

1
2
3
4
wget https://downloads.hexagongeospatial.com/software/2018/ECW/erdas-ecw-sdk-5.4.0-linux.zip
unzip erdas-ecw-sdk-5.4.0-linux
chmod +x ERDAS_ECWJP2_SDK-5.4.0.bin
./ERDAS_ECWJP2_SDK-5.4.0.bin

Logo após a execução do binário, você será perguntade que tipo de instalação quer fazer. Selecione 1 para " “Desktop Read-Only Redistributable”. Vá pressionando Enter até passar todo o Acordo de Licença (ou pressione Ctrl+C para pular todo o texto) e por fim digite “Yes” (ou “No” caso prefira não instalar após a leitura, aí o tutorial termina aqui).

Uma pasta na sua /home/usuarie/hexagon será criada.


Cópia dos arquivos extraídos para pastas do sistema

1
2
3
4
5
cp -r ~/hexagon/ERDAS-ECW_JPEG_2000_SDK-5.4.0/Desktop_Read-Only /usr/local/hexagon
rm -r /usr/local/hexagon/lib/x64
mv /usr/local/hexagon/lib/newabi/x64 /usr/local/hexagon/lib/x64
cp /usr/local/hexagon/lib/x64/release/libNCSEcw* /usr/local/lib
ldconfig /usr/local/hexagon

Instalação das bibliotecas PROJ

Caso esteja instalando no Ubuntu, substituia libproj19 por libproj22

1
apt install proj-bin libproj-dev proj-data libproj19

Download do repositório do projeto GDAL

1
2
3
4
cd ~
wget https://github.com/OSGeo/gdal/releases/download/v3.5.3/gdal-3.5.3.tar.gz
tar -xf gdal-3.5.3.tar.gz
cd gdal-3.5.3

Compilação do GDAL

1
2
3
4
./configure -with-ecw=/usr/local/hexagon
make clean
make
make install

Isso vai demorar tanto… Melhor ir pegar um café ☕


Checagem da Instalação

1
 gdalinfo --formats | grep ECW

Saída típica:

1
2
ECW -raster- (rw+): ERDAS Compressed Wavelets (SDK 5.4)
JP2ECW -raster,vector- (rw+v): ERDAS JPEG2000 (SDK 5.4)

Caso você tenha um erro relacionado à libgdal.so, crie um link simbólico para a libgal.so.1 com os seguintes comandos:

1
2
ln -s /usr/lib/libgdal.so /usr/lib/libgdal.so.1
/sbin/ldconfig

E por fim você pode remover a pasta ~/hexagon

1
 rm -rf ~/hexagon/

Baseado nesse script

Foto de capa: Ben den Engelsen