1. 程式人生 > >GDAL空間資料處理100講[01]:GDAL的Python開發環境搭建

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