Python-GDAL教程:矢量数据的读取

矢量数据的读取包含:矢量文件打开、读取图层、边界、要素提取、属性表字段读取、要素轮廓坐标提取、遍历所有要素

import sys
import ogr #导入工具包,或者下面语句导入
# from osgeo import ogr 

driver = ogr.GetDriverByName('ESRI Shapefile') #载入驱动
filename = 'demo1.shp'  # 不止需要.shp文件,还需要附带的其它信息文件
dataSource = driver.Open(filename, 1) #第二个参数为0是只读,为1是可写
if dataSource is None: #判断是否成功打开
    print('could not open')
    sys.exit(1)
else:
    print('done!')

layer = dataSource.GetLayer(0)   #读取第一个图层

'''读出上下左右边界,坐标系为地理坐标系'''
extent = layer.GetExtent()
print ('extent:', extent)
print ('ul:', extent[0], extent[1]) #左右边界
print ('lr:', extent[2], extent[3]) #下上边界

n = layer.GetFeatureCount()     #该图层中有多少个要素
print ('feature count:', n)
feat = layer.GetFeature(0)		 #提取数据层中的第一个要素
fid = feat.GetField('FieldID')   #读取该要素字段名为'FieldID'的值,注意读取'shape'字段会报错
print (fid)
geom = feat.GetGeometryRef() 		#提取该要素的轮廓坐标
print (geom)

'''循环遍历所有的该图层中所有的要素'''
feat = layer.GetNextFeature()  #读取下一个
while feat:
   feat = layer.GetFeature(0)
   fid = feat.GetField('FieldID')
   print (fid)
layer.ResetReading()  #复位
  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值