Come abilitare il supporto ai file ECW in GDAL e visualizzarli in GRASS e QGIS

Da GfossWiki.
Torna a HOWTOs e procedure tipo

Per abilitare GDAL ad importare file ECW è sufficiente per prima compilare le librerie ECW ed in seguito compilare le gdal come descritto sotto.


N.B.: ricompilare è necessario per persistenti problemi di licenza in ECW.


Indice

[modifica] Compilare le librerie ECW

[modifica] Note per Ubuntu Edgy i386/AMD64

Innanzitutto vanno scaricati sorgenti delle librerie ECW JPEG 200 in formato zip dal sito di ermapper qui. Cliccare su Download NOW. Per poter proseguire con il download è necessaria una semplice registrazione. Dopo aver scompattato il file eseguire i seguenti comandi:

cd

alla directory libecwj2-3.3 (ad esempiocd /home/pierluigi/SOFTWARE_SORGENTI/libecwj2-3.3)

./configure

Per Ubuntu è più opportuno utilizzare la sintassi:

./configure --prefix=/usr

Altri applicativi installati dai pacchetti DEB (vedi QGIS) troveranno le librerie in /usr/lib, dove si aspettano che siano invece che in /usr/local/lib

make

Per installare un pacchetto che sia facilmente disinstallabile anche attraverso Synaptic si può usare il programma checkinstall che crea uno "pseudo" deb e lo installa . Per installare checkinstall digitare:

sudo apt-get update
sudo apt-get install checkinstall

A questo punto ci si posiziona nella directory libecwj2-3.3 e si digita:

sudo checkinstall

Il programma provvede a compilare le librerie, a creare il deb ed a installarlo:

su (password di root)
make install

[modifica] Compilare le librerie GDAL con supporto ECW

Scaricare dal sito di gdal il file tar.gz della versione più recente. Scompattare il tar.gz entrare nella directory GDAL ed eseguire i seguenti comandi: (N.B. i comandi sono relativi alla mia macchina ma sono abbastanza generali da poter essere utilizzati sempre)

./configure --with-ecw=/usr/local --with-grass=/usr/local/grass-6.1.cvs  --with-pg=/usr/local/pgsql/bin/pg_config

Su Ubuntu Edgy AMD64 si riesce attualmente ad installare la versione 1.3.1, il cui sorgente è disponibile dal repository ufficiali di Ubuntu, si può scaricare (nella cartella in cui ci si trova con la shell) attraverso i seguenti comandi:

sudo apt-get update
sudo apt-get source gdal

Si ottiene una cartella con i sorgenti già patchati per Ubuntu, a questo punto si entra, con la shell, nella cartella gdal-1.3.1 e si configura con:

./configure --with-grass=/usr/lib/grass --with-ecw=/usr/ --with-pg=/usr/bin/pg_config --with-gdal-ver=1.3.1_ecw \
--prefix=/usr  --with-libgrass=/usr/lib/grass

Può essere necessario rendere eseguibile il file rules con:

chmod u+x ./debian/rules

Poi si creano i deb con: ???

Se necessario si installano le dipendenze mancanti, ache attraverso:

apt-get build-dep gdal
sudo dpkg-buildpackage -rfakeroot -uc -b -vecw

Ci si poziziona nella cartella superiore e si installano i deb:

sudo dpkg -i *.deb 

In Ubuntu i386, se si utilizzano i repository di Ubuntu GIS e si upgradato il sistema (Grass, Qgis, Mapserver, ecc): http://les-ejk.cz/ubuntu/

Si possono ricompilare le gdal 1.3.2, si scaricano i sorgenti e la patch dal repository feisty di Ubuntu http://packages.ubuntu.com/feisty/source/gdal

Si scompattano i sorgenti e si applica la patch con:

zcat gdal_1.3.2-2.diff.gz | patch -p0

a questo punto si configura:

./configure --with-grass=/usr/lib/grass --with-ecw=/usr/ --with-pg=/usr/bin/pg_config --with-gdal-ver=1.3.1_ecw \
--prefix=/usr  --with-libgrass=/usr/lib/grass

Può essere necessario rendere eseguibile il file rules con:

chmod u+x ./debian/rules

Poi si creano i deb con:

sudo dpkg-buildpackage -rfakeroot -uc -b -vecw

Se necessario si installano le dipendenze mancanti, anche attraverso:

'apt-get build-dep gdal

Ci si poziziona nella cartella superiore e si installano i deb:

sudo dpkg -i *.deb  
make
su (password di root)
make install

Ora per verificare che le GDAL supportino le ECW dare il comando:

gdalinfo --formats

Verrà mostrato un elenco di tipi supportati tra cui dovgrà risultare anche questa due righe:

ECW (rw): ERMapper Compressed Wavelets
JP2ECW (rw+): ERMapper JPEG2000

A questo punto è possibile importare i file ECW in GRASS con r.in.gdal direttamente.

[modifica] Creare un plugin GDAL per il supporto ECW (DRAFT)

Su un sistema Debian Lenny con versione di gdal 1.5.2 è possibile in alternativa alla ricompilazione delle GDAL, compilare il solo supporto ECW/JP2ECW in modalità plugin. Attualmente il package relativo è disponibile solo nel repository subversion di DebianGis e richiede qualche operazione manuale, perché il packaging è ancora grezzo. Per prendere la versione di sviluppo del plugin:

cd /tmp && svn export svn://svn.debian.org/svn/pkg-grass/packages/gdal-ecw/trunk gdal-ecw 

Una volta compilato e installato il SDK ECW sotto /usr/local/libecw per esempio, si può produrre un deb source da installare per la compilazione:

cd /tmp/gdal-ecw
fakeroot debian/rules binary-indep
dpkg -i ../gdal-ecw-src_1.5.2-*_all.deb
cd /usr/src
tar xzvf gdal-ecw-*.tar.gz
cd gdal-ecw*
./configure --with-ecw=/usr/local/libecw --with-autoload=/usr/lib/gdal15plugins
make
make install

Al completamento, sara' presente una nuova shared lib gdal_ECW_JP2ECW.so sotto la directory dei plugins di GDAL 1.5.x Si noti che fino al branch 1.5 il plugini ECW NON fa parte delle funzionalita' ufficiali di GDAL e solo il patchset incluso nel debsrc è utilizzabile in tal senso. Nello stesso repository è stato reso disponibile parimenti un plugin per MrSid, realizzato in termini simili.

Torna a HOWTOs e procedure tipo

Strumenti personali
Namespace
Varianti
Azioni
menu principale
GFOSS
Strumenti