前因
最近想將氣溶膠算法并行化,于是將算法從IDL語法改成了Python語法腥寇。因?yàn)镻ython的gdal庫能夠?qū)鸥裼跋褡x取成二維數(shù)組成翩。但是代碼在本地跑得起來,在集群上卻顯示赦役。于是想重裝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”解壓文件。并運(yùn)行以下命令
(1)解壓后進(jìn)入:cd gdal-1.11.2
(2)./configure --prefix=“此處設(shè)置你的安裝路徑”掂摔,當(dāng)然庸论,我們也可以直接運(yùn)行“./configure”,安裝到默認(rèn)位置
(3)make
(4)make install(如果有權(quán)限不足不能寫入的話就sudo make install)
按照默認(rèn)位置安裝成功后职辅,會(huì)在安裝路徑的include文件夾中產(chǎn)生一系列.h文件(cpl_config.h、gdal.h……)聂示,在安裝路徑的lib文件夾中產(chǎn)生5個(gè)庫文件,其中l(wèi)ibgdal.a和libgdal.la為靜態(tài)鏈接庫簇秒,libgdal.so等為動(dòng)態(tài)鏈接庫鱼喉。
3.配置環(huán)境變量
將依賴的動(dòng)態(tài)庫和靜態(tài)庫添加到LD_LIBRARY_PATH環(huán)境變量中區(qū)。編輯bash的用戶配置文件:
運(yùn)行以下命令:
- vim~/.bashrc
-輸入“i”進(jìn)入插入模式趋观,將光標(biāo)移動(dòng)到文件末尾
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”保存退出,執(zhí)行“source ~/.bashrc”更新變量
4.安裝Python的gdal擴(kuò)展包
進(jìn)入到安裝包的gdal-2.3.2/swig/python目錄下
-修改setup.cfg的gdal_config參數(shù)皱坛,成 /usr/bin/gdal-config(默認(rèn)安裝), but it may be in another place depending on how your packager arranged things. (你的安裝路徑的對應(yīng)位置)
-執(zhí)行編譯和安裝
$ python setup.py build
$ python setup.py install
后記
在重新安裝了gdal后编曼,之前遇到的‘No module named '_gdal_array'這個(gè)錯(cuò)誤,還是沒有解決剩辟。最后發(fā)現(xiàn)本地有兩套Python掐场,環(huán)境變量中也有這兩套的地址,然后我更新的gdal擴(kuò)展包只在其中一套贩猎,后來將那套沒有g(shù)dal的Python刪除熊户,并重新修改環(huán)境變量,該錯(cuò)誤消失吭服。
參考
linux下部署gdal環(huán)境:https://blog.csdn.net/hnyzwtf/article/details/44674179
linux設(shè)置python環(huán)境變量:https://www.cnblogs.com/babykick/archive/2012/03/05/2379965.html