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] 添加安装源
dennis@ubuntu:~$ sudo add-apt-repository ppa:ubuntugis/ppa
[2] 更新刚添加的安装源
dennis@ubuntu:~$ sudo apt-get update
第二步:安装gdal命令行工具
dennis@ubuntu:~$ sudo apt install gdal-bin python-gdal
说明:gdal-bin是纯的命令行工具,python-gdal是Python的一些工具,也可以在命令行下使用。如果只安装前者,命令就不全。比如gdal_merge.py就没有。
第三步:测试gdal命令行工具
安装完之后,需要一张图片来测试下gdal工具。正好我网页上打开了图数据库HugeGraph,我就用它做测试吧。
[1] 下载一张图片
dennis@ubuntu:~/geodata$ wget https://github.com/hugegraph/hugegraph-doc/raw/master/images/design/architectural-overview.png
[2] 测试gdalinfo命令
dennis@ubuntu:~/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=567×1 Type=Byte, ColorInterp=Red
Mask Flags: PER_DATASET ALPHA
Band 2 Block=567×1 Type=Byte, ColorInterp=Green
Mask Flags: PER_DATASET ALPHA
Band 3 Block=567×1 Type=Byte, ColorInterp=Blue
Mask Flags: PER_DATASET ALPHA
Band 4 Block=567×1 Type=Byte, ColorInterp=Alpha
dennis@ubuntu:~/geodata$
从上面的结果来看,gdalinfo命令是可用的。它会显示图片的详细信息。这张图片是没有空间信息的,是一张纯图片。
如果你只需要使用gdal命令,那么到这里就可以了。后面的步骤是要做Python开发才需要。
第四步:安装python的gdal库
dennis@ubuntu:~/geodata$ sudo apt install python3-gdal
第五步:测试python的gdal库
由于ubuntu16 desktop版已经安装了python3,所以不需要单独安装。直接敲”python3″进入交互式环境,然后用前面下载的png图片做测试。具体如下:
dennis@ubuntu:~/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
转载自:https://blog.csdn.net/gobitan/article/details/84023608