In [ ]:
import ogr
或者使用目前建议的方法:
In [ ]:
from osgeo import ogr
为了保持兼容性,同样可以使用下面的方法:
In [ ]:
try:
from osgeo import ogr
except:
import ogr
先看一下使用ogr读取数据的简单流程:
首先我们先看一下如何打开一个数据。这里使用矢量数据常用的数据集ESRI的ShapeFile。 可以使用ogr.Open()函数直接打开矢量数据,在这个过程中,ogr会自动根据文件的类型来确定相应的驱动
In [2]:
inshp = '/gdata/stats_county.shp'
from osgeo import ogr
datasource = ogr.Open(inshp)
driver = datasource.GetDriver()
driver.name
Out[2]:
这样就打开了一个数据源(DataSource),并将其赋给datasource变量。
上面这种方法打开的是按缺省方式进行的,在实际编程中,应该对要打开的数据类型进行一下处理。要读取某种类型的数据,必须要先载入数据驱动,也就是初始化一个对象,让它“知道”某种数据结构。
driver = ogr.GetDriverByName('ESRI Shapefile')
数据驱动driver的Open()(方法返回一个数据源对象),其中update为0是只读,为1是可写)。 例如:
Open(self, char name, int update = 0) -> DataSource
In [5]:
import sys
from osgeo import ogr
inshp = '/gdata/stats_county.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有哪些可用的方法。
In [6]:
dir(datasource)
Out[6]:
In [ ]: