gdal加入ecw支持(暂未解决)

由于数据格式为ecw,直接安装gdal库不支持该格式的读取,所以需要在gdal库中下载编译支持ecw的插件。

先通过运行 conda search gdal查看版本号,接着conda install gdal=版本号 下载对应版本的gdal,再按照trac网站的教程加入ecw的支持时,但运行命令 apt-get install gdal-ecw-src由于无法定位到libgdal-ecw-src包,无法继续下载。

后通过conda卸载gdal,下载gdal和ERDAS ECW JP2 SDK v5.4 Linux安装包来手动安装

sudo apt remove gdal-bin gdal-data libgdal20
sudo apt autoremove
sudo apt install libpng-dev

## At the menu, select 1 for "Desktop Read-Only Redistributable"
unzip erdas-ecw-sdk-5.4.0-linux.zip
chmod +x ERDAS_ECWJP2_SDK-5.4.0.bin
./ERDAS_ECWJP2_SDK-5.4.0.bin

## Copy new libraries to system folder
## Rename the newabi library as x64 and move necessary libraries to /usr/local/lib
sudo cp -r ~/hexagon/ERDAS-ECW_JPEG_2000_SDK-5.4.0/Desktop_Read-Only /usr/local/hexagon
sudo rm -r /usr/local/hexagon/lib/x64
sudo mv /usr/local/hexagon/lib/newabi/x64 /usr/local/hexagon/lib/x64
sudo cp /usr/local/hexagon/lib/x64/release/libNCSEcw* /usr/local/lib
sudo ldconfig /usr/local/hexagon

## Build GDAL with ECW support
unzip gdal-2.3.1.zip
cd gdal-2.3.1

./configure --with-ecw=/usr/local/hexagon
make clean
make
sudo make install

在这个过程中陆续遇到问题 configure: error: cannot find geotiff.h 和 configure: error: could not find json-c/json.h,前者通过 sudo apt-get update, sudo apt-get install libgeotiff-dev 解决,后者通过以下命令解决。

sudo apt install git
sudo apt install cmake
sudo apt install autoconf automake libtool

git clone https://github.com/json-c/json-c.git
cd json-c
cmake ../json-c

make
make test
make install

在完成整个下载安装后gdal仍然不支持ecw,且gdalinfo仍是通过conda安装的版本号,所以考虑到是gdal没有卸载干净,通过 which gdalinfo 命令找到本地gdal相关的二进制文件,手动删除,此外anaconda的虚拟环境中也下载了gdal文件,同样需要手动删除。

gdal卸载干净后重新进入手动下载流程,下载结束后运行 gdalinfo --version 命令查看版本号是否正确时,出现错误 gdalinfo: error while loading shared libraries: libgdal.so.20: cannot open shared object file: No such file or directory,将gdal包重新挪动到/usr/local中,并修改环境变量 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ,之后重新编译,但安装结束后仍然报上述错误,暂未解决该问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值