前因
最近想将气溶胶算法并行化,于是将算法从IDL语法改成了Python语法。因为Python的gdal库能够将栅格影像读取成二维数组。但是代码在本地跑得起来,在集群上却显示。于是想重装gdal
486 # open srtm tif-file:
487 dem_ds = gdal.Open(gdir.get_filepath('dem'))
--> 488 dem = dem_ds.ReadAsArray().astype(float)
489
490 # Correct the DEM (ASTER...)
/home/docs/checkouts/readthedocs.org/user_builds/oggm/conda/docs/lib/python3.5/site-packages/osgeo/gdal.py in ReadAsArray(self, xoff, yoff, xsize, ysize, buf_obj, buf_xsize, buf_ysize, buf_type, resample_alg, callback, callback_data)
1971 parameters should generally not be specified if buf_obj is specified. The array is returned"""
1972
-> 1973 from . import gdalnumeric
1974 return gdalnumeric.DatasetReadAsArray( self, xoff, yoff, xsize, ysize, buf_obj,
1975 buf_xsize, buf_ysize, buf_type,
/home/docs/checkouts/readthedocs.org/user_builds/oggm/conda/docs/lib/python3.5/site-packages/osgeo/gdalnumeric.py in <module>()
----> 1 from osgeo.gdal_array import *
2 from numpy import *
/home/docs/checkouts/readthedocs.org/user_builds/oggm/conda/docs/lib/python3.5/site-packages/osgeo/gdal_array.py in <module>()
166
167 import numpy
--> 168 import _gdal_array
169
170 from . import gdalconst
ImportError: No module named '_gdal_array'
'
步骤
1.下载gdal库文件
http://download.osgeo.org/gdal/
2.安装
我下载的是tar.gz文件,可以通过“tar -zxvf 压缩文件名.tar.gz”解压文件。并运行以下命令
(1)解压后进入:cd gdal-1.11.2
(2)./configure --prefix=“此处设置你的安装路径”,当然,我们也可以直接运行“./configure”,安装到默认位置
(3)make
(4)make install(如果有权限不足不能写入的话就sudo make install)
按照默认位置安装成功后,会在安装路径的include文件夹中产生一系列.h文件(cpl_config.h、gdal.h……),在安装路径的lib文件夹中产生5个库文件,其中libgdal.a和libgdal.la为静态链接库,libgdal.so等为动态链接库。
3.配置环境变量
将依赖的动态库和静态库添加到LD_LIBRARY_PATH环境变量中区。编辑bash的用户配置文件:
运行以下命令:
- vim~/.bashrc
-输入“i”进入插入模式,将光标移动到文件末尾
export PATH=$PATH:/home/dell/gdal-2.3.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dell/gdal-2.3.2/lib
-按esc退出插入模式,输入“:wq”保存退出,执行“source ~/.bashrc”更新变量
4.安装Python的gdal扩展包
进入到安装包的gdal-2.3.2/swig/python目录下
-修改setup.cfg的gdal_config参数,成 /usr/bin/gdal-config(默认安装), but it may be in another place depending on how your packager arranged things. (你的安装路径的对应位置)
-执行编译和安装
$ python setup.py build
$ python setup.py install
后记
在重新安装了gdal后,之前遇到的‘No module named '_gdal_array'这个错误,还是没有解决。最后发现本地有两套Python,环境变量中也有这两套的地址,然后我更新的gdal扩展包只在其中一套,后来将那套没有gdal的Python删除,并重新修改环境变量,该错误消失。
参考
linux下部署gdal环境:https://blog.csdn.net/hnyzwtf/article/details/44674179
linux设置python环境变量:https://www.cnblogs.com/babykick/archive/2012/03/05/2379965.html
网友评论