LINUX下部署gdal环境

前因

最近想将气溶胶算法并行化,于是将算法从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 ()
----> 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 ()
   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

你可能感兴趣的:(LINUX下部署gdal环境)