Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

在Mac下安装GDAL-Python


GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ARCGIS 9.3,Google Earth和跨平台的GRASS GIS系统。利用GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对矢量和栅格文件数据的支持。

GDAL的官方网址:http://www.gdal.org/ 该网址对GDAL进行了详细的介绍,可供使用者进行学习。本文主要记录在Mac获取GDAL的Python版本。

首先利用Homebrew工具安装gdal. 

brew install gdal

这个安装过程比较漫长,下载的Library比较多。。。

安装完成后在命令行 import gdal成功,但是在Pycharm中无法运行, 这个问题与之前安装opencv一致。解决办法如下,进入python的site-packages目录下,并制作替身(下载好的gdal放在/usr/local/Cellar/gdal/1.11.5_2/lib/python2.7/site-packages/)。

cd /Library/Python/2.7/site-packages/
sudo ln -s /usr/local/Cellar/gdal/1.11.5_2/lib/python2.7/site-packages/gdal.py gdal.py
sudo ln -s /usr/local/Cellar/gdal/1.11.5_2/lib/python2.7/site-packages/gdal.pyc gdal.pyc
制作下载目录下所有gdal的文件的替身。包括osgen,geos,GDAL-1.11.15-py2.7egg-info等等。
然后再到Pycharm中输入官网实例进行测试:

import gdal
from gdalconst import *

dataset = gdal.Open('123.tif',GA_ReadOnly)
if dataset is None:
    print 'No data'
print 'Driver: ', dataset.GetDriver().ShortName,'/', \
      dataset.GetDriver().LongName
print 'Size is ',dataset.RasterXSize,'x',dataset.RasterYSize, \
      'x',dataset.RasterCount
print 'Projection is ',dataset.GetProjection()
geotransform = dataset.GetGeoTransform()
if not geotransform is None:
    print 'Origin = (',geotransform[0], ',',geotransform[3],')'
    print 'Pixel Size = (',geotransform[1], ',',geotransform[5],')' 

输出如下,表示安装成功。

Driver: GTiff / GeoTIFF
Size is 3700 x 5300 x 1
Projection is PROJCS["WGS 84 / PS",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-71],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]
Origin = ( 1952000.0 , 583000.0 )
Pixel Size = ( 20.0 , -20.0 )


转载自:https://blog.csdn.net/nillei/article/details/70575216