本文主要是介绍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 libtoolgit clone https://github.com/json-c/json-c.git
cd json-c
cmake ../json-cmake
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 ,之后重新编译,但安装结束后仍然报上述错误,暂未解决该问题。
这篇关于gdal加入ecw支持(暂未解决)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!