Come abilitare il supporto ai file ECW in GDAL e visualizzarli in GRASS e QGIS
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.