Python地理数据处理之GDAL/OGR使用

Python地理数据处理之GDAL/OGR使用

一、 
首先是在学习Python地理数据处理这本书时了解的这个知识点, 
附上书的链接 
https://www.manning.com/books/geoprocessing-with-python#downloads 
可以在左侧下载地理Data和Code


二、python配置安装 (本次安装以python3.4为例)自行解决


三、简介 GDAL/OGR

GDAL(Geospatial Data Abstraction Library) 
是一个的开源栅格空间数据读取/转换库。 
其中还有一系列命令行工具来进行数据转换和处理。

ORG项目 
是GDAL的一个分支,功能与GDAL类似,但其提供对矢量数据的支持。 
(如果想显示shapefile,还需要用其他工具)。 
安装配置: 
http://www.gisinternals.com/ 
1.选择Stable Release 
2.选择合适的版本 
(以MSVC 2013 x64 release-1800-x64-gdal-2-2-1-mapserver-7-0-6为例)


下载安装文件:

    release-1800-x64-gdal-2-2-1-mapserver-7-0-6-libs.zip
     gdal-202-1800-x64-core.msi
     GDAL-2.2.1.win-amd64-py3.4.msi  
  • 1
  • 2
  • 3

开始安装Core, 
这里使用了默认安装,也就是GDAL将安装到C:\Program Files\GDAL目录下。 
设置新的环境变量, 
变量名为GDAL_DATA,值为C:\Program Files\GDAL\gata-data; 
将C:\Program Files\GDAL添加到环境变量的PATH中,注意,尽量将这个目录添加到PATH环境变量中的起始位置,以免发生其他问题。 
双击安装Python接口包。

ok!!!!


以上面数据为例 
打开python shell

>>> import sys
>>> from osgeo import ogr
>>> fn=r'C:\osgeopy-data\osgeopy-data\osgeopy-data-global\osgeopy-data\global\ne_50m_populated_places.shp'
>>> ds=ogr.Open(fn,0)
>>> if ds is None:
    sys.exit('Could not open {0}'.format(fn))
>>> lyr=ds.GetLayer(0)
>>> i=0
>>> for feat in lyr:
    pt=feat.geometry()
    x=pt.GetX()
    y=pt.GetY()
    name=feat.GetField('NAME')
    pop=feat.GetField('POP_MAX')
    print(name,pop,x,y)
    i+=1
    if i==10:
        break
>>> del ds
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

程序运行结果:

Bombo 75000 32.533299524864844 0.5832991056146284
Fort Portal 42670 30.27500161597942 0.671004121125236
Potenza 69060 15.798996495640267 40.642002130098206
Campobasso 50762 14.655996558921856 41.56299911864397
Aosta 34062 7.315002595706176 45.7370010670723
Mariehamn 10682 19.949004471869102 60.09699618489543
Ramallah 24599 35.206209378189556 31.90294475142406
Vatican City 832 12.453386544971766 41.903282179960115
Poitier 85960 0.3332765285345545 46.58329225573658
Clermont-Ferrand 233050 3.080008095928406 45.779982115759424
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

完成!!!

转载自:https://blog.csdn.net/u012965272/article/details/78183909

You may also like...