python的ogr模块_Python与开源GIS:使用OGR模块打开矢量数据

Python与开源GIS教程的内容,开发了单独的内容,请打开

https://www.osgeo.cn/pygis/

查看。

本页面的内容不再更新。

首先来看一下使用Python如何对矢量数据进行操作。 在 Python

中使用 OGR,只需要导入ogr模块。在早期的版本中,OGR是使用下面的语句导入的:

import ogr

或者使用目前建议的方法:

from osgeo import ogr

为了保持兼容性,同样可以使用下面的方法:

try:

from osgeo import ogr

except:

import ogr

先看一下使用ogr读取数据的简单流程:

首先我们先看一下如何打开一个数据。这里使用矢量

数据常用的数据集ESRI的ShapeFile。可以使用ogr.Open()函数直接打开矢量数据,在这个过程中,ogr会自动根据文件的类型来确定相应的驱动

>>> inshp = '/bk/gdata/world_borders.shp'

>>> from osgeo import ogr

>>> datasource = ogr.Open(inshp)

>>> driver = datasource.GetDriver()

>>> driver.name

'ESRI Shapefile'

这样就打开了一个数据源(DataSource),并将其赋给

datasource变量。

上面这种方法打开的是按缺省方式进行的,在实际编程中,应该对要打开的数据类型进行一下处理。要读取某种类型

的数据,必须要先载入数据驱动,也就是初始化一个对象,让它“知道”某种数据结构。

>>> driver = ogr.GetDriverByName('ESRI Shapefile')

Open(self, char name, int update = 0) -> DataSource

数据驱动driver的Open()(方法返回一个数据源对象),其中update为0是只读,为1是可写)。 例如:

import sys

from osgeo import ogr

inshp = '/bk/gdata/world_borders.shp'

driver = ogr.GetDriverByName('ESRI Shapefile')

dataSource = driver.Open(inshp,0)

if dataSource is None:

print 'could not open'

sys.exit(1)

print 'done!'

注意filename一定要写绝对路径! 使用Python的内省函数dir()

看一下datasource有哪些可用的方法。

>>> dir(datasource)

'CopyLayer', 'CreateLayer', 'DeleteLayer', 'Dereference', 'Destroy',

'ExecuteSQL', 'GetDriver', 'GetLayer', 'GetLayerByName', 'GetLayerCount',

'GetName', 'GetRefCount', 'GetSummaryRefCount', 'Reference', 'Release',

'ReleaseResultSet', 'TestCapability'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值