GDAL空間資料處理100講[01]:GDAL的Python開發環境搭建
GDAL空間資料處理100講[01]:GDAL的Python開發環境搭建
作者:胡佳輝 2018年11月12日
本文原發於"衛星遙感大資料"公眾號,歡迎關注!如有興趣,歡迎加入"衛星遙感大資料"QQ群(877631590)或者加我微信(cddennishu)進"衛星遙感大資料"微信群。
概述
GDAL,全稱Geospatial Data Abstraction Library,是開源的地理空間資料處理C++庫,提供了C/C++、Python、Java多種介面以及命名行工具。GDAL是處理衛星遙感大資料的重要工具。
前置條件:本文基於Ubuntu16桌面版環境。
第一步:新增gdal的ubuntu安裝源
[1] 新增安裝源
[email protected]:~$ sudo add-apt-repository ppa:ubuntugis/ppa
[2] 更新剛新增的安裝源
[email protected]:~$ sudo apt-get update
第二步:安裝gdal命令列工具
[email protected]:~$ sudo apt install gdal-bin python-gdal
說明:gdal-bin是純的命令列工具,python-gdal是Python的一些工具,也可以在命令列下使用。如果只安裝前者,命令就不全。比如gdal_merge.py就沒有。
第三步:測試gdal命令列工具
安裝完之後,需要一張圖片來測試下gdal工具。正好我網頁上打開了圖資料庫HugeGraph,我就用它做測試吧。
[1] 下載一張圖片
[email protected]:~/geodata$ wget https://github.com/hugegraph/hugegraph-doc/raw/master/images/design/architectural-overview.png
[2] 測試gdalinfo命令
[email protected]:~/geodata$ gdalinfo architectural-overview.png
Driver: PNG/Portable Network Graphics
Files: architectural-overview.png
Size is 567, 276
Coordinate System is `'
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 276.0)
Upper Right ( 567.0, 0.0)
Lower Right ( 567.0, 276.0)
Center ( 283.5, 138.0)
Band 1 Block=567x1 Type=Byte, ColorInterp=Red
Mask Flags: PER_DATASET ALPHA
Band 2 Block=567x1 Type=Byte, ColorInterp=Green
Mask Flags: PER_DATASET ALPHA
Band 3 Block=567x1 Type=Byte, ColorInterp=Blue
Mask Flags: PER_DATASET ALPHA
Band 4 Block=567x1 Type=Byte, ColorInterp=Alpha
[email protected]:~/geodata$
從上面的結果來看,gdalinfo命令是可用的。它會顯示圖片的詳細資訊。這張圖片是沒有空間資訊的,是一張純圖片。
如果你只需要使用gdal命令,那麼到這裡就可以了。後面的步驟是要做Python開發才需要。
第四步:安裝python的gdal庫
[email protected]:~/geodata$ sudo apt install python3-gdal
第五步:測試python的gdal庫
由於ubuntu16 desktop版已經安裝了python3,所以不需要單獨安裝。直接敲"python3"進入互動式環境,然後用前面下載的png圖片做測試。具體如下:
[email protected]:~/geodata$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gdal
>>> in_ds = gdal.Open('architectural-overview.png')
>>> print (in_ds.RasterCount)
4
>>>
這裡解釋如下:
[1] 先匯入gdal庫; [2] 開啟剛下載的png圖; [3] 獲取這個圖的波段書,這個png圖有四個通道。這表明python的gdal庫已經安裝好。
參考資料:
[1] https://mothergeo-py.readthedocs.io/en/latest/development/how-to/gdal-ubuntu-pkg.html
[2] https://www.gdal.org/gdal_tutorial.html